@tryvitris/website-harness 0.1.0-beta.6 → 0.1.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/agent/graph.yaml +0 -2
- package/agent/refs/components.md +5 -41
- package/agent/refs/compose.md +1 -1
- package/agent/refs/implement.md +2 -2
- package/agent/refs/jev.md +1 -1
- package/agent/refs/layout.md +1 -1
- package/agent/refs/storyboard.md +1 -1
- package/agent/refs/template-adaptation.md +1 -1
- package/bin/api/agent/evaluate.js +10 -15
- package/bin/api/agent/grade.js +10 -15
- package/bin/api/cli/api.js +18 -23
- package/bin/api/cli.js +20 -25
- package/bin/api/engine.js +11 -16
- package/bin/api/hosting.js +12 -17
- package/bin/api/index.js +2 -3
- package/bin/api/references.js +1 -2
- package/bin/api/render.js +2 -4
- package/bin/chunks/{chunk-4GZCAWWK.js → chunk-4MFPATAB.js} +2 -4
- package/bin/chunks/{chunk-5OOPJNGN.js → chunk-5JTBC6UK.js} +1 -4
- package/bin/chunks/{chunk-Z2UNY47A.js → chunk-5YSPWKFF.js} +1 -1
- package/bin/chunks/{chunk-FYN4T4SV.js → chunk-7V3OKLKH.js} +15 -26
- package/bin/chunks/{chunk-3CTBXY5K.js → chunk-FRABKM65.js} +1936 -1899
- package/bin/chunks/{chunk-4DM5TTLG.js → chunk-H7Y72HXC.js} +5 -5
- package/bin/chunks/{chunk-R7YELY3C.js → chunk-HL6JVA4A.js} +100 -81
- package/bin/chunks/{chunk-54JC5L35.js → chunk-O55LAQ2C.js} +3 -5
- package/bin/chunks/{chunk-VH7PM7KJ.js → chunk-P56ZDMX7.js} +4 -6
- package/bin/chunks/{chunk-7VLBEAFW.js → chunk-PGFFKPK6.js} +2 -2
- package/bin/chunks/{chunk-YQYHROLZ.js → chunk-QRWGFLUU.js} +2 -2
- package/bin/chunks/{chunk-CBEJZO4L.js → chunk-TTAUU3AZ.js} +2 -2
- package/bin/chunks/{chunk-E5Y46VBX.js → chunk-VTI32UGJ.js} +200 -103
- package/bin/chunks/{chunk-DRJQ4OOU.js → chunk-WOORR67N.js} +0 -45
- package/bin/chunks/{chunk-B5I45LFD.js → chunk-YZWEXHT4.js} +11 -13
- package/bin/chunks/{chunk-YCVGD2CG.js → chunk-ZIROO2U4.js} +1204 -1176
- package/bin/chunks/{chunk-42IXFXUD.js → chunk-ZWFG4GPG.js} +11 -15
- package/bin/chunks/{design-context-store-IAT2P2OC.js → design-context-store-DCZOAK56.js} +10 -15
- package/bin/chunks/{packets-VBMY4SQJ.js → packets-QOLWPRNV.js} +10 -15
- package/bin/chunks/{policy-2I37JUU3.js → policy-MP2JZXI3.js} +1 -1
- package/bin/chunks/{preparation-S4MG3RPL.js → preparation-T2IOD5SJ.js} +10 -15
- package/bin/chunks/{questions-HKELBDFL.js → questions-XK545GCX.js} +1 -11
- package/bin/types/src/agent/composition-authoring.d.ts +2 -2
- package/bin/types/src/agent/jev/calibration.d.ts +2 -2
- package/bin/types/src/agent/jev/config.d.ts +1 -1
- package/bin/types/src/agent/jev/questions.d.ts +0 -10
- package/bin/types/src/agent/jev/types.d.ts +0 -2
- package/bin/types/src/agent/site-inputs.d.ts +9 -1
- package/bin/types/src/agent/template-catalog.d.ts +20 -0
- package/bin/types/src/agent/theme-selection.d.ts +4 -2
- package/bin/types/src/build/archives.d.ts +2 -0
- package/bin/vitris-art.js +10 -15
- package/bin/vitris-build.js +3 -5
- package/bin/vitris-create-site.js +12 -17
- package/bin/vitris-cursor-hook.js +10 -15
- package/bin/vitris-eval.js +12 -17
- package/bin/vitris-go.js +14 -19
- package/bin/vitris-harvest.js +11 -16
- package/bin/vitris-knowledge.js +11 -16
- package/bin/vitris-launch-preflight.js +11 -17
- package/bin/vitris-motion-view.js +13 -19
- package/bin/vitris-references.js +4 -7
- package/bin/vitris-refresh.js +11 -16
- package/bin/vitris-stock.js +1 -1
- package/bin/vitris-themes.js +10 -15
- package/bin/vitris-upgrade.js +11 -16
- package/bin/vitris-verify-browser.js +43 -8
- package/bin/vitris-verify-performance.js +3 -5
- package/bin/vitris.js +20 -25
- package/design-system/MASTER.md +2 -2
- package/docs/CLI.md +2 -1
- package/docs/DISTRIBUTION.md +1 -1
- package/package.json +2 -7
- package/templates/site/README.md +2 -0
- package/templates/site/gitignore +1 -0
- package/bin/chunks/chunk-6H3T46F5.js +0 -25
- package/bin/chunks/chunk-ANMJRJQ5.js +0 -31
- package/bin/chunks/chunk-FOXUQXTV.js +0 -278
- package/bin/chunks/chunk-HNORQ74T.js +0 -40
- package/bin/chunks/chunk-T7DGRVTP.js +0 -458
- package/bin/types/src/agent/jev/block-catalog.d.ts +0 -95
- package/bin/types/src/agent/jev/component-select.d.ts +0 -102
- package/bin/types/src/blocks/library-profile.d.ts +0 -9
- package/bin/types/src/blocks/metadata.d.ts +0 -65
- package/bin/vitris-blocks.js +0 -238
- package/blocks/CONVENTIONS.md +0 -121
- package/blocks/INDEX.md +0 -130
- package/blocks/about/about-awards/README.md +0 -36
- package/blocks/about/about-awards/styles.css +0 -13
- package/blocks/about/about-awards/template.html +0 -1
- package/blocks/about/about-credentials/README.md +0 -33
- package/blocks/about/about-credentials/block.meta.json +0 -85
- package/blocks/about/about-credentials/styles.css +0 -4
- package/blocks/about/about-credentials/template.html +0 -1
- package/blocks/about/about-founder/README.md +0 -35
- package/blocks/about/about-founder/styles.css +0 -9
- package/blocks/about/about-founder/template.html +0 -1
- package/blocks/about/about-mission/README.md +0 -31
- package/blocks/about/about-mission/styles.css +0 -5
- package/blocks/about/about-mission/template.html +0 -1
- package/blocks/about/about-statement/README.md +0 -28
- package/blocks/about/about-statement/styles.css +0 -7
- package/blocks/about/about-statement/template.html +0 -1
- package/blocks/about/about-story/README.md +0 -35
- package/blocks/about/about-story/styles.css +0 -5
- package/blocks/about/about-story/template.html +0 -1
- package/blocks/about/about-timeline/README.md +0 -33
- package/blocks/about/about-timeline/styles.css +0 -8
- package/blocks/about/about-timeline/template.html +0 -1
- package/blocks/about/about-values/README.md +0 -31
- package/blocks/about/about-values/styles.css +0 -3
- package/blocks/about/about-values/template.html +0 -1
- package/blocks/blog/blog-featured/README.md +0 -39
- package/blocks/blog/blog-featured/styles.css +0 -12
- package/blocks/blog/blog-featured/template.html +0 -1
- package/blocks/blog/blog-index/README.md +0 -34
- package/blocks/blog/blog-index/styles.css +0 -6
- package/blocks/blog/blog-index/template.html +0 -1
- package/blocks/blog/blog-post-header/README.md +0 -31
- package/blocks/blog/blog-post-header/styles.css +0 -8
- package/blocks/blog/blog-post-header/template.html +0 -1
- package/blocks/contact/contact-cards/README.md +0 -32
- package/blocks/contact/contact-cards/styles.css +0 -7
- package/blocks/contact/contact-cards/template.html +0 -1
- package/blocks/contact/contact-chips/README.md +0 -41
- package/blocks/contact/contact-chips/styles.css +0 -13
- package/blocks/contact/contact-chips/template.html +0 -1
- package/blocks/contact/contact-hours/README.md +0 -41
- package/blocks/contact/contact-hours/block.meta.json +0 -87
- package/blocks/contact/contact-hours/styles.css +0 -8
- package/blocks/contact/contact-hours/template.html +0 -1
- package/blocks/contact/contact-map/README.md +0 -39
- package/blocks/contact/contact-map/styles.css +0 -10
- package/blocks/contact/contact-map/template.html +0 -1
- package/blocks/contact/contact-offices/README.md +0 -32
- package/blocks/contact/contact-offices/styles.css +0 -8
- package/blocks/contact/contact-offices/template.html +0 -1
- package/blocks/contact/contact-phone-first/README.md +0 -33
- package/blocks/contact/contact-phone-first/block.meta.json +0 -86
- package/blocks/contact/contact-phone-first/styles.css +0 -11
- package/blocks/contact/contact-phone-first/template.html +0 -1
- package/blocks/contact/contact-split/README.md +0 -43
- package/blocks/contact/contact-split/styles.css +0 -12
- package/blocks/contact/contact-split/template.html +0 -1
- package/blocks/contact/contact-visit/README.md +0 -36
- package/blocks/contact/contact-visit/block.meta.json +0 -88
- package/blocks/contact/contact-visit/styles.css +0 -13
- package/blocks/contact/contact-visit/template.html +0 -1
- package/blocks/contact/service-areas/README.md +0 -32
- package/blocks/contact/service-areas/styles.css +0 -9
- package/blocks/contact/service-areas/template.html +0 -1
- package/blocks/content/glossary/README.md +0 -35
- package/blocks/content/glossary/styles.css +0 -6
- package/blocks/content/glossary/template.html +0 -1
- package/blocks/content/list-split/README.md +0 -33
- package/blocks/content/list-split/styles.css +0 -13
- package/blocks/content/list-split/template.html +0 -1
- package/blocks/content/prose-split/README.md +0 -32
- package/blocks/content/prose-split/styles.css +0 -12
- package/blocks/content/prose-split/template.html +0 -1
- package/blocks/content/specification-ledger/README.md +0 -32
- package/blocks/content/specification-ledger/block.meta.json +0 -85
- package/blocks/content/specification-ledger/styles.css +0 -10
- package/blocks/content/specification-ledger/template.html +0 -1
- package/blocks/cta/cta-band/README.md +0 -33
- package/blocks/cta/cta-band/styles.css +0 -11
- package/blocks/cta/cta-band/template.html +0 -1
- package/blocks/cta/cta-card/README.md +0 -35
- package/blocks/cta/cta-card/styles.css +0 -8
- package/blocks/cta/cta-card/template.html +0 -1
- package/blocks/cta/cta-floating-bar/README.md +0 -28
- package/blocks/cta/cta-floating-bar/styles.css +0 -8
- package/blocks/cta/cta-floating-bar/template.html +0 -1
- package/blocks/cta/cta-inline/README.md +0 -30
- package/blocks/cta/cta-inline/styles.css +0 -9
- package/blocks/cta/cta-inline/template.html +0 -1
- package/blocks/cta/cta-newsletter/README.md +0 -34
- package/blocks/cta/cta-newsletter/styles.css +0 -8
- package/blocks/cta/cta-newsletter/template.html +0 -1
- package/blocks/cta/cta-photo-fan/README.md +0 -36
- package/blocks/cta/cta-photo-fan/styles.css +0 -14
- package/blocks/cta/cta-photo-fan/template.html +0 -1
- package/blocks/cta/cta-split/README.md +0 -38
- package/blocks/cta/cta-split/styles.css +0 -10
- package/blocks/cta/cta-split/template.html +0 -1
- package/blocks/faq/faq-accordion/README.md +0 -36
- package/blocks/faq/faq-accordion/styles.css +0 -6
- package/blocks/faq/faq-accordion/template.html +0 -1
- package/blocks/faq/faq-grouped/README.md +0 -40
- package/blocks/faq/faq-grouped/styles.css +0 -20
- package/blocks/faq/faq-grouped/template.html +0 -1
- package/blocks/faq/faq-split/README.md +0 -37
- package/blocks/faq/faq-split/styles.css +0 -5
- package/blocks/faq/faq-split/template.html +0 -1
- package/blocks/faq/faq-tabs/README.md +0 -36
- package/blocks/faq/faq-tabs/styles.css +0 -3
- package/blocks/faq/faq-tabs/template.html +0 -1
- package/blocks/feature/feature-bento/README.md +0 -33
- package/blocks/feature/feature-bento/styles.css +0 -7
- package/blocks/feature/feature-bento/template.html +0 -1
- package/blocks/feature/feature-compare-table/README.md +0 -44
- package/blocks/feature/feature-compare-table/styles.css +0 -15
- package/blocks/feature/feature-compare-table/template.html +0 -1
- package/blocks/feature/feature-comparison/README.md +0 -34
- package/blocks/feature/feature-comparison/styles.css +0 -6
- package/blocks/feature/feature-comparison/template.html +0 -1
- package/blocks/feature/feature-grid-3/README.md +0 -34
- package/blocks/feature/feature-grid-3/styles.css +0 -8
- package/blocks/feature/feature-grid-3/template.html +0 -1
- package/blocks/feature/feature-icon-list/README.md +0 -39
- package/blocks/feature/feature-icon-list/styles.css +0 -9
- package/blocks/feature/feature-icon-list/template.html +0 -1
- package/blocks/feature/feature-spotlight/README.md +0 -39
- package/blocks/feature/feature-spotlight/styles.css +0 -5
- package/blocks/feature/feature-spotlight/template.html +0 -1
- package/blocks/feature/feature-stats-band/README.md +0 -33
- package/blocks/feature/feature-stats-band/styles.css +0 -8
- package/blocks/feature/feature-stats-band/template.html +0 -1
- package/blocks/feature/feature-tabs/README.md +0 -38
- package/blocks/feature/feature-tabs/styles.css +0 -7
- package/blocks/feature/feature-tabs/template.html +0 -1
- package/blocks/feature/feature-thumb-list/README.md +0 -38
- package/blocks/feature/feature-thumb-list/styles.css +0 -13
- package/blocks/feature/feature-thumb-list/template.html +0 -1
- package/blocks/feature/feature-zigzag/README.md +0 -31
- package/blocks/feature/feature-zigzag/styles.css +0 -6
- package/blocks/feature/feature-zigzag/template.html +0 -1
- package/blocks/footer/footer-columns/README.md +0 -39
- package/blocks/footer/footer-columns/styles.css +0 -16
- package/blocks/footer/footer-columns/template.html +0 -1
- package/blocks/footer/footer-compact/README.md +0 -33
- package/blocks/footer/footer-compact/styles.css +0 -12
- package/blocks/footer/footer-compact/template.html +0 -1
- package/blocks/footer/footer-cta/README.md +0 -37
- package/blocks/footer/footer-cta/styles.css +0 -18
- package/blocks/footer/footer-cta/template.html +0 -1
- package/blocks/footer/footer-social/README.md +0 -37
- package/blocks/footer/footer-social/styles.css +0 -17
- package/blocks/footer/footer-social/template.html +0 -1
- package/blocks/footer/footer-wordmark/README.md +0 -40
- package/blocks/footer/footer-wordmark/styles.css +0 -19
- package/blocks/footer/footer-wordmark/template.html +0 -1
- package/blocks/gallery/gallery-before-after/README.md +0 -31
- package/blocks/gallery/gallery-before-after/styles.css +0 -6
- package/blocks/gallery/gallery-before-after/template.html +0 -1
- package/blocks/gallery/gallery-carousel/README.md +0 -32
- package/blocks/gallery/gallery-carousel/styles.css +0 -7
- package/blocks/gallery/gallery-carousel/template.html +0 -1
- package/blocks/gallery/gallery-grid/README.md +0 -39
- package/blocks/gallery/gallery-grid/styles.css +0 -13
- package/blocks/gallery/gallery-grid/template.html +0 -1
- package/blocks/gallery/gallery-masonry/README.md +0 -33
- package/blocks/gallery/gallery-masonry/styles.css +0 -4
- package/blocks/gallery/gallery-masonry/template.html +0 -1
- package/blocks/gallery/gallery-mosaic-split/README.md +0 -40
- package/blocks/gallery/gallery-mosaic-split/styles.css +0 -15
- package/blocks/gallery/gallery-mosaic-split/template.html +0 -1
- package/blocks/hero/hero-asymmetric/README.md +0 -34
- package/blocks/hero/hero-asymmetric/styles.css +0 -13
- package/blocks/hero/hero-asymmetric/template.html +0 -10
- package/blocks/hero/hero-before-after/README.md +0 -38
- package/blocks/hero/hero-before-after/styles.css +0 -8
- package/blocks/hero/hero-before-after/template.html +0 -19
- package/blocks/hero/hero-editorial/README.md +0 -34
- package/blocks/hero/hero-editorial/block.meta.json +0 -85
- package/blocks/hero/hero-editorial/styles.css +0 -6
- package/blocks/hero/hero-editorial/template.html +0 -10
- package/blocks/hero/hero-evidence/README.md +0 -32
- package/blocks/hero/hero-evidence/block.meta.json +0 -85
- package/blocks/hero/hero-evidence/styles.css +0 -13
- package/blocks/hero/hero-evidence/template.html +0 -1
- package/blocks/hero/hero-form/README.md +0 -46
- package/blocks/hero/hero-form/styles.css +0 -11
- package/blocks/hero/hero-form/template.html +0 -15
- package/blocks/hero/hero-menu/README.md +0 -36
- package/blocks/hero/hero-menu/styles.css +0 -7
- package/blocks/hero/hero-menu/template.html +0 -10
- package/blocks/hero/hero-overlay/README.md +0 -35
- package/blocks/hero/hero-overlay/styles.css +0 -14
- package/blocks/hero/hero-overlay/template.html +0 -10
- package/blocks/hero/hero-page/README.md +0 -35
- package/blocks/hero/hero-page/styles.css +0 -19
- package/blocks/hero/hero-page/template.html +0 -1
- package/blocks/hero/hero-product/README.md +0 -41
- package/blocks/hero/hero-product/styles.css +0 -11
- package/blocks/hero/hero-product/template.html +0 -14
- package/blocks/hero/hero-service/README.md +0 -37
- package/blocks/hero/hero-service/block.meta.json +0 -85
- package/blocks/hero/hero-service/styles.css +0 -17
- package/blocks/hero/hero-service/template.html +0 -1
- package/blocks/hero/hero-split/README.md +0 -36
- package/blocks/hero/hero-split/styles.css +0 -7
- package/blocks/hero/hero-split/template.html +0 -11
- package/blocks/hero/hero-statement/README.md +0 -33
- package/blocks/hero/hero-statement/styles.css +0 -8
- package/blocks/hero/hero-statement/template.html +0 -1
- package/blocks/hero/hero-stats/README.md +0 -37
- package/blocks/hero/hero-stats/styles.css +0 -10
- package/blocks/hero/hero-stats/template.html +0 -10
- package/blocks/hero/hero-video-still/README.md +0 -36
- package/blocks/hero/hero-video-still/styles.css +0 -9
- package/blocks/hero/hero-video-still/template.html +0 -13
- package/blocks/icons.md +0 -44
- package/blocks/incentives/incentive-banner/README.md +0 -28
- package/blocks/incentives/incentive-banner/styles.css +0 -7
- package/blocks/incentives/incentive-banner/template.html +0 -1
- package/blocks/incentives/incentive-cards/README.md +0 -31
- package/blocks/incentives/incentive-cards/styles.css +0 -4
- package/blocks/incentives/incentive-cards/template.html +0 -1
- package/blocks/navbar/nav-announcement/README.md +0 -35
- package/blocks/navbar/nav-announcement/styles.css +0 -10
- package/blocks/navbar/nav-announcement/template.html +0 -14
- package/blocks/navbar/nav-centered/README.md +0 -35
- package/blocks/navbar/nav-centered/styles.css +0 -11
- package/blocks/navbar/nav-centered/template.html +0 -12
- package/blocks/navbar/nav-minimal/README.md +0 -29
- package/blocks/navbar/nav-minimal/styles.css +0 -5
- package/blocks/navbar/nav-minimal/template.html +0 -6
- package/blocks/navbar/nav-split/README.md +0 -34
- package/blocks/navbar/nav-split/styles.css +0 -11
- package/blocks/navbar/nav-split/template.html +0 -11
- package/blocks/navbar/nav-utility/README.md +0 -37
- package/blocks/navbar/nav-utility/styles.css +0 -17
- package/blocks/navbar/nav-utility/template.html +0 -12
- package/blocks/pricing/menu-featured/README.md +0 -34
- package/blocks/pricing/menu-featured/styles.css +0 -4
- package/blocks/pricing/menu-featured/template.html +0 -1
- package/blocks/pricing/menu-sections/README.md +0 -33
- package/blocks/pricing/menu-sections/styles.css +0 -9
- package/blocks/pricing/menu-sections/template.html +0 -1
- package/blocks/pricing/pricing-table/README.md +0 -40
- package/blocks/pricing/pricing-table/styles.css +0 -9
- package/blocks/pricing/pricing-table/template.html +0 -1
- package/blocks/pricing/pricing-tiers/README.md +0 -34
- package/blocks/pricing/pricing-tiers/styles.css +0 -7
- package/blocks/pricing/pricing-tiers/template.html +0 -1
- package/blocks/pricing/pricing-toggle/README.md +0 -34
- package/blocks/pricing/pricing-toggle/styles.css +0 -10
- package/blocks/pricing/pricing-toggle/template.html +0 -1
- package/blocks/process/process-carousel/README.md +0 -33
- package/blocks/process/process-carousel/styles.css +0 -5
- package/blocks/process/process-carousel/template.html +0 -1
- package/blocks/process/process-split/README.md +0 -35
- package/blocks/process/process-split/styles.css +0 -6
- package/blocks/process/process-split/template.html +0 -1
- package/blocks/process/process-stepper/README.md +0 -40
- package/blocks/process/process-stepper/styles.css +0 -11
- package/blocks/process/process-stepper/template.html +0 -1
- package/blocks/process/process-steps/README.md +0 -35
- package/blocks/process/process-steps/styles.css +0 -6
- package/blocks/process/process-steps/template.html +0 -1
- package/blocks/process/process-sticky/README.md +0 -38
- package/blocks/process/process-sticky/styles.css +0 -12
- package/blocks/process/process-sticky/template.html +0 -1
- package/blocks/process/process-timeline/README.md +0 -35
- package/blocks/process/process-timeline/styles.css +0 -10
- package/blocks/process/process-timeline/template.html +0 -1
- package/blocks/services/services-cards/README.md +0 -34
- package/blocks/services/services-cards/styles.css +0 -3
- package/blocks/services/services-cards/template.html +0 -1
- package/blocks/services/services-carousel/README.md +0 -34
- package/blocks/services/services-carousel/styles.css +0 -6
- package/blocks/services/services-carousel/template.html +0 -1
- package/blocks/services/services-list/README.md +0 -32
- package/blocks/services/services-list/block.meta.json +0 -85
- package/blocks/services/services-list/styles.css +0 -10
- package/blocks/services/services-list/template.html +0 -1
- package/blocks/services/services-menu/README.md +0 -39
- package/blocks/services/services-menu/styles.css +0 -6
- package/blocks/services/services-menu/template.html +0 -1
- package/blocks/services/services-packages/README.md +0 -34
- package/blocks/services/services-packages/styles.css +0 -6
- package/blocks/services/services-packages/template.html +0 -1
- package/blocks/services/services-panels/README.md +0 -36
- package/blocks/services/services-panels/styles.css +0 -15
- package/blocks/services/services-panels/template.html +0 -1
- package/blocks/services/services-photo-grid/README.md +0 -39
- package/blocks/services/services-photo-grid/styles.css +0 -10
- package/blocks/services/services-photo-grid/template.html +0 -1
- package/blocks/services/services-priority/README.md +0 -33
- package/blocks/services/services-priority/block.meta.json +0 -86
- package/blocks/services/services-priority/styles.css +0 -16
- package/blocks/services/services-priority/template.html +0 -1
- package/blocks/stats/stats-cards/README.md +0 -31
- package/blocks/stats/stats-cards/styles.css +0 -4
- package/blocks/stats/stats-cards/template.html +0 -1
- package/blocks/stats/stats-mosaic/README.md +0 -27
- package/blocks/stats/stats-mosaic/styles.css +0 -9
- package/blocks/stats/stats-mosaic/template.html +0 -1
- package/blocks/stats/stats-row/README.md +0 -29
- package/blocks/stats/stats-row/styles.css +0 -8
- package/blocks/stats/stats-row/template.html +0 -1
- package/blocks/stats/stats-split/README.md +0 -35
- package/blocks/stats/stats-split/styles.css +0 -3
- package/blocks/stats/stats-split/template.html +0 -1
- package/blocks/team/team-featured/README.md +0 -42
- package/blocks/team/team-featured/styles.css +0 -9
- package/blocks/team/team-featured/template.html +0 -1
- package/blocks/team/team-grid/README.md +0 -35
- package/blocks/team/team-grid/styles.css +0 -8
- package/blocks/team/team-grid/template.html +0 -1
- package/blocks/team/team-list/README.md +0 -32
- package/blocks/team/team-list/styles.css +0 -7
- package/blocks/team/team-list/template.html +0 -1
- package/blocks/testimonial/testimonial-carousel/README.md +0 -32
- package/blocks/testimonial/testimonial-carousel/styles.css +0 -7
- package/blocks/testimonial/testimonial-carousel/template.html +0 -1
- package/blocks/testimonial/testimonial-grid/README.md +0 -32
- package/blocks/testimonial/testimonial-grid/styles.css +0 -5
- package/blocks/testimonial/testimonial-grid/template.html +0 -1
- package/blocks/testimonial/testimonial-mosaic/README.md +0 -38
- package/blocks/testimonial/testimonial-mosaic/styles.css +0 -14
- package/blocks/testimonial/testimonial-mosaic/template.html +0 -1
- package/blocks/testimonial/testimonial-platform/README.md +0 -34
- package/blocks/testimonial/testimonial-platform/styles.css +0 -17
- package/blocks/testimonial/testimonial-platform/template.html +0 -1
- package/blocks/testimonial/testimonial-rating/README.md +0 -28
- package/blocks/testimonial/testimonial-rating/styles.css +0 -6
- package/blocks/testimonial/testimonial-rating/template.html +0 -1
- package/blocks/testimonial/testimonial-spotlight/README.md +0 -31
- package/blocks/testimonial/testimonial-spotlight/styles.css +0 -9
- package/blocks/testimonial/testimonial-spotlight/template.html +0 -1
- package/blocks/testimonial/testimonial-switcher/README.md +0 -39
- package/blocks/testimonial/testimonial-switcher/styles.css +0 -23
- package/blocks/testimonial/testimonial-switcher/template.html +0 -1
- package/blocks/testimonial/testimonial-wall/README.md +0 -34
- package/blocks/testimonial/testimonial-wall/styles.css +0 -7
- package/blocks/testimonial/testimonial-wall/template.html +0 -1
- package/blocks/trust-strip/trust-badges/README.md +0 -30
- package/blocks/trust-strip/trust-badges/styles.css +0 -5
- package/blocks/trust-strip/trust-badges/template.html +0 -1
- package/blocks/trust-strip/trust-certs/README.md +0 -31
- package/blocks/trust-strip/trust-certs/styles.css +0 -12
- package/blocks/trust-strip/trust-certs/template.html +0 -1
- package/blocks/trust-strip/trust-logos/README.md +0 -32
- package/blocks/trust-strip/trust-logos/styles.css +0 -5
- package/blocks/trust-strip/trust-logos/template.html +0 -1
- package/blocks/trust-strip/trust-quote/README.md +0 -29
- package/blocks/trust-strip/trust-quote/styles.css +0 -5
- package/blocks/trust-strip/trust-quote/template.html +0 -1
- package/blocks/trust-strip/trust-reviews/README.md +0 -35
- package/blocks/trust-strip/trust-reviews/styles.css +0 -9
- package/blocks/trust-strip/trust-reviews/template.html +0 -1
- package/blocks/work/case-alternating/README.md +0 -34
- package/blocks/work/case-alternating/block.meta.json +0 -86
- package/blocks/work/case-alternating/styles.css +0 -7
- package/blocks/work/case-alternating/template.html +0 -1
- package/blocks/work/case-carousel/README.md +0 -26
- package/blocks/work/case-carousel/styles.css +0 -7
- package/blocks/work/case-carousel/template.html +0 -1
- package/blocks/work/case-header/README.md +0 -38
- package/blocks/work/case-header/styles.css +0 -18
- package/blocks/work/case-header/template.html +0 -1
- package/blocks/work/project-evidence/README.md +0 -35
- package/blocks/work/project-evidence/block.meta.json +0 -87
- package/blocks/work/project-evidence/styles.css +0 -12
- package/blocks/work/project-evidence/template.html +0 -1
- package/blocks/work/project-grid/README.md +0 -38
- package/blocks/work/project-grid/styles.css +0 -9
- 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 & 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 & 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 & 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>
|