spirewise 1.7.0 → 1.8.0
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 +0 -15
- package/bin/cli.js +65 -37
- package/install.sh +3 -3
- package/package.json +2 -4
- package/skills/README.md +0 -1
- package/skills/ai-agent-os-design-system/README.md +105 -0
- package/skills/ai-agent-os-design-system/SKILL.md +195 -0
- package/skills/ai-agent-os-design-system/accessibility-system.md +67 -0
- package/skills/ai-agent-os-design-system/color-system.md +102 -0
- package/skills/ai-agent-os-design-system/component-library.md +147 -0
- package/skills/ai-agent-os-design-system/design-principles.md +79 -0
- package/skills/ai-agent-os-design-system/example-page-structures.md +93 -0
- package/skills/ai-agent-os-design-system/layout-system.md +74 -0
- package/skills/ai-agent-os-design-system/motion-system.md +85 -0
- package/skills/ai-agent-os-design-system/spacing-system.md +87 -0
- package/skills/ai-agent-os-design-system/typography-system.md +91 -0
- package/skills/ai-agent-os-design-system/website-generation-rules.md +192 -0
- package/skills/ai-dark-futuristic-design-system/README.md +91 -0
- package/skills/ai-dark-futuristic-design-system/SKILL.md +179 -0
- package/skills/ai-dark-futuristic-design-system/accessibility-system.md +61 -0
- package/skills/ai-dark-futuristic-design-system/color-system.md +99 -0
- package/skills/ai-dark-futuristic-design-system/component-library.md +140 -0
- package/skills/ai-dark-futuristic-design-system/design-principles.md +66 -0
- package/skills/ai-dark-futuristic-design-system/example-page-structures.md +124 -0
- package/skills/ai-dark-futuristic-design-system/layout-system.md +85 -0
- package/skills/ai-dark-futuristic-design-system/motion-system.md +76 -0
- package/skills/ai-dark-futuristic-design-system/spacing-system.md +73 -0
- package/skills/ai-dark-futuristic-design-system/typography-system.md +89 -0
- package/skills/ai-dark-futuristic-design-system/website-generation-rules.md +220 -0
- package/skills/apple-premium-minimal-design-system/README.md +95 -0
- package/skills/apple-premium-minimal-design-system/SKILL.md +166 -0
- package/skills/apple-premium-minimal-design-system/accessibility-system.md +60 -0
- package/skills/apple-premium-minimal-design-system/color-system.md +100 -0
- package/skills/apple-premium-minimal-design-system/component-library.md +136 -0
- package/skills/apple-premium-minimal-design-system/design-principles.md +65 -0
- package/skills/apple-premium-minimal-design-system/example-page-structures.md +90 -0
- package/skills/apple-premium-minimal-design-system/layout-system.md +89 -0
- package/skills/apple-premium-minimal-design-system/motion-system.md +75 -0
- package/skills/apple-premium-minimal-design-system/spacing-system.md +73 -0
- package/skills/apple-premium-minimal-design-system/typography-system.md +86 -0
- package/skills/apple-premium-minimal-design-system/website-generation-rules.md +207 -0
- package/skills/bento-grid-design-system/README.md +97 -0
- package/skills/bento-grid-design-system/SKILL.md +185 -0
- package/skills/bento-grid-design-system/accessibility-system.md +54 -0
- package/skills/bento-grid-design-system/color-system.md +98 -0
- package/skills/bento-grid-design-system/component-library.md +138 -0
- package/skills/bento-grid-design-system/design-principles.md +72 -0
- package/skills/bento-grid-design-system/example-page-structures.md +91 -0
- package/skills/bento-grid-design-system/layout-system.md +93 -0
- package/skills/bento-grid-design-system/motion-system.md +81 -0
- package/skills/bento-grid-design-system/spacing-system.md +77 -0
- package/skills/bento-grid-design-system/typography-system.md +85 -0
- package/skills/bento-grid-design-system/website-generation-rules.md +193 -0
- package/skills/brutalist-tech-design-system/README.md +100 -0
- package/skills/brutalist-tech-design-system/SKILL.md +185 -0
- package/skills/brutalist-tech-design-system/accessibility-system.md +61 -0
- package/skills/brutalist-tech-design-system/color-system.md +101 -0
- package/skills/brutalist-tech-design-system/component-library.md +117 -0
- package/skills/brutalist-tech-design-system/design-principles.md +73 -0
- package/skills/brutalist-tech-design-system/example-page-structures.md +92 -0
- package/skills/brutalist-tech-design-system/layout-system.md +74 -0
- package/skills/brutalist-tech-design-system/motion-system.md +80 -0
- package/skills/brutalist-tech-design-system/spacing-system.md +86 -0
- package/skills/brutalist-tech-design-system/typography-system.md +94 -0
- package/skills/brutalist-tech-design-system/website-generation-rules.md +195 -0
- package/skills/crunchbase-profile-generator/README.md +64 -0
- package/skills/crunchbase-profile-generator/SKILL.md +189 -0
- package/skills/editorial-luxury-design-system/README.md +98 -0
- package/skills/editorial-luxury-design-system/SKILL.md +187 -0
- package/skills/editorial-luxury-design-system/accessibility-system.md +63 -0
- package/skills/editorial-luxury-design-system/color-system.md +95 -0
- package/skills/editorial-luxury-design-system/component-library.md +131 -0
- package/skills/editorial-luxury-design-system/design-principles.md +77 -0
- package/skills/editorial-luxury-design-system/example-page-structures.md +94 -0
- package/skills/editorial-luxury-design-system/layout-system.md +80 -0
- package/skills/editorial-luxury-design-system/motion-system.md +82 -0
- package/skills/editorial-luxury-design-system/spacing-system.md +77 -0
- package/skills/editorial-luxury-design-system/typography-system.md +107 -0
- package/skills/editorial-luxury-design-system/website-generation-rules.md +194 -0
- package/skills/enterprise-data-viz-design-system/README.md +98 -0
- package/skills/enterprise-data-viz-design-system/SKILL.md +195 -0
- package/skills/enterprise-data-viz-design-system/accessibility-system.md +68 -0
- package/skills/enterprise-data-viz-design-system/color-system.md +112 -0
- package/skills/enterprise-data-viz-design-system/component-library.md +142 -0
- package/skills/enterprise-data-viz-design-system/design-principles.md +75 -0
- package/skills/enterprise-data-viz-design-system/example-page-structures.md +89 -0
- package/skills/enterprise-data-viz-design-system/layout-system.md +75 -0
- package/skills/enterprise-data-viz-design-system/motion-system.md +86 -0
- package/skills/enterprise-data-viz-design-system/spacing-system.md +85 -0
- package/skills/enterprise-data-viz-design-system/typography-system.md +100 -0
- package/skills/enterprise-data-viz-design-system/website-generation-rules.md +196 -0
- package/skills/f6s-copywriting/README.md +16 -6
- package/skills/f6s-copywriting/SKILL.md +162 -46
- package/skills/glassmorphism-design-system/README.md +98 -0
- package/skills/glassmorphism-design-system/SKILL.md +190 -0
- package/skills/glassmorphism-design-system/accessibility-system.md +62 -0
- package/skills/glassmorphism-design-system/color-system.md +128 -0
- package/skills/glassmorphism-design-system/component-library.md +120 -0
- package/skills/glassmorphism-design-system/design-principles.md +77 -0
- package/skills/glassmorphism-design-system/example-page-structures.md +92 -0
- package/skills/glassmorphism-design-system/layout-system.md +81 -0
- package/skills/glassmorphism-design-system/motion-system.md +86 -0
- package/skills/glassmorphism-design-system/spacing-system.md +73 -0
- package/skills/glassmorphism-design-system/typography-system.md +90 -0
- package/skills/glassmorphism-design-system/website-generation-rules.md +195 -0
- package/skills/linkedin-copywriting/README.md +15 -8
- package/skills/linkedin-copywriting/SKILL.md +129 -51
- package/skills/motion-storytelling-design-system/README.md +100 -0
- package/skills/motion-storytelling-design-system/SKILL.md +191 -0
- package/skills/motion-storytelling-design-system/accessibility-system.md +71 -0
- package/skills/motion-storytelling-design-system/color-system.md +101 -0
- package/skills/motion-storytelling-design-system/component-library.md +122 -0
- package/skills/motion-storytelling-design-system/design-principles.md +81 -0
- package/skills/motion-storytelling-design-system/example-page-structures.md +91 -0
- package/skills/motion-storytelling-design-system/layout-system.md +79 -0
- package/skills/motion-storytelling-design-system/motion-system.md +116 -0
- package/skills/motion-storytelling-design-system/spacing-system.md +83 -0
- package/skills/motion-storytelling-design-system/typography-system.md +89 -0
- package/skills/motion-storytelling-design-system/website-generation-rules.md +200 -0
- package/skills/nvidia-inception-idea-booster/README.md +43 -24
- package/skills/nvidia-inception-idea-booster/SKILL.md +260 -116
- package/skills/nvidia-inception-starter/README.md +6 -5
- package/skills/nvidia-inception-starter/SKILL.md +80 -43
- package/skills/nvidia-product-inventor/README.md +44 -37
- package/skills/nvidia-product-inventor/SKILL.md +265 -227
- package/skills/nvidia-startup-idea-founder/README.md +66 -26
- package/skills/nvidia-startup-idea-founder/SKILL.md +245 -189
- package/skills/product-demo-first-design-system/README.md +96 -0
- package/skills/product-demo-first-design-system/SKILL.md +185 -0
- package/skills/product-demo-first-design-system/accessibility-system.md +58 -0
- package/skills/product-demo-first-design-system/color-system.md +109 -0
- package/skills/product-demo-first-design-system/component-library.md +142 -0
- package/skills/product-demo-first-design-system/design-principles.md +66 -0
- package/skills/product-demo-first-design-system/example-page-structures.md +95 -0
- package/skills/product-demo-first-design-system/layout-system.md +76 -0
- package/skills/product-demo-first-design-system/motion-system.md +82 -0
- package/skills/product-demo-first-design-system/spacing-system.md +74 -0
- package/skills/product-demo-first-design-system/typography-system.md +87 -0
- package/skills/product-demo-first-design-system/website-generation-rules.md +194 -0
- package/skills/website-design-skills/01-proof/README.md +0 -47
- package/skills/website-design-skills/01-proof/SKILL.md +0 -303
- package/skills/website-design-skills/02-kajabi/README.md +0 -42
- package/skills/website-design-skills/02-kajabi/SKILL.md +0 -272
- package/skills/website-design-skills/03-lattice/README.md +0 -42
- package/skills/website-design-skills/03-lattice/SKILL.md +0 -271
- package/skills/website-design-skills/04-petal/README.md +0 -42
- package/skills/website-design-skills/04-petal/SKILL.md +0 -271
- package/skills/website-design-skills/05-dropbox-sign/README.md +0 -42
- package/skills/website-design-skills/05-dropbox-sign/SKILL.md +0 -271
- package/skills/website-design-skills/06-distributional/README.md +0 -42
- package/skills/website-design-skills/06-distributional/SKILL.md +0 -271
- package/skills/website-design-skills/07-appcues/README.md +0 -42
- package/skills/website-design-skills/07-appcues/SKILL.md +0 -271
- package/skills/website-design-skills/08-memberstack/README.md +0 -42
- package/skills/website-design-skills/08-memberstack/SKILL.md +0 -271
- package/skills/website-design-skills/09-flank/README.md +0 -42
- package/skills/website-design-skills/09-flank/SKILL.md +0 -275
- package/skills/website-design-skills/10-slidebean/README.md +0 -42
- package/skills/website-design-skills/10-slidebean/SKILL.md +0 -275
- package/skills/website-design-skills/11-formstack/README.md +0 -42
- package/skills/website-design-skills/11-formstack/SKILL.md +0 -275
- package/skills/website-design-skills/12-thalamus/README.md +0 -42
- package/skills/website-design-skills/12-thalamus/SKILL.md +0 -275
- package/skills/website-design-skills/13-grow/README.md +0 -42
- package/skills/website-design-skills/13-grow/SKILL.md +0 -275
- package/skills/website-design-skills/14-gemnote/README.md +0 -42
- package/skills/website-design-skills/14-gemnote/SKILL.md +0 -275
- package/skills/website-design-skills/15-draftbit/README.md +0 -42
- package/skills/website-design-skills/15-draftbit/SKILL.md +0 -275
- package/skills/website-design-skills/16-payman/README.md +0 -42
- package/skills/website-design-skills/16-payman/SKILL.md +0 -273
- package/skills/website-design-skills/17-effortel/README.md +0 -42
- package/skills/website-design-skills/17-effortel/SKILL.md +0 -272
- package/skills/website-design-skills/18-adopt/README.md +0 -42
- package/skills/website-design-skills/18-adopt/SKILL.md +0 -273
- package/skills/website-design-skills/19-kraftful/README.md +0 -42
- package/skills/website-design-skills/19-kraftful/SKILL.md +0 -273
- package/skills/website-design-skills/20-greenhouse/README.md +0 -42
- package/skills/website-design-skills/20-greenhouse/SKILL.md +0 -273
- package/skills/website-design-skills/21-weavy/README.md +0 -42
- package/skills/website-design-skills/21-weavy/SKILL.md +0 -273
- package/skills/website-design-skills/22-safetykit/README.md +0 -42
- package/skills/website-design-skills/22-safetykit/SKILL.md +0 -273
- package/skills/website-design-skills/23-modulify/README.md +0 -42
- package/skills/website-design-skills/23-modulify/SKILL.md +0 -270
- package/skills/website-design-skills/24-realm/README.md +0 -42
- package/skills/website-design-skills/24-realm/SKILL.md +0 -270
- package/skills/website-design-skills/25-modyfi/README.md +0 -42
- package/skills/website-design-skills/25-modyfi/SKILL.md +0 -269
- package/skills/website-design-skills/26-altitude/README.md +0 -42
- package/skills/website-design-skills/26-altitude/SKILL.md +0 -270
- package/skills/website-design-skills/27-way/README.md +0 -42
- package/skills/website-design-skills/27-way/SKILL.md +0 -270
- package/skills/website-design-skills/28-zentail/README.md +0 -42
- package/skills/website-design-skills/28-zentail/SKILL.md +0 -270
- package/skills/website-design-skills/29-zams/README.md +0 -42
- package/skills/website-design-skills/29-zams/SKILL.md +0 -270
- package/skills/website-design-skills/30-user-interviews/README.md +0 -44
- package/skills/website-design-skills/30-user-interviews/SKILL.md +0 -273
- package/skills/website-design-skills/31-bland/README.md +0 -44
- package/skills/website-design-skills/31-bland/SKILL.md +0 -273
- package/skills/website-design-skills/32-nauto/README.md +0 -44
- package/skills/website-design-skills/32-nauto/SKILL.md +0 -273
- package/skills/website-design-skills/33-bill/README.md +0 -44
- package/skills/website-design-skills/33-bill/SKILL.md +0 -273
- package/skills/website-design-skills/34-localyzer/README.md +0 -44
- package/skills/website-design-skills/34-localyzer/SKILL.md +0 -273
- package/skills/website-design-skills/35-jasper/README.md +0 -44
- package/skills/website-design-skills/35-jasper/SKILL.md +0 -273
- package/skills/website-design-skills/README.md +0 -108
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Design Principles — Glassmorphism
|
|
2
|
+
|
|
3
|
+
The philosophy distilled from glass-leaning references (Apple/visionOS, Stripe, Linear,
|
|
4
|
+
Family, Arc, Vercel) and modern AI sites (OpenAI, Anthropic, Perplexity, Cursor). The
|
|
5
|
+
guiding tension: glassmorphism is beautiful but easy to overdo — this system makes it
|
|
6
|
+
**tasteful, legible, and performant**.
|
|
7
|
+
|
|
8
|
+
## The one-sentence philosophy
|
|
9
|
+
|
|
10
|
+
**Frosted glass over living light, with discipline.** A vivid, gentle background provides
|
|
11
|
+
color and depth; a *few* frosted-glass panels float above it to carry the UI — always
|
|
12
|
+
legible, always with a fallback.
|
|
13
|
+
|
|
14
|
+
## Core principles
|
|
15
|
+
|
|
16
|
+
1. **One living background per page.** A soft mesh/gradient (optionally drifting) gives
|
|
17
|
+
the page its light. It stays **low-contrast behind text** so glass panels read.
|
|
18
|
+
2. **Glass for surfaces, not everything.** Nav, key cards, modals, and a hero panel are
|
|
19
|
+
glass; body text, sections, and most content sit on calm, legible surfaces. Restraint
|
|
20
|
+
is the whole point.
|
|
21
|
+
3. **Legibility is non-negotiable.** Every glass panel uses a tuned tint (and a scrim
|
|
22
|
+
where needed) so text clears **AA contrast**. If glass would hurt legibility, make the
|
|
23
|
+
panel more opaque — never sacrifice contrast for the effect.
|
|
24
|
+
4. **Real glass = blur + tint + edge + shadow.** Translucency, `backdrop-filter: blur()`,
|
|
25
|
+
a thin top highlight (1px light inner border), and a soft drop shadow together sell
|
|
26
|
+
the material. Missing any one looks cheap.
|
|
27
|
+
5. **Depth through layering + light.** Z-order, shadow, and a subtle highlight create
|
|
28
|
+
"panes of glass at different depths." Light appears to come from above.
|
|
29
|
+
6. **Always provide a fallback.** Where `backdrop-filter` is unsupported, or the user
|
|
30
|
+
prefers reduced transparency, glass becomes a solid tinted surface with the same
|
|
31
|
+
contrast. The site must never break or become unreadable.
|
|
32
|
+
7. **Motion is gentle light.** The mesh drifts slowly; panels catch a faint sheen on
|
|
33
|
+
hover; parallax is subtle. Nothing strobes or distracts. Honor reduced motion.
|
|
34
|
+
8. **Performance matters.** `backdrop-filter` is expensive — limit how many large blurred
|
|
35
|
+
surfaces are on screen at once; reduce/disable blur on low-power/mobile if needed.
|
|
36
|
+
9. **One restrained accent.** The background carries the color; the accent marks the
|
|
37
|
+
primary action and a few highlights — don't let glass + gradient + many accents fight.
|
|
38
|
+
10. **Consistency over novelty.** Reuse the glass tokens/utilities and components; a
|
|
39
|
+
coherent glass system beats scattered bespoke effects.
|
|
40
|
+
|
|
41
|
+
## Visual-hierarchy laws
|
|
42
|
+
|
|
43
|
+
- **One H1 per page**, usually inside the hero glass panel, brightest against the backdrop.
|
|
44
|
+
- **Contrast ladder on glass:** on-glass primary text near-white/near-black (per theme),
|
|
45
|
+
secondary tinted, tertiary muted — all still AA on the panel's tint.
|
|
46
|
+
- **Depth = importance:** the most important panel is the most elevated/forward (stronger
|
|
47
|
+
shadow, slightly more opacity); supporting panels recede.
|
|
48
|
+
- **One primary CTA per viewport** (a solid accent button, not glass — actions need to be
|
|
49
|
+
unmistakable).
|
|
50
|
+
- **Group with glass panels + space**, not borders between sections.
|
|
51
|
+
- **Accent sparingly** — primary action + 1–2 highlights per section.
|
|
52
|
+
|
|
53
|
+
## Restraint rules (avoid "excessive glassmorphism")
|
|
54
|
+
|
|
55
|
+
- **Max ~2–3 large glass surfaces visible per viewport** (e.g., nav + hero card + one
|
|
56
|
+
feature card) — not a wall of blurred boxes.
|
|
57
|
+
- **No glass on tiny text or long paragraphs** unless the tint guarantees AA; prefer a
|
|
58
|
+
more opaque surface for reading.
|
|
59
|
+
- **No busy imagery/high-contrast pattern directly behind text** — keep the backdrop soft
|
|
60
|
+
where words sit (add a scrim if needed).
|
|
61
|
+
- **Don't stack many blurs** (glass on glass on glass) — it muddies and tanks performance.
|
|
62
|
+
|
|
63
|
+
## Reference cues (what each does well)
|
|
64
|
+
|
|
65
|
+
- **Apple / visionOS:** material glass with real depth, light, and impeccable legibility.
|
|
66
|
+
- **Stripe:** vivid gradient backdrops + crisp content; glass used sparingly and cleanly.
|
|
67
|
+
- **Linear / Arc / Family:** tasteful translucency, soft glow, premium restraint.
|
|
68
|
+
|
|
69
|
+
## Do / Don't
|
|
70
|
+
|
|
71
|
+
**Do:** one soft living background · a few deliberate glass panels · tuned tint + highlight
|
|
72
|
+
edge + shadow · AA-legible on-glass text · solid accent CTAs · gentle mesh/sheen motion ·
|
|
73
|
+
robust solid fallbacks · keep performance in check.
|
|
74
|
+
|
|
75
|
+
**Don't:** glass on everything · low-contrast text on glass · busy backgrounds behind text
|
|
76
|
+
· blur with no fallback · stacked blurs · borders between sections · rainbow gradients ·
|
|
77
|
+
many competing accents · motion that distracts · stock "AI brain" clichés.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Example Page Structures — Glassmorphism
|
|
2
|
+
|
|
3
|
+
Ready-to-assemble, **glass** page blueprints. Each section names a layout (see
|
|
4
|
+
`layout-system.md`) and components (see `component-library.md`). Every page has **one
|
|
5
|
+
living mesh background** with a *few* tasteful, **AA-legible** glass panels floating over
|
|
6
|
+
it. No borders between sections (separate by whitespace + backdrop + glass elevation).
|
|
7
|
+
|
|
8
|
+
Legend: `GH-* / F-* / P-* / C-* / Q-* / FT-*` layouts · components by name.
|
|
9
|
+
|
|
10
|
+
## MANDATORY: 15+ page site map (≈20), 10+ sections/page, clean URLs
|
|
11
|
+
|
|
12
|
+
Always ship a **full multipage website with 15+ pages (≈20)** — never a single landing
|
|
13
|
+
page. Every page carries **at least 10 sections (≈12)**, **no borders/dividers between
|
|
14
|
+
sections**, pure HTML/CSS/vanilla JS, **extensionless URLs**. Required 20-page map:
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/ Home /customers Customers
|
|
18
|
+
/platform Platform /case-studies Case Studies
|
|
19
|
+
/solutions Solutions /developers Developers
|
|
20
|
+
/products Products /docs Documentation ← + DOC-A subpages
|
|
21
|
+
/features Features /about About
|
|
22
|
+
/ai-agents AI Agents /careers Careers
|
|
23
|
+
/enterprise Enterprise /blog Blog ← + article pages
|
|
24
|
+
/security Security /contact Contact
|
|
25
|
+
/pricing Pricing /partners Partners
|
|
26
|
+
/resources Resources /faq FAQ
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Each blueprint below is a **10-section** skeleton — extend toward 12, never fewer than 10.
|
|
30
|
+
Every page must include: **Hero (glass) · Feature Sections · Product Highlights · Trust
|
|
31
|
+
Signals · Testimonials · Use Cases · Statistics · Integrations · CTA · Footer.** Every page
|
|
32
|
+
has exactly **one `.page-bg`** living background.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 1. Home (default)
|
|
37
|
+
1. **Navbar** `.glass--nav` (glass dropdowns) — extensionless links
|
|
38
|
+
2. **Hero** `GH-A` — centered `.glass--strong` panel: eyebrow · H1 · lead · **solid CTA** +
|
|
39
|
+
ghost · product preview in a second glass panel
|
|
40
|
+
3. **Logos Section** — slim glass strip / on-backdrop logos
|
|
41
|
+
4. **Feature Grid** `F-A` — 3 `.glass` feature cards
|
|
42
|
+
5. **Glass Bento** `F-C` — a few varied glass tiles (one anchor)
|
|
43
|
+
6. **Statistics** — metric glass tiles (count-up)
|
|
44
|
+
7. **Testimonials** — featured glass quote + small quote cards
|
|
45
|
+
8. **Integrations** — glass app grid + "See all" link
|
|
46
|
+
9. **Pricing** `P-A` (or teaser) — glass tier cards
|
|
47
|
+
10. **CTA** `C-A` glass band (solid CTA) + **Footer** `FT-A`
|
|
48
|
+
|
|
49
|
+
## 2. Platform / Product
|
|
50
|
+
1. Navbar · 2. **Hero** `GH-B` split (glass copy + glass preview) · 3. Feature `F-B`
|
|
51
|
+
alternating · 4. **Dashboard Preview** (glass frame) · 5. Glass Bento · 6. Code Preview
|
|
52
|
+
(glass) · 7. Use Cases · 8. **Statistics** · 9. Testimonials · 10. CTA + Footer
|
|
53
|
+
|
|
54
|
+
## 3. Features / Solutions
|
|
55
|
+
1. Navbar · 2. Hero (glass) · 3.–8. feature sections (`F-A`/`F-B`/`F-D` tabbed) each with a
|
|
56
|
+
glass card/preview · 9. Integrations · 10. CTA + Footer
|
|
57
|
+
|
|
58
|
+
## 4. Developers / Documentation
|
|
59
|
+
- **Developers:** Navbar · **Hero** with glass-framed **Code/Terminal Preview** · Logos ·
|
|
60
|
+
Code Preview (tabbed, glass) · Feature Grid · Use Cases · Statistics · CTA · Footer (≥10).
|
|
61
|
+
- **Docs:** `DOC-A` three-pane (glass sidebar · prose on `glass--strong`/solid for reading ·
|
|
62
|
+
glass TOC); sticky glass top bar; breadcrumb; inline glass-framed code.
|
|
63
|
+
|
|
64
|
+
## 5. Enterprise / Security
|
|
65
|
+
1. Navbar · 2. Hero (outcome-led, glass) · 3. Logos · 4. Feature `F-A` · 5. **Enterprise
|
|
66
|
+
Section** (glass panel) · 6. **Security Section** (compliance badges, glass) · 7.
|
|
67
|
+
**Statistics**/ROI · 8. Testimonials (exec) · 9. CTA `C-A` (solid CTA / contact) · 10. Footer
|
|
68
|
+
|
|
69
|
+
## 6. Pricing
|
|
70
|
+
1. Navbar · 2. Hero (short + toggle) · 3. **Pricing** `P-A/P-B` glass tiers · 4. Feature
|
|
71
|
+
comparison · 5. **Enterprise** band · 6. Logos · 7. **Statistics** · 8. Testimonials · 9.
|
|
72
|
+
**FAQ** `Q-A` (glass panel) · 10. CTA + Footer
|
|
73
|
+
|
|
74
|
+
## 7. Content pages (About, Careers, Customers, Case Studies, Blog, Partners, Resources, Contact, FAQ)
|
|
75
|
+
Reach **≥10 sections** by composing glass panels over the backdrop: Hero (glass) → body
|
|
76
|
+
sections (values, timeline, roles, customer grid, story, article list, partner tiers,
|
|
77
|
+
resource cards, contact form on a `glass--strong` panel) → Trust Signals → Testimonials →
|
|
78
|
+
Statistics → Integrations → CTA → Footer. Keep reading content on `glass--strong`/solid
|
|
79
|
+
surfaces for legibility.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Assembly notes
|
|
84
|
+
- **Scale is mandatory:** 15+ pages, **≥10 sections each**. Never a single/thin page.
|
|
85
|
+
- **One living background per page**; place a *few* deliberate glass panels — don't make
|
|
86
|
+
everything glass (anti-pattern).
|
|
87
|
+
- **Legibility first:** reading content sits on `glass--strong`/solid; center hero/text
|
|
88
|
+
over calmer mesh regions; ship the solid fallback.
|
|
89
|
+
- **No borders/dividers between sections** — whitespace + backdrop + glass elevation. One
|
|
90
|
+
layout + one idea per section.
|
|
91
|
+
- **Primary CTAs are solid** accent buttons; glass is for surfaces.
|
|
92
|
+
- Use real content; mark guesses `[PLACEHOLDER]`.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Layout & Grid System — Glassmorphism
|
|
2
|
+
|
|
3
|
+
A 12-column fluid grid + canonical glass section layouts. Every page has **one living
|
|
4
|
+
background**; layouts place a *few* glass panels over it. **No borders between sections.**
|
|
5
|
+
|
|
6
|
+
## Grid
|
|
7
|
+
|
|
8
|
+
```css
|
|
9
|
+
:root { --grid-cols: 12; --grid-gap: clamp(16px, 2.2vw, 28px); }
|
|
10
|
+
|
|
11
|
+
.grid { display: grid; gap: var(--grid-gap);
|
|
12
|
+
grid-template-columns: repeat(var(--grid-cols), 1fr); }
|
|
13
|
+
|
|
14
|
+
.cols-1 { grid-template-columns: 1fr; }
|
|
15
|
+
.cols-2 { grid-template-columns: repeat(2, 1fr); }
|
|
16
|
+
.cols-3 { grid-template-columns: repeat(3, 1fr); }
|
|
17
|
+
.cols-4 { grid-template-columns: repeat(4, 1fr); }
|
|
18
|
+
.split { grid-template-columns: 1fr 1fr; }
|
|
19
|
+
@media (max-width: 900px){ .cols-3,.cols-4 { grid-template-columns: repeat(2,1fr); } }
|
|
20
|
+
@media (max-width: 820px){ .split { grid-template-columns: 1fr; } }
|
|
21
|
+
@media (max-width: 600px){ .cols-2,.cols-3,.cols-4 { grid-template-columns: 1fr; } }
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Breakpoints: `sm 480` · `md 768` · `lg 1024` · `xl 1280` · `2xl 1440`. Mobile-first;
|
|
25
|
+
collapse to single column by `md`.
|
|
26
|
+
|
|
27
|
+
## The page shell (one living background)
|
|
28
|
+
|
|
29
|
+
```css
|
|
30
|
+
.page-bg { position: fixed; inset: 0; z-index:-1; background: var(--bg-mesh);
|
|
31
|
+
background-attachment: fixed; }
|
|
32
|
+
.page-bg::after { content:""; position:absolute; inset:0;
|
|
33
|
+
background-image: var(--grain); opacity:.05; mix-blend-mode: overlay; }
|
|
34
|
+
/* All sections are transparent so the one backdrop shows through; glass panels float on top. */
|
|
35
|
+
.section { background: transparent; }
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Canonical glass section layouts
|
|
39
|
+
|
|
40
|
+
### Hero
|
|
41
|
+
- **GH-A Centered glass card (default):** eyebrow → H1 → lead → CTA pair inside a large
|
|
42
|
+
**`.glass`/`.glass--strong` hero panel**, centered over a calmer region of the mesh; a
|
|
43
|
+
product preview can sit in a second glass panel below.
|
|
44
|
+
- **GH-B Split:** copy/CTAs in a glass panel (left), product/preview glass panel (right).
|
|
45
|
+
- **GH-C Floating UI:** a few small glass cards/widgets float (subtle parallax) around a
|
|
46
|
+
central headline — the "visionOS" look. Keep text legible (calm backdrop behind it).
|
|
47
|
+
|
|
48
|
+
### Feature
|
|
49
|
+
- **F-A Glass card grid:** `.grid.cols-3` of `.glass` feature cards over the backdrop.
|
|
50
|
+
- **F-B Alternating rows:** copy ↔ a glass product/media panel, flipping sides.
|
|
51
|
+
- **F-C Glass bento:** a few varied glass tiles (one anchor) floating on the mesh.
|
|
52
|
+
- **F-D Tabbed:** glass tabs switch a glass preview panel.
|
|
53
|
+
|
|
54
|
+
### Pricing / CTA / FAQ / Footer
|
|
55
|
+
- **P-A 3-tier glass cards** (middle highlighted with accent edge + slightly more opacity)
|
|
56
|
+
+ monthly/annual toggle. **P-B 2-tier + enterprise** glass band.
|
|
57
|
+
- **C-A CTA glass band:** a centered `.glass--strong` panel with big H2 + **solid accent
|
|
58
|
+
CTA**. `--section-y-lg`, no border.
|
|
59
|
+
- **Q-A Accordion FAQ** inside a glass panel (`--container-md`); **Q-B FAQ tiles**.
|
|
60
|
+
- **FT-A Mega footer** on a `.glass--nav`/solid panel; **FT-B minimal**.
|
|
61
|
+
|
|
62
|
+
### Dashboard / Docs
|
|
63
|
+
- **D-A Dashboard glass:** product app shell inside a glass frame, floated with shadow.
|
|
64
|
+
- **DOC-A Three-pane docs:** glass sidebar + prose (on a `glass--strong`/solid surface for
|
|
65
|
+
reading) + glass TOC; sticky glass top bar; breadcrumb.
|
|
66
|
+
|
|
67
|
+
## Composition rules
|
|
68
|
+
|
|
69
|
+
1. **One background, transparent sections, few glass panels.** `.section{background:
|
|
70
|
+
transparent; border:0}`; the fixed `.page-bg` shows through; place a *few* `.glass`
|
|
71
|
+
panels per section — not a wall of glass.
|
|
72
|
+
2. **Separate sections by space + backdrop shift + panel elevation, NEVER borders.** No
|
|
73
|
+
`<hr>`/divider/`border-top`.
|
|
74
|
+
3. **Keep text over calm backdrop.** Center hero/reading panels over softer mesh regions;
|
|
75
|
+
use `.glass--strong`/`--scrim` where the backdrop is bright behind text.
|
|
76
|
+
4. **One layout + one idea per section.**
|
|
77
|
+
5. **At least 10 sections per page**, **15+ pages.** Never thin.
|
|
78
|
+
6. **Rhythm:** Glass hero → logos/trust → glass feature grid → glass bento/tabs →
|
|
79
|
+
metrics → testimonials → integrations → pricing → FAQ → glass CTA band → footer.
|
|
80
|
+
7. **Performance:** limit large blurred panels per viewport; the background is one fixed
|
|
81
|
+
layer (not re-blurred per panel beyond the panel area).
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Motion System — Glassmorphism
|
|
2
|
+
|
|
3
|
+
Motion is **gentle light**: the living background drifts slowly, glass panels catch a faint
|
|
4
|
+
sheen and lift on hover, and a little parallax gives depth. The page feels alive but calm.
|
|
5
|
+
Everything degrades under `prefers-reduced-motion` (and respects reduced transparency).
|
|
6
|
+
|
|
7
|
+
Distilled from Apple/visionOS depth + light, Stripe gradient motion, and OpenAI/Anthropic/
|
|
8
|
+
Perplexity/Cursor restraint.
|
|
9
|
+
|
|
10
|
+
## Tokens
|
|
11
|
+
|
|
12
|
+
```css
|
|
13
|
+
:root {
|
|
14
|
+
--dur-fast: 150ms; --dur-base: 260ms; --dur-slow: 420ms; --dur-slower: 700ms;
|
|
15
|
+
--ease-out: cubic-bezier(0.2, 1, 0.3, 1);
|
|
16
|
+
--ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
|
|
17
|
+
--mesh-drift: 26s; /* one slow background loop */
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Principles
|
|
22
|
+
1. **Light, not motion.** The strongest "movement" is the slow mesh drift + hover sheen —
|
|
23
|
+
subtle, premium, never distracting.
|
|
24
|
+
2. **Short + eased** for UI (150–420ms); long + linear for the background loop.
|
|
25
|
+
3. **Move a little:** panel hover lift 2–4px, sheen sweep, parallax ≤ 10px.
|
|
26
|
+
4. **One focal animation per viewport.** Don't animate every panel.
|
|
27
|
+
5. **Cheap props only** (`transform`/`opacity`/`background-position`); avoid animating
|
|
28
|
+
`backdrop-filter` (expensive).
|
|
29
|
+
|
|
30
|
+
## Patterns
|
|
31
|
+
|
|
32
|
+
- **Background drift (signature):** the mesh slowly shifts position/hue over `--mesh-drift`,
|
|
33
|
+
infinite + alternate, very low amplitude. Pauses for reduced motion.
|
|
34
|
+
- **Scroll reveal:** sections/panels start `opacity:0; translateY(18px)` → `.in` via
|
|
35
|
+
`IntersectionObserver`, `--dur-slow` `--ease-out`, gentle stagger. Reveal once.
|
|
36
|
+
- **Glass hover sheen:** on hover, a soft diagonal highlight sweeps across the panel +
|
|
37
|
+
shadow lift (`--glass-shadow` deepens). Use a `::after` gradient translating across.
|
|
38
|
+
- **Panel parallax (GH-C floating UI):** small glass cards translate a few px on scroll/
|
|
39
|
+
pointer for depth; desktop only; off for touch/reduced motion.
|
|
40
|
+
- **Pointer glow:** a faint radial light follows the cursor on a hero panel (CSS vars on
|
|
41
|
+
`pointermove`); subtle, desktop only.
|
|
42
|
+
- **Micro-interactions:** copy-button check swap, toggle slide, accordion height + chevron
|
|
43
|
+
rotate, tab indicator slide, count-up on metric tiles.
|
|
44
|
+
- **Nav on scroll:** glass tint strengthens slightly + shadow appears after ~24px.
|
|
45
|
+
- **Marquee (logos):** slow, linear, pausable.
|
|
46
|
+
|
|
47
|
+
## Reduced motion / transparency (required)
|
|
48
|
+
|
|
49
|
+
```css
|
|
50
|
+
@media (prefers-reduced-motion: reduce) {
|
|
51
|
+
*, *::before, *::after { animation-duration:.001ms !important;
|
|
52
|
+
animation-iteration-count:1 !important; transition-duration:.001ms !important;
|
|
53
|
+
scroll-behavior:auto !important; }
|
|
54
|
+
.page-bg { animation: none !important; } /* freeze the mesh */
|
|
55
|
+
}
|
|
56
|
+
/* reduced transparency handled in color-system: glass → solid tinted surface */
|
|
57
|
+
```
|
|
58
|
+
Under reduced motion: freeze the mesh, show reveals/panels in final state, disable
|
|
59
|
+
parallax/sheen/pointer-glow/marquee, render count-ups at final value.
|
|
60
|
+
|
|
61
|
+
## Minimal vanilla helpers
|
|
62
|
+
|
|
63
|
+
```js
|
|
64
|
+
// reveal
|
|
65
|
+
const io = new IntersectionObserver((es)=>es.forEach((e,i)=>{ if(e.isIntersecting){
|
|
66
|
+
e.target.style.transitionDelay = `${Math.min(i*80,360)}ms`;
|
|
67
|
+
e.target.classList.add('in'); io.unobserve(e.target);} }, {threshold:.15}));
|
|
68
|
+
document.querySelectorAll('[data-reveal]').forEach(el=>io.observe(el));
|
|
69
|
+
|
|
70
|
+
// pointer glow on hero glass (skip if reduced motion)
|
|
71
|
+
if(!matchMedia('(prefers-reduced-motion: reduce)').matches){
|
|
72
|
+
document.querySelectorAll('.glass[data-glow]').forEach(el=>{
|
|
73
|
+
el.addEventListener('pointermove', e=>{ const r=el.getBoundingClientRect();
|
|
74
|
+
el.style.setProperty('--gx', `${e.clientX-r.left}px`);
|
|
75
|
+
el.style.setProperty('--gy', `${e.clientY-r.top}px`); }); });
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
```css
|
|
79
|
+
[data-reveal]{ opacity:0; transform: translateY(18px);
|
|
80
|
+
transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out); }
|
|
81
|
+
[data-reveal].in{ opacity:1; transform:none; }
|
|
82
|
+
.page-bg{ background-size: 160% 160%; animation: meshDrift var(--mesh-drift) ease-in-out infinite alternate; }
|
|
83
|
+
@keyframes meshDrift { from{ background-position: 0% 0%; } to{ background-position: 100% 100%; } }
|
|
84
|
+
.glass[data-glow]::after{ content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
|
|
85
|
+
background: radial-gradient(220px 220px at var(--gx) var(--gy), rgba(255,255,255,.10), transparent 60%); }
|
|
86
|
+
```
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Spacing System — Glassmorphism
|
|
2
|
+
|
|
3
|
+
A strict **4-point base / 8-point rhythm**, tuned so glass panels have room to float over
|
|
4
|
+
the living background. Generous space + the backdrop + panel elevation separate sections —
|
|
5
|
+
never borders.
|
|
6
|
+
|
|
7
|
+
## Scale tokens
|
|
8
|
+
|
|
9
|
+
```css
|
|
10
|
+
:root {
|
|
11
|
+
/* 4-pt base, 8-pt rhythm */
|
|
12
|
+
--space-0: 0; --space-1: 4px; --space-2: 8px; --space-3: 12px;
|
|
13
|
+
--space-4: 16px; --space-5: 20px; --space-6: 24px; --space-8: 32px;
|
|
14
|
+
--space-10: 40px; --space-12: 48px; --space-16: 64px; --space-20: 80px;
|
|
15
|
+
--space-24: 96px; --space-28: 112px;--space-32: 128px;--space-40: 160px;
|
|
16
|
+
|
|
17
|
+
/* Radii — glass panels use large, soft corners (light catches the edge) */
|
|
18
|
+
--radius-sm: 10px; --radius-md: 14px; --radius-lg: 18px;
|
|
19
|
+
--radius-xl: 22px; --radius-2xl: 28px; --radius-pill: 999px;
|
|
20
|
+
|
|
21
|
+
/* Containers */
|
|
22
|
+
--container-sm: 680px; --container-md: 820px; --container-lg: 1060px;
|
|
23
|
+
--container-xl: 1200px; --container-2xl: 1320px;
|
|
24
|
+
--gutter: clamp(20px, 5vw, 48px);
|
|
25
|
+
|
|
26
|
+
/* Section rhythm (fluid, generous so glass floats) */
|
|
27
|
+
--section-y: clamp(72px, 9vw, 136px);
|
|
28
|
+
--section-y-lg: clamp(100px, 12vw, 188px); /* hero / major sections */
|
|
29
|
+
--stack: clamp(16px, 2vw, 24px);
|
|
30
|
+
--glass-pad: clamp(20px, 2.6vw, 36px); /* padding inside a glass panel */
|
|
31
|
+
--glass-lift: clamp(20px, 3.5vw, 48px); /* air around a floated glass panel */
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Usage map
|
|
36
|
+
|
|
37
|
+
- **4-pt system** (`--space-1..6`): inside panels/components — icon↔label, button/badge
|
|
38
|
+
padding, list-item gaps, input padding.
|
|
39
|
+
- **8-pt system** (`--space-8..16`): glass-panel padding (`--glass-pad`), gaps between
|
|
40
|
+
panels, copy↔panel gaps, form rows, grid gaps.
|
|
41
|
+
- **Container widths:** standard sections `--container-lg/xl`; wide showcases
|
|
42
|
+
`--container-2xl`; prose/docs `--container-md`.
|
|
43
|
+
- **Section spacing:** `padding-block: var(--section-y)`; hero + major sections use
|
|
44
|
+
`--section-y-lg`. Add `--glass-lift` margin around a floated hero panel so its shadow
|
|
45
|
+
reads against the backdrop.
|
|
46
|
+
- **Panel padding:** generous `--glass-pad`; don't crowd content to the frosted edge.
|
|
47
|
+
- **Page spacing:** sections stack with no extra margins and **no borders/dividers** —
|
|
48
|
+
`--section-y` padding + the backdrop's shifts + panel elevation separate them.
|
|
49
|
+
|
|
50
|
+
## Rules
|
|
51
|
+
|
|
52
|
+
1. **Only use scale values.** No arbitrary `13px`/`27px`.
|
|
53
|
+
2. **Give glass air.** Use `--glass-lift` so the panel's shadow + highlight read against
|
|
54
|
+
the mesh; cramped glass loses its depth.
|
|
55
|
+
3. **Consistent panel radius/padding.** All glass panels share `--radius-xl/2xl` +
|
|
56
|
+
`--glass-pad` so the material reads as one system.
|
|
57
|
+
4. **Whitespace + backdrop + elevation > dividers.** Separate sections this way, never lines.
|
|
58
|
+
5. **Don't over-tile glass.** Spacing should leave the background visible between panels —
|
|
59
|
+
the contrast of glass-on-light is the effect.
|
|
60
|
+
|
|
61
|
+
## Helpers
|
|
62
|
+
|
|
63
|
+
```css
|
|
64
|
+
.container { width:100%; max-width: var(--container-xl);
|
|
65
|
+
margin-inline:auto; padding-inline: var(--gutter); }
|
|
66
|
+
.container--wide { max-width: var(--container-2xl); }
|
|
67
|
+
.container--narrow { max-width: var(--container-md); }
|
|
68
|
+
.section { padding-block: var(--section-y); border: 0; } /* never a section border */
|
|
69
|
+
.section--hero { padding-block: var(--section-y-lg); }
|
|
70
|
+
.glass { padding: var(--glass-pad); border-radius: var(--radius-xl); } /* + glass utility from color-system */
|
|
71
|
+
.glass-wrap { margin-block: var(--glass-lift); } /* air around a floated panel */
|
|
72
|
+
.stack > * + * { margin-top: var(--stack); }
|
|
73
|
+
```
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Typography System — Glassmorphism
|
|
2
|
+
|
|
3
|
+
Clean, modern grotesk type tuned for **legibility on translucent surfaces**. On glass,
|
|
4
|
+
type needs a touch more weight/contrast than on a solid panel — these rules bake that in.
|
|
5
|
+
Fluid scale across breakpoints.
|
|
6
|
+
|
|
7
|
+
## Fonts
|
|
8
|
+
|
|
9
|
+
```css
|
|
10
|
+
:root {
|
|
11
|
+
--font-sans: "Inter", "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI",
|
|
12
|
+
Roboto, Helvetica, Arial, sans-serif;
|
|
13
|
+
--font-display: var(--font-sans); /* or "Geist" for tighter display */
|
|
14
|
+
--font-mono: "Geist Mono", "JetBrains Mono", "SF Mono", ui-monospace, Menlo, monospace;
|
|
15
|
+
}
|
|
16
|
+
```
|
|
17
|
+
Inter/Geist render crisply on blurred backdrops. Mono for code/terminal glass panels.
|
|
18
|
+
|
|
19
|
+
## Fluid type scale (clamp)
|
|
20
|
+
|
|
21
|
+
```css
|
|
22
|
+
:root {
|
|
23
|
+
--fs-display: clamp(2.5rem, 1.4rem + 5.2vw, 5rem); /* 40 → 80px hero */
|
|
24
|
+
--fs-h1: clamp(2.125rem, 1.5rem + 2.9vw, 3.5rem); /* 34 → 56px */
|
|
25
|
+
--fs-h2: clamp(1.625rem, 1.25rem + 1.9vw, 2.5rem);/* 26 → 40px */
|
|
26
|
+
--fs-h3: clamp(1.3125rem, 1.12rem + 1vw, 1.75rem);/* 21 → 28px */
|
|
27
|
+
--fs-h4: clamp(1.0625rem, 1rem + 0.4vw, 1.3125rem);/* 17 → 21px */
|
|
28
|
+
--fs-lead: clamp(1.125rem, 1.02rem + 0.55vw, 1.4375rem);/* 18 → 23px subhead */
|
|
29
|
+
--fs-body: 1rem; /* 16px base */
|
|
30
|
+
--fs-body-lg: 1.0625rem; /* 17px */
|
|
31
|
+
--fs-small: 0.875rem; /* 14px caption */
|
|
32
|
+
--fs-micro: 0.75rem; /* 12px labels/eyebrow */
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Roles (each: size · weight · line-height · tracking)
|
|
37
|
+
|
|
38
|
+
| Role | Size | Weight | Line-height | Tracking | Color |
|
|
39
|
+
|---|---|---|---|---|---|
|
|
40
|
+
| **Display** (hero) | `--fs-display` | 600–700 | 1.05 | -0.02em | `--text-primary` (or `--grad-text` on 1 word) |
|
|
41
|
+
| **H1** | `--fs-h1` | 600–700 | 1.08 | -0.02em | `--text-primary` |
|
|
42
|
+
| **H2** (section) | `--fs-h2` | 600 | 1.12 | -0.015em | `--text-primary` |
|
|
43
|
+
| **H3** | `--fs-h3` | 600 | 1.25 | -0.01em | `--text-primary` |
|
|
44
|
+
| **H4 / overline** | `--fs-h4` | 600 | 1.3 | 0 | `--text-primary` |
|
|
45
|
+
| **Eyebrow / label** | `--fs-micro` | 600 | 1.2 | 0.07em, UPPERCASE | `--accent`/`--text-muted` |
|
|
46
|
+
| **Lead / subhead** | `--fs-lead` | 400–500 | 1.5 | 0 | `--text-secondary` |
|
|
47
|
+
| **Body** | `--fs-body`/`-lg` | 400 | 1.6 | 0 | `--text-secondary` |
|
|
48
|
+
| **Body on glass** | `--fs-body`/`-lg` | **450–500** | 1.6 | 0 | `--text-secondary`+ |
|
|
49
|
+
| **Caption / meta** | `--fs-small` | 400–500 | 1.45 | 0 | `--text-muted` |
|
|
50
|
+
| **Button** | `--fs-body` (`0.9375rem` compact) | 600 | 1 | -0.005em | `--text-on-accent`/`--text-primary` |
|
|
51
|
+
| **Navigation** | `--fs-small`/`--fs-body` | 500 | 1 | 0 | `--text-secondary` → `--text-primary` |
|
|
52
|
+
| **Pricing amount** | `clamp(2.25rem,1.8rem+2vw,3.25rem)` | 700 | 1 | -0.02em | `--text-primary` |
|
|
53
|
+
| **Code (glass panel)** | `--fs-small` | 400–500 | 1.6 | 0 | mono, `--text-primary` |
|
|
54
|
+
|
|
55
|
+
## On-glass legibility rules (the key difference)
|
|
56
|
+
|
|
57
|
+
1. **Slightly heavier body on glass.** Bump body to ~450–500 weight on translucent panels;
|
|
58
|
+
thin text shimmers and loses contrast over a blurred backdrop.
|
|
59
|
+
2. **Guarantee AA over the brightest backdrop region** the text can overlap; if it fails,
|
|
60
|
+
use `--glass-bg-strong`, add `--scrim`, or increase weight/size.
|
|
61
|
+
3. **Avoid huge thin display text directly over the busiest mesh area** — center the hero
|
|
62
|
+
panel over a calmer region or sit it on `glass--strong`.
|
|
63
|
+
4. **No gradient text on small/secondary text** (`--grad-text` only on one large hero phrase).
|
|
64
|
+
5. **Don't rely on text-shadow as a contrast crutch** — fix the surface tint instead
|
|
65
|
+
(a subtle shadow is fine for polish, not for legibility).
|
|
66
|
+
|
|
67
|
+
## General rules
|
|
68
|
+
|
|
69
|
+
1. **Tighten as it grows;** body ~1.6, 0 tracking. Measure ≤ 68ch.
|
|
70
|
+
2. **Weights:** body 400 (450–500 on glass), UI/emphasis 600, headings 600–700.
|
|
71
|
+
3. **One display moment per page** (the hero).
|
|
72
|
+
4. **Eyebrows** label sections; **numbers** use `font-variant-numeric: tabular-nums`.
|
|
73
|
+
|
|
74
|
+
## Base CSS
|
|
75
|
+
|
|
76
|
+
```css
|
|
77
|
+
body { font-family: var(--font-sans); font-size: var(--fs-body);
|
|
78
|
+
line-height: 1.6; color: var(--text-secondary);
|
|
79
|
+
-webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
|
|
80
|
+
h1,h2,h3,h4 { color: var(--text-primary); font-family: var(--font-display);
|
|
81
|
+
font-weight: 600; text-wrap: balance; letter-spacing: -0.02em; }
|
|
82
|
+
h1 { font-size: var(--fs-h1); line-height: 1.08; }
|
|
83
|
+
.eyebrow { font-size: var(--fs-micro); font-weight:600; letter-spacing:.07em;
|
|
84
|
+
text-transform:uppercase; color: var(--accent); }
|
|
85
|
+
.lead { font-size: var(--fs-lead); color: var(--text-secondary); max-width: 60ch; }
|
|
86
|
+
.glass p, .glass li { font-weight: 460; } /* a touch heavier on glass for legibility */
|
|
87
|
+
a { color: var(--accent-2); text-underline-offset: 2px; }
|
|
88
|
+
p { max-width: 68ch; }
|
|
89
|
+
code, pre { font-family: var(--font-mono); }
|
|
90
|
+
```
|