@tryvitris/website-harness 0.1.0-beta.6 → 0.1.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (458) hide show
  1. package/README.md +4 -4
  2. package/agent/graph.yaml +0 -2
  3. package/agent/refs/components.md +5 -41
  4. package/agent/refs/compose.md +1 -1
  5. package/agent/refs/implement.md +2 -2
  6. package/agent/refs/jev.md +1 -1
  7. package/agent/refs/layout.md +1 -1
  8. package/agent/refs/storyboard.md +1 -1
  9. package/agent/refs/template-adaptation.md +1 -1
  10. package/bin/api/agent/evaluate.js +10 -15
  11. package/bin/api/agent/grade.js +10 -15
  12. package/bin/api/cli/api.js +18 -23
  13. package/bin/api/cli.js +20 -25
  14. package/bin/api/engine.js +11 -16
  15. package/bin/api/hosting.js +12 -17
  16. package/bin/api/index.js +2 -3
  17. package/bin/api/references.js +1 -2
  18. package/bin/api/render.js +2 -4
  19. package/bin/chunks/{chunk-4GZCAWWK.js → chunk-4MFPATAB.js} +2 -4
  20. package/bin/chunks/{chunk-5OOPJNGN.js → chunk-5JTBC6UK.js} +1 -4
  21. package/bin/chunks/{chunk-Z2UNY47A.js → chunk-5YSPWKFF.js} +1 -1
  22. package/bin/chunks/{chunk-FYN4T4SV.js → chunk-7V3OKLKH.js} +15 -26
  23. package/bin/chunks/{chunk-3CTBXY5K.js → chunk-FRABKM65.js} +1936 -1899
  24. package/bin/chunks/{chunk-4DM5TTLG.js → chunk-H7Y72HXC.js} +5 -5
  25. package/bin/chunks/{chunk-R7YELY3C.js → chunk-HL6JVA4A.js} +100 -81
  26. package/bin/chunks/{chunk-54JC5L35.js → chunk-O55LAQ2C.js} +3 -5
  27. package/bin/chunks/{chunk-VH7PM7KJ.js → chunk-P56ZDMX7.js} +4 -6
  28. package/bin/chunks/{chunk-7VLBEAFW.js → chunk-PGFFKPK6.js} +2 -2
  29. package/bin/chunks/{chunk-YQYHROLZ.js → chunk-QRWGFLUU.js} +2 -2
  30. package/bin/chunks/{chunk-CBEJZO4L.js → chunk-TTAUU3AZ.js} +2 -2
  31. package/bin/chunks/{chunk-E5Y46VBX.js → chunk-VTI32UGJ.js} +200 -103
  32. package/bin/chunks/{chunk-DRJQ4OOU.js → chunk-WOORR67N.js} +0 -45
  33. package/bin/chunks/{chunk-B5I45LFD.js → chunk-YZWEXHT4.js} +11 -13
  34. package/bin/chunks/{chunk-YCVGD2CG.js → chunk-ZIROO2U4.js} +1204 -1176
  35. package/bin/chunks/{chunk-42IXFXUD.js → chunk-ZWFG4GPG.js} +11 -15
  36. package/bin/chunks/{design-context-store-IAT2P2OC.js → design-context-store-DCZOAK56.js} +10 -15
  37. package/bin/chunks/{packets-VBMY4SQJ.js → packets-QOLWPRNV.js} +10 -15
  38. package/bin/chunks/{policy-2I37JUU3.js → policy-MP2JZXI3.js} +1 -1
  39. package/bin/chunks/{preparation-S4MG3RPL.js → preparation-T2IOD5SJ.js} +10 -15
  40. package/bin/chunks/{questions-HKELBDFL.js → questions-XK545GCX.js} +1 -11
  41. package/bin/types/src/agent/composition-authoring.d.ts +2 -2
  42. package/bin/types/src/agent/jev/calibration.d.ts +2 -2
  43. package/bin/types/src/agent/jev/config.d.ts +1 -1
  44. package/bin/types/src/agent/jev/questions.d.ts +0 -10
  45. package/bin/types/src/agent/jev/types.d.ts +0 -2
  46. package/bin/types/src/agent/site-inputs.d.ts +9 -1
  47. package/bin/types/src/agent/template-catalog.d.ts +20 -0
  48. package/bin/types/src/agent/theme-selection.d.ts +4 -2
  49. package/bin/types/src/build/archives.d.ts +2 -0
  50. package/bin/vitris-art.js +10 -15
  51. package/bin/vitris-build.js +3 -5
  52. package/bin/vitris-create-site.js +12 -17
  53. package/bin/vitris-cursor-hook.js +10 -15
  54. package/bin/vitris-eval.js +12 -17
  55. package/bin/vitris-go.js +14 -19
  56. package/bin/vitris-harvest.js +11 -16
  57. package/bin/vitris-knowledge.js +11 -16
  58. package/bin/vitris-launch-preflight.js +11 -17
  59. package/bin/vitris-motion-view.js +13 -19
  60. package/bin/vitris-references.js +4 -7
  61. package/bin/vitris-refresh.js +11 -16
  62. package/bin/vitris-stock.js +1 -1
  63. package/bin/vitris-themes.js +10 -15
  64. package/bin/vitris-upgrade.js +11 -16
  65. package/bin/vitris-verify-browser.js +43 -8
  66. package/bin/vitris-verify-performance.js +3 -5
  67. package/bin/vitris.js +20 -25
  68. package/design-system/MASTER.md +2 -2
  69. package/docs/CLI.md +2 -1
  70. package/docs/DISTRIBUTION.md +1 -1
  71. package/package.json +2 -7
  72. package/templates/site/README.md +2 -0
  73. package/templates/site/gitignore +1 -0
  74. package/bin/chunks/chunk-6H3T46F5.js +0 -25
  75. package/bin/chunks/chunk-ANMJRJQ5.js +0 -31
  76. package/bin/chunks/chunk-FOXUQXTV.js +0 -278
  77. package/bin/chunks/chunk-HNORQ74T.js +0 -40
  78. package/bin/chunks/chunk-T7DGRVTP.js +0 -458
  79. package/bin/types/src/agent/jev/block-catalog.d.ts +0 -95
  80. package/bin/types/src/agent/jev/component-select.d.ts +0 -102
  81. package/bin/types/src/blocks/library-profile.d.ts +0 -9
  82. package/bin/types/src/blocks/metadata.d.ts +0 -65
  83. package/bin/vitris-blocks.js +0 -238
  84. package/blocks/CONVENTIONS.md +0 -121
  85. package/blocks/INDEX.md +0 -130
  86. package/blocks/about/about-awards/README.md +0 -36
  87. package/blocks/about/about-awards/styles.css +0 -13
  88. package/blocks/about/about-awards/template.html +0 -1
  89. package/blocks/about/about-credentials/README.md +0 -33
  90. package/blocks/about/about-credentials/block.meta.json +0 -85
  91. package/blocks/about/about-credentials/styles.css +0 -4
  92. package/blocks/about/about-credentials/template.html +0 -1
  93. package/blocks/about/about-founder/README.md +0 -35
  94. package/blocks/about/about-founder/styles.css +0 -9
  95. package/blocks/about/about-founder/template.html +0 -1
  96. package/blocks/about/about-mission/README.md +0 -31
  97. package/blocks/about/about-mission/styles.css +0 -5
  98. package/blocks/about/about-mission/template.html +0 -1
  99. package/blocks/about/about-statement/README.md +0 -28
  100. package/blocks/about/about-statement/styles.css +0 -7
  101. package/blocks/about/about-statement/template.html +0 -1
  102. package/blocks/about/about-story/README.md +0 -35
  103. package/blocks/about/about-story/styles.css +0 -5
  104. package/blocks/about/about-story/template.html +0 -1
  105. package/blocks/about/about-timeline/README.md +0 -33
  106. package/blocks/about/about-timeline/styles.css +0 -8
  107. package/blocks/about/about-timeline/template.html +0 -1
  108. package/blocks/about/about-values/README.md +0 -31
  109. package/blocks/about/about-values/styles.css +0 -3
  110. package/blocks/about/about-values/template.html +0 -1
  111. package/blocks/blog/blog-featured/README.md +0 -39
  112. package/blocks/blog/blog-featured/styles.css +0 -12
  113. package/blocks/blog/blog-featured/template.html +0 -1
  114. package/blocks/blog/blog-index/README.md +0 -34
  115. package/blocks/blog/blog-index/styles.css +0 -6
  116. package/blocks/blog/blog-index/template.html +0 -1
  117. package/blocks/blog/blog-post-header/README.md +0 -31
  118. package/blocks/blog/blog-post-header/styles.css +0 -8
  119. package/blocks/blog/blog-post-header/template.html +0 -1
  120. package/blocks/contact/contact-cards/README.md +0 -32
  121. package/blocks/contact/contact-cards/styles.css +0 -7
  122. package/blocks/contact/contact-cards/template.html +0 -1
  123. package/blocks/contact/contact-chips/README.md +0 -41
  124. package/blocks/contact/contact-chips/styles.css +0 -13
  125. package/blocks/contact/contact-chips/template.html +0 -1
  126. package/blocks/contact/contact-hours/README.md +0 -41
  127. package/blocks/contact/contact-hours/block.meta.json +0 -87
  128. package/blocks/contact/contact-hours/styles.css +0 -8
  129. package/blocks/contact/contact-hours/template.html +0 -1
  130. package/blocks/contact/contact-map/README.md +0 -39
  131. package/blocks/contact/contact-map/styles.css +0 -10
  132. package/blocks/contact/contact-map/template.html +0 -1
  133. package/blocks/contact/contact-offices/README.md +0 -32
  134. package/blocks/contact/contact-offices/styles.css +0 -8
  135. package/blocks/contact/contact-offices/template.html +0 -1
  136. package/blocks/contact/contact-phone-first/README.md +0 -33
  137. package/blocks/contact/contact-phone-first/block.meta.json +0 -86
  138. package/blocks/contact/contact-phone-first/styles.css +0 -11
  139. package/blocks/contact/contact-phone-first/template.html +0 -1
  140. package/blocks/contact/contact-split/README.md +0 -43
  141. package/blocks/contact/contact-split/styles.css +0 -12
  142. package/blocks/contact/contact-split/template.html +0 -1
  143. package/blocks/contact/contact-visit/README.md +0 -36
  144. package/blocks/contact/contact-visit/block.meta.json +0 -88
  145. package/blocks/contact/contact-visit/styles.css +0 -13
  146. package/blocks/contact/contact-visit/template.html +0 -1
  147. package/blocks/contact/service-areas/README.md +0 -32
  148. package/blocks/contact/service-areas/styles.css +0 -9
  149. package/blocks/contact/service-areas/template.html +0 -1
  150. package/blocks/content/glossary/README.md +0 -35
  151. package/blocks/content/glossary/styles.css +0 -6
  152. package/blocks/content/glossary/template.html +0 -1
  153. package/blocks/content/list-split/README.md +0 -33
  154. package/blocks/content/list-split/styles.css +0 -13
  155. package/blocks/content/list-split/template.html +0 -1
  156. package/blocks/content/prose-split/README.md +0 -32
  157. package/blocks/content/prose-split/styles.css +0 -12
  158. package/blocks/content/prose-split/template.html +0 -1
  159. package/blocks/content/specification-ledger/README.md +0 -32
  160. package/blocks/content/specification-ledger/block.meta.json +0 -85
  161. package/blocks/content/specification-ledger/styles.css +0 -10
  162. package/blocks/content/specification-ledger/template.html +0 -1
  163. package/blocks/cta/cta-band/README.md +0 -33
  164. package/blocks/cta/cta-band/styles.css +0 -11
  165. package/blocks/cta/cta-band/template.html +0 -1
  166. package/blocks/cta/cta-card/README.md +0 -35
  167. package/blocks/cta/cta-card/styles.css +0 -8
  168. package/blocks/cta/cta-card/template.html +0 -1
  169. package/blocks/cta/cta-floating-bar/README.md +0 -28
  170. package/blocks/cta/cta-floating-bar/styles.css +0 -8
  171. package/blocks/cta/cta-floating-bar/template.html +0 -1
  172. package/blocks/cta/cta-inline/README.md +0 -30
  173. package/blocks/cta/cta-inline/styles.css +0 -9
  174. package/blocks/cta/cta-inline/template.html +0 -1
  175. package/blocks/cta/cta-newsletter/README.md +0 -34
  176. package/blocks/cta/cta-newsletter/styles.css +0 -8
  177. package/blocks/cta/cta-newsletter/template.html +0 -1
  178. package/blocks/cta/cta-photo-fan/README.md +0 -36
  179. package/blocks/cta/cta-photo-fan/styles.css +0 -14
  180. package/blocks/cta/cta-photo-fan/template.html +0 -1
  181. package/blocks/cta/cta-split/README.md +0 -38
  182. package/blocks/cta/cta-split/styles.css +0 -10
  183. package/blocks/cta/cta-split/template.html +0 -1
  184. package/blocks/faq/faq-accordion/README.md +0 -36
  185. package/blocks/faq/faq-accordion/styles.css +0 -6
  186. package/blocks/faq/faq-accordion/template.html +0 -1
  187. package/blocks/faq/faq-grouped/README.md +0 -40
  188. package/blocks/faq/faq-grouped/styles.css +0 -20
  189. package/blocks/faq/faq-grouped/template.html +0 -1
  190. package/blocks/faq/faq-split/README.md +0 -37
  191. package/blocks/faq/faq-split/styles.css +0 -5
  192. package/blocks/faq/faq-split/template.html +0 -1
  193. package/blocks/faq/faq-tabs/README.md +0 -36
  194. package/blocks/faq/faq-tabs/styles.css +0 -3
  195. package/blocks/faq/faq-tabs/template.html +0 -1
  196. package/blocks/feature/feature-bento/README.md +0 -33
  197. package/blocks/feature/feature-bento/styles.css +0 -7
  198. package/blocks/feature/feature-bento/template.html +0 -1
  199. package/blocks/feature/feature-compare-table/README.md +0 -44
  200. package/blocks/feature/feature-compare-table/styles.css +0 -15
  201. package/blocks/feature/feature-compare-table/template.html +0 -1
  202. package/blocks/feature/feature-comparison/README.md +0 -34
  203. package/blocks/feature/feature-comparison/styles.css +0 -6
  204. package/blocks/feature/feature-comparison/template.html +0 -1
  205. package/blocks/feature/feature-grid-3/README.md +0 -34
  206. package/blocks/feature/feature-grid-3/styles.css +0 -8
  207. package/blocks/feature/feature-grid-3/template.html +0 -1
  208. package/blocks/feature/feature-icon-list/README.md +0 -39
  209. package/blocks/feature/feature-icon-list/styles.css +0 -9
  210. package/blocks/feature/feature-icon-list/template.html +0 -1
  211. package/blocks/feature/feature-spotlight/README.md +0 -39
  212. package/blocks/feature/feature-spotlight/styles.css +0 -5
  213. package/blocks/feature/feature-spotlight/template.html +0 -1
  214. package/blocks/feature/feature-stats-band/README.md +0 -33
  215. package/blocks/feature/feature-stats-band/styles.css +0 -8
  216. package/blocks/feature/feature-stats-band/template.html +0 -1
  217. package/blocks/feature/feature-tabs/README.md +0 -38
  218. package/blocks/feature/feature-tabs/styles.css +0 -7
  219. package/blocks/feature/feature-tabs/template.html +0 -1
  220. package/blocks/feature/feature-thumb-list/README.md +0 -38
  221. package/blocks/feature/feature-thumb-list/styles.css +0 -13
  222. package/blocks/feature/feature-thumb-list/template.html +0 -1
  223. package/blocks/feature/feature-zigzag/README.md +0 -31
  224. package/blocks/feature/feature-zigzag/styles.css +0 -6
  225. package/blocks/feature/feature-zigzag/template.html +0 -1
  226. package/blocks/footer/footer-columns/README.md +0 -39
  227. package/blocks/footer/footer-columns/styles.css +0 -16
  228. package/blocks/footer/footer-columns/template.html +0 -1
  229. package/blocks/footer/footer-compact/README.md +0 -33
  230. package/blocks/footer/footer-compact/styles.css +0 -12
  231. package/blocks/footer/footer-compact/template.html +0 -1
  232. package/blocks/footer/footer-cta/README.md +0 -37
  233. package/blocks/footer/footer-cta/styles.css +0 -18
  234. package/blocks/footer/footer-cta/template.html +0 -1
  235. package/blocks/footer/footer-social/README.md +0 -37
  236. package/blocks/footer/footer-social/styles.css +0 -17
  237. package/blocks/footer/footer-social/template.html +0 -1
  238. package/blocks/footer/footer-wordmark/README.md +0 -40
  239. package/blocks/footer/footer-wordmark/styles.css +0 -19
  240. package/blocks/footer/footer-wordmark/template.html +0 -1
  241. package/blocks/gallery/gallery-before-after/README.md +0 -31
  242. package/blocks/gallery/gallery-before-after/styles.css +0 -6
  243. package/blocks/gallery/gallery-before-after/template.html +0 -1
  244. package/blocks/gallery/gallery-carousel/README.md +0 -32
  245. package/blocks/gallery/gallery-carousel/styles.css +0 -7
  246. package/blocks/gallery/gallery-carousel/template.html +0 -1
  247. package/blocks/gallery/gallery-grid/README.md +0 -39
  248. package/blocks/gallery/gallery-grid/styles.css +0 -13
  249. package/blocks/gallery/gallery-grid/template.html +0 -1
  250. package/blocks/gallery/gallery-masonry/README.md +0 -33
  251. package/blocks/gallery/gallery-masonry/styles.css +0 -4
  252. package/blocks/gallery/gallery-masonry/template.html +0 -1
  253. package/blocks/gallery/gallery-mosaic-split/README.md +0 -40
  254. package/blocks/gallery/gallery-mosaic-split/styles.css +0 -15
  255. package/blocks/gallery/gallery-mosaic-split/template.html +0 -1
  256. package/blocks/hero/hero-asymmetric/README.md +0 -34
  257. package/blocks/hero/hero-asymmetric/styles.css +0 -13
  258. package/blocks/hero/hero-asymmetric/template.html +0 -10
  259. package/blocks/hero/hero-before-after/README.md +0 -38
  260. package/blocks/hero/hero-before-after/styles.css +0 -8
  261. package/blocks/hero/hero-before-after/template.html +0 -19
  262. package/blocks/hero/hero-editorial/README.md +0 -34
  263. package/blocks/hero/hero-editorial/block.meta.json +0 -85
  264. package/blocks/hero/hero-editorial/styles.css +0 -6
  265. package/blocks/hero/hero-editorial/template.html +0 -10
  266. package/blocks/hero/hero-evidence/README.md +0 -32
  267. package/blocks/hero/hero-evidence/block.meta.json +0 -85
  268. package/blocks/hero/hero-evidence/styles.css +0 -13
  269. package/blocks/hero/hero-evidence/template.html +0 -1
  270. package/blocks/hero/hero-form/README.md +0 -46
  271. package/blocks/hero/hero-form/styles.css +0 -11
  272. package/blocks/hero/hero-form/template.html +0 -15
  273. package/blocks/hero/hero-menu/README.md +0 -36
  274. package/blocks/hero/hero-menu/styles.css +0 -7
  275. package/blocks/hero/hero-menu/template.html +0 -10
  276. package/blocks/hero/hero-overlay/README.md +0 -35
  277. package/blocks/hero/hero-overlay/styles.css +0 -14
  278. package/blocks/hero/hero-overlay/template.html +0 -10
  279. package/blocks/hero/hero-page/README.md +0 -35
  280. package/blocks/hero/hero-page/styles.css +0 -19
  281. package/blocks/hero/hero-page/template.html +0 -1
  282. package/blocks/hero/hero-product/README.md +0 -41
  283. package/blocks/hero/hero-product/styles.css +0 -11
  284. package/blocks/hero/hero-product/template.html +0 -14
  285. package/blocks/hero/hero-service/README.md +0 -37
  286. package/blocks/hero/hero-service/block.meta.json +0 -85
  287. package/blocks/hero/hero-service/styles.css +0 -17
  288. package/blocks/hero/hero-service/template.html +0 -1
  289. package/blocks/hero/hero-split/README.md +0 -36
  290. package/blocks/hero/hero-split/styles.css +0 -7
  291. package/blocks/hero/hero-split/template.html +0 -11
  292. package/blocks/hero/hero-statement/README.md +0 -33
  293. package/blocks/hero/hero-statement/styles.css +0 -8
  294. package/blocks/hero/hero-statement/template.html +0 -1
  295. package/blocks/hero/hero-stats/README.md +0 -37
  296. package/blocks/hero/hero-stats/styles.css +0 -10
  297. package/blocks/hero/hero-stats/template.html +0 -10
  298. package/blocks/hero/hero-video-still/README.md +0 -36
  299. package/blocks/hero/hero-video-still/styles.css +0 -9
  300. package/blocks/hero/hero-video-still/template.html +0 -13
  301. package/blocks/icons.md +0 -44
  302. package/blocks/incentives/incentive-banner/README.md +0 -28
  303. package/blocks/incentives/incentive-banner/styles.css +0 -7
  304. package/blocks/incentives/incentive-banner/template.html +0 -1
  305. package/blocks/incentives/incentive-cards/README.md +0 -31
  306. package/blocks/incentives/incentive-cards/styles.css +0 -4
  307. package/blocks/incentives/incentive-cards/template.html +0 -1
  308. package/blocks/navbar/nav-announcement/README.md +0 -35
  309. package/blocks/navbar/nav-announcement/styles.css +0 -10
  310. package/blocks/navbar/nav-announcement/template.html +0 -14
  311. package/blocks/navbar/nav-centered/README.md +0 -35
  312. package/blocks/navbar/nav-centered/styles.css +0 -11
  313. package/blocks/navbar/nav-centered/template.html +0 -12
  314. package/blocks/navbar/nav-minimal/README.md +0 -29
  315. package/blocks/navbar/nav-minimal/styles.css +0 -5
  316. package/blocks/navbar/nav-minimal/template.html +0 -6
  317. package/blocks/navbar/nav-split/README.md +0 -34
  318. package/blocks/navbar/nav-split/styles.css +0 -11
  319. package/blocks/navbar/nav-split/template.html +0 -11
  320. package/blocks/navbar/nav-utility/README.md +0 -37
  321. package/blocks/navbar/nav-utility/styles.css +0 -17
  322. package/blocks/navbar/nav-utility/template.html +0 -12
  323. package/blocks/pricing/menu-featured/README.md +0 -34
  324. package/blocks/pricing/menu-featured/styles.css +0 -4
  325. package/blocks/pricing/menu-featured/template.html +0 -1
  326. package/blocks/pricing/menu-sections/README.md +0 -33
  327. package/blocks/pricing/menu-sections/styles.css +0 -9
  328. package/blocks/pricing/menu-sections/template.html +0 -1
  329. package/blocks/pricing/pricing-table/README.md +0 -40
  330. package/blocks/pricing/pricing-table/styles.css +0 -9
  331. package/blocks/pricing/pricing-table/template.html +0 -1
  332. package/blocks/pricing/pricing-tiers/README.md +0 -34
  333. package/blocks/pricing/pricing-tiers/styles.css +0 -7
  334. package/blocks/pricing/pricing-tiers/template.html +0 -1
  335. package/blocks/pricing/pricing-toggle/README.md +0 -34
  336. package/blocks/pricing/pricing-toggle/styles.css +0 -10
  337. package/blocks/pricing/pricing-toggle/template.html +0 -1
  338. package/blocks/process/process-carousel/README.md +0 -33
  339. package/blocks/process/process-carousel/styles.css +0 -5
  340. package/blocks/process/process-carousel/template.html +0 -1
  341. package/blocks/process/process-split/README.md +0 -35
  342. package/blocks/process/process-split/styles.css +0 -6
  343. package/blocks/process/process-split/template.html +0 -1
  344. package/blocks/process/process-stepper/README.md +0 -40
  345. package/blocks/process/process-stepper/styles.css +0 -11
  346. package/blocks/process/process-stepper/template.html +0 -1
  347. package/blocks/process/process-steps/README.md +0 -35
  348. package/blocks/process/process-steps/styles.css +0 -6
  349. package/blocks/process/process-steps/template.html +0 -1
  350. package/blocks/process/process-sticky/README.md +0 -38
  351. package/blocks/process/process-sticky/styles.css +0 -12
  352. package/blocks/process/process-sticky/template.html +0 -1
  353. package/blocks/process/process-timeline/README.md +0 -35
  354. package/blocks/process/process-timeline/styles.css +0 -10
  355. package/blocks/process/process-timeline/template.html +0 -1
  356. package/blocks/services/services-cards/README.md +0 -34
  357. package/blocks/services/services-cards/styles.css +0 -3
  358. package/blocks/services/services-cards/template.html +0 -1
  359. package/blocks/services/services-carousel/README.md +0 -34
  360. package/blocks/services/services-carousel/styles.css +0 -6
  361. package/blocks/services/services-carousel/template.html +0 -1
  362. package/blocks/services/services-list/README.md +0 -32
  363. package/blocks/services/services-list/block.meta.json +0 -85
  364. package/blocks/services/services-list/styles.css +0 -10
  365. package/blocks/services/services-list/template.html +0 -1
  366. package/blocks/services/services-menu/README.md +0 -39
  367. package/blocks/services/services-menu/styles.css +0 -6
  368. package/blocks/services/services-menu/template.html +0 -1
  369. package/blocks/services/services-packages/README.md +0 -34
  370. package/blocks/services/services-packages/styles.css +0 -6
  371. package/blocks/services/services-packages/template.html +0 -1
  372. package/blocks/services/services-panels/README.md +0 -36
  373. package/blocks/services/services-panels/styles.css +0 -15
  374. package/blocks/services/services-panels/template.html +0 -1
  375. package/blocks/services/services-photo-grid/README.md +0 -39
  376. package/blocks/services/services-photo-grid/styles.css +0 -10
  377. package/blocks/services/services-photo-grid/template.html +0 -1
  378. package/blocks/services/services-priority/README.md +0 -33
  379. package/blocks/services/services-priority/block.meta.json +0 -86
  380. package/blocks/services/services-priority/styles.css +0 -16
  381. package/blocks/services/services-priority/template.html +0 -1
  382. package/blocks/stats/stats-cards/README.md +0 -31
  383. package/blocks/stats/stats-cards/styles.css +0 -4
  384. package/blocks/stats/stats-cards/template.html +0 -1
  385. package/blocks/stats/stats-mosaic/README.md +0 -27
  386. package/blocks/stats/stats-mosaic/styles.css +0 -9
  387. package/blocks/stats/stats-mosaic/template.html +0 -1
  388. package/blocks/stats/stats-row/README.md +0 -29
  389. package/blocks/stats/stats-row/styles.css +0 -8
  390. package/blocks/stats/stats-row/template.html +0 -1
  391. package/blocks/stats/stats-split/README.md +0 -35
  392. package/blocks/stats/stats-split/styles.css +0 -3
  393. package/blocks/stats/stats-split/template.html +0 -1
  394. package/blocks/team/team-featured/README.md +0 -42
  395. package/blocks/team/team-featured/styles.css +0 -9
  396. package/blocks/team/team-featured/template.html +0 -1
  397. package/blocks/team/team-grid/README.md +0 -35
  398. package/blocks/team/team-grid/styles.css +0 -8
  399. package/blocks/team/team-grid/template.html +0 -1
  400. package/blocks/team/team-list/README.md +0 -32
  401. package/blocks/team/team-list/styles.css +0 -7
  402. package/blocks/team/team-list/template.html +0 -1
  403. package/blocks/testimonial/testimonial-carousel/README.md +0 -32
  404. package/blocks/testimonial/testimonial-carousel/styles.css +0 -7
  405. package/blocks/testimonial/testimonial-carousel/template.html +0 -1
  406. package/blocks/testimonial/testimonial-grid/README.md +0 -32
  407. package/blocks/testimonial/testimonial-grid/styles.css +0 -5
  408. package/blocks/testimonial/testimonial-grid/template.html +0 -1
  409. package/blocks/testimonial/testimonial-mosaic/README.md +0 -38
  410. package/blocks/testimonial/testimonial-mosaic/styles.css +0 -14
  411. package/blocks/testimonial/testimonial-mosaic/template.html +0 -1
  412. package/blocks/testimonial/testimonial-platform/README.md +0 -34
  413. package/blocks/testimonial/testimonial-platform/styles.css +0 -17
  414. package/blocks/testimonial/testimonial-platform/template.html +0 -1
  415. package/blocks/testimonial/testimonial-rating/README.md +0 -28
  416. package/blocks/testimonial/testimonial-rating/styles.css +0 -6
  417. package/blocks/testimonial/testimonial-rating/template.html +0 -1
  418. package/blocks/testimonial/testimonial-spotlight/README.md +0 -31
  419. package/blocks/testimonial/testimonial-spotlight/styles.css +0 -9
  420. package/blocks/testimonial/testimonial-spotlight/template.html +0 -1
  421. package/blocks/testimonial/testimonial-switcher/README.md +0 -39
  422. package/blocks/testimonial/testimonial-switcher/styles.css +0 -23
  423. package/blocks/testimonial/testimonial-switcher/template.html +0 -1
  424. package/blocks/testimonial/testimonial-wall/README.md +0 -34
  425. package/blocks/testimonial/testimonial-wall/styles.css +0 -7
  426. package/blocks/testimonial/testimonial-wall/template.html +0 -1
  427. package/blocks/trust-strip/trust-badges/README.md +0 -30
  428. package/blocks/trust-strip/trust-badges/styles.css +0 -5
  429. package/blocks/trust-strip/trust-badges/template.html +0 -1
  430. package/blocks/trust-strip/trust-certs/README.md +0 -31
  431. package/blocks/trust-strip/trust-certs/styles.css +0 -12
  432. package/blocks/trust-strip/trust-certs/template.html +0 -1
  433. package/blocks/trust-strip/trust-logos/README.md +0 -32
  434. package/blocks/trust-strip/trust-logos/styles.css +0 -5
  435. package/blocks/trust-strip/trust-logos/template.html +0 -1
  436. package/blocks/trust-strip/trust-quote/README.md +0 -29
  437. package/blocks/trust-strip/trust-quote/styles.css +0 -5
  438. package/blocks/trust-strip/trust-quote/template.html +0 -1
  439. package/blocks/trust-strip/trust-reviews/README.md +0 -35
  440. package/blocks/trust-strip/trust-reviews/styles.css +0 -9
  441. package/blocks/trust-strip/trust-reviews/template.html +0 -1
  442. package/blocks/work/case-alternating/README.md +0 -34
  443. package/blocks/work/case-alternating/block.meta.json +0 -86
  444. package/blocks/work/case-alternating/styles.css +0 -7
  445. package/blocks/work/case-alternating/template.html +0 -1
  446. package/blocks/work/case-carousel/README.md +0 -26
  447. package/blocks/work/case-carousel/styles.css +0 -7
  448. package/blocks/work/case-carousel/template.html +0 -1
  449. package/blocks/work/case-header/README.md +0 -38
  450. package/blocks/work/case-header/styles.css +0 -18
  451. package/blocks/work/case-header/template.html +0 -1
  452. package/blocks/work/project-evidence/README.md +0 -35
  453. package/blocks/work/project-evidence/block.meta.json +0 -87
  454. package/blocks/work/project-evidence/styles.css +0 -12
  455. package/blocks/work/project-evidence/template.html +0 -1
  456. package/blocks/work/project-grid/README.md +0 -38
  457. package/blocks/work/project-grid/styles.css +0 -9
  458. package/blocks/work/project-grid/template.html +0 -1
