@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,39 +0,0 @@
|
|
|
1
|
-
# blog-featured
|
|
2
|
-
|
|
3
|
-
One featured + side list.
|
|
4
|
-
|
|
5
|
-
- **Category:** blog
|
|
6
|
-
- **Media:** covers
|
|
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
|
-
| `media` | Featured cover `<img>` (16:9) |
|
|
18
|
-
| `featured` | `<p class="eyebrow">` meta, `<h3><a>` title, `<p>` excerpt, `.btn-arrow` |
|
|
19
|
-
| `posts` | 3–5 compact `<a class="c-blog-featured__row">`: `<span class="eyebrow">` meta + `<strong>` title |
|
|
20
|
-
|
|
21
|
-
## Example
|
|
22
|
-
|
|
23
|
-
```html
|
|
24
|
-
<blog-featured>
|
|
25
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">From the blog</p>
|
|
26
|
-
<h2 slot="heading">Latest</h2>
|
|
27
|
-
<img src="/media/harvest/post-1.jpg" alt="" width="1600" height="900" slot="media" loading="lazy">
|
|
28
|
-
<p slot="featured" class="eyebrow">Guides · 6 min read</p>
|
|
29
|
-
<h3 slot="featured"><a href="/blog/roof-lifespan">How long does an asphalt roof actually last in Maine?</a></h3>
|
|
30
|
-
<p slot="featured">The brochure says 30 years. Here's what we see on tear-offs after 15, 20, and 25 winters — and the three things that make the difference.</p>
|
|
31
|
-
<a slot="featured" class="btn-arrow" href="/blog/roof-lifespan">Read the guide</a>
|
|
32
|
-
<a slot="posts" class="c-blog-featured__row" href="/blog/repair-or-replace"><span class="eyebrow">Money · 4 min</span><strong>Repair or replace? A five-question checklist</strong></a>
|
|
33
|
-
<a slot="posts" class="c-blog-featured__row" href="/blog/recycling"><span class="eyebrow">Behind the scenes · 3 min</span><strong>What happens to your old shingles</strong></a>
|
|
34
|
-
<a slot="posts" class="c-blog-featured__row" href="/blog/ice-dams"><span class="eyebrow">Winter · 5 min</span><strong>Ice dams: what causes them and what doesn't</strong></a>
|
|
35
|
-
<a slot="posts" class="c-blog-featured__row" href="/blog/metal-vs-shingle"><span class="eyebrow">Materials · 7 min</span><strong>Metal vs. shingle in a coastal climate</strong></a>
|
|
36
|
-
</blog-featured>
|
|
37
|
-
```
|
|
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,12 +0,0 @@
|
|
|
1
|
-
.c-blog-featured__grid{display:grid;gap:var(--space-6)}
|
|
2
|
-
@media(min-width:900px){.c-blog-featured__grid{grid-template-columns:3fr 2fr;gap:var(--space-7);align-items:start}}
|
|
3
|
-
.c-blog-featured__lead .card__body{padding:var(--space-6);gap:var(--space-3)}
|
|
4
|
-
.c-blog-featured__lead .card__body > .eyebrow{font-size:.75rem}
|
|
5
|
-
.c-blog-featured__lead .card__body > h3{font-size:var(--step-3)}
|
|
6
|
-
.c-blog-featured__lead h3 a{text-decoration:none;color:inherit}
|
|
7
|
-
.c-blog-featured__lead h3 a:hover{color:var(--color-accent)}
|
|
8
|
-
.c-blog-featured__list{display:grid;border-top:1px solid var(--color-border)}
|
|
9
|
-
.c-blog-featured__row{display:grid;gap:var(--space-1);padding:var(--space-4) 0;border-bottom:1px solid var(--color-border);text-decoration:none;color:inherit}
|
|
10
|
-
.c-blog-featured__row .eyebrow{font-size:.75rem}
|
|
11
|
-
.c-blog-featured__row strong{font-family:var(--font-display);font-size:var(--step-1);font-weight:600;line-height:1.3;letter-spacing:-.01em}
|
|
12
|
-
.c-blog-featured__row:hover strong{color:var(--color-accent)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-blog-featured section section--muted"><div class="wrap"><div class="section__head"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="c-blog-featured__grid"><article class="card c-blog-featured__lead"><div class="card__media ratio-16x9"><slot name="media"></slot></div><div class="card__body"><slot name="featured"></slot></div></article><div class="c-blog-featured__list"><slot name="posts"></slot></div></div></div></section>
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# blog-index
|
|
2
|
-
|
|
3
|
-
Post card grid.
|
|
4
|
-
|
|
5
|
-
- **Category:** blog
|
|
6
|
-
- **Media:** cover images
|
|
7
|
-
- **Registers:** b2b, professional, food
|
|
8
|
-
- **Variants:** (none)
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `eyebrow` | Optional `<p class="eyebrow">` |
|
|
15
|
-
| `heading` | `<h2>` |
|
|
16
|
-
| `lede` | Optional `<p class="lede">` |
|
|
17
|
-
| `actions` | Optional link (e.g. "All posts") |
|
|
18
|
-
| `posts` | 3 or 6 `<article class="card card--interactive">`: linked `.card__media.ratio-16x9`, `<p class="eyebrow">` meta, `<h3><a>`, `<p>` excerpt, `.btn-arrow` |
|
|
19
|
-
|
|
20
|
-
## Example
|
|
21
|
-
|
|
22
|
-
```html
|
|
23
|
-
<blog-index>
|
|
24
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">Guides</p>
|
|
25
|
-
<h2 slot="heading">Straight answers about roofs</h2>
|
|
26
|
-
<p slot="lede" class="lede">Written by the people who install them, not a content agency.</p>
|
|
27
|
-
<a slot="actions" class="btn-outline" href="/blog">All posts</a>
|
|
28
|
-
<article slot="posts" class="card card--interactive"><a class="card__media ratio-16x9" href="/blog/post" tabindex="-1" aria-hidden="true"><img src="/media/harvest/post-1.jpg" alt="" width="1600" height="900" loading="lazy"></a><div class="card__body"><p class="eyebrow">Guides · 6 min read</p><h3><a href="/blog/post">How long does an asphalt roof actually last in Maine?</a></h3><p>The brochure says 30 years. Here's what we see on tear-offs, and what shortens or extends it.</p><a class="btn-arrow" href="/blog/post">Read</a></div></article>
|
|
29
|
-
<article slot="posts" class="card card--interactive"><a class="card__media ratio-16x9" href="/blog/post" tabindex="-1" aria-hidden="true"><img src="/media/harvest/post-2.jpg" alt="" width="1600" height="900" loading="lazy"></a><div class="card__body"><p class="eyebrow">Money · 4 min read</p><h3><a href="/blog/post">Repair or replace? A five-question checklist</a></h3><p>Most roofs we're asked to replace don't need it yet. Run through these before you get quotes.</p><a class="btn-arrow" href="/blog/post">Read</a></div></article>
|
|
30
|
-
<article slot="posts" class="card card--interactive"><a class="card__media ratio-16x9" href="/blog/post" tabindex="-1" aria-hidden="true"><img src="/media/harvest/post-3.jpg" alt="" width="1600" height="900" loading="lazy"></a><div class="card__body"><p class="eyebrow">Behind the scenes · 3 min read</p><h3><a href="/blog/post">What happens to your old shingles</a></h3><p>About 90% of what comes off your roof gets recycled into road base. Here's how.</p><a class="btn-arrow" href="/blog/post">Read</a></div></article>
|
|
31
|
-
</blog-index>
|
|
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,6 +0,0 @@
|
|
|
1
|
-
.c-blog-index .card h3 a{text-decoration:none;color:inherit}
|
|
2
|
-
.c-blog-index .card h3 a:hover{color:var(--color-accent)}
|
|
3
|
-
.c-blog-index .card .card__body > .eyebrow{font-size:.75rem}
|
|
4
|
-
.c-blog-index .card .card__body > h3{font-size:var(--step-2)}
|
|
5
|
-
.c-blog-index .card .card__media{display:block}
|
|
6
|
-
.c-blog-index__grid .card__body{gap:var(--space-2)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-blog-index section"><div class="wrap"><div class="section__head section__head--row"><div class="stack stack--tight"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="btn-group"><slot name="actions"></slot></div></div><div class="grid grid--3 c-blog-index__grid"><slot name="posts"></slot></div></div></section>
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# blog-post-header
|
|
2
|
-
|
|
3
|
-
Article title block.
|
|
4
|
-
|
|
5
|
-
- **Category:** blog
|
|
6
|
-
- **Media:** optional hero
|
|
7
|
-
- **Registers:** all
|
|
8
|
-
- **Variants:** (none)
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `meta` | `<span>` category · read time · date |
|
|
15
|
-
| `(default)` | `<h1>` + `<p class="lede lede--lg">` standfirst |
|
|
16
|
-
| `byline` | Optional `.byline` with avatar + author |
|
|
17
|
-
| `media` | Optional cover `<img>` (21:9) |
|
|
18
|
-
|
|
19
|
-
## Example
|
|
20
|
-
|
|
21
|
-
```html
|
|
22
|
-
<blog-post-header>
|
|
23
|
-
<span slot="meta">Guides · 6 min read · March 12, 2026</span>
|
|
24
|
-
<h1>How long does an asphalt roof actually last in Maine?</h1>
|
|
25
|
-
<p class="lede lede--lg">The brochure says 30 years. Here's what we see on tear-offs after 15, 20, and 25 winters — and the three things that make the difference.</p>
|
|
26
|
-
<div slot="byline" class="byline"><img src="/media/harvest/team-mike.jpg" alt="" width="96" height="96" class="avatar"><div><strong>Mike Harbor</strong><span>Founder, 26 years on roofs</span></div></div>
|
|
27
|
-
<img src="/media/harvest/post-1.jpg" alt="Close-up of aged asphalt shingles" width="2100" height="900" slot="media" fetchpriority="high">
|
|
28
|
-
</blog-post-header>
|
|
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,8 +0,0 @@
|
|
|
1
|
-
.c-blog-post-header__inner{max-width:46rem;margin-inline:auto;display:grid;gap:var(--space-4);text-align:center;justify-items:center}
|
|
2
|
-
.c-blog-post-header__inner h1{font-size:var(--step-4);max-width:22ch}
|
|
3
|
-
.c-blog-post-header__meta:empty{display:none}
|
|
4
|
-
.c-blog-post-header__byline{margin-top:var(--space-2)}
|
|
5
|
-
.c-blog-post-header__byline:empty{display:none}
|
|
6
|
-
.c-blog-post-header__byline .byline{text-align:left}
|
|
7
|
-
.c-blog-post-header__media{margin-top:var(--space-7);box-shadow:none}
|
|
8
|
-
.c-blog-post-header__media:not(:has(img,video)){display:none}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<header class="c-blog-post-header section"><div class="wrap"><div class="c-blog-post-header__inner"><p class="eyebrow eyebrow--accent c-blog-post-header__meta"><slot name="meta"></slot></p><slot></slot><div class="c-blog-post-header__byline"><slot name="byline"></slot></div></div><div class="frame ratio-21x9 c-blog-post-header__media"><slot name="media"></slot></div></div></header>
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# contact-cards
|
|
2
|
-
|
|
3
|
-
Phone / email / address cards.
|
|
4
|
-
|
|
5
|
-
- **Category:** contact
|
|
6
|
-
- **Media:** none
|
|
7
|
-
- **Registers:** trade, 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
|
-
| `cards` | 3 `.card` items: `.icon-tile`, `<h3>` label, `<p>` value (with `<a>`), `<p>` note |
|
|
18
|
-
|
|
19
|
-
## Example
|
|
20
|
-
|
|
21
|
-
```html
|
|
22
|
-
<contact-cards>
|
|
23
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">Get in touch</p>
|
|
24
|
-
<h2 slot="heading">Three ways to reach us</h2>
|
|
25
|
-
<p slot="lede" class="lede">Pick whichever is easiest — they all land with the same two people.</p>
|
|
26
|
-
<div slot="cards" class="card"><div class="card__body"><span class="icon-tile icon-tile--round"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M6 3h4l2 5-3 2a12 12 0 0 0 6 6l2-3 5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 4 5a2 2 0 0 1 2-2z"/></svg></span><h3>Call</h3><p><a href="tel:+15550102000">(555) 010-2000</a></p><p>Mon–Fri 7:30–5:00</p></div></div>
|
|
27
|
-
<div slot="cards" class="card"><div class="card__body"><span class="icon-tile icon-tile--round"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="5" width="18" height="14" rx="2"/><path d="m3 7 9 6 9-6"/></svg></span><h3>Email</h3><p><a href="mailto:hello@harborroofing.example">hello@harborroofing.example</a></p><p>Replies within one business day</p></div></div>
|
|
28
|
-
<div slot="cards" class="card"><div class="card__body"><span class="icon-tile icon-tile--round"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 22s7-6.2 7-12a7 7 0 1 0-14 0c0 5.8 7 12 7 12z"/><circle cx="12" cy="10" r="2.5"/></svg></span><h3>Visit</h3><p><a href="https://maps.example/harbor" rel="noopener">12 Harbor St, Portland</a></p><p>Free parking out back</p></div></div>
|
|
29
|
-
</contact-cards>
|
|
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-contact-cards__grid{max-width:64rem;margin-inline:auto}
|
|
2
|
-
.c-contact-cards__grid .card__body{padding:var(--space-6);gap:var(--space-2);text-align:center;justify-items:center}
|
|
3
|
-
.c-contact-cards__grid .card__body > .icon-tile{margin-bottom:var(--space-3)}
|
|
4
|
-
.c-contact-cards__grid .card__body > h3{font-size:var(--step-1)}
|
|
5
|
-
.c-contact-cards__grid .card__body > p a{font-weight:600;color:var(--color-text);text-decoration:none}
|
|
6
|
-
.c-contact-cards__grid .card__body > p a:hover{color:var(--color-accent)}
|
|
7
|
-
.c-contact-cards__grid .card__body > p + p{font-size:var(--step-0)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-contact-cards 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-contact-cards__grid"><slot name="cards"></slot></div></div></section>
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# contact-chips
|
|
2
|
-
|
|
3
|
-
Lead form with pill choices (what / budget) beside a short intro.
|
|
4
|
-
|
|
5
|
-
- **Category:** contact
|
|
6
|
-
- **Media:** none
|
|
7
|
-
- **Registers:** b2b, beauty, 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
|
-
| `details` | Optional 1–3 `<a>` rows (`.icon-tile` + `<span><strong>value</strong><span>note</span></span>`) |
|
|
18
|
-
| `fields` | `<fieldset class="chips">` groups (radio inputs) followed by `.field`s |
|
|
19
|
-
| `submit` | `<button class="btn" type="submit">` + optional `<small>` |
|
|
20
|
-
|
|
21
|
-
## Example
|
|
22
|
-
|
|
23
|
-
```html
|
|
24
|
-
<contact-chips>
|
|
25
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">Work with Hive</p>
|
|
26
|
-
<h2 slot="heading">Tell us about the project.</h2>
|
|
27
|
-
<p slot="lede" class="lede">Two quick choices, then a sentence or two. We reply within one business day.</p>
|
|
28
|
-
<a slot="details" href="mailto:hello@hive.example"><span class="icon-tile icon-tile--muted"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="5" width="18" height="14" rx="2"/><path d="m3 7 9 6 9-6"/></svg></span><span><strong>hello@hive.example</strong><span>Portfolio requests welcome</span></span></a>
|
|
29
|
-
<a slot="details" href="tel:+15550104040"><span class="icon-tile icon-tile--muted"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M6 3h4l2 5-3 2a12 12 0 0 0 6 6l2-3 5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 4 5a2 2 0 0 1 2-2z"/></svg></span><span><strong>(555) 010-4040</strong><span>Tue–Fri, 10–5</span></span></a>
|
|
30
|
-
<fieldset slot="fields" class="chips"><legend>How can we help?</legend><label><input type="radio" name="service" value="logo" checked><span>Logo design</span></label><label><input type="radio" name="service" value="identity"><span>Brand identity</span></label><label><input type="radio" name="service" value="rebrand"><span>Rebranding</span></label><label><input type="radio" name="service" value="icons"><span>Icon design</span></label></fieldset>
|
|
31
|
-
<fieldset slot="fields" class="chips"><legend>What's your budget range?</legend><label><input type="radio" name="budget" value="10-20" checked><span>$10k – $20k</span></label><label><input type="radio" name="budget" value="20-50"><span>$20k – $50k</span></label><label><input type="radio" name="budget" value="50-100"><span>$50k – $100k</span></label><label><input type="radio" name="budget" value="100+"><span>$100k +</span></label></fieldset>
|
|
32
|
-
<div slot="fields" class="field"><label for="cc-name">Your name</label><input class="input" id="cc-name" name="name" autocomplete="name" required></div>
|
|
33
|
-
<div slot="fields" class="field"><label for="cc-email">Email</label><input class="input" id="cc-email" name="email" type="email" autocomplete="email" required></div>
|
|
34
|
-
<div slot="fields" class="field"><label for="cc-company">Company</label><input class="input" id="cc-company" name="company" autocomplete="organization"></div>
|
|
35
|
-
<div slot="fields" class="field"><label for="cc-msg">Tell us about the project</label><textarea class="textarea" id="cc-msg" name="message" placeholder="What you make, who it's for, and when you'd like to launch."></textarea></div>
|
|
36
|
-
<button slot="submit" class="btn" type="submit">Kick things off</button>
|
|
37
|
-
<small slot="submit">No retainers, no surprise invoices. We'll send a scope before any work starts.</small>
|
|
38
|
-
</contact-chips>
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
.c-contact-chips__grid{display:grid;gap:var(--space-6)}
|
|
2
|
-
.c-contact-chips__copy .section__head{margin-bottom:var(--space-5)}
|
|
3
|
-
.c-contact-chips__details{display:grid;gap:var(--space-4)}
|
|
4
|
-
.c-contact-chips__details:empty{display:none}
|
|
5
|
-
.c-contact-chips__details > a{display:flex;gap:var(--space-4);align-items:flex-start;text-decoration:none;color:inherit}
|
|
6
|
-
.c-contact-chips__details > a > span:last-child{display:grid;gap:.15rem}
|
|
7
|
-
.c-contact-chips__details strong{font-weight:600}
|
|
8
|
-
.c-contact-chips__details > a > span:last-child > span{color:var(--color-muted);font-size:var(--step-0)}
|
|
9
|
-
.c-contact-chips__form{gap:var(--space-5);max-width:36rem}
|
|
10
|
-
.c-contact-chips__form .field + .field{margin-top:0}
|
|
11
|
-
.c-contact-chips__submit{display:grid;gap:var(--space-2);justify-items:start}
|
|
12
|
-
.c-contact-chips__submit small{color:var(--color-muted)}
|
|
13
|
-
@media(min-width:900px){.c-contact-chips__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:var(--space-9);align-items:start}.c-contact-chips__copy{position:sticky;top:calc(var(--header-h) + var(--space-5))}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-contact-chips section"><div class="wrap c-contact-chips__grid"><div class="c-contact-chips__copy"><div class="section__head"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="c-contact-chips__details"><slot name="details"></slot></div></div><form class="c-contact-chips__form form-grid" data-lead-form method="post" action="/api/lead"><slot name="fields"></slot><div class="c-contact-chips__submit"><slot name="submit"></slot></div></form></div></section>
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# contact-hours
|
|
2
|
-
|
|
3
|
-
Hours table + CTA.
|
|
4
|
-
|
|
5
|
-
- **Category:** contact
|
|
6
|
-
- **Media:** none
|
|
7
|
-
- **Registers:** trade, food, beauty
|
|
8
|
-
- **Variants:** (none)
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `eyebrow` | Optional `<p class="eyebrow">` |
|
|
15
|
-
| `heading` | `<h2>` |
|
|
16
|
-
| `lede` | Optional `<p class="lede">` |
|
|
17
|
-
| `actions` | 1–2 buttons |
|
|
18
|
-
| `hours` | 7 `<tr>` rows: `<th scope="row">Day</th><td>Hours</td>`; add `class="is-today"` to highlight |
|
|
19
|
-
| `note` | Optional `<small>` under the table (holidays, last seating) |
|
|
20
|
-
|
|
21
|
-
## Example
|
|
22
|
-
|
|
23
|
-
```html
|
|
24
|
-
<contact-hours>
|
|
25
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">Hours</p>
|
|
26
|
-
<h2 slot="heading">Open six days. Closed Sundays and most holidays.</h2>
|
|
27
|
-
<p slot="lede" class="lede">Kitchen closes 30 minutes before we do.</p>
|
|
28
|
-
<a slot="actions" class="btn" href="/reserve">Reserve a table</a>
|
|
29
|
-
<a slot="actions" class="btn-outline" href="tel:+15550102000">Call</a>
|
|
30
|
-
<tr slot="hours"><th scope="row">Monday</th><td>Closed</td></tr>
|
|
31
|
-
<tr slot="hours"><th scope="row">Tuesday</th><td>5:00 – 10:00 pm</td></tr>
|
|
32
|
-
<tr slot="hours"><th scope="row">Wednesday</th><td>5:00 – 10:00 pm</td></tr>
|
|
33
|
-
<tr slot="hours" class="is-today"><th scope="row">Thursday</th><td>5:00 – 10:00 pm</td></tr>
|
|
34
|
-
<tr slot="hours"><th scope="row">Friday</th><td>5:00 – 11:00 pm</td></tr>
|
|
35
|
-
<tr slot="hours"><th scope="row">Saturday</th><td>4:30 – 11:00 pm</td></tr>
|
|
36
|
-
<tr slot="hours"><th scope="row">Sunday</th><td>Closed</td></tr>
|
|
37
|
-
<small slot="note">Closed Thanksgiving, Dec 24–26, and Jan 1.</small>
|
|
38
|
-
</contact-hours>
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
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,87 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
|
-
"id": "contact/contact-hours",
|
|
4
|
-
"revision": 1,
|
|
5
|
-
"status": "draft",
|
|
6
|
-
"owner": "Vitris design library",
|
|
7
|
-
"sourceHash": "19aa27804b5a70f29808a862c4ec108b865e787677edf07aa16c9a552dc033c2",
|
|
8
|
-
"fit": {
|
|
9
|
-
"visitorJobs": [
|
|
10
|
-
"Find opening hours and contact the business"
|
|
11
|
-
],
|
|
12
|
-
"pageRoles": [
|
|
13
|
-
"practical contact"
|
|
14
|
-
],
|
|
15
|
-
"useWhen": [
|
|
16
|
-
"Find opening hours and contact the business"
|
|
17
|
-
],
|
|
18
|
-
"avoidWhen": [
|
|
19
|
-
"The content or media cannot support this composition"
|
|
20
|
-
]
|
|
21
|
-
},
|
|
22
|
-
"content": {
|
|
23
|
-
"requiredSlots": [
|
|
24
|
-
"heading",
|
|
25
|
-
"actions",
|
|
26
|
-
"hours"
|
|
27
|
-
],
|
|
28
|
-
"optionalSlots": [
|
|
29
|
-
"eyebrow",
|
|
30
|
-
"lede",
|
|
31
|
-
"note"
|
|
32
|
-
],
|
|
33
|
-
"testedItemCounts": [
|
|
34
|
-
1
|
|
35
|
-
]
|
|
36
|
-
},
|
|
37
|
-
"media": {
|
|
38
|
-
"min": 0,
|
|
39
|
-
"max": 8,
|
|
40
|
-
"optionalBehavior": "Recompose without empty media frames when media is optional",
|
|
41
|
-
"aspect": [
|
|
42
|
-
"content-dependent"
|
|
43
|
-
]
|
|
44
|
-
},
|
|
45
|
-
"composition": {
|
|
46
|
-
"hierarchy": "information split",
|
|
47
|
-
"alignment": "left",
|
|
48
|
-
"density": "compact",
|
|
49
|
-
"mediaProminence": "none",
|
|
50
|
-
"geometry": [
|
|
51
|
-
"split",
|
|
52
|
-
"table"
|
|
53
|
-
],
|
|
54
|
-
"boundary": "section boundary adapts to adjacent content"
|
|
55
|
-
},
|
|
56
|
-
"adaptation": {
|
|
57
|
-
"flexible": [
|
|
58
|
-
"spacing",
|
|
59
|
-
"surface treatment",
|
|
60
|
-
"type scale"
|
|
61
|
-
],
|
|
62
|
-
"invariants": [
|
|
63
|
-
"semantic reading order",
|
|
64
|
-
"one clear section purpose"
|
|
65
|
-
],
|
|
66
|
-
"customWhen": [
|
|
67
|
-
"The visitor job needs a different hierarchy"
|
|
68
|
-
]
|
|
69
|
-
},
|
|
70
|
-
"responsive": {
|
|
71
|
-
"readingOrder": "DOM order follows the visitor narrative",
|
|
72
|
-
"reflow": "Stack or resize according to content",
|
|
73
|
-
"crop": "Keep important subjects visible"
|
|
74
|
-
},
|
|
75
|
-
"interaction": {
|
|
76
|
-
"behavior": "Native links and controls",
|
|
77
|
-
"islands": []
|
|
78
|
-
},
|
|
79
|
-
"evidence": {
|
|
80
|
-
"provenance": [
|
|
81
|
-
"Original Vitris block source"
|
|
82
|
-
],
|
|
83
|
-
"testedContexts": [],
|
|
84
|
-
"accessibility": [],
|
|
85
|
-
"previewManifest": "../../../design-system/block-previews/v1/contact--contact-hours.json"
|
|
86
|
-
}
|
|
87
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
.c-contact-hours__copy .section__head{margin-bottom:var(--space-5)}
|
|
2
|
-
.c-contact-hours__card{padding:var(--space-5) var(--space-6);display:grid;gap:var(--space-3)}
|
|
3
|
-
.c-contact-hours__table th{font-weight:500;color:var(--color-text);text-transform:none;letter-spacing:0;font-size:var(--step-1)}
|
|
4
|
-
.c-contact-hours__table td{color:var(--color-muted);font-variant-numeric:tabular-nums}
|
|
5
|
-
.c-contact-hours__table tr:last-child th,.c-contact-hours__table tr:last-child td{border-bottom:0}
|
|
6
|
-
.c-contact-hours__table .is-today th,.c-contact-hours__table .is-today td{color:var(--color-accent);font-weight:600}
|
|
7
|
-
.c-contact-hours__card small{color:var(--color-muted)}
|
|
8
|
-
@media(min-width:720px){.c-contact-hours .split{grid-template-columns:3fr 2fr;align-items:center}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-contact-hours section"><div class="wrap split split--top"><div class="c-contact-hours__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="card c-contact-hours__card"><table class="table table--plain c-contact-hours__table"><tbody><slot name="hours"></slot></tbody></table><slot name="note"></slot></div></div></section>
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# contact-map
|
|
2
|
-
|
|
3
|
-
Media/map still beside details.
|
|
4
|
-
|
|
5
|
-
- **Category:** contact
|
|
6
|
-
- **Media:** map or storefront
|
|
7
|
-
- **Registers:** trade, food, beauty
|
|
8
|
-
- **Variants:** reverse
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `media` | Static map image or storefront photo (4:3) |
|
|
15
|
-
| `eyebrow` | Optional `<p class="eyebrow">` |
|
|
16
|
-
| `heading` | `<h2>` |
|
|
17
|
-
| `lede` | Optional `<p class="lede">` |
|
|
18
|
-
| `details` | 3 `<a>` rows (same markup as contact-split) |
|
|
19
|
-
| `actions` | 1–2 buttons (directions, call) |
|
|
20
|
-
|
|
21
|
-
## Example
|
|
22
|
-
|
|
23
|
-
```html
|
|
24
|
-
<contact-map>
|
|
25
|
-
<img src="/media/harvest/map.jpg" alt="Map showing 12 Harbor St, Portland" width="1200" height="900" slot="media" loading="lazy">
|
|
26
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">Find us</p>
|
|
27
|
-
<h2 slot="heading">Bakery & café, East End</h2>
|
|
28
|
-
<p slot="lede" class="lede">Corner of Harbor and Fore. Look for the blue awning.</p>
|
|
29
|
-
<a slot="details" href="tel:+15550102000"><span class="icon-tile icon-tile--muted"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M6 3h4l2 5-3 2a12 12 0 0 0 6 6l2-3 5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 4 5a2 2 0 0 1 2-2z"/></svg></span><span><strong>(555) 010-2000</strong><span>Mon–Fri 7:30–5:00 · Sat by appointment</span></span></a>
|
|
30
|
-
<a slot="details" href="mailto:hello@harborroofing.example"><span class="icon-tile icon-tile--muted"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="5" width="18" height="14" rx="2"/><path d="m3 7 9 6 9-6"/></svg></span><span><strong>hello@harborroofing.example</strong><span>We reply within one business day</span></span></a>
|
|
31
|
-
<a slot="details" href="https://maps.example/harbor" rel="noopener"><span class="icon-tile icon-tile--muted"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 22s7-6.2 7-12a7 7 0 1 0-14 0c0 5.8 7 12 7 12z"/><circle cx="12" cy="10" r="2.5"/></svg></span><span><strong>12 Harbor St, Portland, ME 04101</strong><span>Free parking behind the building</span></span></a>
|
|
32
|
-
<a slot="actions" class="btn" href="https://maps.example/harbor" rel="noopener">Get directions</a>
|
|
33
|
-
<a slot="actions" class="btn-outline" href="tel:+15550102000">Call ahead</a>
|
|
34
|
-
</contact-map>
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Variants: `<contact-map variant="reverse">`.
|
|
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-contact-map__copy{display:grid;gap:var(--space-5)}
|
|
2
|
-
.c-contact-map__copy .section__head{margin-bottom:0}
|
|
3
|
-
.c-contact-map__media{display:block;box-shadow:none;border:1px solid var(--color-border)}
|
|
4
|
-
.c-contact-map__details{display:grid;gap:var(--space-4);list-style:none;margin:0;padding:0}
|
|
5
|
-
.c-contact-map__details > a{display:flex;gap:var(--space-4);align-items:flex-start;text-decoration:none;color:inherit}
|
|
6
|
-
.c-contact-map__details > a > span:last-child{display:grid;gap:.15rem}
|
|
7
|
-
.c-contact-map__details strong{font-weight:600}
|
|
8
|
-
.c-contact-map__details > a > span:last-child > span{color:var(--color-muted);font-size:var(--step-0)}
|
|
9
|
-
.c-contact-map__details > a:hover strong{color:var(--color-accent)}
|
|
10
|
-
.c-contact-map--reverse .split > :first-child{order:2}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-contact-map section"><div class="wrap split"><a class="frame ratio-4x3 c-contact-map__media" href="https://maps.example" rel="noopener"><slot name="media"></slot></a><div class="c-contact-map__copy"><div class="section__head"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="c-contact-map__details"><slot name="details"></slot></div><div class="btn-group"><slot name="actions"></slot></div></div></div></section>
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# contact-offices
|
|
2
|
-
|
|
3
|
-
One card per location: map still, address, phone, email.
|
|
4
|
-
|
|
5
|
-
- **Category:** contact
|
|
6
|
-
- **Media:** map or storefront still per office
|
|
7
|
-
- **Registers:** professional, 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
|
-
| `offices` | 2–4 `<article class="card"><div class="card__media ratio-4x3"><img></div><div class="card__body"><h3>City</h3><p>Address</p><p><a href="tel:">…</a><br><a href="mailto:">…</a></p></div></article>` |
|
|
18
|
-
|
|
19
|
-
## Example
|
|
20
|
-
|
|
21
|
-
```html
|
|
22
|
-
<contact-offices>
|
|
23
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">Our offices</p>
|
|
24
|
-
<h2 slot="heading">Senior counsel on the ground in each jurisdiction.</h2>
|
|
25
|
-
<p slot="lede" class="lede">Walk in, write in, or call — the response is the same.</p>
|
|
26
|
-
<article slot="offices" class="card"><div class="card__media ratio-4x3"><img src="/media/harvest/map-ny.jpg" alt="Map of lower Manhattan" width="1200" height="900" loading="lazy"></div><div class="card__body"><h3>New York</h3><p>One Liberty Plaza<br>New York, NY 10006</p><p><a href="tel:+12125550142">+1 (212) 555-0142</a><br><a href="mailto:newyork@verdict.example">newyork@verdict.example</a></p></div></article>
|
|
27
|
-
<article slot="offices" class="card"><div class="card__media ratio-4x3"><img src="/media/harvest/map-dc.jpg" alt="Map of downtown Washington" width="1200" height="900" loading="lazy"></div><div class="card__body"><h3>Washington, D.C.</h3><p>900 17th Street NW<br>Washington, D.C. 20006</p><p><a href="tel:+12025550188">+1 (202) 555-0188</a><br><a href="mailto:dc@verdict.example">dc@verdict.example</a></p></div></article>
|
|
28
|
-
<article slot="offices" class="card"><div class="card__media ratio-4x3"><img src="/media/harvest/map-london.jpg" alt="Map of the City of London" width="1200" height="900" loading="lazy"></div><div class="card__body"><h3>London</h3><p>30 St Mary Axe<br>London EC3A 8BF</p><p><a href="tel:+442079460500">+44 20 7946 0500</a><br><a href="mailto:london@verdict.example">london@verdict.example</a></p></div></article>
|
|
29
|
-
</contact-offices>
|
|
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,8 +0,0 @@
|
|
|
1
|
-
.c-contact-offices__grid{--gap:var(--space-4)}
|
|
2
|
-
.c-contact-offices__grid .card__body{gap:var(--space-3)}
|
|
3
|
-
.c-contact-offices__grid .card__body h3{font-size:var(--step-2)}
|
|
4
|
-
.c-contact-offices__grid .card__body p{line-height:1.6}
|
|
5
|
-
.c-contact-offices__grid .card__body a{color:var(--color-text);text-decoration:none}
|
|
6
|
-
.c-contact-offices__grid .card__body a:hover{color:var(--color-accent)}
|
|
7
|
-
@media(min-width:720px){.c-contact-offices__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
|
|
8
|
-
@media(min-width:1080px){.c-contact-offices__grid{grid-template-columns:repeat(3,minmax(0,1fr));--gap:var(--space-5)}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<section class="c-contact-offices section"><div class="wrap"><div class="section__head section__head--center"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="grid c-contact-offices__grid"><slot name="offices"></slot></div></div></section>
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# contact-phone-first
|
|
2
|
-
|
|
3
|
-
A direct call path for businesses whose visitors need a conversation more than a form. Useful availability and alternate contact details remain visible. The example business and number are fictional.
|
|
4
|
-
|
|
5
|
-
- **Category:** contact
|
|
6
|
-
- **Media:** none
|
|
7
|
-
- **Registers:** trade, professional, food
|
|
8
|
-
- **Variants:** (none)
|
|
9
|
-
|
|
10
|
-
## Slots
|
|
11
|
-
|
|
12
|
-
| Slot | Content |
|
|
13
|
-
|------|---------|
|
|
14
|
-
| `eyebrow` | Optional section label |
|
|
15
|
-
| `heading` | `<h2>` with the purpose of contact |
|
|
16
|
-
| `intro` | Optional explanation of who should call and what happens next |
|
|
17
|
-
| `phone` | Labeled `tel:` link to a verified business number |
|
|
18
|
-
| `details` | Optional hours, email, location, or response expectation |
|
|
19
|
-
|
|
20
|
-
## Example
|
|
21
|
-
|
|
22
|
-
```html
|
|
23
|
-
<contact-phone-first>
|
|
24
|
-
<p slot="eyebrow" class="eyebrow eyebrow--accent">Northline Counsel · fictional example</p>
|
|
25
|
-
<h2 slot="heading">Talk through the next step.</h2>
|
|
26
|
-
<p slot="intro" class="lede">Call the office to explain what you need. We will tell you who can help and how to prepare for a first meeting.</p>
|
|
27
|
-
<div slot="phone"><p class="eyebrow">Call the office</p><a href="tel:+12075550123">(207) 555-0123</a></div>
|
|
28
|
-
<p slot="details">Monday–Friday, 9 a.m.–5 p.m.</p>
|
|
29
|
-
<p slot="details"><a href="mailto:hello@example.test">hello@example.test</a></p>
|
|
30
|
-
</contact-phone-first>
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Use a real `tel:` destination, actual hours, and a fallback channel. If a form is essential, pair this with a suitable form section rather than hiding the form behind the phone treatment.
|