@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 +0,0 @@
|
|
|
1
|
-
<section class="c-testimonial-carousel section"><div class="wrap"><div class="c-testimonial-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-testimonial-carousel__carousel" data-island="carousel" tabindex="0"><div class="carousel__track"><slot name="cards"></slot></div></div></section>
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# testimonial-grid
|
|
2
|
-
|
|
3
|
-
Three testimonial cards.
|
|
4
|
-
|
|
5
|
-
- **Category:** testimonial
|
|
6
|
-
- **Media:** portraits optional
|
|
7
|
-
- **Registers:** all
|
|
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` | 3 or 6 `<figure class="card">`: `<blockquote class="card__body">` with `.rating` + `<p class="quote quote--card">`, then `<figcaption class="card__footer byline">` with avatar + name + context |
|
|
18
|
-
|
|
19
|
-
## Example
|
|
20
|
-
|
|
21
|
-
```html
|
|
22
|
-
<testimonial-grid>
|
|
23
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">Reviews</p>
|
|
24
|
-
<h2 slot="heading">Neighbors, not testimonials.</h2>
|
|
25
|
-
<p slot="lede" class="lede">Every review below is from a Portland-area homeowner we've worked for since 2020.</p>
|
|
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">“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 · full replacement</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">“The estimate had every line explained. The final invoice matched it to the dollar. That never happens.”</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 · repair + gutters</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">“Two other companies said replace. Harbor fixed the flashing for $600 and it hasn't leaked in three winters.”</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 · leak repair</span></div></figcaption></figure>
|
|
29
|
-
</testimonial-grid>
|
|
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,5 +0,0 @@
|
|
|
1
|
-
.c-testimonial-grid .card blockquote{margin:0;gap:var(--space-4)}
|
|
2
|
-
.c-testimonial-grid .card .quote{color:var(--color-text)}
|
|
3
|
-
.c-testimonial-grid .card .card__footer{border-top:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface-2) 60%,transparent)}
|
|
4
|
-
.c-testimonial-grid .card .rating .icon{width:1rem;height:1rem}
|
|
5
|
-
.c-testimonial-grid__grid{align-items:stretch}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-testimonial-grid section section--muted"><div class="wrap"><div class="section__head section__head--center"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="grid grid--3 c-testimonial-grid__grid"><slot name="cards"></slot></div></div></section>
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# testimonial-mosaic
|
|
2
|
-
|
|
3
|
-
Bento of quote cards, stat tiles, and portraits.
|
|
4
|
-
|
|
5
|
-
- **Category:** testimonial
|
|
6
|
-
- **Media:** 2–3 portraits
|
|
7
|
-
- **Registers:** professional, b2b, beauty
|
|
8
|
-
- **Variants:** (none)
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `eyebrow` | Optional `<p class="eyebrow">` |
|
|
15
|
-
| `heading` | `<h2>` |
|
|
16
|
-
| `lede` | Optional `<p class="lede">` (one sentence) |
|
|
17
|
-
| `tiles` | 6–9 tiles: `<figure class="card">` quotes (add `data-scheme="dark"` to one), `<div class="card card--flat"><div class="card__body stat">…</div></div>` stats, `<div class="frame"><img></div>` portraits; add `is-wide` / `is-tall` to span |
|
|
18
|
-
|
|
19
|
-
## Example
|
|
20
|
-
|
|
21
|
-
```html
|
|
22
|
-
<testimonial-mosaic>
|
|
23
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">Testimonials</p>
|
|
24
|
-
<h2 slot="heading">What our clients say.</h2>
|
|
25
|
-
<p slot="lede" class="lede">Most of our work stays private. With permission, these are some of the clients we've helped — in their own words.</p>
|
|
26
|
-
<figure slot="tiles" class="card is-wide"><blockquote class="card__body"><p class="quote quote--card">“Three other firms told us this would be a multi-year discovery slog. Verdict took it apart at the threshold. That is the difference.”</p></blockquote><figcaption class="card__footer byline"><img src="/media/harvest/avatar-5.jpg" alt="" width="96" height="96" class="avatar"><div><strong>Catherine Anderson</strong><span>General Counsel, Fortune 100 producer</span></div></figcaption></figure>
|
|
27
|
-
<div slot="tiles" class="frame"><img src="/media/harvest/portrait-1.jpg" alt="Client portrait" width="900" height="900" loading="lazy"></div>
|
|
28
|
-
<div slot="tiles" class="card card--flat"><div class="card__body stat"><p class="stat__value">$1.2B</p><p class="stat__label">Client money protected and recovered</p></div></div>
|
|
29
|
-
<div slot="tiles" class="card card--flat"><div class="card__body stat"><p class="stat__value">47</p><p class="stat__label">Trials won at verdict</p></div></div>
|
|
30
|
-
<figure slot="tiles" class="card is-wide" data-scheme="dark"><blockquote class="card__body"><p class="quote quote--card">“They were ready in two weeks. The other side needed two months, and it showed in court.”</p></blockquote><figcaption class="card__footer byline"><div><strong>Luis Escobar</strong><span>Founder, Meridian</span></div></figcaption></figure>
|
|
31
|
-
<div slot="tiles" class="frame"><img src="/media/harvest/portrait-2.jpg" alt="Client portrait" width="900" height="900" loading="lazy"></div>
|
|
32
|
-
<figure slot="tiles" class="card is-wide"><blockquote class="card__body"><p class="quote quote--card">“Honest from day one. They told us which fights were worth having and which weren't — and they were right every time.”</p></blockquote><figcaption class="card__footer byline"><img src="/media/harvest/avatar-6.jpg" alt="" width="96" height="96" class="avatar"><div><strong>Marco Delgado</strong><span>CEO, Delgado Foods</span></div></figcaption></figure>
|
|
33
|
-
<div slot="tiles" class="card card--flat"><div class="card__body stat"><p class="stat__value">100%</p><p class="stat__label">Partner-led from first call</p></div></div>
|
|
34
|
-
<figure slot="tiles" class="card"><blockquote class="card__body"><p class="quote quote--card">“The estimate was the invoice.”</p></blockquote><figcaption class="card__footer byline"><div><strong>Priya Raman</strong><span>Owner, Raman Dental</span></div></figcaption></figure>
|
|
35
|
-
</testimonial-mosaic>
|
|
36
|
-
```
|
|
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,14 +0,0 @@
|
|
|
1
|
-
.c-testimonial-mosaic__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(11rem,auto);grid-auto-flow:dense;gap:var(--space-3)}
|
|
2
|
-
.c-testimonial-mosaic__grid > .is-wide{grid-column:span 2}
|
|
3
|
-
.c-testimonial-mosaic__grid > .is-tall{grid-row:span 2}
|
|
4
|
-
.c-testimonial-mosaic__grid figure{margin:0}
|
|
5
|
-
.c-testimonial-mosaic__grid .card__body{align-content:space-between;padding:var(--space-5)}
|
|
6
|
-
.c-testimonial-mosaic__grid blockquote{margin:0}
|
|
7
|
-
.c-testimonial-mosaic__grid .quote--card{font-size:var(--step-0);line-height:1.55}
|
|
8
|
-
.c-testimonial-mosaic__grid .is-wide .quote--card{font-size:var(--step-1)}
|
|
9
|
-
.c-testimonial-mosaic__grid .card__footer{padding:var(--space-3) var(--space-5)}
|
|
10
|
-
.c-testimonial-mosaic__grid .byline strong,.c-testimonial-mosaic__grid .byline span{font-size:var(--step-0)}
|
|
11
|
-
.c-testimonial-mosaic__grid .stat .stat__value{font-size:var(--step-4)}
|
|
12
|
-
.c-testimonial-mosaic__grid .frame{box-shadow:none}
|
|
13
|
-
.c-testimonial-mosaic__grid .frame img{width:100%;height:100%;object-fit:cover}
|
|
14
|
-
@media(min-width:900px){.c-testimonial-mosaic__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-testimonial-mosaic section"><div class="wrap"><div class="section__head"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="c-testimonial-mosaic__grid"><slot name="tiles"></slot></div></div></section>
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# testimonial-platform
|
|
2
|
-
|
|
3
|
-
Review-platform card: big rating, three recent reviews, "write a review" link.
|
|
4
|
-
|
|
5
|
-
- **Category:** testimonial
|
|
6
|
-
- **Media:** small portraits
|
|
7
|
-
- **Registers:** trade, beauty, food
|
|
8
|
-
- **Variants:** dark
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `rating` | `<p class="stat__value">4.9</p>` |
|
|
15
|
-
| `summary` | `<p>` stars + review count + platform |
|
|
16
|
-
| `actions` | Optional 1–2 buttons / `.btn-arrow` links |
|
|
17
|
-
| `reviews` | 2–3 `<article class="card"><div class="card__body"><div class="byline">…</div>stars<p>…</p></div></article>` |
|
|
18
|
-
|
|
19
|
-
## Example
|
|
20
|
-
|
|
21
|
-
```html
|
|
22
|
-
<testimonial-platform>
|
|
23
|
-
<p slot="rating" class="stat__value">4.9</p>
|
|
24
|
-
<p slot="summary"><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> from 1,200+ Google reviews</p>
|
|
25
|
-
<a slot="actions" class="btn-outline" href="https://g.page/example/review" rel="noopener">Write a review</a>
|
|
26
|
-
<article slot="reviews" class="card"><div class="card__body"><div class="byline"><img src="/media/harvest/avatar-7.jpg" alt="" width="96" height="96" class="avatar"><div><strong>Karen Doyle</strong><span>2 weeks ago</span></div></div><span class="rating" aria-label="5 out of 5 stars"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg></span><p>Great service, highly recommend. The crew was on time both days and the yard was cleaner when they left.</p></div></article>
|
|
27
|
-
<article slot="reviews" class="card"><div class="card__body"><div class="byline"><img src="/media/harvest/avatar-8.jpg" alt="" width="96" height="96" class="avatar"><div><strong>Gary Hutchins</strong><span>1 month ago</span></div></div><span class="rating" aria-label="5 out of 5 stars"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg></span><p>Outstanding from the first visit to the final walkthrough. They photographed every layer as they went.</p></div></article>
|
|
28
|
-
<article slot="reviews" class="card"><div class="card__body"><div class="byline"><img src="/media/harvest/avatar-9.jpg" alt="" width="96" height="96" class="avatar"><div><strong>Janet Solomon</strong><span>1 month ago</span></div></div><span class="rating" aria-label="5 out of 5 stars"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3l2.6 5.3L20 9.2l-4 3.9.9 5.4L12 15.9 7.1 18.5 8 13.1 4 9.2l5.4-.9L12 3z"/></svg></span><p>Fair price, no upsell, and the estimate matched the invoice to the dollar.</p></div></article>
|
|
29
|
-
</testimonial-platform>
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Variants: `<testimonial-platform variant="dark">`.
|
|
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,17 +0,0 @@
|
|
|
1
|
-
.c-testimonial-platform__card{display:grid;gap:var(--space-6);padding:var(--space-6);background:var(--color-surface-2);border-color:transparent}
|
|
2
|
-
.c-testimonial-platform__summary{display:grid;gap:var(--space-2);align-content:center;justify-items:start}
|
|
3
|
-
.c-testimonial-platform__summary .stat__value{font-size:var(--step-6, var(--step-5))}
|
|
4
|
-
.c-testimonial-platform__summary p{margin:0;color:var(--color-muted)}
|
|
5
|
-
.c-testimonial-platform__summary .rating{vertical-align:-.15em;margin-right:.25rem}
|
|
6
|
-
.c-testimonial-platform__summary .btn-group{margin-top:var(--space-3)}
|
|
7
|
-
.c-testimonial-platform__summary .btn-group:empty{display:none}
|
|
8
|
-
.c-testimonial-platform__reviews{display:grid;gap:var(--space-3)}
|
|
9
|
-
.c-testimonial-platform__reviews .card{background:var(--color-surface)}
|
|
10
|
-
.c-testimonial-platform__reviews .card__body{gap:var(--space-3);padding:var(--space-4)}
|
|
11
|
-
.c-testimonial-platform__reviews .byline .avatar{width:2.25rem;height:2.25rem}
|
|
12
|
-
.c-testimonial-platform__reviews .byline strong,.c-testimonial-platform__reviews .byline span{font-size:var(--step-0)}
|
|
13
|
-
.c-testimonial-platform__reviews p{font-size:var(--step-0);color:var(--color-text)}
|
|
14
|
-
@media(min-width:720px){.c-testimonial-platform__reviews{grid-template-columns:repeat(2,minmax(0,1fr))}}
|
|
15
|
-
@media(min-width:1080px){.c-testimonial-platform__card{grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);gap:var(--space-8);padding:var(--space-7)}.c-testimonial-platform__reviews{grid-template-columns:repeat(3,minmax(0,1fr))}}
|
|
16
|
-
.c-testimonial-platform--dark .c-testimonial-platform__card{--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)}
|
|
17
|
-
.c-testimonial-platform--dark .c-testimonial-platform__reviews .card{background:var(--color-surface)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-testimonial-platform section--tight"><div class="wrap"><div class="card c-testimonial-platform__card"><div class="c-testimonial-platform__summary"><slot name="rating"></slot><slot name="summary"></slot><div class="btn-group"><slot name="actions"></slot></div></div><div class="c-testimonial-platform__reviews"><slot name="reviews"></slot></div></div></div></section>
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# testimonial-rating
|
|
2
|
-
|
|
3
|
-
Star rating band with review count.
|
|
4
|
-
|
|
5
|
-
- **Category:** testimonial
|
|
6
|
-
- **Media:** none
|
|
7
|
-
- **Registers:** trade, beauty, food, professional
|
|
8
|
-
- **Variants:** muted
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `(default)` | One line: `<strong>4.9 / 5</strong>` + text |
|
|
15
|
-
| `actions` | Optional `.btn-arrow` link to the review source |
|
|
16
|
-
|
|
17
|
-
## Example
|
|
18
|
-
|
|
19
|
-
```html
|
|
20
|
-
<testimonial-rating>
|
|
21
|
-
<strong>4.9 out of 5</strong> from 212 Google reviews
|
|
22
|
-
<a slot="actions" class="btn-arrow" href="https://g.page/example/review" rel="noopener">Read them on Google</a>
|
|
23
|
-
</testimonial-rating>
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Variants: `<testimonial-rating variant="muted">`.
|
|
27
|
-
|
|
28
|
-
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-testimonial-rating{border-block:1px solid var(--color-border)}
|
|
2
|
-
.c-testimonial-rating__row{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-5);align-items:center;justify-content:center;text-align:center}
|
|
3
|
-
.c-testimonial-rating__row .rating .icon{width:1.25rem;height:1.25rem}
|
|
4
|
-
.c-testimonial-rating__text{margin:0;color:var(--color-muted)}
|
|
5
|
-
.c-testimonial-rating__text strong{color:var(--color-text)}
|
|
6
|
-
.c-testimonial-rating--muted{background:var(--color-surface-2);border-block-color:transparent}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-testimonial-rating section--tight"><div class="wrap c-testimonial-rating__row"><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="c-testimonial-rating__text"><slot></slot></p><slot name="actions"></slot></div></section>
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# testimonial-spotlight
|
|
2
|
-
|
|
3
|
-
Large quote with avatar attribution.
|
|
4
|
-
|
|
5
|
-
- **Category:** testimonial
|
|
6
|
-
- **Media:** portrait optional
|
|
7
|
-
- **Registers:** all
|
|
8
|
-
- **Variants:** dark
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `(default)` | One `<p>` — the quote, 1–3 sentences (quote marks added automatically) |
|
|
15
|
-
| `avatar` | Optional `<img class="avatar avatar--lg">` |
|
|
16
|
-
| `attribution` | `<strong>` name + `<span>` context |
|
|
17
|
-
|
|
18
|
-
## Example
|
|
19
|
-
|
|
20
|
-
```html
|
|
21
|
-
<testimonial-spotlight>
|
|
22
|
-
<p>We interviewed four roofers. Harbor was the only one who went into the attic, and the only one whose estimate was still accurate on the last day of the job.</p>
|
|
23
|
-
<img src="/media/harvest/review-2.jpg" alt="" width="128" height="128" slot="avatar" class="avatar avatar--lg">
|
|
24
|
-
<strong slot="attribution">Dana Kowalski</strong>
|
|
25
|
-
<span slot="attribution">Homeowner, South Portland</span>
|
|
26
|
-
</testimonial-spotlight>
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
Variants: `<testimonial-spotlight variant="dark">`.
|
|
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,9 +0,0 @@
|
|
|
1
|
-
.c-testimonial-spotlight__inner{max-width:50rem;margin-inline:auto;text-align:center;display:grid;gap:var(--space-6);justify-items:center}
|
|
2
|
-
.c-testimonial-spotlight__mark{display:inline-grid;place-items:center;width:3rem;height:3rem;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--color-accent) 12%,transparent);color:var(--color-accent)}
|
|
3
|
-
.c-testimonial-spotlight__mark .icon{width:1.5rem;height:1.5rem;fill:currentColor;stroke:none}
|
|
4
|
-
.c-testimonial-spotlight .quote p{margin:0}
|
|
5
|
-
.c-testimonial-spotlight .quote p::before{content:"“"}
|
|
6
|
-
.c-testimonial-spotlight .quote p::after{content:"”"}
|
|
7
|
-
.c-testimonial-spotlight__byline{justify-content:center;text-align:left}
|
|
8
|
-
.c-testimonial-spotlight__byline > div{display:grid}
|
|
9
|
-
.c-testimonial-spotlight--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
|
-
<section class="c-testimonial-spotlight section section--roomy"><div class="wrap c-testimonial-spotlight__inner"><span class="c-testimonial-spotlight__mark" aria-hidden="true"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M7 7h4v6H5v-2a4 4 0 0 1 2-4zM15 7h4v6h-6v-2a4 4 0 0 1 2-4z"/></svg></span><blockquote class="quote quote--lg"><slot></slot></blockquote><div class="byline c-testimonial-spotlight__byline"><slot name="avatar"></slot><div><slot name="attribution"></slot></div></div></div></section>
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# testimonial-switcher
|
|
2
|
-
|
|
3
|
-
Pick a reviewer, read their quote (tabs island).
|
|
4
|
-
|
|
5
|
-
- **Category:** testimonial
|
|
6
|
-
- **Media:** small portraits
|
|
7
|
-
- **Registers:** trade, beauty, professional
|
|
8
|
-
- **Variants:** avatars
|
|
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
|
-
| `panels` | 3–6 `<blockquote role="tabpanel" id="…" class="quote">“…”<cite>Name · Context</cite></blockquote>` |
|
|
18
|
-
| `tabs` | Matching `<button role="tab" type="button" class="tabs__tab" aria-controls="…"><img class="avatar"><span><strong>Name</strong><small>Job · Town</small></span></button>` (first has `aria-selected="true"`) |
|
|
19
|
-
|
|
20
|
-
## Example
|
|
21
|
-
|
|
22
|
-
```html
|
|
23
|
-
<testimonial-switcher>
|
|
24
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">Five-star work</p>
|
|
25
|
-
<h2 slot="heading">In their words.</h2>
|
|
26
|
-
<blockquote slot="panels" role="tabpanel" id="rev-tommy" class="quote">“Every crew member could tell me exactly what was happening on my roof and why. You can feel it's the same team, job after job.”<cite>Tommy Nguyen · Re-deck, Falmouth</cite></blockquote>
|
|
27
|
-
<blockquote slot="panels" role="tabpanel" id="rev-karen" class="quote">“Storm damage on a Tuesday, tarped by Wednesday morning, new roof the next week. The insurance paperwork was handled for us.”<cite>Karen Doyle · Storm repair, Yarmouth</cite></blockquote>
|
|
28
|
-
<blockquote slot="panels" role="tabpanel" id="rev-luis" class="quote">“The estimate was the invoice. Nobody else we called would put that in writing.”<cite>Luis Herrera · Full replacement, Scarborough</cite></blockquote>
|
|
29
|
-
<blockquote slot="panels" role="tabpanel" id="rev-dana" class="quote">“They found a ventilation problem two other roofers missed and fixed it without changing the price.”<cite>Dana Whitmore · Warranty visit, Portland</cite></blockquote>
|
|
30
|
-
<button slot="tabs" role="tab" type="button" class="tabs__tab" aria-controls="rev-tommy" aria-selected="true"><img src="/media/harvest/avatar-1.jpg" alt="" width="96" height="96" class="avatar"><span><strong>Tommy Nguyen</strong><small>Re-deck · Falmouth</small></span></button>
|
|
31
|
-
<button slot="tabs" role="tab" type="button" class="tabs__tab" aria-controls="rev-karen"><img src="/media/harvest/avatar-2.jpg" alt="" width="96" height="96" class="avatar"><span><strong>Karen Doyle</strong><small>Storm repair · Yarmouth</small></span></button>
|
|
32
|
-
<button slot="tabs" role="tab" type="button" class="tabs__tab" aria-controls="rev-luis"><img src="/media/harvest/avatar-3.jpg" alt="" width="96" height="96" class="avatar"><span><strong>Luis Herrera</strong><small>Full replacement · Scarborough</small></span></button>
|
|
33
|
-
<button slot="tabs" role="tab" type="button" class="tabs__tab" aria-controls="rev-dana"><img src="/media/harvest/avatar-4.jpg" alt="" width="96" height="96" class="avatar"><span><strong>Dana Whitmore</strong><small>Warranty visit · Portland</small></span></button>
|
|
34
|
-
</testimonial-switcher>
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Variants: `<testimonial-switcher variant="avatars">`.
|
|
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,23 +0,0 @@
|
|
|
1
|
-
.c-testimonial-switcher__grid{display:grid;gap:var(--space-6)}
|
|
2
|
-
.c-testimonial-switcher__quote .section__head{margin-bottom:var(--space-5)}
|
|
3
|
-
.c-testimonial-switcher__panels > [hidden]{display:none}
|
|
4
|
-
.c-testimonial-switcher__panels .quote{font-size:var(--step-3);line-height:1.3;letter-spacing:-.015em;max-width:34rem}
|
|
5
|
-
.c-testimonial-switcher__panels .quote cite{font-family:var(--font-body);font-size:var(--step-0);letter-spacing:0}
|
|
6
|
-
.c-testimonial-switcher__list{display:grid;gap:var(--space-1);border:0;align-content:center}
|
|
7
|
-
.c-testimonial-switcher__list .tabs__tab{display:flex;align-items:center;gap:var(--space-3);width:100%;margin:0;padding:var(--space-3);border:1px solid transparent;border-radius:var(--radius-md);text-align:left;min-height:0}
|
|
8
|
-
.c-testimonial-switcher__list .tabs__tab span{display:grid;line-height:1.3}
|
|
9
|
-
.c-testimonial-switcher__list .tabs__tab strong{font-weight:600;color:var(--color-text)}
|
|
10
|
-
.c-testimonial-switcher__list .tabs__tab small{font-size:var(--step-0);color:var(--color-muted)}
|
|
11
|
-
.c-testimonial-switcher__list .tabs__tab .avatar{width:2.5rem;height:2.5rem;flex:none}
|
|
12
|
-
.c-testimonial-switcher__list .tabs__tab:hover{background:var(--color-surface-2)}
|
|
13
|
-
.c-testimonial-switcher__list .tabs__tab[aria-selected="true"]{background:var(--color-surface);border-color:var(--color-border);box-shadow:var(--shadow-1)}
|
|
14
|
-
@media(min-width:900px){.c-testimonial-switcher__grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--space-9);align-items:center}}
|
|
15
|
-
.c-testimonial-switcher--avatars .c-testimonial-switcher__grid{grid-template-columns:1fr;gap:var(--space-5);justify-items:center;text-align:center}
|
|
16
|
-
.c-testimonial-switcher--avatars .section__head{margin-inline:auto;text-align:center;justify-items:center}
|
|
17
|
-
.c-testimonial-switcher--avatars .c-testimonial-switcher__panels .quote{margin-inline:auto;max-width:40rem}
|
|
18
|
-
.c-testimonial-switcher--avatars .c-testimonial-switcher__list{display:flex;justify-content:center;order:-1;gap:var(--space-2)}
|
|
19
|
-
.c-testimonial-switcher--avatars .c-testimonial-switcher__list .tabs__tab{width:auto;padding:.25rem;border-radius:var(--radius-pill);border:0;box-shadow:none;background:transparent}
|
|
20
|
-
.c-testimonial-switcher--avatars .c-testimonial-switcher__list .tabs__tab span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
|
|
21
|
-
.c-testimonial-switcher--avatars .c-testimonial-switcher__list .tabs__tab .avatar{width:2.75rem;height:2.75rem;opacity:.55;transition:opacity .2s ease,transform .2s ease}
|
|
22
|
-
.c-testimonial-switcher--avatars .c-testimonial-switcher__list .tabs__tab:hover .avatar{opacity:1}
|
|
23
|
-
.c-testimonial-switcher--avatars .c-testimonial-switcher__list .tabs__tab[aria-selected="true"] .avatar{opacity:1;transform:scale(1.15);box-shadow:0 0 0 3px var(--color-accent)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-testimonial-switcher section"><div class="wrap c-testimonial-switcher__grid" data-island="tabs"><div class="c-testimonial-switcher__quote"><div class="section__head"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="c-testimonial-switcher__panels"><slot name="panels"></slot></div></div><div class="tabs__list c-testimonial-switcher__list" role="tablist" aria-label="Reviewers"><slot name="tabs"></slot></div></div></section>
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# testimonial-wall
|
|
2
|
-
|
|
3
|
-
Dense quote wall / press mentions.
|
|
4
|
-
|
|
5
|
-
- **Category:** testimonial
|
|
6
|
-
- **Media:** press marks optional
|
|
7
|
-
- **Registers:** b2b, professional
|
|
8
|
-
- **Variants:** (none)
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `eyebrow` | Optional `<p class="eyebrow">` |
|
|
15
|
-
| `heading` | `<h2>` |
|
|
16
|
-
| `lede` | Optional `<p class="lede">` |
|
|
17
|
-
| `quotes` | 6–9 `<blockquote class="quote quote--card">` each with `<p>` + `<cite>` |
|
|
18
|
-
|
|
19
|
-
## Example
|
|
20
|
-
|
|
21
|
-
```html
|
|
22
|
-
<testimonial-wall>
|
|
23
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">Word of mouth</p>
|
|
24
|
-
<h2 slot="heading">What owners tell each other about us</h2>
|
|
25
|
-
<blockquote slot="quotes" class="quote quote--card"><p>“Books closed by the 5th, like clockwork. I stopped checking.”</p><cite>Marco D.<span>Dunn Plumbing</span></cite></blockquote>
|
|
26
|
-
<blockquote slot="quotes" class="quote quote--card"><p>“They found $14k in uncategorized expenses my old bookkeeper missed.”</p><cite>Lena R.<span>Castine Electric</span></cite></blockquote>
|
|
27
|
-
<blockquote slot="quotes" class="quote quote--card"><p>“First bookkeeper who understood job costing without me explaining it.”</p><cite>Tom H.<span>Ridgeline Builders</span></cite></blockquote>
|
|
28
|
-
<blockquote slot="quotes" class="quote quote--card"><p>“Tax season used to take me a week. This year it took one email.”</p><cite>Sam O.<span>Bay Paving</span></cite></blockquote>
|
|
29
|
-
<blockquote slot="quotes" class="quote quote--card"><p>“Flat monthly price. No surprise hours. That alone was worth switching.”</p><cite>Aisha B.<span>Harbor Roofing</span></cite></blockquote>
|
|
30
|
-
<blockquote slot="quotes" class="quote quote--card"><p>“I finally know which jobs make money.”</p><cite>Kevin T.<span>Tidewater Landscaping</span></cite></blockquote>
|
|
31
|
-
</testimonial-wall>
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
.c-testimonial-wall__grid{display:grid;gap:var(--space-4)}
|
|
2
|
-
@media(min-width:720px){.c-testimonial-wall__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
|
|
3
|
-
@media(min-width:1080px){.c-testimonial-wall__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
|
|
4
|
-
.c-testimonial-wall__grid .quote{padding:var(--space-5);background:var(--color-surface-2);border-radius:var(--radius-lg);display:grid;gap:var(--space-3);align-content:start}
|
|
5
|
-
.c-testimonial-wall__grid .quote p{margin:0}
|
|
6
|
-
.c-testimonial-wall__grid .quote cite{margin-top:0;font-weight:600;color:var(--color-text)}
|
|
7
|
-
.c-testimonial-wall__grid .quote cite span{display:block;font-weight:400;color:var(--color-muted)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-testimonial-wall section"><div class="wrap"><div class="section__head"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="c-testimonial-wall__grid"><slot name="quotes"></slot></div></div></section>
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# trust-badges
|
|
2
|
-
|
|
3
|
-
Rating chip + cert badges row.
|
|
4
|
-
|
|
5
|
-
- **Category:** trust-strip
|
|
6
|
-
- **Media:** optional badge icons
|
|
7
|
-
- **Registers:** trade, beauty, food, professional
|
|
8
|
-
- **Variants:** muted
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `(default)` | 3–6 `.badge` chips: a rating first, then licenses / guarantees / associations |
|
|
15
|
-
|
|
16
|
-
## Example
|
|
17
|
-
|
|
18
|
-
```html
|
|
19
|
-
<trust-badges>
|
|
20
|
-
<span class="badge"><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> 4.9 · 212 Google reviews</span>
|
|
21
|
-
<span class="badge badge--outline"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3 4 6v6c0 5 3.5 8.5 8 9 4.5-.5 8-4 8-9V6l-8-3z"/><path d="m9 12 2 2 4-4"/></svg> Licensed & insured</span>
|
|
22
|
-
<span class="badge badge--outline"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="9" r="6"/><path d="m8.5 14-1.5 7 5-3 5 3-1.5-7"/></svg> GAF Master Elite</span>
|
|
23
|
-
<span class="badge badge--outline"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 10h18M8 3v4M16 3v4"/></svg> Since 2009</span>
|
|
24
|
-
<span class="badge badge--outline"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M3 11 12 3l9 8v10H3z"/><path d="M9 21v-6h6v6"/></svg> 10-year workmanship warranty</span>
|
|
25
|
-
</trust-badges>
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Variants: `<trust-badges variant="muted">`.
|
|
29
|
-
|
|
30
|
-
Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
.c-trust-badges{border-block:1px solid var(--color-border)}
|
|
2
|
-
.c-trust-badges__row{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;align-items:center}
|
|
3
|
-
.c-trust-badges .badge{min-height:2.25rem;padding-inline:var(--space-4)}
|
|
4
|
-
.c-trust-badges .badge .rating{margin-right:.15rem}
|
|
5
|
-
.c-trust-badges--muted{background:var(--color-surface-2);border-block-color:transparent}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-trust-badges section--tight"><div class="wrap c-trust-badges__row"><slot></slot></div></section>
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# trust-certs
|
|
2
|
-
|
|
3
|
-
Proof sentence over a row of certification tiles.
|
|
4
|
-
|
|
5
|
-
- **Category:** trust-strip
|
|
6
|
-
- **Media:** badge icons
|
|
7
|
-
- **Registers:** trade, professional, beauty
|
|
8
|
-
- **Variants:** muted
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `proof` | Optional `<p>` one-line proof with `<strong>` numbers |
|
|
15
|
-
| `certs` | 3–5 `<div><span class="icon-tile icon-tile--round">icon</span><strong>Name</strong><small>Sub-line</small></div>` |
|
|
16
|
-
|
|
17
|
-
## Example
|
|
18
|
-
|
|
19
|
-
```html
|
|
20
|
-
<trust-certs>
|
|
21
|
-
<p slot="proof"><strong>17+ years</strong> · <strong>1,200+</strong> five-star reviews · <strong>3,500+</strong> roofs · every job backed <strong>in writing</strong></p>
|
|
22
|
-
<div slot="certs"><span class="icon-tile icon-tile--round"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="9" r="6"/><path d="m8.5 14-1.5 7 5-3 5 3-1.5-7"/></svg></span><strong>GAF Master Elite</strong><small>Top 2% certified roofers</small></div>
|
|
23
|
-
<div slot="certs"><span class="icon-tile icon-tile--round"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3 4 6v6c0 5 3.5 8.5 8 9 4.5-.5 8-4 8-9V6l-8-3z"/><path d="m9 12 2 2 4-4"/></svg></span><strong>Licensed & insured</strong><small>Maine license #RC-20419</small></div>
|
|
24
|
-
<div slot="certs"><span class="icon-tile icon-tile--round"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg></span><strong>BBB A+</strong><small>Accredited since 2011</small></div>
|
|
25
|
-
<div slot="certs"><span class="icon-tile icon-tile--round"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M3 11 12 3l9 8v10H3z"/><path d="M9 21v-6h6v6"/></svg></span><strong>Owens Corning Preferred</strong><small>Factory-trained installers</small></div>
|
|
26
|
-
</trust-certs>
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
Variants: `<trust-certs variant="muted">`.
|
|
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,12 +0,0 @@
|
|
|
1
|
-
.c-trust-certs__proof{max-width:40rem;margin:0 auto var(--space-7);text-align:center;font-family:var(--font-display);font-size:var(--step-2);line-height:1.35;color:var(--color-muted);text-wrap:balance}
|
|
2
|
-
.c-trust-certs__proof:empty{display:none}
|
|
3
|
-
.c-trust-certs__proof p{margin:0}
|
|
4
|
-
.c-trust-certs__proof strong{color:var(--color-text);font-weight:600}
|
|
5
|
-
.c-trust-certs__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5) var(--space-4);max-width:60rem;margin-inline:auto}
|
|
6
|
-
.c-trust-certs__grid > *{display:grid;gap:var(--space-2);justify-items:center;text-align:center}
|
|
7
|
-
.c-trust-certs__grid .icon-tile{width:3.25rem;height:3.25rem;margin-bottom:var(--space-1)}
|
|
8
|
-
.c-trust-certs__grid .icon-tile .icon{width:1.5rem;height:1.5rem}
|
|
9
|
-
.c-trust-certs__grid strong{font-weight:600}
|
|
10
|
-
.c-trust-certs__grid small{color:var(--color-muted)}
|
|
11
|
-
@media(min-width:720px){.c-trust-certs__grid{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr))}}
|
|
12
|
-
.c-trust-certs--muted{background:var(--color-surface-2)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-trust-certs section"><div class="wrap"><div class="c-trust-certs__proof"><slot name="proof"></slot></div><div class="c-trust-certs__grid"><slot name="certs"></slot></div></div></section>
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# trust-logos
|
|
2
|
-
|
|
3
|
-
Grayscale logo row under hero.
|
|
4
|
-
|
|
5
|
-
- **Category:** trust-strip
|
|
6
|
-
- **Media:** partner marks
|
|
7
|
-
- **Registers:** trade, b2b, professional, food
|
|
8
|
-
- **Variants:** muted
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `eyebrow` | Short label above the row (e.g. "Trusted by") |
|
|
15
|
-
| `logos` | 4–7 `<img>` marks, ~160×48, grayscale applied automatically |
|
|
16
|
-
|
|
17
|
-
## Example
|
|
18
|
-
|
|
19
|
-
```html
|
|
20
|
-
<trust-logos>
|
|
21
|
-
<p slot="eyebrow" class="eyebrow">Preferred contractor for</p>
|
|
22
|
-
<img src="/media/harvest/logo-1.svg" alt="Maine Housing" width="160" height="48" slot="logos">
|
|
23
|
-
<img src="/media/harvest/logo-2.svg" alt="Portland Public Schools" width="160" height="48" slot="logos">
|
|
24
|
-
<img src="/media/harvest/logo-3.svg" alt="Bayside Property Group" width="160" height="48" slot="logos">
|
|
25
|
-
<img src="/media/harvest/logo-4.svg" alt="Casco Bay Realty" width="160" height="48" slot="logos">
|
|
26
|
-
<img src="/media/harvest/logo-5.svg" alt="Hancock Lumber" width="160" height="48" slot="logos">
|
|
27
|
-
</trust-logos>
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Variants: `<trust-logos variant="muted">`.
|
|
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,5 +0,0 @@
|
|
|
1
|
-
.c-trust-logos{border-block:1px solid var(--color-border)}
|
|
2
|
-
.c-trust-logos__inner{display:grid;gap:var(--space-5);justify-items:center;text-align:center}
|
|
3
|
-
.c-trust-logos__inner .eyebrow{font-size:.75rem}
|
|
4
|
-
.c-trust-logos .logo-row img{max-height:2rem}
|
|
5
|
-
.c-trust-logos--muted{background:var(--color-surface-2);border-block-color:transparent}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-trust-logos section--tight"><div class="wrap c-trust-logos__inner"><slot name="eyebrow"></slot><div class="logo-row"><slot name="logos"></slot></div></div></section>
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# trust-quote
|
|
2
|
-
|
|
3
|
-
Single spotlight quote as trust band.
|
|
4
|
-
|
|
5
|
-
- **Category:** trust-strip
|
|
6
|
-
- **Media:** optional portrait
|
|
7
|
-
- **Registers:** all
|
|
8
|
-
- **Variants:** dark
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `(default)` | `<p>` quote text (1–2 sentences) followed by `<cite>` name · context |
|
|
15
|
-
| `avatar` | Optional `<img class="avatar avatar--lg">` |
|
|
16
|
-
|
|
17
|
-
## Example
|
|
18
|
-
|
|
19
|
-
```html
|
|
20
|
-
<trust-quote>
|
|
21
|
-
<img src="/media/harvest/review-1.jpg" alt="" width="128" height="128" slot="avatar" class="avatar avatar--lg">
|
|
22
|
-
<p>They showed up when they said they would, finished a day early, and the yard was cleaner than when they started. I've already sent two neighbors their way.</p>
|
|
23
|
-
<cite>Jordan P. · Deering Center, homeowner since 2015</cite>
|
|
24
|
-
</trust-quote>
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Variants: `<trust-quote 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,5 +0,0 @@
|
|
|
1
|
-
.c-trust-quote__inner{max-width:46rem;margin-inline:auto;text-align:center;display:grid;gap:var(--space-5);justify-items:center}
|
|
2
|
-
.c-trust-quote .quote p{margin:0}
|
|
3
|
-
.c-trust-quote .quote p::before{content:"“"}
|
|
4
|
-
.c-trust-quote .quote p::after{content:"”"}
|
|
5
|
-
.c-trust-quote--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
|
-
<section class="c-trust-quote section section--muted"><div class="wrap c-trust-quote__inner"><slot name="avatar"></slot><blockquote class="quote quote--lg"><slot></slot></blockquote></div></section>
|