@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,37 +0,0 @@
1
- # footer-cta
2
-
3
- Mini CTA above compact footer.
4
-
5
- - **Category:** footer
6
- - **Media:** none
7
- - **Registers:** trade, beauty, food
8
- - **Variants:** dark
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `heading` | `<h2>` the ask |
15
- | `lede` | Optional `<p class="lede">` |
16
- | `actions` | 1–2 buttons |
17
- | `brand` | Business name or logo |
18
- | `legal` | `<a>` links + trailing `<span>` copyright |
19
-
20
- ## Example
21
-
22
- ```html
23
- <footer-cta>
24
- <h2 slot="heading">Let's look at your roof.</h2>
25
- <p slot="lede" class="lede">Free inspection, written estimate in 48 hours, no pressure.</p>
26
- <a slot="actions" class="btn btn-lg" href="/contact">Book an inspection</a>
27
- <a slot="actions" class="btn-outline btn-lg" href="tel:+15550102000">(555) 010-2000</a>
28
- <span slot="brand">Harbor Roofing</span>
29
- <a slot="legal" href="/privacy">Privacy</a>
30
- <a slot="legal" href="/cookie-compliance">Cookie compliance</a>
31
- <span slot="legal">© 2026 Harbor Roofing LLC · Maine license #RC-20419</span>
32
- </footer-cta>
33
- ```
34
-
35
- Variants: `<footer-cta variant="dark">`.
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,18 +0,0 @@
1
- .c-footer-cta{border-top:1px solid var(--color-border);font-size:var(--step-0);color:var(--color-muted)}
2
- .c-footer-cta a:not([class*="btn"]){color:var(--color-muted);text-decoration:none}
3
- .c-footer-cta a:not([class*="btn"]):hover{color:var(--color-text)}
4
- .c-footer-cta .brand{color:var(--color-text)}
5
- .c-footer-cta__legal{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);align-items:center;padding-block:var(--space-4);border-top:1px solid var(--color-border)}
6
- .c-footer-cta__legal > span{margin-inline-start:auto}
7
- .c-footer-cta__social{display:flex;gap:var(--space-2)}
8
- .c-footer-cta__social a{display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:var(--radius-pill);border:1px solid var(--color-border)}
9
- .c-footer-cta__social a:hover{border-color:var(--color-text)}
10
- .c-footer-cta{border-top:0}
11
- .c-footer-cta__band{display:grid;gap:var(--space-5);padding-block:var(--space-8);color:var(--color-text)}
12
- @media(min-width:900px){.c-footer-cta__band{grid-template-columns:1fr auto;align-items:center}}
13
- .c-footer-cta__copy{display:grid;gap:var(--space-3);max-width:36rem}
14
- .c-footer-cta__copy h2{font-size:var(--step-4)}
15
- .c-footer-cta__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-5);border-top:1px solid var(--color-border)}
16
- .c-footer-cta__legal{border-top:0;padding:0}
17
- .c-footer-cta__legal > span{margin-inline-start:0}
18
- .c-footer-cta--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)}
@@ -1 +0,0 @@
1
- <footer class="c-footer-cta"><div class="wrap"><div class="c-footer-cta__band"><div class="c-footer-cta__copy"><slot name="heading"></slot><slot name="lede"></slot></div><div class="btn-group"><slot name="actions"></slot></div></div><div class="c-footer-cta__row"><a class="brand" href="/"><slot name="brand"></slot></a><div class="c-footer-cta__legal"><slot name="legal"></slot></div></div></div></footer>
@@ -1,37 +0,0 @@
1
- # footer-social
2
-
3
- Social icons + NAP strip.
4
-
5
- - **Category:** footer
6
- - **Media:** social icons
7
- - **Registers:** beauty, food, trade
8
- - **Variants:** (none)
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `brand` | Business name or logo |
15
- | `tagline` | Optional `<p>` one-liner |
16
- | `social` | Icon links |
17
- | `details` | `<p>` address, `<p>` phone/email, `<p>` hours |
18
- | `legal` | `<a>` links + trailing `<span>` copyright |
19
-
20
- ## Example
21
-
22
- ```html
23
- <footer-social>
24
- <span slot="brand">Maison Lune</span>
25
- <p slot="tagline">Color, cuts, and the occasional glass of something on Exchange Street.</p>
26
- <a slot="social" href="https://instagram.com/example" aria-label="Instagram" rel="noopener"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="3" width="18" height="18" rx="5"/><circle cx="12" cy="12" r="4"/><circle cx="17.5" cy="6.5" r=".8"/></svg></a>
27
- <a slot="social" href="https://facebook.com/example" aria-label="Facebook" rel="noopener"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M14 8h3V4h-3a4 4 0 0 0-4 4v3H7v4h3v6h4v-6h3l1-4h-4V8z"/></svg></a>
28
- <p slot="details"><strong>41 Exchange St, Portland, ME 04101</strong></p>
29
- <p slot="details"><a href="tel:+15550102000">(555) 010-2000</a> · <a href="mailto:hello@maisonlune.example">hello@maisonlune.example</a></p>
30
- <p slot="details">Tue–Sat 9–7 · Sun–Mon closed</p>
31
- <a slot="legal" href="/privacy">Privacy</a>
32
- <a slot="legal" href="/cookie-compliance">Cookie compliance</a>
33
- <span slot="legal">© 2026 Maison Lune</span>
34
- </footer-social>
35
- ```
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-footer-social{border-top:1px solid var(--color-border);font-size:var(--step-0);color:var(--color-muted)}
2
- .c-footer-social a:not([class*="btn"]){color:var(--color-muted);text-decoration:none}
3
- .c-footer-social a:not([class*="btn"]):hover{color:var(--color-text)}
4
- .c-footer-social .brand{color:var(--color-text)}
5
- .c-footer-social__legal{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);align-items:center;padding-block:var(--space-4);border-top:1px solid var(--color-border)}
6
- .c-footer-social__legal > span{margin-inline-start:auto}
7
- .c-footer-social__social{display:flex;gap:var(--space-2)}
8
- .c-footer-social__social a{display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:var(--radius-pill);border:1px solid var(--color-border)}
9
- .c-footer-social__social a:hover{border-color:var(--color-text)}
10
- .c-footer-social__grid{display:grid;gap:var(--space-6);padding-block:var(--space-7)}
11
- @media(min-width:720px){.c-footer-social__grid{grid-template-columns:1fr 1fr;align-items:start}}
12
- .c-footer-social__brand{display:grid;gap:var(--space-4);align-content:start;max-width:22rem}
13
- .c-footer-social__brand p{margin:0}
14
- .c-footer-social__details{display:grid;gap:var(--space-2);align-content:start}
15
- @media(min-width:720px){.c-footer-social__details{text-align:right}}
16
- .c-footer-social__details p{margin:0}
17
- .c-footer-social__details strong{color:var(--color-text);font-weight:600}
@@ -1 +0,0 @@
1
- <footer class="c-footer-social"><div class="wrap"><div class="c-footer-social__grid"><div class="c-footer-social__brand"><a class="brand" href="/"><slot name="brand"></slot></a><slot name="tagline"></slot><div class="c-footer-social__social"><slot name="social"></slot></div></div><div class="c-footer-social__details"><slot name="details"></slot></div></div><div class="c-footer-social__legal"><slot name="legal"></slot></div></div></footer>
@@ -1,40 +0,0 @@
1
- # footer-wordmark
2
-
3
- Directory footer with a giant clipped wordmark.
4
-
5
- - **Category:** footer
6
- - **Media:** logo optional
7
- - **Registers:** trade, b2b, beauty
8
- - **Variants:** dark
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `brand` | Business name or logo |
15
- | `tagline` | `<p>` one line about the business |
16
- | `social` | Optional icon links (`<a aria-label>` with `.icon`) |
17
- | `columns` | 2–3 `<div>`: `<h3>` heading then `<a>` links |
18
- | `wordmark` | `<span>` short brand word (1–2 words) rendered huge |
19
- | `legal` | `<a>` links + a trailing `<span>` copyright |
20
-
21
- ## Example
22
-
23
- ```html
24
- <footer-wordmark>
25
- <span slot="brand">Apex Roofing</span>
26
- <p slot="tagline">Done in days. Built for decades.</p>
27
- <a slot="social" href="https://instagram.com/example" aria-label="Instagram" rel="noopener"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="3" width="18" height="18" rx="5"/><circle cx="12" cy="12" r="4"/><circle cx="17.5" cy="6.5" r=".8"/></svg></a>
28
- <a slot="social" href="https://facebook.com/example" aria-label="Facebook" rel="noopener"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M14 8h3V4h-3a4 4 0 0 0-4 4v3H7v4h3v6h4v-6h3l1-4h-4V8z"/></svg></a>
29
- <div slot="columns"><h3>Menu</h3><a href="/services">Services</a><a href="/about">About</a><a href="/blog">Blog</a><a href="/faq">FAQ</a><a href="/contact">Contact</a></div>
30
- <div slot="columns"><h3>Services</h3><a href="/services/roofing">Roofing</a><a href="/services/gutters">Gutters</a><a href="/services/siding">Siding</a><a href="/services/windows">Windows</a><a href="/services/masonry">Masonry</a></div>
31
- <span slot="wordmark">Apex</span>
32
- <a slot="legal" href="/privacy">Privacy policy</a>
33
- <a slot="legal" href="/cookie-compliance">Cookie compliance</a>
34
- <span slot="legal">© 2026 Apex Roofing · Licensed &amp; insured · Serving Greater Portland</span>
35
- </footer-wordmark>
36
- ```
37
-
38
- Variants: `<footer-wordmark variant="dark">`.
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,19 +0,0 @@
1
- .c-footer-wordmark{border-top:1px solid var(--color-border);font-size:var(--step-0);color:var(--color-muted)}
2
- .c-footer-wordmark a:not([class*="btn"]){color:var(--color-muted);text-decoration:none}
3
- .c-footer-wordmark a:not([class*="btn"]):hover{color:var(--color-text)}
4
- .c-footer-wordmark .brand{color:var(--color-text)}
5
- .c-footer-wordmark__legal{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);align-items:center;padding-block:var(--space-4);border-top:1px solid var(--color-border)}
6
- .c-footer-wordmark__legal > span{margin-inline-start:auto}
7
- .c-footer-wordmark__social{display:flex;gap:var(--space-2)}
8
- .c-footer-wordmark__social a{display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:var(--radius-pill);border:1px solid var(--color-border)}
9
- .c-footer-wordmark__social a:hover{border-color:var(--color-text)}
10
- .c-footer-wordmark{overflow:hidden}
11
- .c-footer-wordmark__grid{display:flex;flex-wrap:wrap;gap:var(--space-7) var(--space-6);padding-block:var(--space-8) var(--space-7)}
12
- .c-footer-wordmark__brand{display:grid;gap:var(--space-4);align-content:start;flex:1 1 100%;max-width:24rem}
13
- .c-footer-wordmark__brand p{margin:0;font-family:var(--font-display);font-size:var(--step-2);line-height:1.2;color:var(--color-text)}
14
- .c-footer-wordmark__social:empty{display:none}
15
- .c-footer-wordmark__grid > div:not(.c-footer-wordmark__brand){display:grid;gap:var(--space-2);align-content:start;flex:1 1 9rem}
16
- .c-footer-wordmark__grid h3{font-family:var(--font-body);font-size:var(--step-0);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text);margin-bottom:var(--space-2)}
17
- .c-footer-wordmark__mark{font-family:var(--font-display);font-weight:700;font-size:clamp(4.5rem,19vw,17rem);line-height:.82;letter-spacing:-.05em;color:var(--color-accent);text-align:right;white-space:nowrap;user-select:none;padding-top:var(--space-4)}
18
- @media(min-width:900px){.c-footer-wordmark__brand{flex:0 1 24rem;margin-inline-end:auto}}
19
- .c-footer-wordmark--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)}
@@ -1 +0,0 @@
1
- <footer class="c-footer-wordmark"><div class="wrap"><div class="c-footer-wordmark__grid"><div class="c-footer-wordmark__brand"><a class="brand" href="/"><slot name="brand"></slot></a><slot name="tagline"></slot><div class="c-footer-wordmark__social"><slot name="social"></slot></div></div><slot name="columns"></slot></div><div class="c-footer-wordmark__mark" aria-hidden="true"><slot name="wordmark"></slot></div><div class="c-footer-wordmark__legal"><slot name="legal"></slot></div></div></footer>
@@ -1,31 +0,0 @@
1
- # gallery-before-after
2
-
3
- Before/after project cases.
4
-
5
- - **Category:** gallery
6
- - **Media:** paired photos
7
- - **Registers:** trade
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
- | `cases` | 2 or 4 `<figure class="c-gallery-before-after__case">`: a `.before-after[data-island]` with two same-crop `<img>` + handle, then `<figcaption>` with `<h3>` + `<p>` |
18
-
19
- ## Example
20
-
21
- ```html
22
- <gallery-before-after>
23
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Before &amp; after</p>
24
- <h2 slot="heading">Drag the handle.</h2>
25
- <p slot="lede" class="lede">Same angle, same lens, a weekend apart.</p>
26
- <figure slot="cases" class="c-gallery-before-after__case"><div class="before-after" data-island="before-after"><img src="/media/harvest/ba1-before.jpg" alt="Before" width="1600" height="1000" class="before-after__before" loading="lazy"><img src="/media/harvest/ba1-after.jpg" alt="After" width="1600" height="1000" class="before-after__after" loading="lazy"><span class="before-after__label before-after__label--before" aria-hidden="true">Before</span><span class="before-after__label before-after__label--after" aria-hidden="true">After</span><div class="before-after__handle" aria-hidden="true"></div></div><figcaption><h3>Kitchen refresh · Deering</h3><p>Cabinets repainted, new hardware and lighting · 3 days</p></figcaption></figure>
27
- <figure slot="cases" class="c-gallery-before-after__case"><div class="before-after" data-island="before-after"><img src="/media/harvest/ba2-before.jpg" alt="Before" width="1600" height="1000" class="before-after__before" loading="lazy"><img src="/media/harvest/ba2-after.jpg" alt="After" width="1600" height="1000" class="before-after__after" loading="lazy"><span class="before-after__label before-after__label--before" aria-hidden="true">Before</span><span class="before-after__label before-after__label--after" aria-hidden="true">After</span><div class="before-after__handle" aria-hidden="true"></div></div><figcaption><h3>Exterior · Falmouth</h3><p>Full prep, two coats, trim in contrasting white · 4 days</p></figcaption></figure>
28
- </gallery-before-after>
29
- ```
30
-
31
- 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-gallery-before-after__grid{--gap:var(--space-6)}
2
- .c-gallery-before-after__case{margin:0;display:grid;gap:var(--space-4)}
3
- .c-gallery-before-after__case .before-after{box-shadow:var(--shadow-2)}
4
- .c-gallery-before-after__case figcaption{display:grid;gap:var(--space-1)}
5
- .c-gallery-before-after__case h3{font-size:var(--step-1)}
6
- .c-gallery-before-after__case p{margin:0;color:var(--color-muted);font-size:var(--step-0)}
@@ -1 +0,0 @@
1
- <section class="c-gallery-before-after 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="grid grid--2 c-gallery-before-after__grid"><slot name="cases"></slot></div></div></section>
@@ -1,32 +0,0 @@
1
- # gallery-carousel
2
-
3
- Full-bleed project carousel.
4
-
5
- - **Category:** gallery
6
- - **Media:** photos
7
- - **Registers:** trade, beauty, 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
- | `items` | 4–8 `<figure>` slides: `.frame.ratio-16x9` with `<img>`, then `<figcaption>` |
18
-
19
- ## Example
20
-
21
- ```html
22
- <gallery-carousel>
23
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Projects</p>
24
- <h2 slot="heading">A few from the last twelve months</h2>
25
- <figure slot="items"><div class="frame ratio-16x9"><img src="/media/harvest/p1.jpg" alt="Standing-seam roof on a farmhouse" width="1600" height="900" loading="lazy"></div><figcaption><strong>Falmouth farmhouse</strong>Standing-seam metal, 3 days</figcaption></figure>
26
- <figure slot="items"><div class="frame ratio-16x9"><img src="/media/harvest/p2.jpg" alt="Shingle roof on a colonial" width="1600" height="900" loading="lazy"></div><figcaption><strong>Deering colonial</strong>Architectural shingles, 2 days</figcaption></figure>
27
- <figure slot="items"><div class="frame ratio-16x9"><img src="/media/harvest/p3.jpg" alt="Cedar shake roof near the ocean" width="1600" height="900" loading="lazy"></div><figcaption><strong>Cape Elizabeth</strong>Cedar shake, 5 days</figcaption></figure>
28
- <figure slot="items"><div class="frame ratio-16x9"><img src="/media/harvest/p4.jpg" alt="Flat roof on a commercial building" width="1600" height="900" loading="lazy"></div><figcaption><strong>Bayside warehouse</strong>EPDM flat roof, 4 days</figcaption></figure>
29
- </gallery-carousel>
30
- ```
31
-
32
- 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-gallery-carousel__head{display:flex;align-items:end;justify-content:space-between;gap:var(--space-5)}
2
- .c-gallery-carousel__head .section__head,.c-gallery-carousel__head .carousel__nav{margin-bottom:var(--space-6)}
3
- .c-gallery-carousel__carousel .carousel__track{gap:var(--space-5)}
4
- .c-gallery-carousel__carousel .carousel__track > *{flex-basis:min(88%,34rem);margin:0;display:grid;gap:var(--space-3)}
5
- .c-gallery-carousel__carousel .frame{box-shadow:none}
6
- .c-gallery-carousel__carousel figcaption{font-size:var(--step-0);color:var(--color-muted)}
7
- .c-gallery-carousel__carousel figcaption strong{color:var(--color-text);font-weight:600;margin-right:.35rem}
@@ -1 +0,0 @@
1
- <section class="c-gallery-carousel section"><div class="wrap"><div class="c-gallery-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-gallery-carousel__carousel" data-island="carousel" tabindex="0"><div class="carousel__track"><slot name="items"></slot></div></div></section>
@@ -1,39 +0,0 @@
1
- # gallery-grid
2
-
3
- Responsive photo grid.
4
-
5
- - **Category:** gallery
6
- - **Media:** photos
7
- - **Registers:** trade, beauty, food
8
- - **Variants:** four
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 (e.g. "All projects") |
18
- | `items` | 6 or 9 `<button class="c-gallery-grid__tile ratio-1x1" data-lightbox-src data-lightbox-alt>` each wrapping an `<img>` |
19
-
20
- ## Example
21
-
22
- ```html
23
- <gallery-grid>
24
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Recent work</p>
25
- <h2 slot="heading">Roofs we finished this season</h2>
26
- <p slot="lede" class="lede">Tap any photo to enlarge.</p>
27
- <a slot="actions" class="btn-outline" href="/work">All projects</a>
28
- <button slot="items" type="button" class="c-gallery-grid__tile ratio-1x1" data-lightbox-src="/media/harvest/g1.jpg" data-lightbox-alt="Standing-seam metal roof, Falmouth"><img src="/media/harvest/g1.jpg" alt="Standing-seam metal roof, Falmouth" width="1200" height="1200" loading="lazy"></button>
29
- <button slot="items" type="button" class="c-gallery-grid__tile ratio-1x1" data-lightbox-src="/media/harvest/g2.jpg" data-lightbox-alt="Architectural shingles, Deering"><img src="/media/harvest/g2.jpg" alt="Architectural shingles, Deering" width="1200" height="1200" loading="lazy"></button>
30
- <button slot="items" type="button" class="c-gallery-grid__tile ratio-1x1" data-lightbox-src="/media/harvest/g3.jpg" data-lightbox-alt="Cedar shake, Cape Elizabeth"><img src="/media/harvest/g3.jpg" alt="Cedar shake, Cape Elizabeth" width="1200" height="1200" loading="lazy"></button>
31
- <button slot="items" type="button" class="c-gallery-grid__tile ratio-1x1" data-lightbox-src="/media/harvest/g4.jpg" data-lightbox-alt="Copper bay window roof, West End"><img src="/media/harvest/g4.jpg" alt="Copper bay window roof, West End" width="1200" height="1200" loading="lazy"></button>
32
- <button slot="items" type="button" class="c-gallery-grid__tile ratio-1x1" data-lightbox-src="/media/harvest/g5.jpg" data-lightbox-alt="Flat EPDM roof, Bayside"><img src="/media/harvest/g5.jpg" alt="Flat EPDM roof, Bayside" width="1200" height="1200" loading="lazy"></button>
33
- <button slot="items" type="button" class="c-gallery-grid__tile ratio-1x1" data-lightbox-src="/media/harvest/g6.jpg" data-lightbox-alt="Slate repair, Munjoy Hill"><img src="/media/harvest/g6.jpg" alt="Slate repair, Munjoy Hill" width="1200" height="1200" loading="lazy"></button>
34
- </gallery-grid>
35
- ```
36
-
37
- Variants: `<gallery-grid variant="four">`.
38
-
39
- 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,13 +0,0 @@
1
- .c-gallery-grid__grid{--gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr))}
2
- @media(min-width:720px){.c-gallery-grid__grid{--gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr))}}
3
- .c-gallery-grid__tile{display:block;width:100%;padding:0;border:0;background:var(--color-surface-2);cursor:zoom-in;overflow:hidden;border-radius:var(--radius-lg)}
4
- .c-gallery-grid__tile img{transition:transform 500ms ease}
5
- .c-gallery-grid__tile:hover img{transform:scale(1.04)}
6
- .c-gallery-grid__tile:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}
7
- .c-gallery-grid__dialog{padding:0;border:0;background:transparent;max-width:min(92vw,72rem);max-height:92vh;overflow:visible}
8
- .c-gallery-grid__dialog::backdrop{background:color-mix(in srgb,var(--color-text) 85%,transparent);backdrop-filter:blur(4px)}
9
- .c-gallery-grid__dialog img{max-width:100%;max-height:88vh;width:auto;height:auto;border-radius:var(--radius-lg);margin:auto}
10
- .c-gallery-grid__dialog form{position:absolute;top:var(--space-2);right:var(--space-2);margin:0}
11
- .c-gallery-grid__close{background:color-mix(in srgb,var(--color-text) 60%,transparent);color:var(--color-bg)}
12
- .c-gallery-grid__close:hover{background:color-mix(in srgb,var(--color-text) 80%,transparent)}
13
- @media(min-width:1080px){.c-gallery-grid--four .c-gallery-grid__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@@ -1 +0,0 @@
1
- <section class="c-gallery-grid section" data-island="lightbox"><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-gallery-grid__grid"><slot name="items"></slot></div><dialog class="c-gallery-grid__dialog"><img alt=""><form method="dialog"><button type="submit" class="btn-ghost btn-icon c-gallery-grid__close" data-lightbox-close aria-label="Close"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="m4 4 16 16M20 4 4 20"/></svg></button></form></dialog></div></section>
@@ -1,33 +0,0 @@
1
- # gallery-masonry
2
-
3
- Mixed aspect gallery.
4
-
5
- - **Category:** gallery
6
- - **Media:** photos
7
- - **Registers:** beauty, food, trade
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
- | `items` | 5–8 `<figure class="frame">` tiles with `bento__wide` / `bento__tall` / `bento__narrow` spans and an `<img>` each; optional `<figcaption>` |
18
-
19
- ## Example
20
-
21
- ```html
22
- <gallery-masonry>
23
- <p slot="eyebrow" class="eyebrow eyebrow--accent">The space</p>
24
- <h2 slot="heading">Come see the salon</h2>
25
- <figure slot="items" class="frame bento__wide bento__tall"><img src="/media/harvest/salon-1.jpg" alt="Main floor with six chairs" width="1600" height="1600" loading="lazy"><figcaption>Main floor</figcaption></figure>
26
- <figure slot="items" class="frame bento__narrow"><img src="/media/harvest/salon-2.jpg" alt="Color bar" width="900" height="900" loading="lazy"><figcaption>Color bar</figcaption></figure>
27
- <figure slot="items" class="frame bento__narrow"><img src="/media/harvest/salon-3.jpg" alt="Wash stations" width="900" height="900" loading="lazy"><figcaption>Wash</figcaption></figure>
28
- <figure slot="items" class="frame"><img src="/media/harvest/salon-4.jpg" alt="Product wall" width="1200" height="900" loading="lazy"><figcaption>Retail</figcaption></figure>
29
- <figure slot="items" class="frame"><img src="/media/harvest/salon-5.jpg" alt="Waiting area" width="1200" height="900" loading="lazy"><figcaption>Lounge</figcaption></figure>
30
- </gallery-masonry>
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,4 +0,0 @@
1
- @media(min-width:720px){.c-gallery-masonry__grid{grid-auto-rows:12rem}}
2
- .c-gallery-masonry__grid > *{margin:0;position:relative;min-height:12rem;box-shadow:none}
3
- .c-gallery-masonry__grid img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
4
- .c-gallery-masonry__grid figcaption{position:absolute;left:var(--space-3);bottom:var(--space-3);padding:.25rem .65rem;border-radius:var(--radius-pill);font-size:var(--step-0);font-weight:600;background:color-mix(in srgb,var(--color-bg) 85%,transparent);color:var(--color-text)}
@@ -1 +0,0 @@
1
- <section class="c-gallery-masonry 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="bento c-gallery-masonry__grid"><slot name="items"></slot></div></div></section>
@@ -1,40 +0,0 @@
1
- # gallery-mosaic-split
2
-
3
- Copy beside a photo mosaic with one quote tile mixed in.
4
-
5
- - **Category:** gallery
6
- - **Media:** 5–6 photos
7
- - **Registers:** trade, beauty, food
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
- | `actions` | Optional 1–2 buttons / `.btn-arrow` links |
18
- | `tiles` | 5–7 `<div class="frame"><img></div>` tiles (add `is-tall` to one or two) and optionally one `<figure class="card">` quote tile |
19
-
20
- ## Example
21
-
22
- ```html
23
- <gallery-mosaic-split>
24
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Recent work</p>
25
- <h2 slot="heading">Across Greater Portland.</h2>
26
- <p slot="lede" class="lede">Every roof gets the same care: a clean tear-off, solid decking, and photos of the finished job for your records.</p>
27
- <a slot="actions" class="btn" href="/contact">Get a free estimate</a>
28
- <a slot="actions" class="btn-arrow" href="/work">View our work <svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a>
29
- <div slot="tiles" class="frame is-tall"><img src="/media/harvest/rw-1.jpg" alt="Finished slate-grey roof from above" width="900" height="1200" loading="lazy"></div>
30
- <div slot="tiles" class="frame"><img src="/media/harvest/rw-2.jpg" alt="Crew member fastening drip edge" width="1200" height="900" loading="lazy"></div>
31
- <figure slot="tiles" class="card"><blockquote class="card__body"><p class="quote quote--card">“They tarped the roof the same night the hail hit, and new shingles were on ten days later.”</p></blockquote><figcaption class="card__footer byline"><div><strong>Dana W.</strong><span>Yarmouth</span></div></figcaption></figure>
32
- <div slot="tiles" class="frame"><img src="/media/harvest/rw-3.jpg" alt="Farmhouse with new standing-seam roof" width="1200" height="900" loading="lazy"></div>
33
- <div slot="tiles" class="frame"><img src="/media/harvest/rw-4.jpg" alt="Cedar shake detail" width="1200" height="900" loading="lazy"></div>
34
- <div slot="tiles" class="frame"><img src="/media/harvest/rw-5.jpg" alt="Crew on a ridge line at sunset" width="1200" height="900" loading="lazy"></div>
35
- </gallery-mosaic-split>
36
- ```
37
-
38
- Variants: `<gallery-mosaic-split variant="reverse">`.
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,15 +0,0 @@
1
- .c-gallery-mosaic-split__grid{display:grid;gap:var(--space-6)}
2
- .c-gallery-mosaic-split__copy .section__head{margin-bottom:var(--space-5)}
3
- .c-gallery-mosaic-split__copy .btn-group:empty{display:none}
4
- .c-gallery-mosaic-split__mosaic{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(9rem,auto);grid-auto-flow:dense;gap:var(--space-3)}
5
- .c-gallery-mosaic-split__mosaic > .is-tall{grid-row:span 2}
6
- .c-gallery-mosaic-split__mosaic > .is-wide{grid-column:span 2}
7
- .c-gallery-mosaic-split__mosaic .frame{box-shadow:none;min-height:0}
8
- .c-gallery-mosaic-split__mosaic .frame img{width:100%;height:100%;object-fit:cover}
9
- .c-gallery-mosaic-split__mosaic figure{margin:0;grid-column:span 2}
10
- .c-gallery-mosaic-split__mosaic .card__body{padding:var(--space-4) var(--space-5);align-content:center}
11
- .c-gallery-mosaic-split__mosaic .quote--card{font-size:var(--step-0);line-height:1.5}
12
- .c-gallery-mosaic-split__mosaic .card__footer{padding:var(--space-2) var(--space-5) var(--space-3);border-top:0}
13
- .c-gallery-mosaic-split__mosaic .byline strong,.c-gallery-mosaic-split__mosaic .byline span{font-size:var(--step-0)}
14
- @media(min-width:720px){.c-gallery-mosaic-split__mosaic{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(10rem,auto)}}
15
- @media(min-width:900px){.c-gallery-mosaic-split__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:var(--space-8);align-items:start}.c-gallery-mosaic-split--reverse .c-gallery-mosaic-split__copy{order:2}}
@@ -1 +0,0 @@
1
- <section class="c-gallery-mosaic-split section"><div class="wrap c-gallery-mosaic-split__grid"><div class="c-gallery-mosaic-split__copy sticky-col"><div class="section__head"><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="c-gallery-mosaic-split__mosaic"><slot name="tiles"></slot></div></div></section>
@@ -1,34 +0,0 @@
1
- # hero-asymmetric
2
-
3
- Diagonal balance: heavy type corner vs dense photo.
4
-
5
- - **Category:** hero
6
- - **Media:** strong subject photo
7
- - **Registers:** beauty, professional, trade
8
- - **Variants:** reverse
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Short line above headline |
15
- | `(default)` | `<h1>` (short, 3–6 words) + `<p class="lede lede--lg">` |
16
- | `actions` | 1–2 buttons |
17
- | `media` | Portrait 3:4 `<img>` with a clear subject |
18
-
19
- ## Example
20
-
21
- ```html
22
- <hero-asymmetric>
23
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Hair · Color · Portland</p>
24
- <h1>Color you'll stop touching up.</h1>
25
- <p class="lede lede--lg">Balayage, lived-in blondes, and corrective color by stylists who've been at it for a decade. Consultations are free and honest.</p>
26
- <a slot="actions" class="btn btn-lg" href="/book">Book online</a>
27
- <a slot="actions" class="btn-outline btn-lg" href="/services">Services &amp; pricing</a>
28
- <img src="/media/harvest/stylist-portrait.jpg" alt="Stylist finishing a blowout" width="1200" height="1600" slot="media" fetchpriority="high">
29
- </hero-asymmetric>
30
- ```
31
-
32
- Variants: `<hero-asymmetric variant="reverse">`.
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,13 +0,0 @@
1
- .c-hero-asymmetric__grid{display:grid;gap:var(--space-6)}
2
- .c-hero-asymmetric__copy{display:grid;gap:var(--space-5);align-content:end}
3
- .c-hero-asymmetric__copy h1{font-size:clamp(2.8rem,1.8rem + 4vw,5.5rem);max-width:12ch}
4
- .c-hero-asymmetric__copy .btn-group{margin-top:var(--space-2)}
5
- .c-hero-asymmetric__media{max-width:30rem;width:100%}
6
- @media(min-width:720px){
7
- .c-hero-asymmetric__grid{grid-template-columns:1.15fr .85fr;align-items:end;gap:var(--space-8)}
8
- .c-hero-asymmetric__copy{padding-bottom:var(--space-8)}
9
- .c-hero-asymmetric__media{justify-self:end}
10
- .c-hero-asymmetric--reverse .c-hero-asymmetric__grid{grid-template-columns:.85fr 1.15fr}
11
- .c-hero-asymmetric--reverse .c-hero-asymmetric__copy{order:2}
12
- .c-hero-asymmetric--reverse .c-hero-asymmetric__media{justify-self:start}
13
- }
@@ -1,10 +0,0 @@
1
- <section class="c-hero-asymmetric section section--roomy">
2
- <div class="wrap c-hero-asymmetric__grid">
3
- <div class="c-hero-asymmetric__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-asymmetric__media frame ratio-3x4"><slot name="media"></slot></div>
9
- </div>
10
- </section>
@@ -1,38 +0,0 @@
1
- # hero-before-after
2
-
3
- Trade showcase with draggable before/after beside copy.
4
-
5
- - **Category:** hero
6
- - **Media:** paired before/after photos
7
- - **Registers:** trade
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
- | `before` | `<img class="before-after__before">` (same crop as after) |
18
- | `after` | `<img class="before-after__after">` |
19
- | `caption` | Optional one-line caption under the slider |
20
-
21
- ## Example
22
-
23
- ```html
24
- <hero-before-after>
25
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Exterior painting · Cape Elizabeth</p>
26
- <h1>Drag to see what a weekend with us looks like.</h1>
27
- <p class="lede lede--lg">Prep is 70% of the job. We scrape, prime, and caulk before a drop of color goes on — that's why our finishes last.</p>
28
- <a slot="actions" class="btn btn-lg" href="/contact">Get a free estimate</a>
29
- <a slot="actions" class="btn-outline btn-lg" href="/work">See our work</a>
30
- <img src="/media/harvest/house-before.jpg" alt="Weathered gray siding before painting" width="1600" height="1000" slot="before" class="before-after__before" fetchpriority="high">
31
- <img src="/media/harvest/house-after.jpg" alt="Same house freshly painted in warm white" width="1600" height="1000" slot="after" class="before-after__after">
32
- <span slot="caption">Ocean House Rd · completed in 3 days</span>
33
- </hero-before-after>
34
- ```
35
-
36
- Variants: `<hero-before-after variant="reverse">`.
37
-
38
- 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,8 +0,0 @@
1
- .c-hero-before-after__copy{display:grid;gap:var(--space-5);align-content:center}
2
- .c-hero-before-after__copy h1{max-width:18ch}
3
- .c-hero-before-after__copy .btn-group{margin-top:var(--space-2)}
4
- .c-hero-before-after__figure{margin:0;display:grid;gap:var(--space-3)}
5
- .c-hero-before-after__figure .before-after{box-shadow:var(--shadow-2)}
6
- .c-hero-before-after__caption{font-size:var(--step-0);color:var(--color-muted);text-align:center}
7
- .c-hero-before-after__caption:empty{display:none}
8
- .c-hero-before-after--reverse .split > :first-child{order:2}
@@ -1,19 +0,0 @@
1
- <section class="c-hero-before-after section section--roomy">
2
- <div class="wrap split">
3
- <div class="c-hero-before-after__copy">
4
- <slot name="eyebrow"></slot>
5
- <slot></slot>
6
- <div class="btn-group"><slot name="actions"></slot></div>
7
- </div>
8
- <figure class="c-hero-before-after__figure">
9
- <div class="before-after" data-island="before-after">
10
- <slot name="before"></slot>
11
- <slot name="after"></slot>
12
- <span class="before-after__label before-after__label--before" aria-hidden="true">Before</span>
13
- <span class="before-after__label before-after__label--after" aria-hidden="true">After</span>
14
- <div class="before-after__handle" aria-hidden="true"></div>
15
- </div>
16
- <figcaption class="c-hero-before-after__caption"><slot name="caption"></slot></figcaption>
17
- </figure>
18
- </div>
19
- </section>