@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.
- package/README.md +6 -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,15 +0,0 @@
|
|
|
1
|
-
.c-services-panels__list{display:grid;gap:var(--space-3)}
|
|
2
|
-
.c-services-panels__list > *{min-height:14rem}
|
|
3
|
-
.c-services-panels__list .photo-card__body h3{font-size:var(--step-2)}
|
|
4
|
-
.c-services-panels__list .photo-card__body p{font-size:var(--step-0)}
|
|
5
|
-
@media(min-width:900px){
|
|
6
|
-
.c-services-panels__list{display:flex;min-height:30rem}
|
|
7
|
-
.c-services-panels__list > *{flex:1 1 0;min-width:0;min-height:0;transition:flex .5s cubic-bezier(.2,.7,.2,1)}
|
|
8
|
-
.c-services-panels__list > * .photo-card__body{justify-items:start}
|
|
9
|
-
.c-services-panels__list > * .photo-card__body h3{writing-mode:vertical-rl;transform:rotate(180deg);font-size:var(--step-1);white-space:nowrap;max-height:22rem;overflow:hidden;text-overflow:ellipsis}
|
|
10
|
-
.c-services-panels__list > * .photo-card__body p{display:none}
|
|
11
|
-
.c-services-panels__list:not(:hover):not(:focus-within) > :first-child,.c-services-panels__list > :hover,.c-services-panels__list > :focus-within{flex:3.2 1 0}
|
|
12
|
-
.c-services-panels__list:not(:hover):not(:focus-within) > :first-child .photo-card__body h3,.c-services-panels__list > :hover .photo-card__body h3,.c-services-panels__list > :focus-within .photo-card__body h3{writing-mode:horizontal-tb;transform:none;font-size:var(--step-2);white-space:normal;max-height:none}
|
|
13
|
-
.c-services-panels__list:not(:hover):not(:focus-within) > :first-child .photo-card__body p,.c-services-panels__list > :hover .photo-card__body p,.c-services-panels__list > :focus-within .photo-card__body p{display:block}
|
|
14
|
-
}
|
|
15
|
-
@media(prefers-reduced-motion:reduce){.c-services-panels__list > *{transition:none}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-services-panels section"><div class="wrap"><div class="section__head section__head--row"><div class="stack stack--tight"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="btn-group"><slot name="actions"></slot></div></div><div class="c-services-panels__list"><slot name="panels"></slot></div></div></section>
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# services-photo-grid
|
|
2
|
-
|
|
3
|
-
Photo tiles with the service name over a scrim; optional dark CTA tile.
|
|
4
|
-
|
|
5
|
-
- **Category:** services
|
|
6
|
-
- **Media:** one photo per service
|
|
7
|
-
- **Registers:** trade, professional, beauty
|
|
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">` (one sentence) |
|
|
17
|
-
| `actions` | Optional 1–2 buttons / `.btn-arrow` links |
|
|
18
|
-
| `tiles` | 3–8 `<a class="photo-card" href><img><div class="photo-card__body"><h3>…</h3><p>…</p></div></a>`; optionally one `<div class="card" data-scheme="dark">` CTA tile |
|
|
19
|
-
|
|
20
|
-
## Example
|
|
21
|
-
|
|
22
|
-
```html
|
|
23
|
-
<services-photo-grid>
|
|
24
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">What we do</p>
|
|
25
|
-
<h2 slot="heading">When we put our name on a case, we mean it.</h2>
|
|
26
|
-
<p slot="lede" class="lede">Five practice areas, one standard — honest, careful, and ours.</p>
|
|
27
|
-
<a slot="actions" class="btn-arrow" href="/services">All practice areas <svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a>
|
|
28
|
-
<a slot="tiles" class="photo-card" href="/services/business-law"><img src="/media/harvest/svc-1.jpg" alt="" width="1200" height="900" loading="lazy"><div class="photo-card__body"><h3>Business law</h3><p>Contracts, deals, and partnerships.</p></div></a>
|
|
29
|
-
<a slot="tiles" class="photo-card" href="/services/disputes"><img src="/media/harvest/svc-2.jpg" alt="" width="1200" height="900" loading="lazy"><div class="photo-card__body"><h3>Lawsuits & disputes</h3><p>From first filing to final ruling.</p></div></a>
|
|
30
|
-
<a slot="tiles" class="photo-card" href="/services/compliance"><img src="/media/harvest/svc-3.jpg" alt="" width="1200" height="900" loading="lazy"><div class="photo-card__body"><h3>Compliance & rules</h3><p>Steady guidance with regulators.</p></div></a>
|
|
31
|
-
<a slot="tiles" class="photo-card" href="/services/ip"><img src="/media/harvest/svc-4.jpg" alt="" width="1200" height="900" loading="lazy"><div class="photo-card__body"><h3>Intellectual property</h3><p>Patents, secrets, and brands.</p></div></a>
|
|
32
|
-
<a slot="tiles" class="photo-card" href="/services/restructuring"><img src="/media/harvest/svc-5.jpg" alt="" width="1200" height="900" loading="lazy"><div class="photo-card__body"><h3>Restructuring & recovery</h3><p>Workouts and creditor protection.</p></div></a>
|
|
33
|
-
<div slot="tiles" class="card" data-scheme="dark"><div class="card__body"><h3>Meet the team behind the verdicts.</h3><a class="btn-arrow" href="/team">Our people <svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a></div></div>
|
|
34
|
-
</services-photo-grid>
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Variants: `<services-photo-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,10 +0,0 @@
|
|
|
1
|
-
.c-services-photo-grid__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
|
|
2
|
-
.c-services-photo-grid__grid > *{aspect-ratio:4/3;min-height:0}
|
|
3
|
-
.c-services-photo-grid__grid .photo-card__body h3{font-size:var(--step-2)}
|
|
4
|
-
.c-services-photo-grid__grid .photo-card__body p{font-size:var(--step-0)}
|
|
5
|
-
.c-services-photo-grid__grid .card{justify-content:flex-end}
|
|
6
|
-
.c-services-photo-grid__grid .card .card__body{flex:0;padding:var(--space-5)}
|
|
7
|
-
.c-services-photo-grid__grid .card .card__body h3{font-size:var(--step-2)}
|
|
8
|
-
@media(max-width:719px){.c-services-photo-grid__grid .photo-card__body p{display:none}.c-services-photo-grid__grid .photo-card__body{padding:var(--space-4)}.c-services-photo-grid__grid .photo-card__body h3{font-size:var(--step-1)}}
|
|
9
|
-
@media(min-width:720px){.c-services-photo-grid__grid{gap:var(--space-4)}}
|
|
10
|
-
@media(min-width:1080px){.c-services-photo-grid__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.c-services-photo-grid--four .c-services-photo-grid__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-services-photo-grid section"><div class="wrap"><div class="section__head section__head--row"><div class="stack stack--tight"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="btn-group"><slot name="actions"></slot></div></div><div class="c-services-photo-grid__grid"><slot name="tiles"></slot></div></div></section>
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# services-priority
|
|
2
|
-
|
|
3
|
-
An unequal service index for a business with one primary offer and several supporting services. The featured service gets depth; the remaining rows stay easy to scan. Fictional Northline Counsel copy is used only for teaching.
|
|
4
|
-
|
|
5
|
-
- **Category:** services
|
|
6
|
-
- **Media:** none
|
|
7
|
-
- **Registers:** professional, trade, b2b
|
|
8
|
-
- **Variants:** (none)
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `eyebrow` | Optional section label |
|
|
15
|
-
| `heading` | `<h2>` explaining the service group |
|
|
16
|
-
| `intro` | Optional brief context paragraph |
|
|
17
|
-
| `featured` | One primary service article with action |
|
|
18
|
-
| `items` | Two to four secondary service articles |
|
|
19
|
-
|
|
20
|
-
## Example
|
|
21
|
-
|
|
22
|
-
```html
|
|
23
|
-
<services-priority>
|
|
24
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">How we help</p>
|
|
25
|
-
<h2 slot="heading">Start with the decision in front of you.</h2>
|
|
26
|
-
<p slot="intro" class="lede">The first conversation is about the choice you need to make, the documents you have, and the time available.</p>
|
|
27
|
-
<article slot="featured"><p class="eyebrow">Primary practice</p><h3>Planning for the people who depend on you.</h3><p>Make your wishes clear and give the people you trust a workable plan.</p><a class="btn" href="/services/planning">Explore planning</a></article>
|
|
28
|
-
<article slot="items"><h3>Probate guidance</h3><p>Understand the court process and what the estate needs next.</p><a class="btn-arrow" href="/services/probate">View service</a></article>
|
|
29
|
-
<article slot="items"><h3>Business transitions</h3><p>Prepare ownership, documents, and decisions before a handover.</p><a class="btn-arrow" href="/services/business">View service</a></article>
|
|
30
|
-
</services-priority>
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Only use the unequal hierarchy when the business has a genuinely primary offer. Reorder or redesign the section if the services are peers.
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
|
-
"id": "services/services-priority",
|
|
4
|
-
"revision": 1,
|
|
5
|
-
"status": "draft",
|
|
6
|
-
"owner": "Vitris design library",
|
|
7
|
-
"sourceHash": "538a84d99d4dc98cf0e725ccfba0749f71d254cabe70be9015354c017bc674a6",
|
|
8
|
-
"fit": {
|
|
9
|
-
"visitorJobs": [
|
|
10
|
-
"Compare primary and supporting services"
|
|
11
|
-
],
|
|
12
|
-
"pageRoles": [
|
|
13
|
-
"service index"
|
|
14
|
-
],
|
|
15
|
-
"useWhen": [
|
|
16
|
-
"Compare primary and supporting services"
|
|
17
|
-
],
|
|
18
|
-
"avoidWhen": [
|
|
19
|
-
"The content or media cannot support this composition"
|
|
20
|
-
]
|
|
21
|
-
},
|
|
22
|
-
"content": {
|
|
23
|
-
"requiredSlots": [
|
|
24
|
-
"heading",
|
|
25
|
-
"featured",
|
|
26
|
-
"items"
|
|
27
|
-
],
|
|
28
|
-
"optionalSlots": [
|
|
29
|
-
"eyebrow",
|
|
30
|
-
"intro"
|
|
31
|
-
],
|
|
32
|
-
"testedItemCounts": [
|
|
33
|
-
1
|
|
34
|
-
]
|
|
35
|
-
},
|
|
36
|
-
"media": {
|
|
37
|
-
"min": 0,
|
|
38
|
-
"max": 8,
|
|
39
|
-
"optionalBehavior": "Recompose without empty media frames when media is optional",
|
|
40
|
-
"aspect": [
|
|
41
|
-
"content-dependent"
|
|
42
|
-
]
|
|
43
|
-
},
|
|
44
|
-
"composition": {
|
|
45
|
-
"hierarchy": "one lead offer and supporting rows",
|
|
46
|
-
"alignment": "asymmetric",
|
|
47
|
-
"density": "medium",
|
|
48
|
-
"mediaProminence": "none",
|
|
49
|
-
"geometry": [
|
|
50
|
-
"priority",
|
|
51
|
-
"rows"
|
|
52
|
-
],
|
|
53
|
-
"boundary": "section boundary adapts to adjacent content"
|
|
54
|
-
},
|
|
55
|
-
"adaptation": {
|
|
56
|
-
"flexible": [
|
|
57
|
-
"spacing",
|
|
58
|
-
"surface treatment",
|
|
59
|
-
"type scale"
|
|
60
|
-
],
|
|
61
|
-
"invariants": [
|
|
62
|
-
"semantic reading order",
|
|
63
|
-
"one clear section purpose"
|
|
64
|
-
],
|
|
65
|
-
"customWhen": [
|
|
66
|
-
"The visitor job needs a different hierarchy"
|
|
67
|
-
]
|
|
68
|
-
},
|
|
69
|
-
"responsive": {
|
|
70
|
-
"readingOrder": "DOM order follows the visitor narrative",
|
|
71
|
-
"reflow": "Stack or resize according to content",
|
|
72
|
-
"crop": "Keep important subjects visible"
|
|
73
|
-
},
|
|
74
|
-
"interaction": {
|
|
75
|
-
"behavior": "Native links and controls",
|
|
76
|
-
"islands": []
|
|
77
|
-
},
|
|
78
|
-
"evidence": {
|
|
79
|
-
"provenance": [
|
|
80
|
-
"Original Vitris block source"
|
|
81
|
-
],
|
|
82
|
-
"testedContexts": [],
|
|
83
|
-
"accessibility": [],
|
|
84
|
-
"previewManifest": "../../../design-system/block-previews/v1/services--services-priority.json"
|
|
85
|
-
}
|
|
86
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
.c-services-priority{overflow-wrap:anywhere}
|
|
2
|
-
.c-services-priority__head{display:grid;gap:var(--space-4);margin-bottom:var(--space-7)}
|
|
3
|
-
.c-services-priority__head h2{max-width:15ch}
|
|
4
|
-
.c-services-priority__head > p{max-width:52ch;color:var(--color-muted)}
|
|
5
|
-
.c-services-priority__layout{display:grid;gap:var(--space-5)}
|
|
6
|
-
.c-services-priority__featured{padding:var(--space-6);background:var(--color-surface-2);display:grid;align-content:space-between;min-height:24rem;min-width:0}
|
|
7
|
-
.c-services-priority__featured > article{display:grid;gap:var(--space-4);align-content:start}
|
|
8
|
-
.c-services-priority__featured h3{font-size:var(--step-3);max-width:16ch}
|
|
9
|
-
.c-services-priority__featured p{max-width:48ch}
|
|
10
|
-
.c-services-priority__others{border-top:1px solid var(--color-border);min-width:0}
|
|
11
|
-
.c-services-priority .btn,.c-services-priority .btn-outline{white-space:normal;text-align:center;max-width:100%}
|
|
12
|
-
.c-services-priority__others > article{display:grid;gap:var(--space-2);padding:var(--space-4) 0;border-bottom:1px solid var(--color-border)}
|
|
13
|
-
.c-services-priority__others h3{font-size:var(--step-1)}
|
|
14
|
-
.c-services-priority__others p{color:var(--color-muted);margin:0}
|
|
15
|
-
.c-services-priority__others a{justify-self:start}
|
|
16
|
-
@media(min-width:850px){.c-services-priority__head{grid-template-columns:minmax(0,1fr) minmax(18rem,.75fr);align-items:end}.c-services-priority__layout{grid-template-columns:minmax(0,1.25fr) minmax(18rem,.75fr);gap:var(--space-8)}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-services-priority section"><div class="wrap"><div class="c-services-priority__head"><div><slot name="eyebrow"></slot><slot name="heading"></slot></div><slot name="intro"></slot></div><div class="c-services-priority__layout"><div class="c-services-priority__featured"><slot name="featured"></slot></div><div class="c-services-priority__others"><slot name="items"></slot></div></div></div></section>
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# stats-cards
|
|
2
|
-
|
|
3
|
-
Metric cards with labels.
|
|
4
|
-
|
|
5
|
-
- **Category:** stats
|
|
6
|
-
- **Media:** none
|
|
7
|
-
- **Registers:** b2b, 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">` (one sentence) |
|
|
17
|
-
| `cards` | 3 `.card` items with a `.stat` and optional `<p>` detail |
|
|
18
|
-
|
|
19
|
-
## Example
|
|
20
|
-
|
|
21
|
-
```html
|
|
22
|
-
<stats-cards>
|
|
23
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">By the numbers</p>
|
|
24
|
-
<h2 slot="heading">What a year of maintenance looks like</h2>
|
|
25
|
-
<div slot="cards" class="card"><div class="card__body"><div class="stat"><p class="stat__value" data-count-to="312">312</p><p class="stat__label">Units under contract</p></div><p>Across 41 buildings from Kittery to Brunswick.</p></div></div>
|
|
26
|
-
<div slot="cards" class="card"><div class="card__body"><div class="stat"><p class="stat__value" data-count-to="97" data-count-suffix="%">97%</p><p class="stat__label">Issues caught on a scheduled visit</p></div><p>Only 3% of last year's repairs were emergency calls.</p></div></div>
|
|
27
|
-
<div slot="cards" class="card"><div class="card__body"><div class="stat"><p class="stat__value">2.6h</p><p class="stat__label">Median emergency response</p></div><p>Against a 4-hour contractual promise.</p></div></div>
|
|
28
|
-
</stats-cards>
|
|
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,4 +0,0 @@
|
|
|
1
|
-
.c-stats-cards__grid .card{background:var(--color-surface-2);border-color:transparent}
|
|
2
|
-
.c-stats-cards__grid .card__body{padding:var(--space-6);gap:var(--space-4)}
|
|
3
|
-
.c-stats-cards__grid .stat__value{font-size:var(--step-5)}
|
|
4
|
-
.c-stats-cards__grid .card__body > p{font-size:var(--step-0)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-stats-cards section" data-island="counter"><div class="wrap"><div class="section__head"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="grid grid--3 c-stats-cards__grid"><slot name="cards"></slot></div></div></section>
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# stats-mosaic
|
|
2
|
-
|
|
3
|
-
Dark stat tiles alternating with photos in one band.
|
|
4
|
-
|
|
5
|
-
- **Category:** stats
|
|
6
|
-
- **Media:** 2 photos
|
|
7
|
-
- **Registers:** professional, b2b, trade
|
|
8
|
-
- **Variants:** (none)
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `tiles` | 4 tiles alternating `<div class="stat" data-scheme="dark"><p class="eyebrow">Label</p><p class="stat__value">200+</p><p>Sentence.</p></div>` and `<div class="frame"><img></div>` |
|
|
15
|
-
|
|
16
|
-
## Example
|
|
17
|
-
|
|
18
|
-
```html
|
|
19
|
-
<stats-mosaic>
|
|
20
|
-
<div slot="tiles" class="stat" data-scheme="dark"><p class="eyebrow">Cases</p><p class="stat__value">200+</p><p>Cases successfully resolved — showing the steady results we deliver.</p></div>
|
|
21
|
-
<div slot="tiles" class="frame"><img src="/media/harvest/mosaic-1.jpg" alt="Partners reviewing a brief" width="900" height="900" loading="lazy"></div>
|
|
22
|
-
<div slot="tiles" class="stat" data-scheme="dark"><p class="eyebrow">Clients</p><p class="stat__value">100+</p><p>Clients served with personal attention, clear advice, and dedicated support.</p></div>
|
|
23
|
-
<div slot="tiles" class="frame"><img src="/media/harvest/mosaic-2.jpg" alt="Lawyers walking through the office" width="900" height="900" loading="lazy"></div>
|
|
24
|
-
</stats-mosaic>
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
.c-stats-mosaic__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
|
|
2
|
-
.c-stats-mosaic__grid > *{min-height:15rem}
|
|
3
|
-
.c-stats-mosaic__grid > .stat{padding:var(--space-6);border-radius:var(--radius-lg);align-content:space-between;gap:var(--space-4)}
|
|
4
|
-
.c-stats-mosaic__grid > .stat .eyebrow{color:var(--color-muted)}
|
|
5
|
-
.c-stats-mosaic__grid > .stat .stat__value{font-size:var(--step-5)}
|
|
6
|
-
.c-stats-mosaic__grid > .stat > p:last-child{margin:0;color:var(--color-muted);font-size:var(--step-0);max-width:16rem}
|
|
7
|
-
.c-stats-mosaic__grid > .frame{box-shadow:none}
|
|
8
|
-
.c-stats-mosaic__grid > .frame img{width:100%;height:100%;object-fit:cover}
|
|
9
|
-
@media(min-width:900px){.c-stats-mosaic__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}.c-stats-mosaic__grid > *{min-height:17rem}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-stats-mosaic section--tight"><div class="wrap c-stats-mosaic__grid"><slot name="tiles"></slot></div></section>
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# stats-row
|
|
2
|
-
|
|
3
|
-
Inline four metrics.
|
|
4
|
-
|
|
5
|
-
- **Category:** stats
|
|
6
|
-
- **Media:** none
|
|
7
|
-
- **Registers:** trade, b2b, professional
|
|
8
|
-
- **Variants:** dark
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `stats` | 3–4 `.stat` blocks (`data-count-to` optional) |
|
|
15
|
-
|
|
16
|
-
## Example
|
|
17
|
-
|
|
18
|
-
```html
|
|
19
|
-
<stats-row>
|
|
20
|
-
<div slot="stats" class="stat"><p class="stat__value" data-count-to="1200" data-count-suffix="+">1200+</p><p class="stat__label">Roofs replaced</p></div>
|
|
21
|
-
<div slot="stats" class="stat"><p class="stat__value" data-count-to="15">15</p><p class="stat__label">Years in Portland</p></div>
|
|
22
|
-
<div slot="stats" class="stat"><p class="stat__value">4.9</p><p class="stat__label">Average rating</p></div>
|
|
23
|
-
<div slot="stats" class="stat"><p class="stat__value" data-count-to="48" data-count-suffix="h">48h</p><p class="stat__label">Estimate turnaround</p></div>
|
|
24
|
-
</stats-row>
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Variants: `<stats-row variant="dark">`.
|
|
28
|
-
|
|
29
|
-
Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
.c-stats-row{border-block:1px solid var(--color-border)}
|
|
2
|
-
.c-stats-row__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}
|
|
3
|
-
.c-stats-row__row .stat{text-align:center;justify-items:center}
|
|
4
|
-
@media(min-width:720px){
|
|
5
|
-
.c-stats-row__row{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr))}
|
|
6
|
-
.c-stats-row__row .stat + .stat{border-left:1px solid var(--color-border)}
|
|
7
|
-
}
|
|
8
|
-
.c-stats-row--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);border-block-color:transparent;padding-block:var(--space-7)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-stats-row section--tight" data-island="counter"><div class="wrap c-stats-row__row"><slot name="stats"></slot></div></section>
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# stats-split
|
|
2
|
-
|
|
3
|
-
Stat cluster beside copy.
|
|
4
|
-
|
|
5
|
-
- **Category:** stats
|
|
6
|
-
- **Media:** optional media
|
|
7
|
-
- **Registers:** professional, 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">` (one sentence) |
|
|
17
|
-
| `actions` | Optional button |
|
|
18
|
-
| `stats` | 4 `.stat` blocks (rendered as a 2×2 grid) |
|
|
19
|
-
|
|
20
|
-
## Example
|
|
21
|
-
|
|
22
|
-
```html
|
|
23
|
-
<stats-split>
|
|
24
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">Track record</p>
|
|
25
|
-
<h2 slot="heading">Numbers our clients check before they call</h2>
|
|
26
|
-
<p slot="lede" class="lede">Every figure here is from the last twelve months and updates quarterly.</p>
|
|
27
|
-
<a slot="actions" class="btn" href="/contact">Talk to us</a>
|
|
28
|
-
<div slot="stats" class="stat"><p class="stat__value" data-count-to="214">214</p><p class="stat__label">Estates administered</p></div>
|
|
29
|
-
<div slot="stats" class="stat"><p class="stat__value" data-count-to="11">11</p><p class="stat__label">Days median to first filing</p></div>
|
|
30
|
-
<div slot="stats" class="stat"><p class="stat__value">$0</p><p class="stat__label">Surprise fees, ever</p></div>
|
|
31
|
-
<div slot="stats" class="stat"><p class="stat__value">4.9</p><p class="stat__label">Client rating</p></div>
|
|
32
|
-
</stats-split>
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
.c-stats-split__copy .section__head{margin-bottom:var(--space-5)}
|
|
2
|
-
.c-stats-split__grid{--gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr))}
|
|
3
|
-
.c-stats-split__grid .stat{padding:var(--space-5);background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-stats-split section section--muted" data-island="counter"><div class="wrap split"><div class="c-stats-split__copy"><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="grid grid--2 c-stats-split__grid"><slot name="stats"></slot></div></div></section>
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# team-featured
|
|
2
|
-
|
|
3
|
-
Featured person + roster.
|
|
4
|
-
|
|
5
|
-
- **Category:** team
|
|
6
|
-
- **Media:** portraits
|
|
7
|
-
- **Registers:** professional, beauty
|
|
8
|
-
- **Variants:** reverse
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `media` | Featured portrait `<img>` (3:4) |
|
|
15
|
-
| `lead` | `<h3>` name, `<p class="c-team-role">`, 1–2 `<p>` bio |
|
|
16
|
-
| `eyebrow` | Optional `<p class="eyebrow">` |
|
|
17
|
-
| `heading` | `<h2>` |
|
|
18
|
-
| `lede` | Optional `<p class="lede">` |
|
|
19
|
-
| `people` | 2 or 4 compact `.card` people (portrait, `<h3>`, `<p class="c-team-role">`) |
|
|
20
|
-
|
|
21
|
-
## Example
|
|
22
|
-
|
|
23
|
-
```html
|
|
24
|
-
<team-featured>
|
|
25
|
-
<img src="/media/harvest/team-elena.jpg" alt="Dr. Elena Marsh" width="900" height="1200" slot="media" loading="lazy">
|
|
26
|
-
<h3 slot="lead">Dr. Elena Marsh, DDS</h3>
|
|
27
|
-
<p slot="lead" class="c-team-role">Owner & general dentist</p>
|
|
28
|
-
<p slot="lead">Elena bought the practice in 2016 after eight years in a hospital dental clinic. She's known for talking through every step and for a very steady hand.</p>
|
|
29
|
-
<p slot="lead">Tufts DMD · Maine Dental Association · Invisalign certified</p>
|
|
30
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">Our team</p>
|
|
31
|
-
<h2 slot="heading">Small on purpose</h2>
|
|
32
|
-
<p slot="lede" class="lede">Four people who know your name and your history.</p>
|
|
33
|
-
<div slot="people" class="card"><div class="card__media ratio-3x4"><img src="/media/harvest/team-nick.jpg" alt="Nick Alvarez" width="900" height="1200" loading="lazy"></div><div class="card__body"><h3>Nick Alvarez</h3><p class="c-team-role">Hygienist</p></div></div>
|
|
34
|
-
<div slot="people" class="card"><div class="card__media ratio-3x4"><img src="/media/harvest/team-june.jpg" alt="June Park" width="900" height="1200" loading="lazy"></div><div class="card__body"><h3>June Park</h3><p class="c-team-role">Hygienist</p></div></div>
|
|
35
|
-
<div slot="people" class="card"><div class="card__media ratio-3x4"><img src="/media/harvest/team-rob.jpg" alt="Rob Feeney" width="900" height="1200" loading="lazy"></div><div class="card__body"><h3>Rob Feeney</h3><p class="c-team-role">Dental assistant</p></div></div>
|
|
36
|
-
<div slot="people" class="card"><div class="card__media ratio-3x4"><img src="/media/harvest/team-tess.jpg" alt="Tess Morrow" width="900" height="1200" loading="lazy"></div><div class="card__body"><h3>Tess Morrow</h3><p class="c-team-role">Front desk & billing</p></div></div>
|
|
37
|
-
</team-featured>
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
Variants: `<team-featured variant="reverse">`.
|
|
41
|
-
|
|
42
|
-
Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
.c-team-featured__grid{display:grid;gap:var(--space-7);align-items:start}
|
|
2
|
-
@media(min-width:900px){.c-team-featured__grid{grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:var(--space-8)}.c-team-featured--reverse .c-team-featured__lead{order:2}}
|
|
3
|
-
.c-team-featured__lead .card__body{padding:var(--space-5);gap:var(--space-2)}
|
|
4
|
-
.c-team-featured__lead .card__body > h3{font-size:var(--step-2)}
|
|
5
|
-
.c-team-featured__lead .card__body > p:not(.c-team-role){margin-top:var(--space-2)}
|
|
6
|
-
.c-team-featured .c-team-role{color:var(--color-accent);font-weight:600;font-size:var(--step-0)}
|
|
7
|
-
.c-team-featured__people{grid-template-columns:repeat(2,minmax(0,1fr));--gap:var(--space-4)}
|
|
8
|
-
.c-team-featured__people .card__body{padding:var(--space-4);gap:var(--space-1)}
|
|
9
|
-
.c-team-featured__people .card__body > h3{font-size:var(--step-1)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-team-featured section section--muted"><div class="wrap c-team-featured__grid"><div class="card c-team-featured__lead"><div class="card__media ratio-3x4"><slot name="media"></slot></div><div class="card__body"><slot name="lead"></slot></div></div><div class="c-team-featured__rest"><div class="section__head"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="grid grid--2 c-team-featured__people"><slot name="people"></slot></div></div></div></section>
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# team-grid
|
|
2
|
-
|
|
3
|
-
Portrait grid of people.
|
|
4
|
-
|
|
5
|
-
- **Category:** team
|
|
6
|
-
- **Media:** portraits
|
|
7
|
-
- **Registers:** professional, beauty, b2b, trade
|
|
8
|
-
- **Variants:** three
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `eyebrow` | Optional `<p class="eyebrow">` |
|
|
15
|
-
| `heading` | `<h2>` |
|
|
16
|
-
| `lede` | Optional `<p class="lede">` |
|
|
17
|
-
| `people` | 4 or 8 `.card` items: `.card__media.ratio-3x4` portrait, `<h3>` name, `<p class="c-team-role">`, optional one-line `<p>` |
|
|
18
|
-
|
|
19
|
-
## Example
|
|
20
|
-
|
|
21
|
-
```html
|
|
22
|
-
<team-grid>
|
|
23
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">The crew</p>
|
|
24
|
-
<h2 slot="heading">Eight people. Zero subcontractors.</h2>
|
|
25
|
-
<p slot="lede" class="lede">Everyone on your roof is on our payroll, trained by us, and insured by us.</p>
|
|
26
|
-
<div slot="people" class="card"><div class="card__media ratio-3x4"><img src="/media/harvest/team-mike.jpg" alt="Mike Harbor" width="900" height="1200" loading="lazy"></div><div class="card__body"><h3>Mike Harbor</h3><p class="c-team-role">Founder & lead estimator</p><p>Started roofing in 1998; still climbs every roof he quotes.</p></div></div>
|
|
27
|
-
<div slot="people" class="card"><div class="card__media ratio-3x4"><img src="/media/harvest/team-ana.jpg" alt="Ana Reyes" width="900" height="1200" loading="lazy"></div><div class="card__body"><h3>Ana Reyes</h3><p class="c-team-role">Foreman</p><p>Runs the install crew. Twelve years, four hundred roofs.</p></div></div>
|
|
28
|
-
<div slot="people" class="card"><div class="card__media ratio-3x4"><img src="/media/harvest/team-devon.jpg" alt="Devon Blake" width="900" height="1200" loading="lazy"></div><div class="card__body"><h3>Devon Blake</h3><p class="c-team-role">Foreman</p><p>Metal and cedar specialist. Ex-shipwright.</p></div></div>
|
|
29
|
-
<div slot="people" class="card"><div class="card__media ratio-3x4"><img src="/media/harvest/team-sarah.jpg" alt="Sarah Lin" width="900" height="1200" loading="lazy"></div><div class="card__body"><h3>Sarah Lin</h3><p class="c-team-role">Office & scheduling</p><p>The voice on the phone. Returns every call the same day.</p></div></div>
|
|
30
|
-
</team-grid>
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Variants: `<team-grid variant="three">`.
|
|
34
|
-
|
|
35
|
-
Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
.c-team-grid__grid{grid-template-columns:repeat(2,minmax(0,1fr));--gap:var(--space-4)}
|
|
2
|
-
@media(min-width:720px){.c-team-grid__grid{--gap:var(--space-5)}}
|
|
3
|
-
@media(min-width:1080px){.c-team-grid__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
|
|
4
|
-
.c-team-grid__grid .card__body{padding:var(--space-4) var(--space-4) var(--space-5);gap:var(--space-1)}
|
|
5
|
-
.c-team-grid__grid .card__body > h3{font-size:var(--step-1)}
|
|
6
|
-
.c-team-grid__grid .c-team-role{font-size:var(--step-0);color:var(--color-accent);font-weight:600}
|
|
7
|
-
.c-team-grid__grid .card__body > p:not(.c-team-role){font-size:var(--step-0);margin-top:var(--space-2)}
|
|
8
|
-
@media(min-width:1080px){.c-team-grid--three .c-team-grid__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-team-grid section"><div class="wrap"><div class="section__head"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="grid grid--4 c-team-grid__grid"><slot name="people"></slot></div></div></section>
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# team-list
|
|
2
|
-
|
|
3
|
-
Compact name/role list.
|
|
4
|
-
|
|
5
|
-
- **Category:** team
|
|
6
|
-
- **Media:** optional avatars
|
|
7
|
-
- **Registers:** professional, b2b
|
|
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
|
-
| `people` | 4–10 `<li>`: `<img class="avatar">`, a `<div>` with `<strong>` name + `<span>` role, optional trailing `<a>` (email/LinkedIn) |
|
|
18
|
-
|
|
19
|
-
## Example
|
|
20
|
-
|
|
21
|
-
```html
|
|
22
|
-
<team-list>
|
|
23
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">People</p>
|
|
24
|
-
<h2 slot="heading">Who you'll work with</h2>
|
|
25
|
-
<li slot="people"><img src="/media/harvest/avatar-1.jpg" alt="" width="96" height="96" class="avatar"><div><strong>Rachel Osei</strong><span>Partner · estates & trusts</span></div><a href="mailto:rachel@example.com">rachel@example.com</a></li>
|
|
26
|
-
<li slot="people"><img src="/media/harvest/avatar-2.jpg" alt="" width="96" height="96" class="avatar"><div><strong>Daniel Whitcomb</strong><span>Partner · probate & elder law</span></div><a href="mailto:daniel@example.com">daniel@example.com</a></li>
|
|
27
|
-
<li slot="people"><img src="/media/harvest/avatar-3.jpg" alt="" width="96" height="96" class="avatar"><div><strong>Maya Torres</strong><span>Paralegal</span></div><a href="mailto:maya@example.com">maya@example.com</a></li>
|
|
28
|
-
<li slot="people"><img src="/media/harvest/avatar-4.jpg" alt="" width="96" height="96" class="avatar"><div><strong>Ben Carver</strong><span>Client coordinator</span></div><a href="tel:+15550102000">(555) 010-2000</a></li>
|
|
29
|
-
</team-list>
|
|
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-team-list__rows{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--color-border);max-width:52rem}
|
|
2
|
-
.c-team-list__rows > *{display:flex;gap:var(--space-4);align-items:center;padding:var(--space-4) 0;border-bottom:1px solid var(--color-border)}
|
|
3
|
-
.c-team-list__rows > * > div{display:grid;flex:1}
|
|
4
|
-
.c-team-list__rows strong{font-weight:600}
|
|
5
|
-
.c-team-list__rows span{color:var(--color-muted);font-size:var(--step-0)}
|
|
6
|
-
.c-team-list__rows > * > a{color:var(--color-muted);font-size:var(--step-0);text-decoration:none}
|
|
7
|
-
.c-team-list__rows > * > a:hover{color:var(--color-text)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-team-list section"><div class="wrap"><div class="section__head"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><ul class="c-team-list__rows"><slot name="people"></slot></ul></div></section>
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# testimonial-carousel
|
|
2
|
-
|
|
3
|
-
Buttoned testimonial carousel.
|
|
4
|
-
|
|
5
|
-
- **Category:** testimonial
|
|
6
|
-
- **Media:** portraits
|
|
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
|
-
| `cards` | 4–8 testimonial `<figure class="card">` slides (same markup as testimonial-grid) |
|
|
18
|
-
|
|
19
|
-
## Example
|
|
20
|
-
|
|
21
|
-
```html
|
|
22
|
-
<testimonial-carousel>
|
|
23
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">What clients say</p>
|
|
24
|
-
<h2 slot="heading">Rated 4.9 across 212 reviews</h2>
|
|
25
|
-
<figure slot="cards" class="card"><blockquote class="card__body"><span class="rating" aria-label="5 out of 5 stars"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg></span><p class="quote quote--card">“Showed up when they said they would, finished a day early, and the yard was cleaner than when they started.”</p></blockquote><figcaption class="card__footer byline"><img src="/media/harvest/review-1.jpg" alt="" width="96" height="96" class="avatar"><div><strong>Jordan P.</strong><span>Deering Center</span></div></figcaption></figure>
|
|
26
|
-
<figure slot="cards" class="card"><blockquote class="card__body"><span class="rating" aria-label="5 out of 5 stars"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg></span><p class="quote quote--card">“The estimate had every line explained. The final invoice matched it to the dollar.”</p></blockquote><figcaption class="card__footer byline"><img src="/media/harvest/review-2.jpg" alt="" width="96" height="96" class="avatar"><div><strong>Dana K.</strong><span>South Portland</span></div></figcaption></figure>
|
|
27
|
-
<figure slot="cards" class="card"><blockquote class="card__body"><span class="rating" aria-label="5 out of 5 stars"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg></span><p class="quote quote--card">“Two other companies said replace. Harbor fixed the flashing for $600 and it hasn't leaked since.”</p></blockquote><figcaption class="card__footer byline"><img src="/media/harvest/review-3.jpg" alt="" width="96" height="96" class="avatar"><div><strong>Chris M.</strong><span>Cape Elizabeth</span></div></figcaption></figure>
|
|
28
|
-
<figure slot="cards" class="card"><blockquote class="card__body"><span class="rating" aria-label="5 out of 5 stars"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg></span><p class="quote quote--card">“Our property management company has used them on eleven buildings. Same crew, same quality, every time.”</p></blockquote><figcaption class="card__footer byline"><img src="/media/harvest/review-4.jpg" alt="" width="96" height="96" class="avatar"><div><strong>Priya S.</strong><span>Bayside Property Group</span></div></figcaption></figure>
|
|
29
|
-
</testimonial-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-testimonial-carousel .card blockquote{margin:0;gap:var(--space-4)}
|
|
2
|
-
.c-testimonial-carousel .card .quote{color:var(--color-text)}
|
|
3
|
-
.c-testimonial-carousel .card .card__footer{border-top:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface-2) 60%,transparent)}
|
|
4
|
-
.c-testimonial-carousel .card .rating .icon{width:1rem;height:1rem}
|
|
5
|
-
.c-testimonial-carousel__head{display:flex;align-items:end;justify-content:space-between;gap:var(--space-5)}
|
|
6
|
-
.c-testimonial-carousel__head .section__head,.c-testimonial-carousel__head .carousel__nav{margin-bottom:var(--space-6)}
|
|
7
|
-
.c-testimonial-carousel__carousel .carousel__track > *{flex-basis:min(88%,24rem);display:flex;flex-direction:column}
|