howone 0.1.20 → 0.1.22
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/package.json +1 -1
- package/templates/vite/.howone/skills/hallmark/LICENSE +21 -0
- package/templates/vite/.howone/skills/hallmark/README.md +147 -0
- package/templates/vite/.howone/skills/hallmark/ROADMAP.md +201 -0
- package/templates/vite/.howone/skills/hallmark/SKILL.md +551 -0
- package/templates/vite/.howone/skills/hallmark/docs/recipes.md +186 -0
- package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-anya.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-bananastudio.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-hyperlane.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-najm.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-slow-pour.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-soroe.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-tally.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-wayfare.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/docs/study-examples.md +176 -0
- package/templates/vite/.howone/skills/hallmark/docs/talk-slides.md +364 -0
- package/templates/vite/.howone/skills/hallmark/package.json +36 -0
- package/templates/vite/.howone/skills/hallmark/references/anti-patterns.md +412 -0
- package/templates/vite/.howone/skills/hallmark/references/assets.md +399 -0
- package/templates/vite/.howone/skills/hallmark/references/color.md +95 -0
- package/templates/vite/.howone/skills/hallmark/references/component-cookbook.md +256 -0
- package/templates/vite/.howone/skills/hallmark/references/components/c1-outlined-chip.md +12 -0
- package/templates/vite/.howone/skills/hallmark/references/components/c2-inline-form-as-cta.md +16 -0
- package/templates/vite/.howone/skills/hallmark/references/components/c3-typographic-link.md +8 -0
- package/templates/vite/.howone/skills/hallmark/references/components/c4-sticky-bottom-bar.md +16 -0
- package/templates/vite/.howone/skills/hallmark/references/components/f1-bento-grid.md +20 -0
- package/templates/vite/.howone/skills/hallmark/references/components/f2-sticky-scroll-stack.md +20 -0
- package/templates/vite/.howone/skills/hallmark/references/components/f3-tabular-spec-sheet.md +11 -0
- package/templates/vite/.howone/skills/hallmark/references/components/f4-step-sequence.md +11 -0
- package/templates/vite/.howone/skills/hallmark/references/components/f5-annotated-screenshot.md +11 -0
- package/templates/vite/.howone/skills/hallmark/references/components/f6-product-card-grid.md +41 -0
- package/templates/vite/.howone/skills/hallmark/references/components/ft1-mast-headed.md +13 -0
- package/templates/vite/.howone/skills/hallmark/references/components/ft2-inline-rule-single-line.md +10 -0
- package/templates/vite/.howone/skills/hallmark/references/components/ft3-index-style-category-list.md +12 -0
- package/templates/vite/.howone/skills/hallmark/references/components/ft4-dense-typographic.md +10 -0
- package/templates/vite/.howone/skills/hallmark/references/components/ft5-statement.md +21 -0
- package/templates/vite/.howone/skills/hallmark/references/components/ft6-letter-close.md +19 -0
- package/templates/vite/.howone/skills/hallmark/references/components/ft7-newsletter-first.md +27 -0
- package/templates/vite/.howone/skills/hallmark/references/components/ft8-marquee-scroll.md +25 -0
- package/templates/vite/.howone/skills/hallmark/references/components/h1-marquee.md +15 -0
- package/templates/vite/.howone/skills/hallmark/references/components/h2-split-diptych.md +15 -0
- package/templates/vite/.howone/skills/hallmark/references/components/h3-quote-led.md +11 -0
- package/templates/vite/.howone/skills/hallmark/references/components/h4-stat-led.md +14 -0
- package/templates/vite/.howone/skills/hallmark/references/components/h5-letter-hero.md +11 -0
- package/templates/vite/.howone/skills/hallmark/references/components/h6-photographic-fold.md +16 -0
- package/templates/vite/.howone/skills/hallmark/references/components/h7-demo-video-clipped-by-viewport-edge.md +27 -0
- package/templates/vite/.howone/skills/hallmark/references/components/h8-mockup-split-browser-framed.md +23 -0
- package/templates/vite/.howone/skills/hallmark/references/components/h9-custom-illustration-centerpiece.md +27 -0
- package/templates/vite/.howone/skills/hallmark/references/components/n1-wordmark-2-links.md +12 -0
- package/templates/vite/.howone/skills/hallmark/references/components/n10-floating-on-scroll-morph.md +19 -0
- package/templates/vite/.howone/skills/hallmark/references/components/n2-floating-chip.md +14 -0
- package/templates/vite/.howone/skills/hallmark/references/components/n3-side-rail.md +14 -0
- package/templates/vite/.howone/skills/hallmark/references/components/n4-hidden-behind-k.md +9 -0
- package/templates/vite/.howone/skills/hallmark/references/components/n5-floating-pill.md +28 -0
- package/templates/vite/.howone/skills/hallmark/references/components/n6-newspaper-masthead.md +24 -0
- package/templates/vite/.howone/skills/hallmark/references/components/n7-brutal-slab.md +22 -0
- package/templates/vite/.howone/skills/hallmark/references/components/n8-terminal-command.md +21 -0
- package/templates/vite/.howone/skills/hallmark/references/components/n9-edge-aligned-minimal.md +17 -0
- package/templates/vite/.howone/skills/hallmark/references/components/s1-left-margin-numbered.md +15 -0
- package/templates/vite/.howone/skills/hallmark/references/components/s2-hanging.md +13 -0
- package/templates/vite/.howone/skills/hallmark/references/components/s3-sticky-pinned.md +19 -0
- package/templates/vite/.howone/skills/hallmark/references/components/s4-inline-no-break.md +11 -0
- package/templates/vite/.howone/skills/hallmark/references/components/s5-bottom-anchored.md +13 -0
- package/templates/vite/.howone/skills/hallmark/references/components/t1-pull-quote-with-marginalia.md +12 -0
- package/templates/vite/.howone/skills/hallmark/references/components/t2-logo-wall-hairline.md +19 -0
- package/templates/vite/.howone/skills/hallmark/references/components/t3-single-huge-quote.md +11 -0
- package/templates/vite/.howone/skills/hallmark/references/components/t4-numbered-stat-strip.md +14 -0
- package/templates/vite/.howone/skills/hallmark/references/contract.md +24 -0
- package/templates/vite/.howone/skills/hallmark/references/copy.md +182 -0
- package/templates/vite/.howone/skills/hallmark/references/custom-craft.md +626 -0
- package/templates/vite/.howone/skills/hallmark/references/custom-theme.md +329 -0
- package/templates/vite/.howone/skills/hallmark/references/design-md.md +116 -0
- package/templates/vite/.howone/skills/hallmark/references/export-formats.md +328 -0
- package/templates/vite/.howone/skills/hallmark/references/floating-nav.md +89 -0
- package/templates/vite/.howone/skills/hallmark/references/genres/atmospheric.md +65 -0
- package/templates/vite/.howone/skills/hallmark/references/genres/editorial.md +70 -0
- package/templates/vite/.howone/skills/hallmark/references/genres/modern-minimal.md +67 -0
- package/templates/vite/.howone/skills/hallmark/references/genres/playful.md +65 -0
- package/templates/vite/.howone/skills/hallmark/references/hero-enrichment.md +474 -0
- package/templates/vite/.howone/skills/hallmark/references/imagery-kit.md +170 -0
- package/templates/vite/.howone/skills/hallmark/references/interaction-and-states.md +207 -0
- package/templates/vite/.howone/skills/hallmark/references/layout-and-space.md +111 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/01-bento-grid.md +35 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/02-long-document.md +34 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/03-marquee-hero.md +31 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/04-stat-led.md +32 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/05-workbench.md +32 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/06-conversational-faq.md +33 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/07-manifesto.md +32 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/08-photographic.md +34 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/09-quote-led.md +32 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/10-specimen.md +32 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/11-catalogue.md +23 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/12-letter.md +23 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/13-index-first.md +23 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/14-narrative-workflow.md +23 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/15-split-studio.md +23 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/16-feature-stack.md +23 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/17-type-specimen.md +23 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/18-portfolio-grid.md +23 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/19-map-diagram.md +23 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/20-ecosystem-index.md +23 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures/21-component-playground.md +23 -0
- package/templates/vite/.howone/skills/hallmark/references/macrostructures.md +89 -0
- package/templates/vite/.howone/skills/hallmark/references/microinteractions.md +260 -0
- package/templates/vite/.howone/skills/hallmark/references/motion.md +109 -0
- package/templates/vite/.howone/skills/hallmark/references/preview-examples.md +49 -0
- package/templates/vite/.howone/skills/hallmark/references/responsive.md +138 -0
- package/templates/vite/.howone/skills/hallmark/references/slop-test.md +205 -0
- package/templates/vite/.howone/skills/hallmark/references/structure.md +164 -0
- package/templates/vite/.howone/skills/hallmark/references/study.md +486 -0
- package/templates/vite/.howone/skills/hallmark/references/typography.md +243 -0
- package/templates/vite/.howone/skills/hallmark/references/verbs/audit.md +25 -0
- package/templates/vite/.howone/skills/hallmark/references/verbs/redesign.md +269 -0
- package/templates/vite/.howone/skills/hallmark/site/OG-hallmark.png +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/brief.md +71 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/index.html +64 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/style.css +240 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/brief.md +65 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/index.html +105 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/style.css +250 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/brief.md +64 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/index.html +131 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/style.css +240 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/brief.md +67 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/index.html +86 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/style.css +262 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/brief.md +63 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/index.html +167 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/style.css +457 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/brief.md +65 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/index.html +159 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/style.css +288 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/brief.md +64 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/index.html +146 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/style.css +484 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/brief.md +64 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/index.html +116 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/style.css +354 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/09-slow-pour/index.html +638 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/10-owl-hours/index.html +515 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/11-soroe-ceramics/index.html +515 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/12-loafer/index.html +608 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/13-alma/index.html +587 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/README.md +157 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/BananaStudio-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/BananaStudio-still.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Hyperlane-example.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Hyperlane-still.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Najm-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Najm-still.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Podcast-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/SaaS-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/SaaS-still.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Soroe-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Soroe-still.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/after-quiet-hour.png +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/anya-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/anya-still.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/audit-example.png +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/before-quiet-hour.png +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/example-redesign-uractivation.png +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/slow-pour-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/slow-pour-still.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/study-example.png +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/uractivation-after-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/wayfare-loop.mp4 +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/wayfare-still.jpg +0 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/custom/01-coffeebox/index.html +77 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/custom/01-coffeebox/style.css +238 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/custom/02-loop/index.html +110 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/custom/02-loop/style.css +326 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/custom/03-mossroot/index.html +134 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/custom/03-mossroot/style.css +262 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/custom/README.md +30 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/README.md +17 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/audit-report.md +56 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/input.html +160 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/notes.md +29 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/input.html +63 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/notes.md +72 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/output.html +374 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/diagnosis.md +52 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/input-description.md +29 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/notes.md +61 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/output.css +193 -0
- package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/output.html +66 -0
- package/templates/vite/.howone/skills/hallmark/site/css/base.css +194 -0
- package/templates/vite/.howone/skills/hallmark/site/css/components.css +4886 -0
- package/templates/vite/.howone/skills/hallmark/site/css/sections.css +2072 -0
- package/templates/vite/.howone/skills/hallmark/site/css/tokens.css +1129 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/index.html +475 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/styles.css +1584 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/tokens.css +96 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/index.html +344 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/script.js +103 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/styles.css +1103 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/tokens.css +83 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/najm/index.html +368 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/najm/script.js +133 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/najm/styles.css +1062 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/najm/tokens.css +97 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/tally/app.js +84 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/tally/index.html +446 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/tally/styles.css +1087 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/tally/tokens.css +101 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/index.html +359 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/style.css +1168 -0
- package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/tokens.css +81 -0
- package/templates/vite/.howone/skills/hallmark/site/favicon-dark.svg +5 -0
- package/templates/vite/.howone/skills/hallmark/site/favicon-light.svg +5 -0
- package/templates/vite/.howone/skills/hallmark/site/index.html +1043 -0
- package/templates/vite/.howone/skills/hallmark/site/js/main.js +1175 -0
- package/templates/vite/.howone/skills/hallmark/vercel.json +6 -0
- package/templates/vite/.howone/skills/howone-sdk/01-architect/01-app-generation.md +101 -0
- package/templates/vite/.howone/skills/howone-sdk/02-database/01-schema-design.md +147 -0
- package/templates/vite/.howone/skills/howone-sdk/02-database/02-schema-operations.md +96 -0
- package/templates/vite/.howone/skills/howone-sdk/02-database/03-data-access-patterns.md +172 -0
- package/templates/vite/.howone/skills/howone-sdk/{references → 03-sdk}/01-client-setup.md +3 -3
- package/templates/vite/.howone/skills/howone-sdk/{references/04-auth.md → 03-sdk/03-auth.md} +120 -3
- package/templates/vite/.howone/skills/howone-sdk/04-ai/.gitkeep +1 -0
- package/templates/vite/.howone/skills/howone-sdk/SKILL.md +67 -93
- package/templates/vite/.howone/skills/howone-sdk/agents/openai.yaml +3 -3
- package/templates/vite/.howone/skills/impeccable/SKILL.md +168 -0
- package/templates/vite/.howone/skills/impeccable/agents/impeccable-asset-producer.md +101 -0
- package/templates/vite/.howone/skills/impeccable/reference/adapt.md +190 -0
- package/templates/vite/.howone/skills/impeccable/reference/animate.md +175 -0
- package/templates/vite/.howone/skills/impeccable/reference/audit.md +133 -0
- package/templates/vite/.howone/skills/impeccable/reference/bolder.md +113 -0
- package/templates/vite/.howone/skills/impeccable/reference/brand.md +118 -0
- package/templates/vite/.howone/skills/impeccable/reference/clarify.md +174 -0
- package/templates/vite/.howone/skills/impeccable/reference/codex.md +105 -0
- package/templates/vite/.howone/skills/impeccable/reference/cognitive-load.md +106 -0
- package/templates/vite/.howone/skills/impeccable/reference/color-and-contrast.md +105 -0
- package/templates/vite/.howone/skills/impeccable/reference/colorize.md +154 -0
- package/templates/vite/.howone/skills/impeccable/reference/craft.md +123 -0
- package/templates/vite/.howone/skills/impeccable/reference/critique.md +273 -0
- package/templates/vite/.howone/skills/impeccable/reference/delight.md +302 -0
- package/templates/vite/.howone/skills/impeccable/reference/distill.md +111 -0
- package/templates/vite/.howone/skills/impeccable/reference/document.md +427 -0
- package/templates/vite/.howone/skills/impeccable/reference/extract.md +69 -0
- package/templates/vite/.howone/skills/impeccable/reference/harden.md +347 -0
- package/templates/vite/.howone/skills/impeccable/reference/heuristics-scoring.md +234 -0
- package/templates/vite/.howone/skills/impeccable/reference/interaction-design.md +195 -0
- package/templates/vite/.howone/skills/impeccable/reference/layout.md +141 -0
- package/templates/vite/.howone/skills/impeccable/reference/live.md +622 -0
- package/templates/vite/.howone/skills/impeccable/reference/motion-design.md +109 -0
- package/templates/vite/.howone/skills/impeccable/reference/onboard.md +234 -0
- package/templates/vite/.howone/skills/impeccable/reference/optimize.md +258 -0
- package/templates/vite/.howone/skills/impeccable/reference/overdrive.md +130 -0
- package/templates/vite/.howone/skills/impeccable/reference/personas.md +179 -0
- package/templates/vite/.howone/skills/impeccable/reference/polish.md +242 -0
- package/templates/vite/.howone/skills/impeccable/reference/product.md +62 -0
- package/templates/vite/.howone/skills/impeccable/reference/quieter.md +99 -0
- package/templates/vite/.howone/skills/impeccable/reference/responsive-design.md +114 -0
- package/templates/vite/.howone/skills/impeccable/reference/shape.md +165 -0
- package/templates/vite/.howone/skills/impeccable/reference/spatial-design.md +100 -0
- package/templates/vite/.howone/skills/impeccable/reference/teach.md +156 -0
- package/templates/vite/.howone/skills/impeccable/reference/typeset.md +124 -0
- package/templates/vite/.howone/skills/impeccable/reference/typography.md +159 -0
- package/templates/vite/.howone/skills/impeccable/reference/ux-writing.md +107 -0
- package/templates/vite/.howone/skills/impeccable/scripts/cleanup-deprecated.mjs +284 -0
- package/templates/vite/.howone/skills/impeccable/scripts/command-metadata.json +94 -0
- package/templates/vite/.howone/skills/impeccable/scripts/critique-storage.mjs +242 -0
- package/templates/vite/.howone/skills/impeccable/scripts/design-parser.mjs +820 -0
- package/templates/vite/.howone/skills/impeccable/scripts/detect-csp.mjs +198 -0
- package/templates/vite/.howone/skills/impeccable/scripts/detect.mjs +21 -0
- package/templates/vite/.howone/skills/impeccable/scripts/impeccable-paths.mjs +110 -0
- package/templates/vite/.howone/skills/impeccable/scripts/is-generated.mjs +69 -0
- package/templates/vite/.howone/skills/impeccable/scripts/live-accept.mjs +595 -0
- package/templates/vite/.howone/skills/impeccable/scripts/live-browser-session.js +123 -0
- package/templates/vite/.howone/skills/impeccable/scripts/live-browser.js +4860 -0
- package/templates/vite/.howone/skills/impeccable/scripts/live-complete.mjs +75 -0
- package/templates/vite/.howone/skills/impeccable/scripts/live-completion.mjs +18 -0
- package/templates/vite/.howone/skills/impeccable/scripts/live-inject.mjs +446 -0
- package/templates/vite/.howone/skills/impeccable/scripts/live-poll.mjs +200 -0
- package/templates/vite/.howone/skills/impeccable/scripts/live-resume.mjs +48 -0
- package/templates/vite/.howone/skills/impeccable/scripts/live-server.mjs +838 -0
- package/templates/vite/.howone/skills/impeccable/scripts/live-session-store.mjs +254 -0
- package/templates/vite/.howone/skills/impeccable/scripts/live-status.mjs +47 -0
- package/templates/vite/.howone/skills/impeccable/scripts/live-wrap.mjs +632 -0
- package/templates/vite/.howone/skills/impeccable/scripts/live.mjs +247 -0
- package/templates/vite/.howone/skills/impeccable/scripts/load-context.mjs +141 -0
- package/templates/vite/.howone/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
- package/templates/vite/.howone/skills/impeccable/scripts/pin.mjs +214 -0
- package/templates/vite/AGENTS.md +2 -12
- package/templates/vite/package.json +1 -1
- /package/templates/vite/.howone/skills/howone-sdk/{references/08-manifest-codegen.md → 01-architect/02-manifest-codegen.md} +0 -0
- /package/templates/vite/.howone/skills/howone-sdk/{references → 03-sdk}/02-entity-operations.md +0 -0
- /package/templates/vite/.howone/skills/howone-sdk/{references/06-react-integration.md → 03-sdk/04-react-integration.md} +0 -0
- /package/templates/vite/.howone/skills/howone-sdk/{references → 03-sdk}/05-file-upload.md +0 -0
- /package/templates/vite/.howone/skills/howone-sdk/{references/07-raw-http.md → 03-sdk/06-raw-http.md} +0 -0
- /package/templates/vite/.howone/skills/howone-sdk/{references/03-ai-actions.md → 03-sdk/07-ai-action-calls.md} +0 -0
|
@@ -0,0 +1,1129 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Hallmark — tokens
|
|
3
|
+
Twelve themes. Each occupies a distinct point in OKLCH space.
|
|
4
|
+
Paper colours span dark / cream / saturated / cool / warm; never adjacent.
|
|
5
|
+
Display fonts span category-level differences (serif / mono / condensed sans / italic);
|
|
6
|
+
no theme is a minor variation of another.
|
|
7
|
+
Switched via [data-theme="..."] on <html>.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/* ──────────────────────────────────────────────────────────────
|
|
11
|
+
SPECIMEN — warm oat editorial workshop · serif default
|
|
12
|
+
────────────────────────────────────────────────────────────── */
|
|
13
|
+
|
|
14
|
+
:root,
|
|
15
|
+
[data-theme="specimen"] {
|
|
16
|
+
--color-paper: oklch(96% 0.018 80);
|
|
17
|
+
--color-paper-2: oklch(93% 0.020 80);
|
|
18
|
+
--color-paper-3: oklch(89% 0.022 75);
|
|
19
|
+
--color-rule: oklch(82% 0.014 75);
|
|
20
|
+
--color-rule-2: oklch(70% 0.012 70);
|
|
21
|
+
--color-muted: oklch(52% 0.012 65);
|
|
22
|
+
--color-neutral: oklch(38% 0.014 60);
|
|
23
|
+
--color-ink-2: oklch(26% 0.014 60);
|
|
24
|
+
--color-ink: oklch(18% 0.014 60);
|
|
25
|
+
--color-accent: #FC4C02;
|
|
26
|
+
--color-accent-ink: oklch(55% 0.21 32);
|
|
27
|
+
--color-focus: #FC4C02;
|
|
28
|
+
|
|
29
|
+
--font-display: "Fraunces", "Tiempos", ui-serif, Georgia, serif;
|
|
30
|
+
--font-body: "Geist", "Söhne", ui-sans-serif, sans-serif;
|
|
31
|
+
--font-serif: "Fraunces", ui-serif, Georgia, serif;
|
|
32
|
+
--font-label: "Geist Mono", "JetBrains Mono", ui-monospace, monospace;
|
|
33
|
+
--font-mono: "Geist Mono", "JetBrains Mono", ui-monospace, monospace;
|
|
34
|
+
|
|
35
|
+
--display-weight: 340;
|
|
36
|
+
--display-optical: 144;
|
|
37
|
+
--display-style: normal;
|
|
38
|
+
--display-soft: 20;
|
|
39
|
+
|
|
40
|
+
--text-xs: 0.75rem;
|
|
41
|
+
--text-sm: 0.875rem;
|
|
42
|
+
--text-base: 1rem;
|
|
43
|
+
--text-md: 1.125rem;
|
|
44
|
+
--text-lg: 1.375rem;
|
|
45
|
+
--text-xl: 1.75rem;
|
|
46
|
+
--text-2xl: 2.25rem;
|
|
47
|
+
--text-3xl: 2.75rem;
|
|
48
|
+
--text-display: clamp(3.0rem, 5.5vw + 1.0rem, 5.75rem);
|
|
49
|
+
--text-display-s: clamp(2rem, 3vw + 1rem, 3rem);
|
|
50
|
+
|
|
51
|
+
--lh-tight: 1.02;
|
|
52
|
+
--lh-snug: 1.18;
|
|
53
|
+
--lh-normal: 1.45;
|
|
54
|
+
--lh-relaxed: 1.6;
|
|
55
|
+
|
|
56
|
+
--tracking-display: -0.025em;
|
|
57
|
+
--tracking-tight: -0.01em;
|
|
58
|
+
--tracking-normal: 0;
|
|
59
|
+
--tracking-label: 0.12em;
|
|
60
|
+
|
|
61
|
+
--space-3xs: 0.125rem;
|
|
62
|
+
--space-2xs: 0.25rem;
|
|
63
|
+
--space-xs: 0.5rem;
|
|
64
|
+
--space-sm: 0.75rem;
|
|
65
|
+
--space-md: 1rem;
|
|
66
|
+
--space-lg: 1.5rem;
|
|
67
|
+
--space-xl: 2.5rem;
|
|
68
|
+
--space-2xl: 4rem;
|
|
69
|
+
--space-3xl: 6.5rem;
|
|
70
|
+
--space-4xl: 10rem;
|
|
71
|
+
--space-5xl: 13rem;
|
|
72
|
+
|
|
73
|
+
--section-gap: 6.5rem;
|
|
74
|
+
--section-head-gap: 1.5rem;
|
|
75
|
+
|
|
76
|
+
--page-max: 76rem;
|
|
77
|
+
--page-gutter: clamp(1.25rem, 4vw, 3rem);
|
|
78
|
+
--measure: 62ch;
|
|
79
|
+
--rule-hair: 0.5px;
|
|
80
|
+
--rule-fine: 1px;
|
|
81
|
+
|
|
82
|
+
/* Component shape — square by default; per-theme overrides below.
|
|
83
|
+
The radius / border-weight choice is part of each theme's voice:
|
|
84
|
+
editorial themes stay square (Specimen, Newsprint, Salon, Linen),
|
|
85
|
+
technical themes stay square (Almanac, Midnight, Terminal),
|
|
86
|
+
brutalist themes get heavier borders (Brutal, Manifesto),
|
|
87
|
+
soft themes get rounded corners (Garden, Studio, Quiet, Plume). */
|
|
88
|
+
--radius-card: 0; /* .code, .tell cards, .install__body */
|
|
89
|
+
--radius-pill: 0; /* CTAs, dot indicators, badges */
|
|
90
|
+
--radius-input: 0; /* form fields, single-line code blocks */
|
|
91
|
+
--rule-card: 1px; /* card border thickness */
|
|
92
|
+
--shadow-card: none; /* card depth — most themes have no shadow */
|
|
93
|
+
|
|
94
|
+
--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
|
|
95
|
+
--ease-in: cubic-bezier(0.7, 0, 0.84, 0);
|
|
96
|
+
--ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
|
|
97
|
+
--dur-micro: 120ms;
|
|
98
|
+
--dur-short: 220ms;
|
|
99
|
+
--dur-long: 420ms;
|
|
100
|
+
|
|
101
|
+
--z-base: 1;
|
|
102
|
+
--z-raised: 10;
|
|
103
|
+
--z-dropdown: 100;
|
|
104
|
+
--z-sticky: 200; /* in-page sticky elements (section heads, sidebars) */
|
|
105
|
+
--z-sticky-nav: 300; /* top nav / banner — must out-paint in-page sticky so docked section heads slide UNDER it */
|
|
106
|
+
--z-modal: 400;
|
|
107
|
+
--z-toast: 500;
|
|
108
|
+
--z-tooltip: 600;
|
|
109
|
+
|
|
110
|
+
/* Banner height — every in-page sticky element must offset by this so it docks BELOW the nav, never overlaps. */
|
|
111
|
+
--banner-height: 44px;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* ──────────────────────────────────────────────────────────────
|
|
115
|
+
MIDNIGHT — deep cool charcoal · technical
|
|
116
|
+
Paper: cool dark blue-tinted (was warm; now cool for stronger
|
|
117
|
+
differentiation from the warm-paper themes)
|
|
118
|
+
────────────────────────────────────────────────────────────── */
|
|
119
|
+
|
|
120
|
+
[data-theme="midnight"] {
|
|
121
|
+
--color-paper: oklch(15% 0.022 250);
|
|
122
|
+
--color-paper-2: oklch(20% 0.024 250);
|
|
123
|
+
--color-paper-3: oklch(25% 0.026 250);
|
|
124
|
+
--color-rule: oklch(33% 0.024 245);
|
|
125
|
+
--color-rule-2: oklch(48% 0.020 240);
|
|
126
|
+
--color-muted: oklch(60% 0.018 240);
|
|
127
|
+
--color-neutral: oklch(72% 0.014 235);
|
|
128
|
+
--color-ink-2: oklch(86% 0.010 230);
|
|
129
|
+
--color-ink: oklch(95% 0.008 230);
|
|
130
|
+
--color-accent: oklch(72% 0.16 220);
|
|
131
|
+
--color-accent-ink: oklch(72% 0.16 220);
|
|
132
|
+
--color-focus: oklch(72% 0.16 220);
|
|
133
|
+
|
|
134
|
+
--font-display: "Geist", "Futura", "Avenir Next", ui-sans-serif, sans-serif;
|
|
135
|
+
--font-body: "Geist", "Söhne", ui-sans-serif, sans-serif;
|
|
136
|
+
--font-serif: "Instrument Serif", ui-serif, Georgia, serif;
|
|
137
|
+
--font-label: "Geist Mono", "JetBrains Mono", ui-monospace, monospace;
|
|
138
|
+
--font-mono: "Geist Mono", "JetBrains Mono", ui-monospace, monospace;
|
|
139
|
+
|
|
140
|
+
--display-weight: 300;
|
|
141
|
+
--display-optical: 144;
|
|
142
|
+
--display-soft: 0;
|
|
143
|
+
|
|
144
|
+
--text-display: clamp(2.75rem, 5.0vw + 1.0rem, 5.25rem);
|
|
145
|
+
--text-display-s: clamp(1.75rem, 2.5vw + 1rem, 2.75rem);
|
|
146
|
+
|
|
147
|
+
--tracking-display: -0.03em;
|
|
148
|
+
--tracking-label: 0.16em;
|
|
149
|
+
|
|
150
|
+
--section-gap: 6rem;
|
|
151
|
+
--section-head-gap: 1.5rem;
|
|
152
|
+
--measure: 60ch;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/* ──────────────────────────────────────────────────────────────
|
|
156
|
+
BRUTAL — stark white · heavy condensed · bright red
|
|
157
|
+
────────────────────────────────────────────────────────────── */
|
|
158
|
+
|
|
159
|
+
[data-theme="brutal"] {
|
|
160
|
+
--color-paper: oklch(98% 0.001 0);
|
|
161
|
+
--color-paper-2: oklch(95% 0.002 0);
|
|
162
|
+
--color-paper-3: oklch(91% 0.003 0);
|
|
163
|
+
--color-rule: oklch(12% 0.005 0);
|
|
164
|
+
--color-rule-2: oklch(8% 0.005 0);
|
|
165
|
+
--color-muted: oklch(38% 0.005 0);
|
|
166
|
+
--color-neutral: oklch(22% 0.005 0);
|
|
167
|
+
--color-ink-2: oklch(12% 0.005 0);
|
|
168
|
+
--color-ink: oklch(8% 0.005 0);
|
|
169
|
+
--color-accent: #E63946;
|
|
170
|
+
--color-accent-ink: oklch(58% 0.24 25);
|
|
171
|
+
--color-focus: #E63946;
|
|
172
|
+
|
|
173
|
+
--font-display: "Albert Sans", "GT America", ui-sans-serif, sans-serif;
|
|
174
|
+
--font-body: "Albert Sans", "Hanken Grotesk", ui-sans-serif, sans-serif;
|
|
175
|
+
--font-serif: "Albert Sans", ui-sans-serif, sans-serif;
|
|
176
|
+
--font-label: "JetBrains Mono", ui-monospace, monospace;
|
|
177
|
+
--font-mono: "JetBrains Mono", ui-monospace, monospace;
|
|
178
|
+
|
|
179
|
+
--display-weight: 700;
|
|
180
|
+
--display-soft: 0;
|
|
181
|
+
|
|
182
|
+
--text-display: clamp(3.5rem, 6vw + 1.0rem, 6.5rem);
|
|
183
|
+
--text-display-s: clamp(2.25rem, 4vw + 1rem, 3.75rem);
|
|
184
|
+
--text-2xl: 2.75rem;
|
|
185
|
+
--text-xl: 2rem;
|
|
186
|
+
--text-lg: 1.5rem;
|
|
187
|
+
|
|
188
|
+
--tracking-display: -0.045em;
|
|
189
|
+
--tracking-tight: -0.02em;
|
|
190
|
+
--tracking-label: 0.04em;
|
|
191
|
+
|
|
192
|
+
/* Manifesto runs uppercase Anton on display heads — line-height < 1.0 makes
|
|
193
|
+
cap-tops of line N+1 collide with the comma / baseline of line N (visible
|
|
194
|
+
on multi-line section titles like "SAME PROMPT, TWO / DIFFERENT OUTPUTS").
|
|
195
|
+
1.02 is the safe floor for all-caps condensed display. */
|
|
196
|
+
--lh-tight: 1.02;
|
|
197
|
+
--lh-snug: 1.08;
|
|
198
|
+
|
|
199
|
+
--section-gap: 5.5rem;
|
|
200
|
+
--section-head-gap: 1.25rem;
|
|
201
|
+
|
|
202
|
+
--rule-hair: 1px;
|
|
203
|
+
--rule-fine: 3px;
|
|
204
|
+
--measure: 58ch;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/* ──────────────────────────────────────────────────────────────
|
|
208
|
+
GARDEN — pale sage · italic serif · rose accent
|
|
209
|
+
Pushed greener and slightly cooler from previous version
|
|
210
|
+
────────────────────────────────────────────────────────────── */
|
|
211
|
+
|
|
212
|
+
[data-theme="garden"] {
|
|
213
|
+
--color-paper: oklch(95% 0.030 130);
|
|
214
|
+
--color-paper-2: oklch(92% 0.034 130);
|
|
215
|
+
--color-paper-3: oklch(87% 0.038 130);
|
|
216
|
+
--color-rule: oklch(72% 0.034 130);
|
|
217
|
+
--color-rule-2: oklch(56% 0.040 135);
|
|
218
|
+
--color-muted: oklch(38% 0.055 152);
|
|
219
|
+
--color-neutral: oklch(28% 0.060 158);
|
|
220
|
+
--color-ink-2: oklch(20% 0.062 160);
|
|
221
|
+
--color-ink: oklch(14% 0.065 160);
|
|
222
|
+
--color-accent: #B6485E;
|
|
223
|
+
--color-accent-ink: oklch(55% 0.14 18);
|
|
224
|
+
--color-focus: #B6485E;
|
|
225
|
+
|
|
226
|
+
--font-display: "Cormorant Garamond", "Instrument Serif", "Fraunces", ui-serif, Georgia, serif;
|
|
227
|
+
--font-body: "Geist", "Söhne", ui-sans-serif, sans-serif;
|
|
228
|
+
--font-serif: "Cormorant Garamond", "Instrument Serif", ui-serif, Georgia, serif;
|
|
229
|
+
--font-label: "Geist Mono", ui-monospace, monospace;
|
|
230
|
+
--font-mono: "Geist Mono", ui-monospace, monospace;
|
|
231
|
+
|
|
232
|
+
--display-weight: 400;
|
|
233
|
+
--display-style: italic;
|
|
234
|
+
--display-optical: 96;
|
|
235
|
+
--display-soft: 0;
|
|
236
|
+
|
|
237
|
+
--text-display: clamp(3.25rem, 6.0vw + 1.0rem, 5.75rem);
|
|
238
|
+
--text-display-s: clamp(2.25rem, 3.5vw + 1rem, 3.5rem);
|
|
239
|
+
|
|
240
|
+
--tracking-display: -0.012em;
|
|
241
|
+
--tracking-tight: -0.005em;
|
|
242
|
+
--tracking-label: 0.10em;
|
|
243
|
+
|
|
244
|
+
--lh-tight: 1.05;
|
|
245
|
+
--lh-snug: 1.22;
|
|
246
|
+
|
|
247
|
+
--section-gap: 6.5rem;
|
|
248
|
+
--section-head-gap: 1.5rem;
|
|
249
|
+
--measure: 58ch;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/* ──────────────────────────────────────────────────────────────
|
|
253
|
+
ATELIER — luxury fashion-house
|
|
254
|
+
Cool cream paper (low chroma so it reads "considered" not "warm")
|
|
255
|
+
+ dark warm-brown ink + Playfair Display 900 (Didone-feel)
|
|
256
|
+
────────────────────────────────────────────────────────────── */
|
|
257
|
+
|
|
258
|
+
[data-theme="atelier"] {
|
|
259
|
+
--color-paper: oklch(94% 0.005 60);
|
|
260
|
+
--color-paper-2: oklch(91% 0.006 60);
|
|
261
|
+
--color-paper-3: oklch(87% 0.008 55);
|
|
262
|
+
--color-rule: oklch(78% 0.006 55);
|
|
263
|
+
--color-rule-2: oklch(56% 0.008 50);
|
|
264
|
+
--color-muted: oklch(46% 0.010 50);
|
|
265
|
+
--color-neutral: oklch(28% 0.014 45);
|
|
266
|
+
--color-ink-2: oklch(18% 0.020 40);
|
|
267
|
+
--color-ink: oklch(12% 0.024 40);
|
|
268
|
+
--color-accent: oklch(22% 0.060 40);
|
|
269
|
+
--color-accent-ink: oklch(45% 0.13 60);
|
|
270
|
+
--color-focus: oklch(45% 0.13 60);
|
|
271
|
+
|
|
272
|
+
--font-display: "Playfair Display", "Cormorant Garamond", "Tiempos Headline", ui-serif, Georgia, serif;
|
|
273
|
+
--font-body: "Hanken Grotesk", "Geist", ui-sans-serif, sans-serif;
|
|
274
|
+
--font-serif: "Playfair Display", "Cormorant Garamond", ui-serif, Georgia, serif;
|
|
275
|
+
--font-label: "IBM Plex Mono", ui-monospace, monospace;
|
|
276
|
+
--font-mono: "IBM Plex Mono", ui-monospace, monospace;
|
|
277
|
+
|
|
278
|
+
--display-weight: 900;
|
|
279
|
+
--display-optical: 144;
|
|
280
|
+
--display-style: normal;
|
|
281
|
+
--display-soft: 0;
|
|
282
|
+
|
|
283
|
+
--text-display: clamp(3.75rem, 5.5vw + 1.0rem, 6.25rem);
|
|
284
|
+
--text-display-s: clamp(2.5rem, 4vw + 1rem, 4rem);
|
|
285
|
+
|
|
286
|
+
--tracking-display: -0.018em;
|
|
287
|
+
--tracking-tight: -0.008em;
|
|
288
|
+
--tracking-label: 0.24em;
|
|
289
|
+
|
|
290
|
+
--lh-tight: 1.0;
|
|
291
|
+
--lh-snug: 1.16;
|
|
292
|
+
--lh-normal: 1.55;
|
|
293
|
+
--lh-relaxed: 1.7;
|
|
294
|
+
|
|
295
|
+
--section-gap: 6.5rem;
|
|
296
|
+
--section-head-gap: 1.75rem;
|
|
297
|
+
--measure: 56ch;
|
|
298
|
+
--page-max: 64rem;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/* ──────────────────────────────────────────────────────────────
|
|
302
|
+
NEWSPRINT — broadsheet · salmon-pink paper · burgundy accent
|
|
303
|
+
FT-inspired pink (real)
|
|
304
|
+
────────────────────────────────────────────────────────────── */
|
|
305
|
+
|
|
306
|
+
[data-theme="newsprint"] {
|
|
307
|
+
--color-paper: oklch(92% 0.045 50);
|
|
308
|
+
--color-paper-2: oklch(89% 0.050 50);
|
|
309
|
+
--color-paper-3: oklch(84% 0.054 45);
|
|
310
|
+
--color-rule: oklch(68% 0.030 40);
|
|
311
|
+
--color-rule-2: oklch(35% 0.020 35);
|
|
312
|
+
--color-muted: oklch(46% 0.022 35);
|
|
313
|
+
--color-neutral: oklch(30% 0.025 30);
|
|
314
|
+
--color-ink-2: oklch(20% 0.030 28);
|
|
315
|
+
--color-ink: oklch(15% 0.030 25);
|
|
316
|
+
--color-accent: oklch(32% 0.10 28);
|
|
317
|
+
--color-accent-ink: oklch(45% 0.13 30);
|
|
318
|
+
--color-focus: oklch(48% 0.18 30);
|
|
319
|
+
|
|
320
|
+
--font-display: "Playfair Display", "Crimson Pro", "Newsreader", ui-serif, Georgia, serif;
|
|
321
|
+
--font-body: "Crimson Pro", "Newsreader", ui-serif, Georgia, serif;
|
|
322
|
+
--font-serif: "Playfair Display", "Crimson Pro", ui-serif, Georgia, serif;
|
|
323
|
+
--font-label: "Inter", "Geist", ui-sans-serif, sans-serif;
|
|
324
|
+
--font-mono: "IBM Plex Mono", ui-monospace, monospace;
|
|
325
|
+
|
|
326
|
+
--display-weight: 700;
|
|
327
|
+
--display-optical: 48;
|
|
328
|
+
--display-style: normal;
|
|
329
|
+
--display-soft: 0;
|
|
330
|
+
|
|
331
|
+
--text-base: 1.0625rem;
|
|
332
|
+
--text-md: 1.1875rem;
|
|
333
|
+
--text-lg: 1.375rem;
|
|
334
|
+
--text-xl: 1.625rem;
|
|
335
|
+
--text-2xl: 2rem;
|
|
336
|
+
--text-display: clamp(2.75rem, 5.0vw + 1.0rem, 5.0rem);
|
|
337
|
+
--text-display-s: clamp(2rem, 3vw + 1rem, 2.875rem);
|
|
338
|
+
|
|
339
|
+
--tracking-display: -0.022em;
|
|
340
|
+
--tracking-tight: -0.008em;
|
|
341
|
+
--tracking-label: 0.06em;
|
|
342
|
+
|
|
343
|
+
--lh-normal: 1.55;
|
|
344
|
+
--lh-relaxed: 1.65;
|
|
345
|
+
|
|
346
|
+
--section-gap: 6rem;
|
|
347
|
+
--section-head-gap: 1.5rem;
|
|
348
|
+
--measure: 58ch;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
/* ──────────────────────────────────────────────────────────────
|
|
352
|
+
TERMINAL — phosphor CRT · monospace everywhere
|
|
353
|
+
────────────────────────────────────────────────────────────── */
|
|
354
|
+
|
|
355
|
+
[data-theme="terminal"] {
|
|
356
|
+
--color-paper: oklch(11% 0.018 145);
|
|
357
|
+
--color-paper-2: oklch(15% 0.022 145);
|
|
358
|
+
--color-paper-3: oklch(19% 0.024 145);
|
|
359
|
+
--color-rule: oklch(28% 0.030 140);
|
|
360
|
+
--color-rule-2: oklch(40% 0.050 140);
|
|
361
|
+
--color-muted: oklch(58% 0.090 140);
|
|
362
|
+
--color-neutral: oklch(68% 0.120 140);
|
|
363
|
+
--color-ink-2: oklch(78% 0.140 138);
|
|
364
|
+
--color-ink: oklch(86% 0.160 138);
|
|
365
|
+
--color-accent: oklch(78% 0.190 138);
|
|
366
|
+
--color-accent-ink: oklch(78% 0.190 138);
|
|
367
|
+
--color-focus: oklch(86% 0.190 138);
|
|
368
|
+
|
|
369
|
+
--font-display: "JetBrains Mono", "IBM Plex Mono", "Geist Mono", ui-monospace, monospace;
|
|
370
|
+
--font-body: "JetBrains Mono", "IBM Plex Mono", ui-monospace, monospace;
|
|
371
|
+
--font-serif: "JetBrains Mono", ui-monospace, monospace;
|
|
372
|
+
--font-label: "JetBrains Mono", ui-monospace, monospace;
|
|
373
|
+
--font-mono: "JetBrains Mono", ui-monospace, monospace;
|
|
374
|
+
|
|
375
|
+
--display-weight: 500;
|
|
376
|
+
--display-style: normal;
|
|
377
|
+
|
|
378
|
+
--text-display: clamp(2.25rem, 4.0vw + 1.0rem, 4.0rem);
|
|
379
|
+
--text-display-s: clamp(1.625rem, 2.25vw + 1rem, 2.5rem);
|
|
380
|
+
--text-xl: 1.5rem;
|
|
381
|
+
--text-2xl: 1.875rem;
|
|
382
|
+
|
|
383
|
+
--tracking-display: 0.01em;
|
|
384
|
+
--tracking-tight: 0;
|
|
385
|
+
--tracking-label: 0.18em;
|
|
386
|
+
|
|
387
|
+
--lh-tight: 1.2;
|
|
388
|
+
--lh-snug: 1.35;
|
|
389
|
+
--lh-normal: 1.55;
|
|
390
|
+
|
|
391
|
+
--section-gap: 5.5rem;
|
|
392
|
+
--section-head-gap: 1.25rem;
|
|
393
|
+
--measure: 70ch;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
/* ──────────────────────────────────────────────────────────────
|
|
397
|
+
MANIFESTO — BLACK paper · ALL CAPS condensed · red colour-blocks
|
|
398
|
+
The opposite pole from Brutal: same red accent, inverted background.
|
|
399
|
+
────────────────────────────────────────────────────────────── */
|
|
400
|
+
|
|
401
|
+
[data-theme="manifesto"] {
|
|
402
|
+
--color-paper: oklch(10% 0.005 60);
|
|
403
|
+
--color-paper-2: oklch(15% 0.006 60);
|
|
404
|
+
--color-paper-3: oklch(20% 0.008 60);
|
|
405
|
+
--color-rule: oklch(28% 0.010 60);
|
|
406
|
+
--color-rule-2: oklch(40% 0.012 60);
|
|
407
|
+
--color-muted: oklch(60% 0.012 65);
|
|
408
|
+
--color-neutral: oklch(72% 0.010 70);
|
|
409
|
+
--color-ink-2: oklch(88% 0.006 80);
|
|
410
|
+
--color-ink: oklch(98% 0.003 90);
|
|
411
|
+
--color-accent: #E51A1A;
|
|
412
|
+
--color-accent-ink: oklch(58% 0.24 28);
|
|
413
|
+
--color-focus: #E51A1A;
|
|
414
|
+
|
|
415
|
+
--font-display: "Anton", "Bebas Neue", "Albert Sans", sans-serif;
|
|
416
|
+
--font-body: "Public Sans", "Albert Sans", "Hanken Grotesk", ui-sans-serif, sans-serif;
|
|
417
|
+
--font-serif: "Anton", "Albert Sans", sans-serif;
|
|
418
|
+
--font-label: "JetBrains Mono", ui-monospace, monospace;
|
|
419
|
+
--font-mono: "JetBrains Mono", ui-monospace, monospace;
|
|
420
|
+
|
|
421
|
+
--display-weight: 400;
|
|
422
|
+
--display-optical: 96;
|
|
423
|
+
--display-style: normal;
|
|
424
|
+
|
|
425
|
+
--text-display: clamp(4.0rem, 8vw + 1.0rem, 9rem);
|
|
426
|
+
--text-display-s: clamp(2.75rem, 6vw + 1rem, 5.5rem);
|
|
427
|
+
--text-2xl: 3rem;
|
|
428
|
+
--text-xl: 2rem;
|
|
429
|
+
|
|
430
|
+
--tracking-display: 0.005em;
|
|
431
|
+
--tracking-tight: 0;
|
|
432
|
+
--tracking-label: 0.10em;
|
|
433
|
+
|
|
434
|
+
--lh-tight: 0.86;
|
|
435
|
+
--lh-snug: 1.0;
|
|
436
|
+
|
|
437
|
+
--section-gap: 5.5rem;
|
|
438
|
+
--section-head-gap: 1.25rem;
|
|
439
|
+
|
|
440
|
+
--rule-hair: 1px;
|
|
441
|
+
--rule-fine: 3px;
|
|
442
|
+
--measure: 56ch;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
/* ──────────────────────────────────────────────────────────────
|
|
446
|
+
SALON — boutique apothecary · warm ivory · TYPEWRITER display
|
|
447
|
+
Display in mono is the key differentiator from the cream-serif themes
|
|
448
|
+
────────────────────────────────────────────────────────────── */
|
|
449
|
+
|
|
450
|
+
[data-theme="salon"] {
|
|
451
|
+
--color-paper: oklch(94% 0.030 65);
|
|
452
|
+
--color-paper-2: oklch(91% 0.034 65);
|
|
453
|
+
--color-paper-3: oklch(87% 0.038 60);
|
|
454
|
+
--color-rule: oklch(76% 0.028 60);
|
|
455
|
+
--color-rule-2: oklch(56% 0.030 55);
|
|
456
|
+
--color-muted: oklch(48% 0.030 50);
|
|
457
|
+
--color-neutral: oklch(34% 0.030 45);
|
|
458
|
+
--color-ink-2: oklch(28% 0.030 40);
|
|
459
|
+
--color-ink: oklch(22% 0.030 38);
|
|
460
|
+
--color-accent: oklch(40% 0.085 50);
|
|
461
|
+
--color-accent-ink: oklch(45% 0.10 50);
|
|
462
|
+
--color-focus: oklch(50% 0.12 50);
|
|
463
|
+
|
|
464
|
+
--font-display: "IBM Plex Mono", "JetBrains Mono", ui-monospace, monospace;
|
|
465
|
+
--font-body: "Plus Jakarta Sans", "Hanken Grotesk", "Geist", ui-sans-serif, sans-serif;
|
|
466
|
+
--font-serif: "Cormorant Garamond", ui-serif, Georgia, serif;
|
|
467
|
+
--font-label: "IBM Plex Mono", ui-monospace, monospace;
|
|
468
|
+
--font-mono: "IBM Plex Mono", ui-monospace, monospace;
|
|
469
|
+
|
|
470
|
+
--display-weight: 500;
|
|
471
|
+
--display-style: normal;
|
|
472
|
+
|
|
473
|
+
--text-display: clamp(2.25rem, 4.0vw + 1.0rem, 4.0rem);
|
|
474
|
+
--text-display-s: clamp(1.625rem, 2.5vw + 1rem, 2.5rem);
|
|
475
|
+
--text-xl: 1.5rem;
|
|
476
|
+
--text-2xl: 1.875rem;
|
|
477
|
+
|
|
478
|
+
--tracking-display: 0.005em;
|
|
479
|
+
--tracking-tight: 0;
|
|
480
|
+
--tracking-label: 0.18em;
|
|
481
|
+
|
|
482
|
+
--lh-tight: 1.18;
|
|
483
|
+
--lh-snug: 1.32;
|
|
484
|
+
--lh-normal: 1.55;
|
|
485
|
+
|
|
486
|
+
--section-gap: 6.5rem;
|
|
487
|
+
--section-head-gap: 1.75rem;
|
|
488
|
+
--measure: 52ch;
|
|
489
|
+
--page-max: 60rem;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
/* ──────────────────────────────────────────────────────────────
|
|
493
|
+
LINEN — cool slate-grey paper · LIGHT GEOMETRIC SANS display
|
|
494
|
+
Repalleted from warm linen-yellow to cool slate-grey for theme variety —
|
|
495
|
+
the gallery had too many cream-paper themes (Specimen, Atelier, Newsprint,
|
|
496
|
+
Salon, Studio, Riso). Linen now sits on the cool side: low-chroma paper
|
|
497
|
+
at hue 220, steel-blue accent. Same fabric voice, different dye.
|
|
498
|
+
Sans-serif display is the key differentiator from Specimen / Atelier / Salon.
|
|
499
|
+
────────────────────────────────────────────────────────────── */
|
|
500
|
+
|
|
501
|
+
[data-theme="linen"] {
|
|
502
|
+
--color-paper: oklch(91% 0.012 220);
|
|
503
|
+
--color-paper-2: oklch(88% 0.014 220);
|
|
504
|
+
--color-paper-3: oklch(83% 0.016 215);
|
|
505
|
+
--color-rule: oklch(74% 0.014 215);
|
|
506
|
+
--color-rule-2: oklch(56% 0.020 215);
|
|
507
|
+
--color-muted: oklch(46% 0.020 215);
|
|
508
|
+
--color-neutral: oklch(34% 0.024 215);
|
|
509
|
+
--color-ink-2: oklch(26% 0.026 215);
|
|
510
|
+
--color-ink: oklch(18% 0.028 220);
|
|
511
|
+
--color-accent: oklch(40% 0.12 232);
|
|
512
|
+
--color-accent-ink: oklch(46% 0.14 232);
|
|
513
|
+
--color-focus: oklch(50% 0.16 232);
|
|
514
|
+
|
|
515
|
+
--font-display: "Hanken Grotesk", "Inter", ui-sans-serif, sans-serif;
|
|
516
|
+
--font-body: "Hanken Grotesk", "Inter", ui-sans-serif, sans-serif;
|
|
517
|
+
--font-serif: "Cormorant Garamond", ui-serif, Georgia, serif;
|
|
518
|
+
--font-label: "IBM Plex Mono", ui-monospace, monospace;
|
|
519
|
+
--font-mono: "IBM Plex Mono", ui-monospace, monospace;
|
|
520
|
+
|
|
521
|
+
--display-weight: 300;
|
|
522
|
+
--display-style: normal;
|
|
523
|
+
|
|
524
|
+
--text-display: clamp(3.0rem, 5.5vw + 1.0rem, 5.75rem);
|
|
525
|
+
--text-display-s: clamp(2rem, 3vw + 1rem, 3rem);
|
|
526
|
+
|
|
527
|
+
--tracking-display: -0.018em;
|
|
528
|
+
--tracking-tight: -0.008em;
|
|
529
|
+
--tracking-label: 0.16em;
|
|
530
|
+
|
|
531
|
+
--lh-tight: 1.06;
|
|
532
|
+
--lh-snug: 1.20;
|
|
533
|
+
--lh-normal: 1.55;
|
|
534
|
+
--lh-relaxed: 1.7;
|
|
535
|
+
|
|
536
|
+
--section-gap: 6.5rem;
|
|
537
|
+
--section-head-gap: 1.5rem;
|
|
538
|
+
--measure: 56ch;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
/* ──────────────────────────────────────────────────────────────
|
|
542
|
+
ALMANAC — encyclopaedic · COOL pale paper (not warm) · slate accent
|
|
543
|
+
Cool hue 245 is the key differentiator from the warm-cream cluster
|
|
544
|
+
+ dense type · sticky labels · grid lines
|
|
545
|
+
────────────────────────────────────────────────────────────── */
|
|
546
|
+
|
|
547
|
+
[data-theme="almanac"] {
|
|
548
|
+
--color-paper: oklch(94% 0.008 245);
|
|
549
|
+
--color-paper-2: oklch(91% 0.010 245);
|
|
550
|
+
--color-paper-3: oklch(86% 0.012 240);
|
|
551
|
+
--color-rule: oklch(74% 0.012 240);
|
|
552
|
+
--color-rule-2: oklch(38% 0.018 240);
|
|
553
|
+
--color-muted: oklch(46% 0.014 245);
|
|
554
|
+
--color-neutral: oklch(28% 0.016 245);
|
|
555
|
+
--color-ink-2: oklch(20% 0.018 245);
|
|
556
|
+
--color-ink: oklch(16% 0.020 245);
|
|
557
|
+
--color-accent: oklch(38% 0.135 250);
|
|
558
|
+
--color-accent-ink: oklch(40% 0.13 250);
|
|
559
|
+
--color-focus: oklch(38% 0.135 250);
|
|
560
|
+
|
|
561
|
+
--font-display: "Hanken Grotesk", "Inter", ui-sans-serif, sans-serif;
|
|
562
|
+
--font-body: "Hanken Grotesk", "Inter", "Geist", ui-sans-serif, sans-serif;
|
|
563
|
+
--font-serif: "Newsreader", ui-serif, Georgia, serif;
|
|
564
|
+
--font-label: "IBM Plex Mono", ui-monospace, monospace;
|
|
565
|
+
--font-mono: "IBM Plex Mono", "JetBrains Mono", ui-monospace, monospace;
|
|
566
|
+
|
|
567
|
+
--display-weight: 600;
|
|
568
|
+
--display-optical: 48;
|
|
569
|
+
--display-style: normal;
|
|
570
|
+
|
|
571
|
+
--text-xs: 0.6875rem;
|
|
572
|
+
--text-sm: 0.8125rem;
|
|
573
|
+
--text-base: 0.9375rem;
|
|
574
|
+
--text-md: 1.0625rem;
|
|
575
|
+
--text-lg: 1.25rem;
|
|
576
|
+
--text-xl: 1.5rem;
|
|
577
|
+
--text-2xl: 1.875rem;
|
|
578
|
+
--text-display: clamp(2.25rem, 3.5vw + 1.0rem, 3.75rem);
|
|
579
|
+
--text-display-s: clamp(1.5rem, 2vw + 1rem, 2.25rem);
|
|
580
|
+
|
|
581
|
+
--tracking-display: -0.014em;
|
|
582
|
+
--tracking-tight: -0.005em;
|
|
583
|
+
--tracking-label: 0.06em;
|
|
584
|
+
|
|
585
|
+
--lh-tight: 1.1;
|
|
586
|
+
--lh-snug: 1.22;
|
|
587
|
+
--lh-normal: 1.5;
|
|
588
|
+
|
|
589
|
+
--space-xl: 2rem;
|
|
590
|
+
--space-2xl: 3rem;
|
|
591
|
+
--space-3xl: 4.5rem;
|
|
592
|
+
|
|
593
|
+
--section-gap: 5.5rem;
|
|
594
|
+
--section-head-gap: 1.25rem;
|
|
595
|
+
--measure: 64ch;
|
|
596
|
+
--page-max: 84rem;
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
/* ──────────────────────────────────────────────────────────────
|
|
600
|
+
SPORT — crisp white · italic display · burnt orange accent
|
|
601
|
+
────────────────────────────────────────────────────────────── */
|
|
602
|
+
|
|
603
|
+
[data-theme="sport"] {
|
|
604
|
+
--color-paper: oklch(98% 0.003 250);
|
|
605
|
+
--color-paper-2: oklch(95% 0.005 250);
|
|
606
|
+
--color-paper-3: oklch(91% 0.007 250);
|
|
607
|
+
--color-rule: oklch(78% 0.008 250);
|
|
608
|
+
--color-rule-2: oklch(36% 0.060 255);
|
|
609
|
+
--color-muted: oklch(50% 0.020 250);
|
|
610
|
+
--color-neutral: oklch(30% 0.040 255);
|
|
611
|
+
--color-ink-2: oklch(22% 0.060 258);
|
|
612
|
+
--color-ink: oklch(16% 0.080 260);
|
|
613
|
+
--color-accent: oklch(58% 0.190 35);
|
|
614
|
+
--color-accent-ink: oklch(54% 0.20 35);
|
|
615
|
+
--color-focus: oklch(58% 0.190 35);
|
|
616
|
+
|
|
617
|
+
--font-display: "Inter Tight", "Albert Sans", ui-sans-serif, sans-serif;
|
|
618
|
+
--font-body: "Albert Sans", "Hanken Grotesk", ui-sans-serif, sans-serif;
|
|
619
|
+
--font-serif: "Inter Tight", ui-sans-serif, sans-serif;
|
|
620
|
+
--font-label: "JetBrains Mono", ui-monospace, monospace;
|
|
621
|
+
--font-mono: "JetBrains Mono", ui-monospace, monospace;
|
|
622
|
+
|
|
623
|
+
--display-weight: 700;
|
|
624
|
+
--display-style: italic;
|
|
625
|
+
--display-optical: 96;
|
|
626
|
+
|
|
627
|
+
--text-display: clamp(3.5rem, 6vw + 1.0rem, 6.5rem);
|
|
628
|
+
--text-display-s: clamp(2.25rem, 4vw + 1rem, 4rem);
|
|
629
|
+
--text-2xl: 2.5rem;
|
|
630
|
+
--text-xl: 1.875rem;
|
|
631
|
+
|
|
632
|
+
--tracking-display: -0.04em;
|
|
633
|
+
--tracking-tight: -0.018em;
|
|
634
|
+
--tracking-label: 0.10em;
|
|
635
|
+
|
|
636
|
+
/* Sport runs uppercase Inter Tight on display heads — same collision risk
|
|
637
|
+
as Manifesto when titles wrap to two lines. 1.02 floor for all-caps. */
|
|
638
|
+
--lh-tight: 1.02;
|
|
639
|
+
--lh-snug: 1.06;
|
|
640
|
+
|
|
641
|
+
--section-gap: 5.5rem;
|
|
642
|
+
--section-head-gap: 1.25rem;
|
|
643
|
+
|
|
644
|
+
--rule-hair: 1px;
|
|
645
|
+
--rule-fine: 2px;
|
|
646
|
+
--measure: 58ch;
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
/* ──────────────────────────────────────────────────────────────
|
|
650
|
+
STUDIO — modern editorial agency · Fraunces italic display
|
|
651
|
+
Inspiration: 14islands, Mathieu Triay, Frame, Gretel, contemporary
|
|
652
|
+
studio portfolios in 2026. Forest-green accent — uncommon, distinctive.
|
|
653
|
+
Fraunces is a variable serif with conventional italic letterforms;
|
|
654
|
+
used here at high optical size + soft axis for the editorial agency feel.
|
|
655
|
+
Repalleted: paper shifts from warm-cream to cool-grey (hue 200, very low
|
|
656
|
+
chroma) so Studio's italic-Fraunces + forest-green accent reads against
|
|
657
|
+
a calm, scientific surface — like a research-studio rather than a
|
|
658
|
+
warm-bohemian-studio. The green accent is the identity, not the paper.
|
|
659
|
+
────────────────────────────────────────────────────────────── */
|
|
660
|
+
|
|
661
|
+
[data-theme="studio"] {
|
|
662
|
+
--color-paper: oklch(96.5% 0.005 200);
|
|
663
|
+
--color-paper-2: oklch(93.5% 0.007 200);
|
|
664
|
+
--color-paper-3: oklch(89% 0.010 200);
|
|
665
|
+
--color-rule: oklch(82% 0.008 200);
|
|
666
|
+
--color-rule-2: oklch(68% 0.010 200);
|
|
667
|
+
--color-muted: oklch(48% 0.012 205);
|
|
668
|
+
--color-neutral: oklch(34% 0.016 205);
|
|
669
|
+
--color-ink-2: oklch(22% 0.020 205);
|
|
670
|
+
--color-ink: oklch(13% 0.024 205);
|
|
671
|
+
--color-accent: oklch(46% 0.140 145);
|
|
672
|
+
--color-accent-ink: oklch(46% 0.140 145);
|
|
673
|
+
--color-focus: oklch(46% 0.140 145);
|
|
674
|
+
|
|
675
|
+
--font-display: "Fraunces", "Tiempos", ui-serif, Georgia, serif;
|
|
676
|
+
--font-body: "Geist", "Söhne", ui-sans-serif, system-ui, sans-serif;
|
|
677
|
+
--font-serif: "Fraunces", ui-serif, Georgia, serif;
|
|
678
|
+
--font-label: "Geist Mono", "JetBrains Mono", ui-monospace, monospace;
|
|
679
|
+
--font-mono: "Geist Mono", "JetBrains Mono", ui-monospace, monospace;
|
|
680
|
+
|
|
681
|
+
--display-weight: 400;
|
|
682
|
+
--display-optical: 144;
|
|
683
|
+
--display-style: italic;
|
|
684
|
+
--display-soft: 30;
|
|
685
|
+
|
|
686
|
+
--text-display: clamp(3.5rem, 5.5vw + 1.0rem, 6.25rem);
|
|
687
|
+
--text-display-s: clamp(2.25rem, 4vw + 1rem, 4.25rem);
|
|
688
|
+
|
|
689
|
+
--tracking-display: -0.022em;
|
|
690
|
+
--tracking-label: 0.08em;
|
|
691
|
+
--section-gap: 6.5rem;
|
|
692
|
+
--section-head-gap: 1.5rem;
|
|
693
|
+
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
/* ──────────────────────────────────────────────────────────────
|
|
697
|
+
RISO — risograph print · Public Sans display, off-register
|
|
698
|
+
Inspiration: Are.na, e-flux, Frieze, indie magazine sites.
|
|
699
|
+
Warm peach paper, riso cyan + yellow as accents, slight CMYK
|
|
700
|
+
misregistration on display via text-shadow.
|
|
701
|
+
────────────────────────────────────────────────────────────── */
|
|
702
|
+
|
|
703
|
+
[data-theme="riso"] {
|
|
704
|
+
--color-paper: oklch(91% 0.034 30);
|
|
705
|
+
--color-paper-2: oklch(87% 0.040 30);
|
|
706
|
+
--color-paper-3: oklch(82% 0.046 30);
|
|
707
|
+
--color-rule: oklch(70% 0.040 30);
|
|
708
|
+
--color-rule-2: oklch(56% 0.060 30);
|
|
709
|
+
--color-muted: oklch(46% 0.060 30);
|
|
710
|
+
--color-neutral: oklch(34% 0.060 30);
|
|
711
|
+
--color-ink-2: oklch(22% 0.060 30);
|
|
712
|
+
--color-ink: oklch(18% 0.060 30);
|
|
713
|
+
--color-accent: oklch(58% 0.170 220); /* riso cyan/teal */
|
|
714
|
+
--color-accent-2: oklch(78% 0.180 95); /* riso yellow */
|
|
715
|
+
--color-accent-ink: oklch(58% 0.170 220);
|
|
716
|
+
--color-focus: oklch(58% 0.170 220);
|
|
717
|
+
|
|
718
|
+
--font-display: "Public Sans", "Albert Sans", ui-sans-serif, system-ui, sans-serif;
|
|
719
|
+
--font-body: "Newsreader", "Tiempos", ui-serif, Georgia, serif;
|
|
720
|
+
--font-serif: "Newsreader", ui-serif, Georgia, serif;
|
|
721
|
+
--font-label: "Public Sans", "Albert Sans", ui-sans-serif, sans-serif;
|
|
722
|
+
--font-mono: "Geist Mono", "JetBrains Mono", ui-monospace, monospace;
|
|
723
|
+
|
|
724
|
+
--display-weight: 800;
|
|
725
|
+
--display-style: normal;
|
|
726
|
+
|
|
727
|
+
--text-display: clamp(3.25rem, 5.5vw + 1.0rem, 6.25rem);
|
|
728
|
+
--text-display-s: clamp(2.25rem, 3.5vw + 1rem, 3.75rem);
|
|
729
|
+
|
|
730
|
+
--tracking-display: -0.04em;
|
|
731
|
+
--tracking-tight: -0.014em;
|
|
732
|
+
--tracking-label: 0.06em;
|
|
733
|
+
|
|
734
|
+
--lh-tight: 0.92;
|
|
735
|
+
--lh-snug: 1.10;
|
|
736
|
+
--section-gap: 6rem;
|
|
737
|
+
--section-head-gap: 1.5rem;
|
|
738
|
+
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
/* ──────────────────────────────────────────────────────────────
|
|
742
|
+
QUIET — restraint as the design · system fonts, near-white paper
|
|
743
|
+
The opposite of every other theme. Average-sized headers (smaller
|
|
744
|
+
than the others), generous whitespace, no chromatic accent, no
|
|
745
|
+
ornament, no reveal. System-native typography is the design — a
|
|
746
|
+
deliberate exception to Hallmark's "pair distinctive display + body"
|
|
747
|
+
rule. The brief is restraint; the design honours it.
|
|
748
|
+
────────────────────────────────────────────────────────────── */
|
|
749
|
+
|
|
750
|
+
[data-theme="quiet"] {
|
|
751
|
+
--color-paper: oklch(100% 0 0); /* pure white */
|
|
752
|
+
--color-paper-2: oklch(98.5% 0 0); /* card surface */
|
|
753
|
+
--color-paper-3: oklch(96% 0 0); /* hover surface */
|
|
754
|
+
--color-rule: oklch(91% 0 0); /* hairline */
|
|
755
|
+
--color-rule-2: oklch(82% 0 0); /* prominent border */
|
|
756
|
+
--color-muted: oklch(55% 0 0);
|
|
757
|
+
--color-neutral: oklch(40% 0 0);
|
|
758
|
+
--color-ink-2: oklch(28% 0 0);
|
|
759
|
+
--color-ink: oklch(15% 0 0); /* near-black */
|
|
760
|
+
--color-accent: oklch(15% 0 0); /* mono — accent IS ink */
|
|
761
|
+
--color-accent-ink: oklch(15% 0 0);
|
|
762
|
+
--color-focus: oklch(60% 0.10 240); /* a single tiny blue for keyboard focus only */
|
|
763
|
+
|
|
764
|
+
--font-display: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;
|
|
765
|
+
--font-body: "Geist", "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;
|
|
766
|
+
--font-serif: ui-serif, Georgia, "Times New Roman", serif;
|
|
767
|
+
--font-label: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;
|
|
768
|
+
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;
|
|
769
|
+
|
|
770
|
+
--display-weight: 500;
|
|
771
|
+
--display-style: normal;
|
|
772
|
+
|
|
773
|
+
/* A confident, large display — minimalism with conviction, not timidity. */
|
|
774
|
+
--text-display: clamp(2.5rem, 5.0vw + 0.5rem, 4.75rem);
|
|
775
|
+
--text-display-s: clamp(2rem, 3vw + 0.5rem, 3rem);
|
|
776
|
+
--text-2xl: clamp(1.75rem, 2vw + 0.5rem, 2.5rem);
|
|
777
|
+
--text-xl: 1.5rem;
|
|
778
|
+
--text-lg: 1.25rem;
|
|
779
|
+
|
|
780
|
+
--tracking-display: -0.025em;
|
|
781
|
+
--tracking-tight: -0.015em;
|
|
782
|
+
--tracking-label: 0.04em;
|
|
783
|
+
|
|
784
|
+
--lh-tight: 1.08;
|
|
785
|
+
--lh-snug: 1.25;
|
|
786
|
+
--lh-normal: 1.55;
|
|
787
|
+
--lh-relaxed: 1.7;
|
|
788
|
+
|
|
789
|
+
/* Generous whitespace — the page breathes */
|
|
790
|
+
--section-gap: 6.5rem;
|
|
791
|
+
--section-head-gap: 1.5rem;
|
|
792
|
+
--space-2xl: 4.5rem;
|
|
793
|
+
--space-3xl: 7rem;
|
|
794
|
+
--space-4xl: 11rem;
|
|
795
|
+
|
|
796
|
+
--measure: 64ch;
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
/* ──────────────────────────────────────────────────────────────
|
|
800
|
+
BLOOM — atmospheric dark · warm radial bloom · expressive
|
|
801
|
+
For the "AI-creative product" page (think Suno, Runway, music
|
|
802
|
+
tools). Dark canvas, two soft colour blooms behind the content,
|
|
803
|
+
confident sans display, single warm accent. The first non-print
|
|
804
|
+
theme in the catalog.
|
|
805
|
+
────────────────────────────────────────────────────────────── */
|
|
806
|
+
|
|
807
|
+
[data-theme="bloom"] {
|
|
808
|
+
--color-paper: oklch(96% 0.018 35); /* warm cream — wash reads bright */
|
|
809
|
+
--color-paper-2: oklch(93% 0.022 35);
|
|
810
|
+
--color-paper-3: oklch(89% 0.026 38);
|
|
811
|
+
--color-rule: oklch(80% 0.020 40);
|
|
812
|
+
--color-rule-2: oklch(64% 0.020 40);
|
|
813
|
+
--color-muted: oklch(48% 0.020 40);
|
|
814
|
+
--color-neutral: oklch(34% 0.018 40);
|
|
815
|
+
--color-ink-2: oklch(22% 0.014 38);
|
|
816
|
+
--color-ink: oklch(14% 0.012 35);
|
|
817
|
+
--color-accent: oklch(64% 0.180 18); /* warm pink/coral wash */
|
|
818
|
+
--color-accent-ink: oklch(54% 0.190 18);
|
|
819
|
+
--color-accent-2: oklch(72% 0.190 45); /* secondary warm orange */
|
|
820
|
+
--color-focus: oklch(64% 0.180 18);
|
|
821
|
+
|
|
822
|
+
--font-display: "Geist", "Inter", ui-sans-serif, system-ui, sans-serif;
|
|
823
|
+
--font-body: "Geist", "Inter", ui-sans-serif, system-ui, sans-serif;
|
|
824
|
+
--font-serif: "Instrument Serif", ui-serif, Georgia, serif;
|
|
825
|
+
--font-label: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;
|
|
826
|
+
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;
|
|
827
|
+
|
|
828
|
+
--display-weight: 600;
|
|
829
|
+
--display-style: normal;
|
|
830
|
+
|
|
831
|
+
--text-display: clamp(3.0rem, 6.0vw + 1.0rem, 5.75rem);
|
|
832
|
+
--text-display-s: clamp(2rem, 3vw + 1rem, 3.5rem);
|
|
833
|
+
|
|
834
|
+
--tracking-display: -0.035em;
|
|
835
|
+
--tracking-tight: -0.02em;
|
|
836
|
+
--tracking-label: 0.10em;
|
|
837
|
+
|
|
838
|
+
--lh-tight: 1.04;
|
|
839
|
+
--lh-snug: 1.18;
|
|
840
|
+
|
|
841
|
+
--section-gap: 6.5rem;
|
|
842
|
+
--section-head-gap: 1.5rem;
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
/* ──────────────────────────────────────────────────────────────
|
|
846
|
+
CORAL — modern-minimal · warm-grey paper · single coral accent
|
|
847
|
+
The "Stripe-not-Linear" register. Geist + General Sans. Pill CTAs,
|
|
848
|
+
warm greys instead of pure neutral. The accent is restrained — a
|
|
849
|
+
coral mark, not a flood.
|
|
850
|
+
────────────────────────────────────────────────────────────── */
|
|
851
|
+
|
|
852
|
+
[data-theme="coral"] {
|
|
853
|
+
--color-paper: oklch(96.5% 0.005 50);
|
|
854
|
+
--color-paper-2: oklch(94% 0.006 50);
|
|
855
|
+
--color-paper-3: oklch(91% 0.008 50);
|
|
856
|
+
--color-rule: oklch(86% 0.008 50);
|
|
857
|
+
--color-rule-2: oklch(72% 0.010 50);
|
|
858
|
+
--color-muted: oklch(52% 0.012 50);
|
|
859
|
+
--color-neutral: oklch(38% 0.012 45);
|
|
860
|
+
--color-ink-2: oklch(26% 0.012 40);
|
|
861
|
+
--color-ink: oklch(20% 0.010 35);
|
|
862
|
+
--color-accent: oklch(64% 0.165 28); /* warm coral */
|
|
863
|
+
--color-accent-ink: oklch(98% 0.005 50);
|
|
864
|
+
--color-focus: oklch(64% 0.165 28);
|
|
865
|
+
|
|
866
|
+
--font-display: "Geist", "General Sans", ui-sans-serif, system-ui, sans-serif;
|
|
867
|
+
--font-body: "Geist", "General Sans", ui-sans-serif, system-ui, sans-serif;
|
|
868
|
+
--font-serif: ui-serif, Georgia, serif;
|
|
869
|
+
--font-label: "Geist Mono", ui-monospace, monospace;
|
|
870
|
+
--font-mono: "Geist Mono", ui-monospace, monospace;
|
|
871
|
+
|
|
872
|
+
--display-weight: 600;
|
|
873
|
+
--display-style: normal;
|
|
874
|
+
|
|
875
|
+
--text-display: clamp(2.5rem, 5.0vw + 0.5rem, 4.5rem);
|
|
876
|
+
--text-display-s: clamp(2rem, 3vw + 0.5rem, 3rem);
|
|
877
|
+
|
|
878
|
+
--tracking-display: -0.025em;
|
|
879
|
+
--tracking-tight: -0.015em;
|
|
880
|
+
--tracking-label: 0.05em;
|
|
881
|
+
--section-gap: 6rem;
|
|
882
|
+
--section-head-gap: 1.5rem;
|
|
883
|
+
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
/* ──────────────────────────────────────────────────────────────
|
|
887
|
+
VIOLET — modern-minimal · near-white + near-black · quiet violet
|
|
888
|
+
The Linear voice without copying it. Tight Geist, restrained ink,
|
|
889
|
+
one quiet violet accent on focus + small marks.
|
|
890
|
+
────────────────────────────────────────────────────────────── */
|
|
891
|
+
|
|
892
|
+
[data-theme="violet"] {
|
|
893
|
+
--color-paper: oklch(99% 0.003 280);
|
|
894
|
+
--color-paper-2: oklch(97% 0.004 280);
|
|
895
|
+
--color-paper-3: oklch(94% 0.005 280);
|
|
896
|
+
--color-rule: oklch(90% 0.006 280);
|
|
897
|
+
--color-rule-2: oklch(78% 0.008 280);
|
|
898
|
+
--color-muted: oklch(50% 0.012 280);
|
|
899
|
+
--color-neutral: oklch(36% 0.014 280);
|
|
900
|
+
--color-ink-2: oklch(28% 0.018 280);
|
|
901
|
+
--color-ink: oklch(14% 0.015 280);
|
|
902
|
+
--color-accent: oklch(58% 0.16 285); /* quiet violet */
|
|
903
|
+
--color-accent-ink: oklch(99% 0.003 280);
|
|
904
|
+
--color-focus: oklch(58% 0.16 285);
|
|
905
|
+
|
|
906
|
+
--font-display: "Geist", "Inter", ui-sans-serif, system-ui, sans-serif;
|
|
907
|
+
--font-body: "Geist", "Inter", ui-sans-serif, system-ui, sans-serif;
|
|
908
|
+
--font-serif: ui-serif, Georgia, serif;
|
|
909
|
+
--font-label: "Geist Mono", ui-monospace, monospace;
|
|
910
|
+
--font-mono: "Geist Mono", ui-monospace, monospace;
|
|
911
|
+
|
|
912
|
+
--display-weight: 600;
|
|
913
|
+
--display-style: normal;
|
|
914
|
+
|
|
915
|
+
--text-display: clamp(2.5rem, 5.5vw + 0.5rem, 5.0rem);
|
|
916
|
+
--text-display-s: clamp(2rem, 3vw + 0.5rem, 3rem);
|
|
917
|
+
|
|
918
|
+
--tracking-display: -0.035em;
|
|
919
|
+
--tracking-tight: -0.02em;
|
|
920
|
+
--tracking-label: 0.04em;
|
|
921
|
+
--section-gap: 6rem;
|
|
922
|
+
--section-head-gap: 1.5rem;
|
|
923
|
+
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
/* ──────────────────────────────────────────────────────────────
|
|
927
|
+
AURORA — atmospheric · cool blue-green gradient on near-black
|
|
928
|
+
The Linear/Vercel-after-dark register. Sentient body, single cyan
|
|
929
|
+
accent, two cool blooms behind the content (cyan + teal-green).
|
|
930
|
+
────────────────────────────────────────────────────────────── */
|
|
931
|
+
|
|
932
|
+
[data-theme="aurora"] {
|
|
933
|
+
--color-paper: oklch(11% 0.025 200); /* dark cool, cyan tilt */
|
|
934
|
+
--color-paper-2: oklch(15% 0.028 200);
|
|
935
|
+
--color-paper-3: oklch(18% 0.030 200);
|
|
936
|
+
--color-rule: oklch(28% 0.022 200);
|
|
937
|
+
--color-rule-2: oklch(38% 0.024 200);
|
|
938
|
+
--color-muted: oklch(60% 0.018 200);
|
|
939
|
+
--color-neutral: oklch(74% 0.014 200);
|
|
940
|
+
--color-ink-2: oklch(82% 0.012 200);
|
|
941
|
+
--color-ink: oklch(96% 0.010 200);
|
|
942
|
+
--color-accent: oklch(72% 0.170 200); /* cyan */
|
|
943
|
+
--color-accent-ink: oklch(11% 0.025 200);
|
|
944
|
+
--color-accent-2: oklch(64% 0.150 175); /* secondary teal-green */
|
|
945
|
+
--color-focus: oklch(72% 0.170 200);
|
|
946
|
+
|
|
947
|
+
--font-display: "Geist", "Inter", ui-sans-serif, system-ui, sans-serif;
|
|
948
|
+
--font-body: "Sentient", "Geist", ui-sans-serif, system-ui, sans-serif;
|
|
949
|
+
--font-serif: "Sentient", ui-serif, Georgia, serif;
|
|
950
|
+
--font-label: "Geist Mono", ui-monospace, monospace;
|
|
951
|
+
--font-mono: "Geist Mono", ui-monospace, monospace;
|
|
952
|
+
|
|
953
|
+
--display-weight: 600;
|
|
954
|
+
--display-style: normal;
|
|
955
|
+
|
|
956
|
+
--text-display: clamp(3.0rem, 6.0vw + 1.0rem, 5.75rem);
|
|
957
|
+
--text-display-s: clamp(2rem, 3vw + 1rem, 3.5rem);
|
|
958
|
+
|
|
959
|
+
--tracking-display: -0.035em;
|
|
960
|
+
--tracking-tight: -0.02em;
|
|
961
|
+
--tracking-label: 0.10em;
|
|
962
|
+
|
|
963
|
+
--lh-tight: 1.05;
|
|
964
|
+
--lh-snug: 1.18;
|
|
965
|
+
--section-gap: 6.5rem;
|
|
966
|
+
--section-head-gap: 1.5rem;
|
|
967
|
+
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
/* ──────────────────────────────────────────────────────────────
|
|
971
|
+
HALO — atmospheric · neutral charcoal canvas · warm-amber bloom
|
|
972
|
+
only around the hero. Less Suno, more "tool you actually work in."
|
|
973
|
+
The bloom is a single moment near the top; the rest of the page
|
|
974
|
+
is content-led on charcoal.
|
|
975
|
+
────────────────────────────────────────────────────────────── */
|
|
976
|
+
|
|
977
|
+
[data-theme="halo"] {
|
|
978
|
+
--color-paper: oklch(13% 0.005 60); /* neutral charcoal, hint warm */
|
|
979
|
+
--color-paper-2: oklch(17% 0.006 60);
|
|
980
|
+
--color-paper-3: oklch(22% 0.008 60);
|
|
981
|
+
--color-rule: oklch(28% 0.008 60);
|
|
982
|
+
--color-rule-2: oklch(38% 0.010 60);
|
|
983
|
+
--color-muted: oklch(58% 0.010 60);
|
|
984
|
+
--color-neutral: oklch(72% 0.010 60);
|
|
985
|
+
--color-ink-2: oklch(80% 0.008 60);
|
|
986
|
+
--color-ink: oklch(94% 0.005 60);
|
|
987
|
+
--color-accent: oklch(74% 0.16 70); /* warm amber */
|
|
988
|
+
--color-accent-ink: oklch(13% 0.005 60);
|
|
989
|
+
--color-focus: oklch(74% 0.16 70);
|
|
990
|
+
|
|
991
|
+
--font-display: "Geist", "Inter", ui-sans-serif, system-ui, sans-serif;
|
|
992
|
+
--font-body: "Geist", "Inter", ui-sans-serif, system-ui, sans-serif;
|
|
993
|
+
--font-serif: "Instrument Serif", ui-serif, Georgia, serif;
|
|
994
|
+
--font-label: "Geist Mono", ui-monospace, monospace;
|
|
995
|
+
--font-mono: "Geist Mono", ui-monospace, monospace;
|
|
996
|
+
|
|
997
|
+
--display-weight: 600;
|
|
998
|
+
--display-style: normal;
|
|
999
|
+
|
|
1000
|
+
--text-display: clamp(2.75rem, 5.0vw + 1.0rem, 5.0rem);
|
|
1001
|
+
--text-display-s: clamp(2rem, 3vw + 0.5rem, 3rem);
|
|
1002
|
+
|
|
1003
|
+
--tracking-display: -0.03em;
|
|
1004
|
+
--tracking-tight: -0.018em;
|
|
1005
|
+
--tracking-label: 0.08em;
|
|
1006
|
+
--section-gap: 6rem;
|
|
1007
|
+
--section-head-gap: 1.5rem;
|
|
1008
|
+
|
|
1009
|
+
}
|
|
1010
|
+
|
|
1011
|
+
/* ──────────────────────────────────────────────────────────────
|
|
1012
|
+
PLUME — playful · warm cream paper · tinted bands
|
|
1013
|
+
Warm cream throughout, alternating paper-2 bands on sections,
|
|
1014
|
+
hover-lift on cards, soft rose accent. The page wants to feel
|
|
1015
|
+
friendly without being twee.
|
|
1016
|
+
────────────────────────────────────────────────────────────── */
|
|
1017
|
+
|
|
1018
|
+
[data-theme="plume"] {
|
|
1019
|
+
--color-paper: oklch(96% 0.020 70); /* warm cream */
|
|
1020
|
+
--color-paper-2: oklch(94% 0.026 70); /* tinted band */
|
|
1021
|
+
--color-paper-3: oklch(91% 0.030 70);
|
|
1022
|
+
--color-rule: oklch(82% 0.022 70);
|
|
1023
|
+
--color-rule-2: oklch(70% 0.024 70);
|
|
1024
|
+
--color-muted: oklch(50% 0.022 60);
|
|
1025
|
+
--color-neutral: oklch(36% 0.020 55);
|
|
1026
|
+
--color-ink-2: oklch(30% 0.018 55);
|
|
1027
|
+
--color-ink: oklch(22% 0.015 50);
|
|
1028
|
+
--color-accent: oklch(68% 0.130 18); /* soft rose-pink */
|
|
1029
|
+
--color-accent-ink: oklch(96% 0.020 70);
|
|
1030
|
+
--color-focus: oklch(68% 0.130 18);
|
|
1031
|
+
|
|
1032
|
+
--font-display: "Geist", "Inter Tight", ui-sans-serif, system-ui, sans-serif;
|
|
1033
|
+
--font-body: "Geist", "Inter", ui-sans-serif, system-ui, sans-serif;
|
|
1034
|
+
--font-serif: "Newsreader", ui-serif, Georgia, serif;
|
|
1035
|
+
--font-label: "Geist Mono", ui-monospace, monospace;
|
|
1036
|
+
--font-mono: "Geist Mono", ui-monospace, monospace;
|
|
1037
|
+
|
|
1038
|
+
--display-weight: 700;
|
|
1039
|
+
--display-style: normal;
|
|
1040
|
+
|
|
1041
|
+
--text-display: clamp(2.75rem, 5.0vw + 0.75rem, 5.0rem);
|
|
1042
|
+
--text-display-s: clamp(2rem, 3vw + 0.5rem, 3rem);
|
|
1043
|
+
|
|
1044
|
+
--tracking-display: -0.025em;
|
|
1045
|
+
--tracking-tight: -0.012em;
|
|
1046
|
+
--tracking-label: 0.06em;
|
|
1047
|
+
--section-gap: 6rem;
|
|
1048
|
+
--section-head-gap: 1.5rem;
|
|
1049
|
+
|
|
1050
|
+
}
|
|
1051
|
+
|
|
1052
|
+
/* ──────────────────────────────────────────────────────────────
|
|
1053
|
+
PER-THEME COMPONENT SHAPE — radius, border weight, shadow.
|
|
1054
|
+
Defaults (in :root above): square edges, 1 px border, no shadow.
|
|
1055
|
+
These overrides give each theme its own component voice without
|
|
1056
|
+
touching colour or typography.
|
|
1057
|
+
|
|
1058
|
+
The discipline: editorial / brutalist / technical themes stay
|
|
1059
|
+
square (the rule is the design); soft / modern themes get
|
|
1060
|
+
measured radius (Plume 14 px is the most rounded — it's the
|
|
1061
|
+
playful theme); brutalist / declarative themes get heavier
|
|
1062
|
+
borders. Nothing is rounded "for fun".
|
|
1063
|
+
────────────────────────────────────────────────────────────── */
|
|
1064
|
+
|
|
1065
|
+
[data-theme="brutal"] { --rule-card: 2px; }
|
|
1066
|
+
[data-theme="manifesto"] { --rule-card: 2px; }
|
|
1067
|
+
[data-theme="sport"] { --rule-card: 1.5px; }
|
|
1068
|
+
[data-theme="garden"] { --radius-card: 6px; --radius-pill: 4px; }
|
|
1069
|
+
[data-theme="studio"] { --radius-card: 6px; --radius-pill: 4px; --shadow-card: 0 1px 2px oklch(20% 0.014 205 / 0.05); }
|
|
1070
|
+
[data-theme="riso"] { --radius-card: 2px; --radius-pill: 2px; }
|
|
1071
|
+
[data-theme="quiet"] { --radius-card: 8px; --radius-pill: 999px; --radius-input: 8px; }
|
|
1072
|
+
[data-theme="bloom"] { --radius-card: 16px; --radius-pill: 999px; --radius-input: 12px;
|
|
1073
|
+
--shadow-card: 0 24px 48px -16px oklch(8% 0.04 35 / 0.6),
|
|
1074
|
+
0 1px 2px oklch(8% 0.04 35 / 0.4); }
|
|
1075
|
+
[data-theme="coral"] { --radius-card: 8px; --radius-pill: 999px; --radius-input: 6px;
|
|
1076
|
+
--shadow-card: 0 1px 2px oklch(20% 0.01 50 / 0.06); }
|
|
1077
|
+
[data-theme="violet"] { --radius-card: 6px; --radius-pill: 999px; --radius-input: 6px; }
|
|
1078
|
+
[data-theme="aurora"] { --radius-card: 12px; --radius-pill: 999px; --radius-input: 10px;
|
|
1079
|
+
--shadow-card: 0 16px 40px -16px oklch(11% 0.04 200 / 0.65),
|
|
1080
|
+
0 1px 2px oklch(11% 0.04 200 / 0.4); }
|
|
1081
|
+
[data-theme="halo"] { --radius-card: 8px; --radius-pill: 6px; --radius-input: 6px;
|
|
1082
|
+
--shadow-card: 0 8px 22px -12px oklch(13% 0.02 60 / 0.5); }
|
|
1083
|
+
[data-theme="plume"] { --radius-card: 14px; --radius-pill: 999px; --radius-input: 10px;
|
|
1084
|
+
--shadow-card: 0 10px 28px -12px oklch(45% 0.10 18 / 0.16); }
|
|
1085
|
+
[data-theme="editorial"] { --radius-card: 0; --radius-pill: 0; --radius-input: 0; --rule-card: 0.5px; }
|
|
1086
|
+
|
|
1087
|
+
|
|
1088
|
+
/* ──────────────────────────────────────────────────────────────
|
|
1089
|
+
EDITORIAL — open-design-inspired editorial premium · the 23rd theme
|
|
1090
|
+
Warm cream paper + coral accent + Inter Tight display with
|
|
1091
|
+
Playfair Display italic emphasis inside. Magazine-shaped: hairline
|
|
1092
|
+
rules, asymmetric grids, Roman-numeral marginalia, 2-axis serif/sans
|
|
1093
|
+
pairing. Inspired by github.com/nexu-io/open-design.
|
|
1094
|
+
────────────────────────────────────────────────────────────── */
|
|
1095
|
+
|
|
1096
|
+
[data-theme="editorial"] {
|
|
1097
|
+
--color-paper: oklch(94% 0.020 75); /* warm cream, slightly cooler than Specimen */
|
|
1098
|
+
--color-paper-2: oklch(91% 0.022 72); /* card backs */
|
|
1099
|
+
--color-paper-3: oklch(87% 0.024 70); /* dark-slab fallback */
|
|
1100
|
+
--color-rule: oklch(80% 0.018 70); /* hairlines */
|
|
1101
|
+
--color-rule-2: oklch(64% 0.014 68);
|
|
1102
|
+
--color-muted: oklch(48% 0.014 60);
|
|
1103
|
+
--color-neutral: oklch(34% 0.012 55);
|
|
1104
|
+
--color-ink-2: oklch(28% 0.014 55);
|
|
1105
|
+
--color-ink: oklch(15% 0.014 280); /* near-black with cool tilt */
|
|
1106
|
+
--color-accent: oklch(60% 0.160 35); /* coral */
|
|
1107
|
+
--color-accent-ink: oklch(98% 0.005 70);
|
|
1108
|
+
--color-focus: oklch(62% 0.160 35);
|
|
1109
|
+
|
|
1110
|
+
--font-display: "Inter Tight", "Inter", ui-sans-serif, system-ui, sans-serif;
|
|
1111
|
+
--font-body: "Inter", ui-sans-serif, system-ui, sans-serif;
|
|
1112
|
+
--font-serif: "Playfair Display", "Fraunces", ui-serif, Georgia, serif;
|
|
1113
|
+
--font-label: "Geist Mono", "JetBrains Mono", ui-monospace, monospace;
|
|
1114
|
+
--font-mono: "Geist Mono", "JetBrains Mono", ui-monospace, monospace;
|
|
1115
|
+
|
|
1116
|
+
--display-weight: 800;
|
|
1117
|
+
--display-style: normal;
|
|
1118
|
+
|
|
1119
|
+
--text-display: clamp(2.5rem, 5.0vw + 0.75rem, 4.75rem);
|
|
1120
|
+
--text-display-s: clamp(1.875rem, 3vw + 0.5rem, 2.875rem);
|
|
1121
|
+
|
|
1122
|
+
--tracking-display: -0.04em; /* tight, magazine-shaped */
|
|
1123
|
+
--tracking-tight: -0.018em;
|
|
1124
|
+
--tracking-label: 0.10em;
|
|
1125
|
+
--section-gap: 6rem;
|
|
1126
|
+
--section-head-gap: 1.5rem;
|
|
1127
|
+
|
|
1128
|
+
}
|
|
1129
|
+
|