@tryvitris/website-harness 0.1.0-beta.5 → 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 +6 -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,12 +0,0 @@
1
- <header class="c-nav-centered header--sticky" data-island="header">
2
- <div class="wrap c-nav-centered__inner">
3
- <nav class="nav-links c-nav-centered__left" aria-label="Primary"><slot name="links-left"></slot></nav>
4
- <a class="brand c-nav-centered__brand" href="/"><slot name="brand"></slot></a>
5
- <div class="c-nav-centered__right">
6
- <nav class="nav-links c-nav-centered__links" aria-label="Secondary"><slot name="links-right"></slot></nav>
7
- <div class="btn-group c-nav-centered__cta"><slot name="actions"></slot></div>
8
- <button type="button" class="btn-ghost btn-icon c-nav-centered__toggle" data-nav-toggle aria-expanded="false" aria-label="Open menu"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M4 7h16M4 12h16M4 17h16"/></svg></button>
9
- </div>
10
- </div>
11
- <div class="nav-drawer"><div class="nav-drawer__panel"><nav aria-label="Mobile"><slot name="links-left"></slot><slot name="links-right"></slot></nav><div class="btn-group"><slot name="actions"></slot></div></div></div>
12
- </header>
@@ -1,29 +0,0 @@
1
- # nav-minimal
2
-
3
- Logo + CTA only — landing / lead-capture pages.
4
-
5
- - **Category:** navbar
6
- - **Media:** logo optional
7
- - **Registers:** trade, b2b, beauty
8
- - **Variants:** static
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `brand` | Business name or logo |
15
- | `actions` | 1–2 buttons; the first stays visible on mobile |
16
-
17
- ## Example
18
-
19
- ```html
20
- <nav-minimal>
21
- <span slot="brand">Harbor Roofing</span>
22
- <a slot="actions" class="btn" href="#estimate">Get an estimate</a>
23
- <a slot="actions" class="btn-ghost" href="tel:+15550102000"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M6 3h4l2 5-3 2a12 12 0 0 0 6 6l2-3 5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 4 5a2 2 0 0 1 2-2z"/></svg>(555) 010-2000</a>
24
- </nav-minimal>
25
- ```
26
-
27
- Variants: `<nav-minimal variant="static">`.
28
-
29
- 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,5 +0,0 @@
1
- .c-nav-minimal__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:var(--header-h)}
2
- .c-nav-minimal__actions{flex-wrap:nowrap}
3
- .c-nav-minimal__actions > :not(:first-child){display:none}
4
- @media(min-width:720px){.c-nav-minimal__actions > :not(:first-child){display:inline-flex}}
5
- .c-nav-minimal--static{position:static;backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--color-bg)}
@@ -1,6 +0,0 @@
1
- <header class="c-nav-minimal header--sticky" data-island="header">
2
- <div class="wrap c-nav-minimal__inner">
3
- <a class="brand" href="/"><slot name="brand"></slot></a>
4
- <div class="btn-group c-nav-minimal__actions"><slot name="actions"></slot></div>
5
- </div>
6
- </header>
@@ -1,34 +0,0 @@
1
- # nav-split
2
-
3
- Sticky blurred header: logo left, links center-right, filled CTA.
4
-
5
- - **Category:** navbar
6
- - **Media:** logo optional
7
- - **Registers:** trade, beauty, b2b, food, professional
8
- - **Variants:** static
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `brand` | Business name text or `<img>` logo (≤2rem tall) |
15
- | `links` | 3–5 `<a>` primary links (repeated in the drawer) |
16
- | `actions` | 1–2 buttons; first is the primary CTA and stays visible on mobile |
17
-
18
- ## Example
19
-
20
- ```html
21
- <nav-split>
22
- <span slot="brand">Harbor Roofing</span>
23
- <a slot="links" href="/services">Services</a>
24
- <a slot="links" href="/work">Our work</a>
25
- <a slot="links" href="/about">About</a>
26
- <a slot="links" href="/contact">Contact</a>
27
- <a slot="actions" class="btn" href="/contact">Free estimate</a>
28
- <a slot="actions" class="btn-ghost" href="tel:+15550102000">(555) 010-2000</a>
29
- </nav-split>
30
- ```
31
-
32
- Variants: `<nav-split variant="static">`.
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,11 +0,0 @@
1
- .c-nav-split__inner{display:flex;align-items:center;gap:var(--space-5);min-height:var(--header-h)}
2
- .c-nav-split__links{display:none;margin-inline:auto}
3
- .c-nav-split__actions{display:flex;align-items:center;gap:var(--space-2);margin-inline-start:auto}
4
- .c-nav-split__cta{flex-wrap:nowrap}
5
- .c-nav-split__cta > :not(:first-child){display:none}
6
- .c-nav-split--static{position:static;backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--color-bg)}
7
- @media(min-width:900px){
8
- .c-nav-split__links{display:flex}
9
- .c-nav-split__cta > :not(:first-child){display:inline-flex}
10
- .c-nav-split__toggle{display:none}
11
- }
@@ -1,11 +0,0 @@
1
- <header class="c-nav-split header--sticky" data-island="header">
2
- <div class="wrap c-nav-split__inner">
3
- <a class="brand" href="/"><slot name="brand"></slot></a>
4
- <nav class="nav-links c-nav-split__links" aria-label="Primary"><slot name="links"></slot></nav>
5
- <div class="c-nav-split__actions">
6
- <div class="btn-group c-nav-split__cta"><slot name="actions"></slot></div>
7
- <button type="button" class="btn-ghost btn-icon c-nav-split__toggle" data-nav-toggle aria-expanded="false" aria-label="Open menu"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M4 7h16M4 12h16M4 17h16"/></svg></button>
8
- </div>
9
- </div>
10
- <div class="nav-drawer"><div class="nav-drawer__panel"><nav aria-label="Mobile"><slot name="links"></slot></nav><div class="btn-group"><slot name="actions"></slot></div></div></div>
11
- </header>
@@ -1,37 +0,0 @@
1
- # nav-utility
2
-
3
- Dual-tier: slim utility row (phone/hours) + primary bar. B2B default.
4
-
5
- - **Category:** navbar
6
- - **Media:** logo optional
7
- - **Registers:** b2b, professional, trade
8
- - **Variants:** static
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `utility` | Short inline facts: hours, phone, service area (1–3 `<span>`/`<a>`; only `<a>` items show on mobile) |
15
- | `brand` | Business name or logo |
16
- | `links` | 3–5 `<a>` primary links |
17
- | `actions` | Primary CTA button |
18
-
19
- ## Example
20
-
21
- ```html
22
- <nav-utility>
23
- <span slot="utility"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></svg>Mon–Fri 7:30–5:00</span>
24
- <a slot="utility" href="tel:+15550102000"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M6 3h4l2 5-3 2a12 12 0 0 0 6 6l2-3 5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 4 5a2 2 0 0 1 2-2z"/></svg>(555) 010-2000</a>
25
- <span slot="utility"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 22s7-6.2 7-12a7 7 0 1 0-14 0c0 5.8 7 12 7 12z"/><circle cx="12" cy="10" r="2.5"/></svg>Serving Greater Portland</span>
26
- <span slot="brand">Northline Mechanical</span>
27
- <a slot="links" href="/services">Services</a>
28
- <a slot="links" href="/work">Our work</a>
29
- <a slot="links" href="/about">About</a>
30
- <a slot="links" href="/contact">Contact</a>
31
- <a slot="actions" class="btn" href="/contact">Request a quote</a>
32
- </nav-utility>
33
- ```
34
-
35
- Variants: `<nav-utility variant="static">`.
36
-
37
- 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,17 +0,0 @@
1
- .c-nav-utility__bar{background:var(--color-surface-2);border-bottom:1px solid var(--color-border);font-size:var(--step-0);color:var(--color-muted)}
2
- .c-nav-utility__util{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2) var(--space-5);min-height:2.25rem;align-items:center}
3
- .c-nav-utility__util > :not(a){display:none}
4
- @media(min-width:720px){.c-nav-utility__util > :not(a){display:inline}}
5
- .c-nav-utility__util a{text-decoration:none;color:var(--color-text);font-weight:500}
6
- .c-nav-utility__util .icon{width:1rem;height:1rem;margin-right:.35rem;vertical-align:-.15em}
7
- .c-nav-utility__inner{display:flex;align-items:center;gap:var(--space-5);min-height:calc(var(--header-h) - .75rem)}
8
- .c-nav-utility__links{display:none;margin-inline-start:auto}
9
- .c-nav-utility__actions{display:flex;align-items:center;gap:var(--space-2);margin-inline-start:auto}
10
- .c-nav-utility__cta > :not(:first-child){display:none}
11
- .c-nav-utility--static{position:static;backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--color-bg)}
12
- @media(min-width:900px){
13
- .c-nav-utility__links{display:flex}
14
- .c-nav-utility__actions{margin-inline-start:var(--space-3)}
15
- .c-nav-utility__cta > :not(:first-child){display:inline-flex}
16
- .c-nav-utility__toggle{display:none}
17
- }
@@ -1,12 +0,0 @@
1
- <header class="c-nav-utility header--sticky" data-island="header">
2
- <div class="c-nav-utility__bar"><div class="wrap c-nav-utility__util"><slot name="utility"></slot></div></div>
3
- <div class="wrap c-nav-utility__inner">
4
- <a class="brand" href="/"><slot name="brand"></slot></a>
5
- <nav class="nav-links c-nav-utility__links" aria-label="Primary"><slot name="links"></slot></nav>
6
- <div class="c-nav-utility__actions">
7
- <div class="btn-group c-nav-utility__cta"><slot name="actions"></slot></div>
8
- <button type="button" class="btn-ghost btn-icon c-nav-utility__toggle" data-nav-toggle aria-expanded="false" aria-label="Open menu"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M4 7h16M4 12h16M4 17h16"/></svg></button>
9
- </div>
10
- </div>
11
- <div class="nav-drawer"><div class="nav-drawer__panel"><nav aria-label="Mobile"><slot name="links"></slot></nav><div class="btn-group"><slot name="actions"></slot></div></div></div>
12
- </header>
@@ -1,34 +0,0 @@
1
- # menu-featured
2
-
3
- Featured dishes with prices.
4
-
5
- - **Category:** pricing
6
- - **Media:** food photos
7
- - **Registers:** food
8
- - **Variants:** (none)
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Optional `<p class="eyebrow">` |
15
- | `heading` | `<h2>` |
16
- | `lede` | Optional `<p class="lede">` |
17
- | `actions` | Optional link to the full menu |
18
- | `cards` | 3 or 6 dish `.card`: `.card__media.ratio-4x3`, `<h3>`, `.price`, `<p>` description |
19
-
20
- ## Example
21
-
22
- ```html
23
- <menu-featured>
24
- <p slot="eyebrow" class="eyebrow eyebrow--accent">From the kitchen</p>
25
- <h2 slot="heading">This week's favorites</h2>
26
- <p slot="lede" class="lede">Menu changes with the market — these three rarely leave.</p>
27
- <a slot="actions" class="btn-outline" href="/menu">Full menu</a>
28
- <article slot="cards" class="card card--interactive"><div class="card__media ratio-4x3"><img src="/media/harvest/dish-1.jpg" alt="Seared scallops" width="1200" height="900" loading="lazy"></div><div class="card__body"><h3>Seared scallops</h3><p class="price"><span class="price__amount">$28</span></p><p>Brown butter, sweet corn, chive.</p></div></article>
29
- <article slot="cards" class="card card--interactive"><div class="card__media ratio-4x3"><img src="/media/harvest/dish-2.jpg" alt="Roast half chicken" width="1200" height="900" loading="lazy"></div><div class="card__body"><h3>Roast half chicken</h3><p class="price"><span class="price__amount">$24</span></p><p>Potato purée, charred lemon, jus.</p></div></article>
30
- <article slot="cards" class="card card--interactive"><div class="card__media ratio-4x3"><img src="/media/harvest/dish-3.jpg" alt="Mushroom tagliatelle" width="1200" height="900" loading="lazy"></div><div class="card__body"><h3>Mushroom tagliatelle</h3><p class="price"><span class="price__amount">$22</span></p><p>Hen of the woods, thyme, pecorino.</p></div></article>
31
- </menu-featured>
32
- ```
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,4 +0,0 @@
1
- .c-menu-featured__grid .card__body{grid-template-columns:1fr auto;align-items:start;gap:var(--space-2) var(--space-3)}
2
- .c-menu-featured__grid .card__body > h3{font-size:var(--step-1)}
3
- .c-menu-featured__grid .card__body > p:not(.price){grid-column:1 / -1;font-size:var(--step-0)}
4
- .c-menu-featured__grid .price__amount{font-size:var(--step-2)}
@@ -1 +0,0 @@
1
- <section class="c-menu-featured section"><div class="wrap"><div class="section__head section__head--row"><div class="stack stack--tight"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="btn-group"><slot name="actions"></slot></div></div><div class="grid grid--3 c-menu-featured__grid"><slot name="cards"></slot></div></div></section>
@@ -1,33 +0,0 @@
1
- # menu-sections
2
-
3
- Categorized menu lists.
4
-
5
- - **Category:** pricing
6
- - **Media:** optional
7
- - **Registers:** food, beauty
8
- - **Variants:** (none)
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Optional `<p class="eyebrow">` |
15
- | `heading` | `<h2>` |
16
- | `lede` | Optional `<p class="lede">` |
17
- | `sections` | 2–6 `.c-menu-sections__group`: `<h3>` category, then `.c-menu-sections__item` rows (`<div><strong>name</strong><span>description</span></div><span class="c-menu-sections__price">`) |
18
-
19
- ## Example
20
-
21
- ```html
22
- <menu-sections>
23
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Dinner</p>
24
- <h2 slot="heading">The menu</h2>
25
- <p slot="lede" class="lede">Served 5–10 pm. Ask about tonight's specials.</p>
26
- <div slot="sections" class="c-menu-sections__group"><h3>Starters</h3><div class="c-menu-sections__item"><div><strong>Oysters on the half shell</strong><span>Six, mignonette</span></div><span class="c-menu-sections__price">$18</span></div><div class="c-menu-sections__item"><div><strong>Burrata</strong><span>Peaches, basil, olive oil</span></div><span class="c-menu-sections__price">$14</span></div><div class="c-menu-sections__item"><div><strong>Clam chowder</strong><span>Bacon, thyme, oyster crackers</span></div><span class="c-menu-sections__price">$12</span></div></div>
27
- <div slot="sections" class="c-menu-sections__group"><h3>Mains</h3><div class="c-menu-sections__item"><div><strong>Seared scallops</strong><span>Brown butter, sweet corn</span></div><span class="c-menu-sections__price">$28</span></div><div class="c-menu-sections__item"><div><strong>Roast half chicken</strong><span>Potato purée, jus</span></div><span class="c-menu-sections__price">$24</span></div><div class="c-menu-sections__item"><div><strong>Haddock</strong><span>Leeks, mussels, saffron broth</span></div><span class="c-menu-sections__price">$27</span></div><div class="c-menu-sections__item"><div><strong>Ribeye</strong><span>16 oz, salsa verde</span></div><span class="c-menu-sections__price">$44</span></div></div>
28
- <div slot="sections" class="c-menu-sections__group"><h3>Sides</h3><div class="c-menu-sections__item"><div><strong>Fries</strong><span>Rosemary salt</span></div><span class="c-menu-sections__price">$7</span></div><div class="c-menu-sections__item"><div><strong>Charred broccolini</strong><span>Chili, lemon</span></div><span class="c-menu-sections__price">$9</span></div></div>
29
- <div slot="sections" class="c-menu-sections__group"><h3>Dessert</h3><div class="c-menu-sections__item"><div><strong>Blueberry buckle</strong><span>Vanilla ice cream</span></div><span class="c-menu-sections__price">$10</span></div><div class="c-menu-sections__item"><div><strong>Chocolate pot de crème</strong><span>Sea salt, olive oil</span></div><span class="c-menu-sections__price">$10</span></div></div>
30
- </menu-sections>
31
- ```
32
-
33
- 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,9 +0,0 @@
1
- .c-menu-sections__grid{display:grid;gap:var(--space-7) var(--space-8);max-width:66rem;margin-inline:auto}
2
- @media(min-width:900px){.c-menu-sections__grid{grid-template-columns:1fr 1fr}}
3
- .c-menu-sections__group{display:grid;align-content:start}
4
- .c-menu-sections__group > h3{font-size:var(--step-0);font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}
5
- .c-menu-sections__item{display:grid;grid-template-columns:1fr auto;gap:var(--space-4);align-items:baseline;padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}
6
- .c-menu-sections__item > div{display:grid}
7
- .c-menu-sections__item strong{font-weight:600}
8
- .c-menu-sections__item span:not(.c-menu-sections__price){color:var(--color-muted);font-size:var(--step-0)}
9
- .c-menu-sections__price{font-family:var(--font-display);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
@@ -1 +0,0 @@
1
- <section class="c-menu-sections section"><div class="wrap"><div class="section__head section__head--center"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="c-menu-sections__grid"><slot name="sections"></slot></div></div></section>
@@ -1,40 +0,0 @@
1
- # pricing-table
2
-
3
- Simple feature compare table.
4
-
5
- - **Category:** pricing
6
- - **Media:** none
7
- - **Registers:** b2b, professional
8
- - **Variants:** (none)
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Optional `<p class="eyebrow">` |
15
- | `heading` | `<h2>` |
16
- | `lede` | Optional `<p class="lede">` |
17
- | `table` | A `<table class="table">` with `<thead>` (feature, then one column per plan) and `<tbody>`; use the check icon or `—` in cells |
18
-
19
- ## Example
20
-
21
- ```html
22
- <pricing-table>
23
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Compare plans</p>
24
- <h2 slot="heading">What's included at each level</h2>
25
- <table slot="table" class="table">
26
- <thead><tr><th>Feature</th><th>Starter</th><th>Growth</th><th>Scale</th></tr></thead>
27
- <tbody>
28
- <tr><td>Monthly transactions</td><td>100</td><td>400</td><td>Unlimited</td></tr>
29
- <tr><td>Monthly close by the 5th</td><td><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg></td><td><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg></td><td><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg></td></tr>
30
- <tr><td>Job-cost reporting</td><td>—</td><td><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg></td><td><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg></td></tr>
31
- <tr><td>Payroll reconciliation</td><td>—</td><td><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg></td><td><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg></td></tr>
32
- <tr><td>Multi-entity consolidation</td><td>—</td><td>—</td><td><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg></td></tr>
33
- <tr><td>Response time</td><td>2 days</td><td>1 day</td><td>Same day</td></tr>
34
- </tbody>
35
- <tfoot><tr><td></td><td><a class="btn-outline btn-sm" href="/contact">Choose</a></td><td><a class="btn btn-sm" href="/contact">Choose</a></td><td><a class="btn-outline btn-sm" href="/contact">Choose</a></td></tr></tfoot>
36
- </table>
37
- </pricing-table>
38
- ```
39
-
40
- 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,9 +0,0 @@
1
- .c-pricing-table__card{max-width:60rem;margin-inline:auto}
2
- .c-pricing-table .table{min-width:38rem}
3
- .c-pricing-table .table th,.c-pricing-table .table td{padding:var(--space-4) var(--space-5)}
4
- .c-pricing-table .table thead th{background:var(--color-surface-2)}
5
- .c-pricing-table .table thead th:not(:first-child){font-family:var(--font-display);text-transform:none;letter-spacing:-.01em;font-size:var(--step-1);color:var(--color-text)}
6
- .c-pricing-table .table tbody tr:last-child td{border-bottom:0}
7
- .c-pricing-table .table td .icon{color:var(--color-accent);width:1.1rem;height:1.1rem}
8
- .c-pricing-table .table td:first-child{font-weight:500}
9
- .c-pricing-table .table tfoot td{border-bottom:0;padding-top:var(--space-5)}
@@ -1 +0,0 @@
1
- <section class="c-pricing-table section section--muted"><div class="wrap"><div class="section__head"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="card c-pricing-table__card"><div class="table-wrap"><slot name="table"></slot></div></div></div></section>
@@ -1,34 +0,0 @@
1
- # pricing-tiers
2
-
3
- Three pricing tiers.
4
-
5
- - **Category:** pricing
6
- - **Media:** none
7
- - **Registers:** b2b, professional, beauty
8
- - **Variants:** highlight-mid
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Optional `<p class="eyebrow">` |
15
- | `heading` | `<h2>` |
16
- | `lede` | Optional `<p class="lede">` |
17
- | `tiers` | 3 `.card` tiers: optional `.badge`, `<h3>`, `.price`, `<p>`, `<ul class="list-check">`, button. Add `c-pricing-tiers__featured` to one card to lift it. |
18
-
19
- ## Example
20
-
21
- ```html
22
- <pricing-tiers>
23
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Pricing</p>
24
- <h2 slot="heading">Flat monthly pricing. No hourly surprises.</h2>
25
- <p slot="lede" class="lede">Every plan includes a dedicated bookkeeper and a monthly close by the 5th.</p>
26
- <div slot="tiers" class="card"><div class="card__body"><h3>Starter</h3><p class="price"><span class="price__amount">$349</span><span class="price__period">/mo</span></p><p>Sole proprietors and one-truck operations.</p><ul class="list-check"><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Up to 100 transactions / mo</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Monthly P&amp;L and balance sheet</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Email support</li></ul><a class="btn-outline" href="/contact">Start with Starter</a></div></div>
27
- <div slot="tiers" class="card c-pricing-tiers__featured"><div class="card__body"><span class="badge badge--accent c-pricing-tiers__badge">Most popular</span><h3>Growth</h3><p class="price"><span class="price__amount">$649</span><span class="price__period">/mo</span></p><p>Crews of 2–10 with payroll and job costing.</p><ul class="list-check"><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Up to 400 transactions / mo</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Job-cost reporting</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Payroll reconciliation</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Quarterly review call</li></ul><a class="btn" href="/contact">Choose Growth</a></div></div>
28
- <div slot="tiers" class="card"><div class="card__body"><h3>Scale</h3><p class="price"><span class="price__amount">$1,200</span><span class="price__period">/mo</span></p><p>Multi-crew companies and multiple entities.</p><ul class="list-check"><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Unlimited transactions</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Multi-entity consolidation</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Cash-flow forecasting</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Dedicated Slack channel</li></ul><a class="btn-outline" href="/contact">Talk to us</a></div></div>
29
- </pricing-tiers>
30
- ```
31
-
32
- Variants: `<pricing-tiers variant="highlight-mid">`.
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,7 +0,0 @@
1
- .c-pricing-tiers__grid{align-items:stretch;max-width:66rem;margin-inline:auto}
2
- .c-pricing-tiers__grid .card__body{padding:var(--space-6);gap:var(--space-4)}
3
- .c-pricing-tiers__grid .card__body > h3{font-size:var(--step-2)}
4
- .c-pricing-tiers__badge{justify-self:start}
5
- .c-pricing-tiers__grid .list-check{margin-top:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-border);font-size:var(--step-0)}
6
- .c-pricing-tiers__grid .card__body > .btn,.c-pricing-tiers__grid .card__body > .btn-outline{margin-top:auto;justify-self:stretch}
7
- .c-pricing-tiers__featured,.c-pricing-tiers--highlight-mid .c-pricing-tiers__grid > :nth-child(2){border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent),var(--shadow-2)}
@@ -1 +0,0 @@
1
- <section class="c-pricing-tiers section"><div class="wrap"><div class="section__head section__head--center"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="grid grid--3 c-pricing-tiers__grid"><slot name="tiers"></slot></div></div></section>
@@ -1,34 +0,0 @@
1
- # pricing-toggle
2
-
3
- Monthly/annual toggle via tabs island.
4
-
5
- - **Category:** pricing
6
- - **Media:** none
7
- - **Registers:** b2b, professional
8
- - **Variants:** (none)
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Optional `<p class="eyebrow">` |
15
- | `heading` | `<h2>` |
16
- | `lede` | Optional `<p class="lede">` |
17
- | `tabs` | A `.tabs__list.tabs__list--pill[role=tablist]` with two `button.tabs__tab[role=tab]`, then two `.tabs__panel[role=tabpanel]` each containing a `.grid.grid--3` of tier cards |
18
-
19
- ## Example
20
-
21
- ```html
22
- <pricing-toggle>
23
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Pricing</p>
24
- <h2 slot="heading">Pay monthly, or save 15% annually</h2>
25
- <div slot="tabs" class="tabs__list tabs__list--pill" role="tablist">
26
- <button type="button" class="tabs__tab" role="tab" id="pt-m" aria-controls="pt-pm" aria-selected="true">Monthly</button>
27
- <button type="button" class="tabs__tab" role="tab" id="pt-a" aria-controls="pt-pa" aria-selected="false">Annual <span class="badge badge--accent c-pricing-toggle__save">−15%</span></button>
28
- </div>
29
- <div slot="tabs" class="tabs__panel" role="tabpanel" id="pt-pm" aria-labelledby="pt-m"><div class="grid grid--3"><div class="card"><div class="card__body"><h3>Starter</h3><p class="price"><span class="price__amount">$349</span><span class="price__period">/mo</span></p><ul class="list-check"><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>100 transactions / mo</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Monthly P&amp;L</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Email support</li></ul><a class="btn-outline" href="/contact">Choose Starter</a></div></div><div class="card c-pricing-toggle__featured"><div class="card__body"><h3>Growth</h3><p class="price"><span class="price__amount">$649</span><span class="price__period">/mo</span></p><ul class="list-check"><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>400 transactions / mo</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Job-cost reporting</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Payroll reconciliation</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Quarterly review</li></ul><a class="btn" href="/contact">Choose Growth</a></div></div><div class="card"><div class="card__body"><h3>Scale</h3><p class="price"><span class="price__amount">$1,200</span><span class="price__period">/mo</span></p><ul class="list-check"><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Unlimited transactions</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Multi-entity</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Cash-flow forecasting</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Dedicated channel</li></ul><a class="btn-outline" href="/contact">Choose Scale</a></div></div></div></div>
30
- <div slot="tabs" class="tabs__panel" role="tabpanel" id="pt-pa" aria-labelledby="pt-a" hidden><div class="grid grid--3"><div class="card"><div class="card__body"><h3>Starter</h3><p class="price"><span class="price__amount">$297</span><span class="price__period">/mo · billed yearly</span></p><ul class="list-check"><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>100 transactions / mo</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Monthly P&amp;L</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Email support</li></ul><a class="btn-outline" href="/contact">Choose Starter</a></div></div><div class="card c-pricing-toggle__featured"><div class="card__body"><h3>Growth</h3><p class="price"><span class="price__amount">$552</span><span class="price__period">/mo · billed yearly</span></p><ul class="list-check"><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>400 transactions / mo</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Job-cost reporting</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Payroll reconciliation</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Quarterly review</li></ul><a class="btn" href="/contact">Choose Growth</a></div></div><div class="card"><div class="card__body"><h3>Scale</h3><p class="price"><span class="price__amount">$1,020</span><span class="price__period">/mo · billed yearly</span></p><ul class="list-check"><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Unlimited transactions</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Multi-entity</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Cash-flow forecasting</li><li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>Dedicated channel</li></ul><a class="btn-outline" href="/contact">Choose Scale</a></div></div></div></div>
31
- </pricing-toggle>
32
- ```
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,10 +0,0 @@
1
- .c-pricing-toggle__tabs{justify-items:center}
2
- .c-pricing-toggle__tabs .tabs__list{margin-bottom:var(--space-4)}
3
- .c-pricing-toggle__tabs .tabs__panel{width:100%}
4
- .c-pricing-toggle__tabs .grid{max-width:66rem;margin-inline:auto;align-items:stretch}
5
- .c-pricing-toggle__tabs .card__body{padding:var(--space-6);gap:var(--space-4)}
6
- .c-pricing-toggle__tabs .card__body > h3{font-size:var(--step-2)}
7
- .c-pricing-toggle__tabs .list-check{margin-top:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-border);font-size:var(--step-0)}
8
- .c-pricing-toggle__tabs .card__body > .btn,.c-pricing-toggle__tabs .card__body > .btn-outline{margin-top:auto;justify-self:stretch}
9
- .c-pricing-toggle__featured{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent),var(--shadow-2)}
10
- .c-pricing-toggle__save{margin-left:.4rem;font-size:.7rem;padding:0 .45rem;min-height:1.25rem}
@@ -1 +0,0 @@
1
- <section class="c-pricing-toggle section"><div class="wrap"><div class="section__head section__head--center"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="tabs c-pricing-toggle__tabs" data-island="tabs"><slot name="tabs"></slot></div></div></section>
@@ -1,33 +0,0 @@
1
- # process-carousel
2
-
3
- Process cards in buttoned carousel.
4
-
5
- - **Category:** process
6
- - **Media:** optional
7
- - **Registers:** trade, beauty
8
- - **Variants:** (none)
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Optional `<p class="eyebrow">` |
15
- | `heading` | `<h2>` |
16
- | `lede` | Optional `<p class="lede">` (one sentence) |
17
- | `cards` | 4–6 `.card` slides: `<p class="eyebrow">` step label, `<h3>`, `<p>` |
18
-
19
- ## Example
20
-
21
- ```html
22
- <process-carousel>
23
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Day of</p>
24
- <h2 slot="heading">What happens on install day</h2>
25
- <div slot="cards" class="card"><div class="card__body"><p class="eyebrow">7:00 am</p><h3>Crew arrives, protection goes down</h3><p>Tarps over beds, plywood over the AC, driveway cones out.</p></div></div>
26
- <div slot="cards" class="card"><div class="card__body"><p class="eyebrow">7:30 am</p><h3>Tear-off</h3><p>Old shingles into the dumpster by lunchtime on most houses.</p></div></div>
27
- <div slot="cards" class="card"><div class="card__body"><p class="eyebrow">Midday</p><h3>Deck inspection</h3><p>Soft or rotted sheathing replaced and photographed before underlayment.</p></div></div>
28
- <div slot="cards" class="card"><div class="card__body"><p class="eyebrow">Afternoon</p><h3>Underlayment and shingles</h3><p>Ice-and-water, synthetic underlayment, then shingles from the eaves up.</p></div></div>
29
- <div slot="cards" class="card"><div class="card__body"><p class="eyebrow">End of day</p><h3>Sweep and walkthrough</h3><p>Magnet sweep twice, gutters cleared, and a walk with the foreman.</p></div></div>
30
- </process-carousel>
31
- ```
32
-
33
- 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,5 +0,0 @@
1
- .c-process-carousel__head{display:flex;align-items:end;justify-content:space-between;gap:var(--space-5)}
2
- .c-process-carousel__head .section__head,.c-process-carousel__head .carousel__nav{margin-bottom:var(--space-6)}
3
- .c-process-carousel__carousel .carousel__track > *{flex-basis:min(85%,18rem)}
4
- .c-process-carousel__carousel .card__body{padding:var(--space-6);gap:var(--space-3)}
5
- .c-process-carousel__carousel .card__body .eyebrow{color:var(--color-accent);font-size:.75rem}
@@ -1 +0,0 @@
1
- <section class="c-process-carousel section section--muted"><div class="wrap"><div class="c-process-carousel__head"><div class="section__head"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="carousel__nav"><button type="button" data-carousel-prev aria-label="Previous"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="m15 6-6 6 6 6"/></svg></button><button type="button" data-carousel-next aria-label="Next"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="m9 6 6 6-6 6"/></svg></button></div></div></div><div class="wrap carousel c-process-carousel__carousel" data-island="carousel" tabindex="0"><div class="carousel__track"><slot name="cards"></slot></div></div></section>
@@ -1,35 +0,0 @@
1
- # process-split
2
-
3
- Copy + large how-it-works media.
4
-
5
- - **Category:** process
6
- - **Media:** illustration or photo
7
- - **Registers:** b2b, trade, beauty
8
- - **Variants:** reverse
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Optional `<p class="eyebrow">` |
15
- | `heading` | `<h2>` |
16
- | `lede` | Optional `<p class="lede">` (one sentence) |
17
- | `steps` | 3–4 `<li>` with `<strong>` lead and text |
18
- | `media` | `<img>` 4:3 |
19
-
20
- ## Example
21
-
22
- ```html
23
- <process-split>
24
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Your first visit</p>
25
- <h2 slot="heading">Here's how a color consult goes</h2>
26
- <li slot="steps"><span><strong>Talk first, 15 minutes</strong>Photos you like, your routine, and what you want to spend on upkeep.</span></li>
27
- <li slot="steps"><span><strong>Strand test</strong>We test a hidden section so there are no surprises on the day.</span></li>
28
- <li slot="steps"><span><strong>Written plan and price</strong>What we'll do, how long it takes, and the exact cost before you book.</span></li>
29
- <img src="/media/harvest/consult.jpg" alt="Stylist consulting with a client" width="1200" height="900" slot="media" loading="lazy">
30
- </process-split>
31
- ```
32
-
33
- Variants: `<process-split variant="reverse">`.
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,6 +0,0 @@
1
- .c-process-split__copy .section__head{margin-bottom:var(--space-5)}
2
- .c-process-split__list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-4);counter-reset:step}
3
- .c-process-split__list > *{counter-increment:step;display:grid;grid-template-columns:2rem 1fr;gap:var(--space-3);align-items:start;color:var(--color-muted)}
4
- .c-process-split__list > *::before{content:counter(step);display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--color-accent) 12%,transparent);color:var(--color-accent);font-weight:600;font-size:var(--step-0)}
5
- .c-process-split__list strong{display:block;color:var(--color-text);font-weight:600}
6
- .c-process-split--reverse .split > :first-child{order:2}
@@ -1 +0,0 @@
1
- <section class="c-process-split section"><div class="wrap split"><div class="c-process-split__copy"><div class="section__head"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><ol class="c-process-split__list"><slot name="steps"></slot></ol></div><div class="frame ratio-4x3"><slot name="media"></slot></div></div></section>