@@ -1,34 +0,0 @@
1
- # hero-editorial
2
-
3
- Type-led hero with generous air — premium / professional.
4
-
5
- - **Category:** hero
6
- - **Media:** optional small media
7
- - **Registers:** professional, b2b, beauty
8
- - **Variants:** center
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Short line above headline |
15
- | `(default)` | `<h1>` (≤ 10 words) + `<p class="lede lede--lg">` |
16
- | `actions` | 1–2 buttons |
17
- | `media` | Optional wide `<img>` shown under the copy (21:9 crop) |
18
-
19
- ## Example
20
-
21
- ```html
22
- <hero-editorial>
23
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Estate planning · Family law</p>
24
- <h1>Counsel that speaks plainly and plans for decades.</h1>
25
- <p class="lede lede--lg">A two-partner practice in the Old Port. Flat fees for wills and trusts, and one attorney who answers your calls from start to finish.</p>
26
- <a slot="actions" class="btn btn-lg" href="/consult">Book a consultation</a>
27
- <a slot="actions" class="btn-arrow" href="/practice">Practice areas</a>
28
- <img src="/media/harvest/office-wide.jpg" alt="The practice's brick-walled meeting room" width="2100" height="900" slot="media" fetchpriority="high">
29
- </hero-editorial>
30
- ```
31
-
32
- Variants: `<hero-editorial variant="center">`.
33
-
34
- Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
@@ -1,85 +0,0 @@
1
- {
2
- "schemaVersion": 1,
3
- "id": "hero/hero-editorial",
4
- "revision": 1,
5
- "status": "draft",
6
- "owner": "Vitris design library",
7
- "sourceHash": "c7523f6b19a0b7643a08fbb15054906ef4d53d0acec527dc7582519e00a5f0b0",
8
- "fit": {
9
- "visitorJobs": [
10
- "Understand a focused offer without relying on photography"
11
- ],
12
- "pageRoles": [
13
- "home opening"
14
- ],
15
- "useWhen": [
16
- "Understand a focused offer without relying on photography"
17
- ],
18
- "avoidWhen": [
19
- "The content or media cannot support this composition"
20
- ]
21
- },
22
- "content": {
23
- "requiredSlots": [
24
- "eyebrow",
25
- "default",
26
- "actions"
27
- ],
28
- "optionalSlots": [
29
- "media"
30
- ],
31
- "testedItemCounts": [
32
- 1
33
- ]
34
- },
35
- "media": {
36
- "min": 0,
37
- "max": 8,
38
- "optionalBehavior": "Recompose without empty media frames when media is optional",
39
- "aspect": [
40
- "content-dependent"
41
- ]
42
- },
43
- "composition": {
44
- "hierarchy": "type-led opening",
45
- "alignment": "left or centered",
46
- "density": "open",
47
- "mediaProminence": "low",
48
- "geometry": [
49
- "type-led",
50
- "single-column"
51
- ],
52
- "boundary": "section boundary adapts to adjacent content"
53
- },
54
- "adaptation": {
55
- "flexible": [
56
- "spacing",
57
- "surface treatment",
58
- "type scale"
59
- ],
60
- "invariants": [
61
- "semantic reading order",
62
- "one clear section purpose"
63
- ],
64
- "customWhen": [
65
- "The visitor job needs a different hierarchy"
66
- ]
67
- },
68
- "responsive": {
69
- "readingOrder": "DOM order follows the visitor narrative",
70
- "reflow": "Stack or resize according to content",
71
- "crop": "Keep important subjects visible"
72
- },
73
- "interaction": {
74
- "behavior": "Native links and controls",
75
- "islands": []
76
- },
77
- "evidence": {
78
- "provenance": [
79
- "Original Vitris block source"
80
- ],
81
- "testedContexts": [],
82
- "accessibility": [],
83
- "previewManifest": "../../../design-system/block-previews/v1/hero--hero-editorial.json"
84
- }
85
- }
@@ -1,6 +0,0 @@
1
- .c-hero-editorial__copy{display:grid;gap:var(--space-5);max-width:46rem}
2
- .c-hero-editorial__copy h1{font-size:clamp(2.8rem,1.8rem + 4vw,5.5rem);max-width:16ch}
3
- .c-hero-editorial__copy .btn-group{margin-top:var(--space-2)}
4
- .c-hero-editorial__media{margin-top:var(--space-8)}
5
- .c-hero-editorial__media:not(:has(img,video)){display:none}
6
- .c-hero-editorial--center .c-hero-editorial__copy{margin-inline:auto;text-align:center;justify-items:center}
@@ -1,10 +0,0 @@
1
- <section class="c-hero-editorial section section--roomy">
2
- <div class="wrap">
3
- <div class="c-hero-editorial__copy">
4
- <slot name="eyebrow"></slot>
5
- <slot></slot>
6
- <div class="btn-group"><slot name="actions"></slot></div>
7
- </div>
8
- <div class="c-hero-editorial__media frame ratio-21x9"><slot name="media"></slot></div>
9
- </div>
10
- </section>
@@ -1,32 +0,0 @@
1
- # hero-evidence
2
-
3
- Type-led, no-photo opening with a quieter column for verified reasons to trust the business. The two columns carry different levels of emphasis; the proof is not a substitute for an invented testimonial or metric. This example is for the fictional Northline Counsel practice.
4
-
5
- - **Category:** hero
6
- - **Media:** none
7
- - **Registers:** professional, b2b, trade
8
- - **Variants:** (none)
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Optional context label |
15
- | `(default)` | One `<h1>` and a concise introductory paragraph |
16
- | `actions` | Optional primary and secondary links |
17
- | `proof` | List of specific, verified credentials or service facts; no fabricated claims |
18
-
19
- ## Example
20
-
21
- ```html
22
- <hero-evidence>
23
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Northline Counsel · fictional example</p>
24
- <h1>Clear counsel for decisions that cannot wait.</h1>
25
- <p class="lede lede--lg">A small legal practice helping families and business owners understand their options before they choose a path.</p>
26
- <a slot="actions" class="btn" href="/contact">Request a conversation</a>
27
- <a slot="actions" class="btn-outline" href="/services">Explore services</a>
28
- <ul slot="proof"><li>Direct conversation with the person handling your matter</li><li>Written scope before work begins</li><li>Practical next steps after the first meeting</li></ul>
29
- </hero-evidence>
30
- ```
31
-
32
- Replace every example claim with a verified business fact. If no credible proof exists, use a simpler type-led opening. The proof column stacks after the main message on mobile.
@@ -1,85 +0,0 @@
1
- {
2
- "schemaVersion": 1,
3
- "id": "hero/hero-evidence",
4
- "revision": 1,
5
- "status": "draft",
6
- "owner": "Vitris design library",
7
- "sourceHash": "a6e4e590acd369d516d3d67301ff5b0bd1383850ec797a3826e713ae0e380099",
8
- "fit": {
9
- "visitorJobs": [
10
- "Understand the offer and review verified reasons to trust"
11
- ],
12
- "pageRoles": [
13
- "home opening"
14
- ],
15
- "useWhen": [
16
- "Understand the offer and review verified reasons to trust"
17
- ],
18
- "avoidWhen": [
19
- "The content or media cannot support this composition"
20
- ]
21
- },
22
- "content": {
23
- "requiredSlots": [
24
- "default",
25
- "proof"
26
- ],
27
- "optionalSlots": [
28
- "eyebrow",
29
- "actions"
30
- ],
31
- "testedItemCounts": [
32
- 1
33
- ]
34
- },
35
- "media": {
36
- "min": 0,
37
- "max": 8,
38
- "optionalBehavior": "Recompose without empty media frames when media is optional",
39
- "aspect": [
40
- "content-dependent"
41
- ]
42
- },
43
- "composition": {
44
- "hierarchy": "type with proof column",
45
- "alignment": "asymmetric",
46
- "density": "open",
47
- "mediaProminence": "none",
48
- "geometry": [
49
- "type-led",
50
- "proof-column"
51
- ],
52
- "boundary": "section boundary adapts to adjacent content"
53
- },
54
- "adaptation": {
55
- "flexible": [
56
- "spacing",
57
- "surface treatment",
58
- "type scale"
59
- ],
60
- "invariants": [
61
- "semantic reading order",
62
- "one clear section purpose"
63
- ],
64
- "customWhen": [
65
- "The visitor job needs a different hierarchy"
66
- ]
67
- },
68
- "responsive": {
69
- "readingOrder": "DOM order follows the visitor narrative",
70
- "reflow": "Stack or resize according to content",
71
- "crop": "Keep important subjects visible"
72
- },
73
- "interaction": {
74
- "behavior": "Native links and controls",
75
- "islands": []
76
- },
77
- "evidence": {
78
- "provenance": [
79
- "Original Vitris block source"
80
- ],
81
- "testedContexts": [],
82
- "accessibility": [],
83
- "previewManifest": "../../../design-system/block-previews/v1/hero--hero-evidence.json"
84
- }
85
- }
@@ -1,13 +0,0 @@
1
- .c-hero-evidence{border-bottom:1px solid var(--color-border)}
2
- .c-hero-evidence{overflow-wrap:anywhere}
3
- .c-hero-evidence__layout{display:grid;gap:var(--space-7);align-items:end}
4
- .c-hero-evidence__main{display:grid;gap:var(--space-5);align-content:start;min-width:0}
5
- .c-hero-evidence__main h1{font-size:clamp(3rem,2rem + 4.2vw,6rem);line-height:1.02;max-width:15ch}
6
- .c-hero-evidence__main .lede{max-width:48ch}
7
- .c-hero-evidence__actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}
8
- .c-hero-evidence__actions .btn,.c-hero-evidence__actions .btn-outline{white-space:normal;text-align:center;max-width:100%}
9
- .c-hero-evidence__proof{border-top:2px solid var(--color-accent);padding-top:var(--space-4);display:grid;gap:var(--space-4)}
10
- .c-hero-evidence__proof > *{margin:0}
11
- .c-hero-evidence__proof ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}
12
- .c-hero-evidence__proof li{padding-block:var(--space-2);border-bottom:1px solid var(--color-border)}
13
- @media(min-width:900px){.c-hero-evidence__layout{grid-template-columns:minmax(0,1.65fr) minmax(17rem,.7fr)}.c-hero-evidence__proof{margin-bottom:var(--space-2)}}
@@ -1 +0,0 @@
1
- <section class="c-hero-evidence section section--roomy"><div class="wrap c-hero-evidence__layout"><div class="c-hero-evidence__main"><slot name="eyebrow"></slot><slot></slot><div class="c-hero-evidence__actions"><slot name="actions"></slot></div></div><aside class="c-hero-evidence__proof" aria-label="Supporting evidence"><slot name="proof"></slot></aside></div></section>
@@ -1,46 +0,0 @@
1
- # hero-form
2
-
3
- Lead form in the fold beside value prop.
4
-
5
- - **Category:** hero
6
- - **Media:** optional side media
7
- - **Registers:** trade, b2b, professional
8
- - **Variants:** dark
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Short line above headline |
15
- | `(default)` | `<h1>` + `<p class="lede lede--lg">`; optionally a `<ul class="list-check">` |
16
- | `proof` | Optional `.byline` proof row |
17
- | `form-title` | `<h2>` or `<h3>` heading inside the card |
18
- | `form` | `<form data-lead-form>` using `.form-grid` / `.field` / `.input` |
19
-
20
- ## Example
21
-
22
- ```html
23
- <hero-form>
24
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Commercial HVAC · Southern Maine</p>
25
- <h1>Keep every tenant comfortable and every unit under warranty.</h1>
26
- <p class="lede lede--lg">Preventive maintenance plans for property managers. One contract, quarterly visits, 4-hour emergency response.</p>
27
- <ul class="list-check">
28
- <li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Fixed annual price per unit</li>
29
- <li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Licensed EPA 608 technicians</li>
30
- <li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Reporting after every visit</li>
31
- </ul>
32
- <div slot="proof" class="byline"><div class="avatar-group"><img src="/media/harvest/review-1.jpg" alt="" width="96" height="96" class="avatar avatar--sm"><img src="/media/harvest/review-2.jpg" alt="" width="96" height="96" class="avatar avatar--sm"><img src="/media/harvest/review-3.jpg" alt="" width="96" height="96" class="avatar avatar--sm"></div><div><span class="rating" aria-label="5 out of 5 stars"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg></span><span> 4.9 from 212 local reviews</span></div></div>
33
- <h3 slot="form-title">Get a maintenance quote</h3>
34
- <form slot="form" data-lead-form class="form-grid">
35
- <div class="field"><label for="hf-name">Name</label><input class="input" id="hf-name" name="name" autocomplete="name" required></div>
36
- <div class="field"><label for="hf-email">Work email</label><input class="input" id="hf-email" name="email" type="email" autocomplete="email" required></div>
37
- <div class="field"><label for="hf-units">How many units?</label><select class="select" id="hf-units" name="units"><option>1–10</option><option>11–50</option><option>50+</option></select></div>
38
- <button class="btn btn-lg" type="submit">Send my request</button>
39
- <small>We reply within one business day. No spam.</small>
40
- </form>
41
- </hero-form>
42
- ```
43
-
44
- Variants: `<hero-form variant="dark">`.
45
-
46
- Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
@@ -1,11 +0,0 @@
1
- .c-hero-form__copy{display:grid;gap:var(--space-5);align-content:center}
2
- .c-hero-form__copy h1{max-width:18ch}
3
- .c-hero-form__proof:empty{display:none}
4
- .c-hero-form__card{max-width:32rem;width:100%;justify-self:end}
5
- .c-hero-form__card .card__body{padding:var(--space-6);gap:var(--space-4)}
6
- .c-hero-form__card h3,.c-hero-form__card h2{font-size:var(--step-2)}
7
- .c-hero-form__card .btn{width:100%}
8
- .c-hero-form__card small{color:var(--color-muted)}
9
- @media(min-width:720px){.c-hero-form .split{align-items:center}}
10
- .c-hero-form--dark{--color-bg:#141210;--color-text:#F7F4EF;--color-muted:#B8B0A4;--color-surface:#1E1B18;--color-surface-2:#2A2622;--color-border:#3A342E;--color-focus:#F7F4EF;background:var(--color-bg);color:var(--color-text)}
11
- .c-hero-form--dark .card{box-shadow:none}
@@ -1,15 +0,0 @@
1
- <section class="c-hero-form section section--roomy">
2
- <div class="wrap split split--top">
3
- <div class="c-hero-form__copy">
4
- <slot name="eyebrow"></slot>
5
- <slot></slot>
6
- <div class="c-hero-form__proof"><slot name="proof"></slot></div>
7
- </div>
8
- <div class="card card--elevated c-hero-form__card">
9
- <div class="card__body">
10
- <slot name="form-title"></slot>
11
- <slot name="form"></slot>
12
- </div>
13
- </div>
14
- </div>
15
- </section>
@@ -1,36 +0,0 @@
1
- # hero-menu
2
-
3
- Restaurant/menu: headline + featured dishes strip.
4
-
5
- - **Category:** hero
6
- - **Media:** food photography
7
- - **Registers:** food
8
- - **Variants:** center
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Short line above headline |
15
- | `(default)` | `<h1>` + `<p class="lede lede--lg">` |
16
- | `actions` | 1–2 buttons |
17
- | `cards` | 3 dish cards: `.card` with `.card__media.ratio-4x3`, `<h3>`, `<p>`, and `.price` |
18
-
19
- ## Example
20
-
21
- ```html
22
- <hero-menu>
23
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Neighborhood trattoria · Munjoy Hill</p>
24
- <h1>Handmade pasta, twelve tables, one long night.</h1>
25
- <p class="lede lede--lg">We roll the dough at four, open at five, and cook until the last table leaves.</p>
26
- <a slot="actions" class="btn btn-lg" href="/reserve">Reserve</a>
27
- <a slot="actions" class="btn-outline btn-lg" href="/menu">Full menu</a>
28
- <article slot="cards" class="card card--interactive"><div class="card__media ratio-4x3"><img src="/media/harvest/cacio.jpg" alt="Cacio e pepe" width="1200" height="900" loading="lazy"></div><div class="card__body"><h3>Cacio e pepe</h3><p class="price"><span class="price__amount">$19</span></p><p>Tonnarelli, pecorino, black pepper.</p></div></article>
29
- <article slot="cards" class="card card--interactive"><div class="card__media ratio-4x3"><img src="/media/harvest/ragu.jpg" alt="Pappardelle with short-rib ragù" width="1200" height="900" loading="lazy"></div><div class="card__body"><h3>Short-rib ragù</h3><p class="price"><span class="price__amount">$26</span></p><p>Pappardelle, six-hour braise, parmigiano.</p></div></article>
30
- <article slot="cards" class="card card--interactive"><div class="card__media ratio-4x3"><img src="/media/harvest/branzino.jpg" alt="Whole roasted branzino" width="1200" height="900" loading="lazy"></div><div class="card__body"><h3>Whole branzino</h3><p class="price"><span class="price__amount">$34</span></p><p>Lemon, capers, charred fennel.</p></div></article>
31
- </hero-menu>
32
- ```
33
-
34
- Variants: `<hero-menu variant="center">`.
35
-
36
- Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
@@ -1,7 +0,0 @@
1
- .c-hero-menu__copy{display:grid;gap:var(--space-5);max-width:42rem;margin-bottom:var(--space-8)}
2
- .c-hero-menu__copy h1{max-width:16ch}
3
- .c-hero-menu__copy .btn-group{margin-top:var(--space-2)}
4
- .c-hero-menu__cards .card__body{grid-template-columns:1fr auto;align-items:start}
5
- .c-hero-menu__cards .card__body > p:not(.price){grid-column:1 / -1}
6
- .c-hero-menu__cards .price__amount{font-size:var(--step-2)}
7
- .c-hero-menu--center .c-hero-menu__copy{margin-inline:auto;text-align:center;justify-items:center}
@@ -1,10 +0,0 @@
1
- <section class="c-hero-menu section section--roomy">
2
- <div class="wrap">
3
- <div class="c-hero-menu__copy">
4
- <slot name="eyebrow"></slot>
5
- <slot></slot>
6
- <div class="btn-group"><slot name="actions"></slot></div>
7
- </div>
8
- <div class="grid grid--3 c-hero-menu__cards"><slot name="cards"></slot></div>
9
- </div>
10
- </section>
@@ -1,35 +0,0 @@
1
- # hero-overlay
2
-
3
- Full-bleed photo with scrim and dual CTAs — immersive home default.
4
-
5
- - **Category:** hero
6
- - **Media:** darker LCP photo
7
- - **Registers:** trade, beauty, food
8
- - **Variants:** tall, center
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `media` | Full-bleed LCP `<img>` (dark or mid-tone subject) |
15
- | `eyebrow` | Short line above the headline |
16
- | `(default)` | `<h1>` + `<p class="lede lede--lg">` |
17
- | `actions` | 1–2 buttons |
18
- | `proof` | Optional `.byline` proof row |
19
-
20
- ## Example
21
-
22
- ```html
23
- <hero-overlay>
24
- <img src="/media/harvest/hero-storefront.jpg" alt="Evening view of the shop front" width="2000" height="1250" slot="media" fetchpriority="high">
25
- <p slot="eyebrow" class="eyebrow">Portland's East End · Est. 2011</p>
26
- <h1>Good bread, honest coffee, no fuss.</h1>
27
- <p class="lede lede--lg">Sourdough out of the oven at 7, sandwiches at 11, closed when we sell out.</p>
28
- <a slot="actions" class="btn btn-lg" href="/menu">See today's menu</a>
29
- <a slot="actions" class="btn-outline btn-lg" href="/order">Order ahead</a>
30
- </hero-overlay>
31
- ```
32
-
33
- Variants: `<hero-overlay variant="tall">` (also: `center`).
34
-
35
- Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
@@ -1,14 +0,0 @@
1
- .c-hero-overlay{position:relative;min-height:min(80vh,44rem);display:grid;align-items:end;isolation:isolate;--color-text:#fff;--color-muted:color-mix(in srgb,#fff 78%,transparent);--color-border:color-mix(in srgb,#fff 40%,transparent);color:var(--color-text)}
2
- .c-hero-overlay--tall{min-height:min(94vh,54rem)}
3
- .c-hero-overlay__media{position:absolute;inset:0;z-index:0;background:#2a2622}
4
- .c-hero-overlay__media img{width:100%;height:100%;object-fit:cover}
5
- .c-hero-overlay__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,color-mix(in srgb,#000 18%,transparent) 0%,color-mix(in srgb,#000 30%,transparent) 45%,color-mix(in srgb,#000 74%,transparent) 100%)}
6
- .c-hero-overlay__copy{position:relative;z-index:2;display:grid;gap:var(--space-5);padding-block:var(--space-9) var(--space-8);max-width:42rem}
7
- .c-hero-overlay__copy h1{max-width:18ch;text-shadow:0 2px 24px color-mix(in srgb,#000 30%,transparent)}
8
- .c-hero-overlay__copy .btn-group{margin-top:var(--space-2)}
9
- .c-hero-overlay__copy .btn-outline{background:color-mix(in srgb,#fff 10%,transparent);backdrop-filter:blur(6px)}
10
- .c-hero-overlay__copy .btn-outline:hover{background:color-mix(in srgb,#fff 20%,transparent);border-color:#fff}
11
- .c-hero-overlay__proof:empty{display:none}
12
- .c-hero-overlay--center{align-items:center}
13
- .c-hero-overlay--center .c-hero-overlay__copy{margin-inline:auto;text-align:center;justify-items:center}
14
- .c-hero-overlay--center .c-hero-overlay__scrim{background:color-mix(in srgb,#000 52%,transparent)}
@@ -1,10 +0,0 @@
1
- <section class="c-hero-overlay">
2
- <div class="c-hero-overlay__media"><slot name="media"></slot></div>
3
- <div class="c-hero-overlay__scrim" aria-hidden="true"></div>
4
- <div class="wrap c-hero-overlay__copy">
5
- <slot name="eyebrow"></slot>
6
- <slot></slot>
7
- <div class="btn-group"><slot name="actions"></slot></div>
8
- <div class="c-hero-overlay__proof"><slot name="proof"></slot></div>
9
- </div>
10
- </section>
@@ -1,35 +0,0 @@
1
- # hero-page
2
-
3
- Interior page header: eyebrow + h1 left, intro right, optional photo band.
4
-
5
- - **Category:** hero
6
- - **Media:** optional wide photo
7
- - **Registers:** all
8
- - **Variants:** center
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `breadcrumb` | Optional `<a>` trail ending in `<span aria-current="page">` |
15
- | `eyebrow` | Optional `<p class="eyebrow">` |
16
- | `(default)` | `<h1>` (2–6 words) |
17
- | `intro` | `<p class="lede">` one or two sentences; optional `.btn-group` after it |
18
- | `media` | Optional `<div class="frame ratio-21x9">` with an `<img>` |
19
-
20
- ## Example
21
-
22
- ```html
23
- <hero-page>
24
- <a slot="breadcrumb" href="/">Home</a>
25
- <span slot="breadcrumb" aria-current="page">About</span>
26
- <p slot="eyebrow" class="eyebrow eyebrow--accent">About the firm</p>
27
- <h1>Leading with integrity and purpose.</h1>
28
- <p slot="intro" class="lede">Years of experience and a steady commitment to honest, careful work — for clients who need legal help they can trust.</p>
29
- <div slot="media" class="frame ratio-21x9"><img src="/media/harvest/office-wide.jpg" alt="The Verdict team in the main conference room" width="2100" height="900" fetchpriority="high"></div>
30
- </hero-page>
31
- ```
32
-
33
- Variants: `<hero-page variant="center">`.
34
-
35
- Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
@@ -1,19 +0,0 @@
1
- .c-hero-page{padding-block:calc(var(--section-y) - var(--space-4)) var(--section-y)}
2
- .c-hero-page__crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-6);font-size:var(--step-0);color:var(--color-muted)}
3
- .c-hero-page__crumbs:empty{display:none}
4
- .c-hero-page__crumbs > * + *::before{content:"/";margin-right:var(--space-2);color:var(--color-border)}
5
- .c-hero-page__crumbs a{color:inherit;text-decoration:none}
6
- .c-hero-page__crumbs a:hover{color:var(--color-text)}
7
- .c-hero-page__crumbs [aria-current]{color:var(--color-text)}
8
- .c-hero-page__grid{display:grid;gap:var(--space-5)}
9
- .c-hero-page__title{display:grid;gap:var(--space-4)}
10
- .c-hero-page h1{max-width:16ch}
11
- .c-hero-page__intro{display:grid;gap:var(--space-5);align-self:end;justify-items:start}
12
- .c-hero-page__intro .lede{max-width:34rem}
13
- .c-hero-page__media{margin-top:var(--space-7)}
14
- .c-hero-page__media:empty{display:none}
15
- @media(min-width:900px){.c-hero-page__grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--space-8);align-items:end}.c-hero-page__intro{padding-bottom:.35rem}}
16
- .c-hero-page--center .c-hero-page__crumbs{justify-content:center}
17
- .c-hero-page--center .c-hero-page__grid{grid-template-columns:1fr;justify-items:center;text-align:center;gap:var(--space-5)}
18
- .c-hero-page--center h1{max-width:20ch}
19
- .c-hero-page--center .c-hero-page__intro{justify-items:center;padding:0}
@@ -1 +0,0 @@
1
- <section class="c-hero-page section"><div class="wrap"><nav class="c-hero-page__crumbs" aria-label="Breadcrumb"><slot name="breadcrumb"></slot></nav><div class="c-hero-page__grid"><div class="c-hero-page__title"><slot name="eyebrow"></slot><slot></slot></div><div class="c-hero-page__intro"><slot name="intro"></slot></div></div></div><div class="wrap c-hero-page__media"><slot name="media"></slot></div></section>
@@ -1,41 +0,0 @@
1
- # hero-product
2
-
3
- Product/mockup as architecture — b2b/agency.
4
-
5
- - **Category:** hero
6
- - **Media:** device mockup or product still
7
- - **Registers:** b2b, professional
8
- - **Variants:** reverse
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Short line above headline |
15
- | `(default)` | `<h1>` + `<p class="lede lede--lg">` |
16
- | `actions` | 1–2 buttons |
17
- | `logos-label` | Tiny label above logo row (e.g. "Trusted by") |
18
- | `logos` | 3–6 grayscale `<img>` marks |
19
- | `media` | Product still / mockup `<img>` (4:3 or 3:2) |
20
-
21
- ## Example
22
-
23
- ```html
24
- <hero-product>
25
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Bookkeeping for trades</p>
26
- <h1>Your books closed by the 5th, every month.</h1>
27
- <p class="lede lede--lg">We reconcile, categorize, and send you one clear report. You keep the trucks moving.</p>
28
- <a slot="actions" class="btn btn-lg" href="/contact">Book a 20-minute call</a>
29
- <a slot="actions" class="btn-outline btn-lg" href="/pricing">See pricing</a>
30
- <span slot="logos-label">Trusted by 60+ contractors</span>
31
- <img src="/media/harvest/logo-1.svg" alt="Dunn Plumbing" width="160" height="48" slot="logos">
32
- <img src="/media/harvest/logo-2.svg" alt="Castine Electric" width="160" height="48" slot="logos">
33
- <img src="/media/harvest/logo-3.svg" alt="Ridgeline Builders" width="160" height="48" slot="logos">
34
- <img src="/media/harvest/logo-4.svg" alt="Bay Paving" width="160" height="48" slot="logos">
35
- <img src="/media/harvest/report-mockup.jpg" alt="Monthly report on a laptop screen" width="1600" height="1200" slot="media" fetchpriority="high">
36
- </hero-product>
37
- ```
38
-
39
- Variants: `<hero-product variant="reverse">`.
40
-
41
- Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
@@ -1,11 +0,0 @@
1
- .c-hero-product__copy{display:grid;gap:var(--space-5);align-content:center}
2
- .c-hero-product__copy h1{max-width:18ch}
3
- .c-hero-product__copy .btn-group{margin-top:var(--space-2)}
4
- .c-hero-product__proof:empty{display:none}
5
- .c-hero-product__trust{display:grid;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-5);border-top:1px solid var(--color-border)}
6
- .c-hero-product__logos-label{font-size:.75rem}
7
- .c-hero-product__logos-label:empty{display:none}
8
- .c-hero-product__logos{justify-content:flex-start;gap:var(--space-4) var(--space-6)}
9
- .c-hero-product__logos:empty{display:none}
10
- .c-hero-product__media{box-shadow:var(--shadow-3)}
11
- .c-hero-product--reverse .split > :first-child{order:2}
@@ -1,14 +0,0 @@
1
- <section class="c-hero-product section section--roomy section--muted">
2
- <div class="wrap split">
3
- <div class="c-hero-product__copy">
4
- <slot name="eyebrow"></slot>
5
- <slot></slot>
6
- <div class="btn-group"><slot name="actions"></slot></div>
7
- <div class="c-hero-product__trust">
8
- <p class="eyebrow c-hero-product__logos-label"><slot name="logos-label"></slot></p>
9
- <div class="logo-row c-hero-product__logos"><slot name="logos"></slot></div>
10
- </div>
11
- </div>
12
- <div class="c-hero-product__media frame ratio-4x3"><slot name="media"></slot></div>
13
- </div>
14
- </section>