@formant/aesthetics 0.1.2 → 0.1.4

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/DESIGN.md ADDED
@@ -0,0 +1,485 @@
1
+ # Formant Design System
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Formant's interface is a mission-control environment where data is the primary light source. The Deep Command canvas (`#0A0F11`) creates a near-void -- not darkness for aesthetic effect, but the operational darkness of a control room at 3am, where every illuminated element represents a signal that demands attention. Information emerges from this void through carefully calibrated luminance: Fog Green borders at the threshold of perception, Terminal Amber warnings that cut through like instrument readings, and the steady pulse of Horizon Glow guiding operators through complexity. This is not a dark theme applied to a light design. This is darkness as the native medium of industrial intelligence.
6
+
7
+ The typography system uses three typefaces in strict roles. Space Grotesk handles all display and heading text -- a geometric sans with just enough character to feel architectural rather than generic. At headline sizes, it runs at weight 500-600 with tight letter-spacing (-0.02em), creating dense, confident blocks of text that read like engineering specifications rather than marketing copy. Inter serves as the body workhorse: weight 400 at 16px with 1.6 line-height for comfortable reading on dark backgrounds. JetBrains Mono completes the system as the data voice -- used for eyebrow labels, status tags, and telemetry readouts at 10-11px with 0.1-0.2em tracking and uppercase transform, creating the stenciled, instrument-panel aesthetic of a spacecraft HUD.
8
+
9
+ The color system is deliberately narrow: nine named colors, each with an atmospheric origin. Deep Command and Slate Mist handle 70-80% of all surface area. Fog Green, Ethereal Teal, and Horizon Glow manage the atmospheric middle layer -- borders, active states, and interactive elements. Terminal Amber and Interface Iris appear in under 5% of the UI, reserved exclusively for moments requiring human attention: warnings, AI states, and system intelligence indicators. The border system is entirely opacity-based, using System Neutral at 10-40% opacity to create structure without visual noise -- like wireframes drawn in fog.
10
+
11
+ **Key Characteristics:**
12
+ - Dark-mode-native: `#0A0F11` (Deep Command) base, `#202428` (Slate Mist) cards, never light backgrounds
13
+ - Three-typeface system: Space Grotesk (display), Inter (body), JetBrains Mono (data/labels)
14
+ - Nine-color palette with atmospheric names: Deep Command, Slate Mist, Fog Green, Ethereal Teal, Horizon Glow, Terminal Amber, Interface Iris, Formant White, System Neutral
15
+ - Opacity-based border system: `rgba(163,171,169, 0.1)` to `rgba(163,171,169, 0.4)` -- never solid borders
16
+ - JetBrains Mono uppercase with wide tracking for eyebrow labels -- the mission-control HUD voice
17
+ - Horizon Glow (`#ACC3B3`) as the sole interactive accent -- muted green, not a saturated primary
18
+ - Terminal Amber (`#E8AB7F`) reserved strictly for warnings and attention-demanding labels
19
+ - Interface Iris (`#8B8CF4`) reserved strictly for AI states and system intelligence
20
+ - Fade-up entrance animations (0.7s ease, 24px translateY) with staggered 80ms delays
21
+ - CSS custom properties importable from `formant-properties.css` (Version 2026.1)
22
+
23
+ ## 2. Color Palette & Roles
24
+
25
+ ### Primary Neutrals (70-80% of all usage)
26
+
27
+ - **Deep Command** (`#0A0F11`, `rgb(10, 15, 17)`) -- `--formant-deep-command`: The void. Primary backgrounds, base layer, the darkness from which all data emerges. Not pure black -- an imperceptible blue-cool undertone that prevents harshness.
28
+ - **Slate Mist** (`#202428`, `rgb(32, 36, 40)`) -- `--formant-slate-mist`: One step above the void. Card backgrounds, secondary surfaces, elevated panels. The lightest a surface should get.
29
+ - **Formant White** (`#F2F3F4`, `rgb(242, 243, 244)`) -- `--formant-formant-white`: Primary text, headlines, and high-emphasis content. Not pure white -- the slight warm cast prevents eye strain on dark backgrounds.
30
+ - **System Neutral** (`#A3ABA9`, `rgb(163, 171, 169)`) -- `--formant-system-neutral`: Body text, captions, secondary content. Also the base color for the opacity-based border system.
31
+
32
+ ### Atmospheric Accents (40-60% of remaining usage)
33
+
34
+ - **Fog Green** (`#4B5E53`, `rgb(75, 94, 83)`) -- `--formant-fog-green`: Borders, dividers, muted accents, field name labels in data displays. The structural color -- present everywhere, visible nowhere.
35
+ - **Ethereal Teal** (`#2C4142`, `rgb(44, 65, 66)`) -- `--formant-ethereal-teal`: Active states, hover backgrounds on panels, subtle surface elevation. The "something is happening here" indicator.
36
+ - **Horizon Glow** (`#ACC3B3`, `rgb(172, 195, 179)`) -- `--formant-horizon-glow`: Primary CTAs, interactive elements, success states, links. The sole accent for user-driven actions. Muted, not saturated -- it guides without demanding.
37
+
38
+ ### Functional UI Accents (under 5% of all usage)
39
+
40
+ - **Terminal Amber** (`#E8AB7F`, `rgb(232, 171, 127)`) -- `--formant-terminal-amber`: Warnings, eyebrow text, alarm labels, attention-demanding states. The amber glow of a critical instrument reading.
41
+ - **Interface Iris** (`#8B8CF4`, `rgb(139, 140, 244)`) -- `--formant-interface-iris`: AI states, system intelligence indicators, auto-resolution patterns. Reserved for moments where the system acts autonomously.
42
+
43
+ ### Semantic Token Mappings
44
+
45
+ **Backgrounds:**
46
+ - `--formant-bg-primary`: Deep Command (`#0A0F11`)
47
+ - `--formant-bg-secondary`: Slate Mist (`#202428`)
48
+ - `--formant-bg-elevated`: Slate Mist (`#202428`)
49
+
50
+ **Text:**
51
+ - `--formant-text-primary`: Formant White (`#F2F3F4`)
52
+ - `--formant-text-secondary`: System Neutral (`#A3ABA9`)
53
+ - `--formant-text-muted`: System Neutral at 60% opacity (`rgba(163, 171, 169, 0.6)`)
54
+
55
+ **Interactive:**
56
+ - `--formant-accent-primary`: Horizon Glow (`#ACC3B3`)
57
+ - `--formant-accent-secondary`: Ethereal Teal (`#2C4142`)
58
+ - `--formant-accent-warning`: Terminal Amber (`#E8AB7F`)
59
+ - `--formant-accent-ai`: Interface Iris (`#8B8CF4`)
60
+
61
+ **Borders (opacity-based system on System Neutral base):**
62
+ - `--formant-border-subtle`: `rgba(163, 171, 169, 0.1)` -- barely visible, structural
63
+ - `--formant-border-default`: `rgba(163, 171, 169, 0.2)` -- standard dividers
64
+ - `--formant-border-strong`: `rgba(163, 171, 169, 0.4)` -- emphasized boundaries
65
+
66
+ **Status:**
67
+ - Success: Horizon Glow (`#ACC3B3`)
68
+ - Warning: Terminal Amber (`#E8AB7F`)
69
+ - Error: Terminal Amber (`#E8AB7F`)
70
+ - Info: Interface Iris (`#8B8CF4`)
71
+ - AI Active: Interface Iris (`#8B8CF4`)
72
+
73
+ ## 3. Typography Rules
74
+
75
+ ### Font Families
76
+ - **Display / Headlines**: `'Space Grotesk', sans-serif` -- `--formant-font-heading` -- loaded via Google Fonts at weights 300, 500, 600, 700
77
+ - **Body / Interface**: `'Inter', sans-serif` -- `--formant-font-body` -- loaded via Google Fonts at weights 300, 400, 500, 600
78
+ - **Monospace / Data**: `'JetBrains Mono', monospace` -- `--formant-font-mono` -- loaded via Google Fonts at weights 300, 400, 500
79
+
80
+ ### Weight Tokens
81
+ - `--formant-weight-light`: 300
82
+ - `--formant-weight-regular`: 400
83
+ - `--formant-weight-medium`: 500
84
+ - `--formant-weight-semibold`: 600
85
+ - `--formant-weight-bold`: 700
86
+
87
+ ### Tracking Tokens
88
+ - `--formant-tracking-tight`: -0.02em (display headlines)
89
+ - `--formant-tracking-normal`: 0
90
+ - `--formant-tracking-wide`: 0.02em
91
+ - `--formant-tracking-wider`: 0.08em
92
+ - `--formant-tracking-mono`: 0.1em (JetBrains Mono labels)
93
+
94
+ ### Line Height Tokens
95
+ - `--formant-leading-tight`: 1.2 (headlines)
96
+ - `--formant-leading-normal`: 1.6 (body text)
97
+ - `--formant-leading-relaxed`: 1.75 (long-form reading)
98
+
99
+ ### Hierarchy
100
+
101
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Color | Notes |
102
+ |------|------|------|--------|-------------|----------------|-------|-------|
103
+ | Display | Space Grotesk | 96px (clamp 32-96px) | 300 | 1.2 (tight) | -0.02em | Formant White | Hero headlines, maximum impact |
104
+ | H1 | Space Grotesk | 52px (clamp 24-52px) | 500 | 1.2 (tight) | -0.02em | Formant White | Page titles, section headers |
105
+ | H2 | Space Grotesk | 32px (clamp 20-32px) | 500 | 1.2 (tight) | normal | Formant White | Sub-section headings |
106
+ | H3 | Space Grotesk | 20px | 600 | 1.2 (tight) | normal | Horizon Glow | Feature titles, card headers -- accent colored |
107
+ | Body Large | Inter | 17px | 400 | 1.75 (relaxed) | normal | System Neutral | Introductions, section descriptions, max-width 600px |
108
+ | Body | Inter | 16px | 400 | 1.6 | normal | System Neutral | Standard reading text |
109
+ | Body Medium | Inter | 14-16px | 500 | 1.6 | normal | System Neutral | Navigation, emphasized body |
110
+ | Body Semibold | Inter | 14-16px | 600 | 1.6 | normal | Formant White | Strong emphasis, active states |
111
+ | Caption | Inter | 12px | 400 | 1.6 | normal | System Neutral | Metadata, descriptions |
112
+ | Eyebrow | JetBrains Mono | 10px | 400 | 1.4 | 0.2em | Terminal Amber | `text-transform: uppercase`. Section labels, category markers |
113
+ | Tag Label | JetBrains Mono | 11px | 400 | 1.4 | 0.1em | (varies by tag type) | `text-transform: uppercase`. Status tags, badges |
114
+ | Data Label | JetBrains Mono | 10px | 400 | 1.4 | 0.1em | System Neutral | `text-transform: uppercase`. Column headers in data displays |
115
+ | Data Value | JetBrains Mono | 13px | 400 | 2.2 | normal | Formant White | Telemetry readouts, data table values |
116
+ | Data Field | JetBrains Mono | 13px | 400 | 2.2 | normal | Fog Green | Field names in terminal-style data |
117
+ | Button | Inter | 13px | 500 | 1.0 | 0.04em | (varies) | `text-transform: uppercase`. All button text |
118
+
119
+ ### Principles
120
+ - **Three voices, strict roles**: Space Grotesk is the architectural voice (headlines that feel engineered). Inter is the human voice (body text that reads clearly on dark backgrounds). JetBrains Mono is the machine voice (data, labels, and system status).
121
+ - **H3 is the accent headline**: Unlike H1/H2 which use Formant White, H3 uses Horizon Glow (`#ACC3B3`) at weight 600 -- the one place in the type hierarchy where color enters the heading system.
122
+ - **Eyebrows are Terminal Amber**: The JetBrains Mono eyebrow pattern (10px, uppercase, 0.2em tracking, Terminal Amber) prefixed by a 24px horizontal rule is the section-opening pattern. Every major content block begins this way.
123
+ - **Data display is its own typographic world**: JetBrains Mono at 13px with 2.2 line-height creates generously spaced terminal-style readouts where field names (Fog Green) and values (Formant White) are clearly distinguished.
124
+
125
+ ## 4. Component Stylings
126
+
127
+ ### Buttons
128
+
129
+ **Primary (Horizon Glow)**
130
+ - Background: `#ACC3B3`
131
+ - Text: `#0A0F11` (Deep Command)
132
+ - Padding: 12px 24px
133
+ - Radius: 3px
134
+ - Font: Inter 13px weight 500, `text-transform: uppercase`, `letter-spacing: 0.04em`
135
+ - Hover: background shifts to `#ffffff`
136
+ - Use: Primary CTA ("Request Architecture Audit ->")
137
+
138
+ **Secondary (Outlined)**
139
+ - Background: transparent
140
+ - Text: `#ACC3B3` (Horizon Glow)
141
+ - Padding: 12px 24px
142
+ - Radius: 3px
143
+ - Border: `1px solid #ACC3B3`
144
+ - Font: Inter 13px weight 500, `text-transform: uppercase`, `letter-spacing: 0.04em`
145
+ - Hover: background tints to Horizon Glow at ~10% opacity
146
+ - Use: Secondary actions ("Deploy Physical Agent")
147
+
148
+ **Ghost (Neutral)**
149
+ - Background: transparent
150
+ - Text: `#A3ABA9` (System Neutral)
151
+ - Padding: 12px 24px
152
+ - Radius: 3px
153
+ - Border: `1px solid #A3ABA9`
154
+ - Font: Inter 13px weight 500, `text-transform: uppercase`, `letter-spacing: 0.04em`
155
+ - Hover: text and border lighten
156
+ - Use: Tertiary actions ("View Documentation")
157
+
158
+ **Accent (Warning)**
159
+ - Background: `#E8AB7F` (Terminal Amber)
160
+ - Text: `#0A0F11` (Deep Command)
161
+ - Padding: 12px 24px
162
+ - Radius: 3px
163
+ - Font: Inter 13px weight 500, `text-transform: uppercase`, `letter-spacing: 0.04em`
164
+ - Hover: background lightens
165
+ - Use: Alert-driven actions ("Alert: Critical")
166
+
167
+ ### Status Tags
168
+
169
+ **Mist Tag (Resolved/Verified)**
170
+ - Background: `rgba(75, 94, 83, 0.3)` (Fog Green at 30%)
171
+ - Text: `#ACC3B3` (Horizon Glow)
172
+ - Border: `1px solid rgba(75, 94, 83, 0.4)`
173
+ - Padding: 4px 12px
174
+ - Radius: 2px
175
+ - Font: JetBrains Mono 11px, `text-transform: uppercase`, `letter-spacing: 0.1em`
176
+
177
+ **Teal Tag (Investigating)**
178
+ - Background: `rgba(44, 65, 66, 0.4)` (Ethereal Teal at 40%)
179
+ - Text: `#ACC3B3` (Horizon Glow)
180
+ - Padding: 4px 12px
181
+ - Radius: 2px
182
+ - Font: JetBrains Mono 11px, `text-transform: uppercase`, `letter-spacing: 0.1em`
183
+
184
+ **Amber Tag (Warning)**
185
+ - Background: `rgba(232, 171, 127, 0.1)` (Terminal Amber at 10%)
186
+ - Text: `#E8AB7F` (Terminal Amber)
187
+ - Padding: 4px 12px
188
+ - Radius: 2px
189
+ - Font: JetBrains Mono 11px, `text-transform: uppercase`, `letter-spacing: 0.1em`
190
+
191
+ **Iris Tag (AI Active)**
192
+ - Background: `rgba(139, 140, 244, 0.1)` (Interface Iris at 10%)
193
+ - Text: `#8B8CF4` (Interface Iris)
194
+ - Padding: 4px 12px
195
+ - Radius: 2px
196
+ - Font: JetBrains Mono 11px, `text-transform: uppercase`, `letter-spacing: 0.1em`
197
+
198
+ ### System Alerts
199
+
200
+ **Info Alert**
201
+ - Background: `rgba(44, 65, 66, 0.3)` (Ethereal Teal at 30%)
202
+ - Text: `#ACC3B3` (Horizon Glow)
203
+ - Left indicator: 6px circle, Horizon Glow
204
+ - Font: Inter 14px, weight 400
205
+ - Use: Non-critical system messages, AI confidence reports
206
+
207
+ **Warning Alert**
208
+ - Background: `rgba(232, 171, 127, 0.08)` (Terminal Amber at 8%)
209
+ - Text: `#E8AB7F` (Terminal Amber)
210
+ - Left indicator: 6px circle, Terminal Amber
211
+ - Font: Inter 14px, weight 400
212
+ - Use: Pressure spikes, threshold breaches, human-attention-required
213
+
214
+ **AI Alert**
215
+ - Background: `rgba(139, 140, 244, 0.08)` (Interface Iris at 8%)
216
+ - Text: `#8B8CF4` (Interface Iris)
217
+ - Left indicator: 6px circle, Interface Iris
218
+ - Font: Inter 14px, weight 400
219
+ - Use: Pattern recognition, autonomous resolution, AI-driven actions
220
+
221
+ ### Form Inputs
222
+
223
+ - Background: `#0A0F11` (Deep Command)
224
+ - Border: `1px solid rgba(163, 171, 169, 0.2)`, radius 3px
225
+ - Text: Inter 14px, Formant White (`#F2F3F4`)
226
+ - Placeholder: `rgba(163, 171, 169, 0.5)` (System Neutral at 50%)
227
+ - Focus: border changes to `#ACC3B3` (Horizon Glow)
228
+ - Label: JetBrains Mono 10px, System Neutral, `text-transform: uppercase`, `letter-spacing: 0.15em`
229
+
230
+ ### Data Display (Terminal Style)
231
+
232
+ - Font: JetBrains Mono 13px, line-height 2.2
233
+ - Header row: System Neutral (`#A3ABA9`), `letter-spacing: 0.1em`
234
+ - Field names: Fog Green (`#4B5E53`)
235
+ - Standard values: Formant White (`#F2F3F4`)
236
+ - Status values: color-coded -- Horizon Glow (resolved/online), Interface Iris (AI-verified/auto), Terminal Amber (compounding/warning)
237
+ - Row separation: implicit through generous line-height, no visible dividers
238
+
239
+ ### Navigation
240
+
241
+ - Position: fixed, height 64px
242
+ - Background: `rgba(10, 15, 17, 0.85)` (Deep Command at 85% opacity)
243
+ - Backdrop: `blur(16px)`
244
+ - Links: Inter 14px weight 500, System Neutral text
245
+ - Active/hover: text shifts to Formant White
246
+ - CTA: Primary button (Horizon Glow) right-aligned
247
+ - Logo: Formant geometric mark left-aligned
248
+ - Responsive: nav links hidden below 900px
249
+
250
+ ### Image Treatment
251
+
252
+ - Product screenshots and atmospheric photography on dark backgrounds
253
+ - Cinematic wide-angle shots: misty landscapes, command consoles, operational environments
254
+ - Video: background loop in hero, hover-to-play in visual library sections
255
+ - Still photography: desaturated, atmospheric -- the "Generative Horizon" visual pillar
256
+
257
+ ## 5. Layout Principles
258
+
259
+ ### Spacing System
260
+
261
+ | Token | Value | Pixels | Use |
262
+ |-------|-------|--------|-----|
263
+ | `--formant-space-1` | 0.25rem | 4px | Micro gaps, icon padding |
264
+ | `--formant-space-2` | 0.5rem | 8px | Tight element spacing |
265
+ | `--formant-space-3` | 0.75rem | 12px | Tag/badge internal padding |
266
+ | `--formant-space-4` | 1rem | 16px | Standard element spacing |
267
+ | `--formant-space-5` | 1.25rem | 20px | Comfortable spacing |
268
+ | `--formant-space-6` | 1.5rem | 24px | Card internal padding |
269
+ | `--formant-space-8` | 2rem | 32px | Section sub-spacing |
270
+ | `--formant-space-10` | 2.5rem | 40px | Major element gaps |
271
+ | `--formant-space-12` | 3rem | 48px | Section transitions |
272
+ | `--formant-space-16` | 4rem | 64px | Section padding (mobile) |
273
+ | `--formant-space-20` | 5rem | 80px | Section padding (tablet) |
274
+ | `--formant-space-24` | 6rem | 96px | Section padding (desktop) |
275
+
276
+ ### Grid & Container
277
+
278
+ - Max content width: 1200px, centered with `margin: 0 auto`
279
+ - Horizontal padding: 40px (20px on mobile)
280
+ - Hero: full viewport height (min 700px), centered single-column
281
+ - Feature sections: 2-3 column grids for cards
282
+ - Architecture layers: full-width stacked bands
283
+ - Data displays: full-width terminal-style blocks
284
+
285
+ ### Section Pattern
286
+
287
+ Every major content section follows this structure:
288
+ 1. **Section label**: JetBrains Mono 10px, Terminal Amber, uppercase, 0.2em tracking, prefixed by a 24px horizontal rule
289
+ 2. **Section title**: Space Grotesk 500, 32-52px (clamp), Formant White, tight leading
290
+ 3. **Section description**: Inter 17px, System Neutral, max-width 600px, 1.75 line-height
291
+ 4. **Content area**: specific to section type
292
+
293
+ ### Whitespace Philosophy
294
+
295
+ - **Darkness IS the whitespace**: On Formant's Deep Command canvas, empty space isn't white -- it's the operational void between signal sources. The dark background provides natural section separation without dividers.
296
+ - **Compressed headlines, expanded surroundings**: Space Grotesk at 52px with -0.02em tracking is dense and authoritative, but sits within 120px vertical section padding. The contrast between typographic density and spatial generosity creates the "architectural authority" of the brand.
297
+ - **Section isolation**: Each content section is separated by 120px vertical padding with no visible borders or dividers. Horizontal gradient dividers (`linear-gradient(90deg, transparent, rgba(163,171,169,0.2), transparent)`) appear only between major thematic shifts.
298
+
299
+ ### Border Radius Scale
300
+
301
+ | Token | Value | Use |
302
+ |-------|-------|-----|
303
+ | `--formant-radius-none` | 0px | Sharp edges, dividers |
304
+ | `--formant-radius-sm` | 2px | Tags, badges, small elements |
305
+ | `--formant-radius-md` | 4px | Standard containers, code blocks |
306
+ | `--formant-radius-lg` | 6px | Larger cards, panels |
307
+ | `--formant-radius-xl` | 8px | Featured cards, hero elements |
308
+ | `--formant-radius-full` | 9999px | Circular avatars, status dots |
309
+
310
+ ## 6. Depth & Elevation
311
+
312
+ | Level | Treatment | Use |
313
+ |-------|-----------|-----|
314
+ | Void (Level 0) | No shadow, `#0A0F11` background | Page background, deepest canvas |
315
+ | Surface (Level 1) | `#202428` background, `1px solid rgba(163,171,169,0.1)` border | Cards, panels, elevated containers |
316
+ | Interactive (Level 2) | `rgba(44,65,66,0.2)` background tint on hover | Hover states, active panels, icon cards |
317
+ | Glow (Level 3) | `0 0 20px rgba(172,195,179,0.15)` | `--formant-shadow-glow`. Featured elements, primary CTAs on hover |
318
+ | Standard (Level 1b) | `0 1px 2px rgba(0,0,0,0.05)` | `--formant-shadow-sm`. Subtle micro-elevation |
319
+ | Elevated (Level 2b) | `0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06)` | `--formant-shadow-md`. Dropdowns, popovers |
320
+ | Prominent (Level 3b) | `0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05)` | `--formant-shadow-lg`. Modals, dialogs |
321
+
322
+ **Shadow Philosophy**: On Formant's dark surfaces, traditional dark shadows are nearly invisible. Depth is communicated through two mechanisms: (1) background luminance stepping -- each level increases surface brightness from Deep Command (`#0A0F11`) through Slate Mist (`#202428`) to Ethereal Teal tints, and (2) the Horizon Glow shadow (`rgba(172,195,179,0.15)`), a brand-colored glow that makes featured elements emit the same muted green light as the primary accent. This creates a mission-control aesthetic where active elements literally glow against the operational void. Borders at varying opacities (10-40%) serve as the primary structural depth indicator, not shadows.
323
+
324
+ ## 7. Do's and Don'ts
325
+
326
+ ### Do
327
+ - Use Deep Command (`#0A0F11`) as the base background for all surfaces -- dark-first is non-negotiable
328
+ - Use the three-typeface system strictly: Space Grotesk for headlines, Inter for body, JetBrains Mono for data/labels
329
+ - Apply JetBrains Mono uppercase with 0.1-0.2em tracking for ALL labels, tags, and eyebrows -- the HUD voice
330
+ - Use Terminal Amber (`#E8AB7F`) for eyebrow labels prefixed by a horizontal rule -- the section-opening pattern
331
+ - Use opacity-based borders (`rgba(163,171,169, 0.1-0.4)`) instead of solid colored borders
332
+ - Reserve Horizon Glow (`#ACC3B3`) for interactive elements and CTAs only -- it's the guide, not decoration
333
+ - Reserve Terminal Amber for warnings and attention states -- it's the alarm, not an accent
334
+ - Reserve Interface Iris (`#8B8CF4`) strictly for AI-driven states -- it signals machine intelligence
335
+ - Use `#F2F3F4` (Formant White) for primary text, not pure `#ffffff`
336
+ - Keep border-radius between 2-8px -- the system is architectural, not playful
337
+ - Use the section pattern: eyebrow -> headline -> description -> content
338
+ - Use Formant's brand vocabulary: "The Interface" not "Dashboard", "Physical Agent" not "Robot"
339
+ - Capitalize architectural entities: THE BRAIN, THE BODY, THE CONTEXT
340
+ - Import `formant-properties.css` for all design tokens
341
+
342
+ ### Don't
343
+ - Don't use light/white backgrounds -- Formant has no light mode
344
+ - Don't use saturated, bright accent colors -- the palette is muted and atmospheric
345
+ - Don't use bold (700) for Space Grotesk body text -- max weight for body is 600
346
+ - Don't use solid colored borders on dark backgrounds -- always use the opacity-based system
347
+ - Don't apply Terminal Amber or Interface Iris decoratively -- they are functional status colors only
348
+ - Don't use pill-shaped buttons (9999px radius) -- buttons use 3px radius, architecturally sharp
349
+ - Don't use "friendly" or bright SaaS aesthetics -- Formant is mission-control, not consumer software
350
+ - Don't use sentence case for labels or tags -- JetBrains Mono labels are always uppercase
351
+ - Don't say "Dashboard" -- say "The Interface" (active command, not passive viewing)
352
+ - Don't say "Robot" -- say "Physical Agent" (intelligent entity, not hardware)
353
+ - Don't say "Automation" -- say "Bounded Autonomy" (human-in-the-loop, not replacement)
354
+ - Don't say "Demo" -- say "Architecture Audit" (diagnostic engagement, not a pitch)
355
+ - Don't use large radius (12px+) on cards or containers -- the aesthetic is architectural precision
356
+ - Don't use positive letter-spacing on Space Grotesk headlines -- tracking is tight (-0.02em) or normal
357
+ - Don't introduce warm colors (orange, yellow, red) beyond Terminal Amber -- the palette is cool-atmospheric
358
+
359
+ ## 8. Responsive Behavior
360
+
361
+ ### Breakpoints
362
+
363
+ | Name | Width | Key Changes |
364
+ |------|-------|-------------|
365
+ | Mobile | <600px | Single column, voice principles stack, palette rows stack, icon grid 3-col, container padding 20px, section padding 80px |
366
+ | Tablet | 600-900px | Two-column grids begin, video grid 2-col, stills grid 2-col, voice principles 2-col |
367
+ | Desktop | >900px | Full layout, multi-column grids, nav links visible, container padding 40px, section padding 120px |
368
+
369
+ ### Touch Targets
370
+ - Buttons: 12px 24px padding provides comfortable 48px+ touch height
371
+ - Navigation links: 14px font with adequate spacing
372
+ - Tags: 4px 12px padding at minimum
373
+ - Icon cards: generous padding with hover feedback (`translateY(-3px)`)
374
+
375
+ ### Collapsing Strategy
376
+ - Hero: Display 96px -> 32px via `clamp()`, maintains viewport height (min 700px)
377
+ - H1: 52px -> 24px via `clamp()`
378
+ - H2: 32px -> 20px via `clamp()`
379
+ - Navigation: horizontal links + CTA -> nav links hidden below 900px
380
+ - Feature grids: 3-column -> 2-column -> single column stacked
381
+ - Architecture layers: maintain full-width stacked layout at all sizes
382
+ - Data displays: maintain terminal-style formatting, may horizontally scroll
383
+ - Section padding: 120px -> 80px on mobile
384
+ - Container padding: 40px -> 20px on mobile
385
+
386
+ ### Image & Video Behavior
387
+ - Hero video: maintains full-viewport background at all sizes
388
+ - Visual library: grid collapses from multi-column to single-column
389
+ - Still photography: maintains atmospheric aspect ratios, stacks vertically
390
+ - Videos: hover-to-play on desktop, tap-to-play on mobile
391
+
392
+ ### Animation Behavior
393
+ - Fade-up animations maintained across all breakpoints
394
+ - IntersectionObserver threshold: 10% visible, -40px root margin
395
+ - Stagger delay: groups of 4 elements, 80ms incremental delay
396
+ - Transition: `opacity 0.7s ease, transform 0.7s ease`
397
+
398
+ ## 9. Agent Prompt Guide
399
+
400
+ ### Quick Color Reference
401
+ - Page background: Deep Command (`#0A0F11`)
402
+ - Card background: Slate Mist (`#202428`)
403
+ - Heading text: Formant White (`#F2F3F4`)
404
+ - Body text: System Neutral (`#A3ABA9`)
405
+ - Muted text: System Neutral at 60% (`rgba(163,171,169,0.6)`)
406
+ - Primary CTA: Horizon Glow (`#ACC3B3`)
407
+ - Warning: Terminal Amber (`#E8AB7F`)
408
+ - AI state: Interface Iris (`#8B8CF4`)
409
+ - Border (subtle): `rgba(163,171,169,0.1)`
410
+ - Border (default): `rgba(163,171,169,0.2)`
411
+ - Border (strong): `rgba(163,171,169,0.4)`
412
+ - Glow shadow: `0 0 20px rgba(172,195,179,0.15)`
413
+
414
+ ### Example Component Prompts
415
+
416
+ - **Hero section**: "Create a hero on `#0A0F11` background, full viewport height (min 700px). Eyebrow label: JetBrains Mono 10px, `#E8AB7F`, uppercase, letter-spacing 0.2em, preceded by a 24px horizontal rule in Terminal Amber. Headline: Space Grotesk 52px weight 500, line-height 1.2, letter-spacing -0.02em, `#F2F3F4`. Description: Inter 17px weight 400, line-height 1.75, `#A3ABA9`, max-width 600px. Primary CTA button: `#ACC3B3` bg, `#0A0F11` text, 12px 24px padding, 3px radius, Inter 13px weight 500 uppercase."
417
+
418
+ - **Card**: "Design a card on `#202428` background with `1px solid rgba(163,171,169,0.1)` border, 4px radius. Hover: border changes to `rgba(172,195,179,0.3)`, background shifts to `rgba(44,65,66,0.2)`, `scale(1.01)`. Title: Space Grotesk 20px weight 600, `#ACC3B3`. Body: Inter 14px weight 400, `#A3ABA9`."
419
+
420
+ - **Status tag**: "Build an AI status tag: `rgba(139,140,244,0.1)` background, `#8B8CF4` text, 4px 12px padding, 2px radius, JetBrains Mono 11px, uppercase, letter-spacing 0.1em. Text: 'AI ACTIVE'."
421
+
422
+ - **System alert**: "Create a warning alert: `rgba(232,171,127,0.08)` background, `#E8AB7F` text. Left indicator: 6px circle in Terminal Amber. Body: Inter 14px weight 400. Text: 'Pressure spike detected on Line 7. Operator review required.'"
423
+
424
+ - **Navigation**: "Create navigation: fixed position, 64px height, `rgba(10,15,17,0.85)` background with `backdrop-filter: blur(16px)`. Links: Inter 14px weight 500, `#A3ABA9` text, hover to `#F2F3F4`. Primary CTA right-aligned: Horizon Glow button. Bottom border: `1px solid rgba(163,171,169,0.1)`."
425
+
426
+ - **Data display**: "Build a terminal-style data display: JetBrains Mono 13px, line-height 2.2. Header row: `#A3ABA9`, letter-spacing 0.1em. Field names: `#4B5E53` (Fog Green). Values: `#F2F3F4`. Status values: `#ACC3B3` for 'RESOLVED', `#8B8CF4` for 'AI-VERIFIED', `#E8AB7F` for 'WARNING'."
427
+
428
+ - **Section opener**: "Create a section opener: (1) JetBrains Mono 10px, `#E8AB7F`, uppercase, 0.2em tracking, with a 24px horizontal rule prefix in the same color. (2) Space Grotesk weight 500, 32px (clamp 20-32px), `#F2F3F4`, line-height 1.2. (3) Inter 17px weight 400, `#A3ABA9`, line-height 1.75, max-width 600px."
429
+
430
+ ### Iteration Guide
431
+ 1. Always start with `#0A0F11` -- every surface begins from darkness
432
+ 2. Three typefaces, strict roles: Space Grotesk (announce), Inter (explain), JetBrains Mono (label/data)
433
+ 3. Borders are opacity-based: `rgba(163,171,169, 0.1/0.2/0.4)` -- never solid colors on dark
434
+ 4. Only three accent colors exist: Horizon Glow (interaction), Terminal Amber (warning), Interface Iris (AI)
435
+ 5. Buttons are 3px radius, uppercase Inter 13px -- architecturally sharp, never pill-shaped
436
+ 6. Tags are 2px radius, uppercase JetBrains Mono 11px -- the machine voice
437
+ 7. Every section begins with the eyebrow pattern: horizontal rule + JetBrains Mono + Terminal Amber
438
+ 8. Import `formant-properties.css` to get all tokens as CSS custom properties
439
+ 9. Use Formant vocabulary: The Interface, Physical Agent, Bounded Autonomy, Architecture Audit
440
+ 10. The glow shadow (`0 0 20px rgba(172,195,179,0.15)`) is the signature depth effect -- use it on featured CTAs and highlighted elements
441
+
442
+ ## 10. Voice, Tone & Brand Vocabulary
443
+
444
+ ### Voice Principles
445
+
446
+ 1. **Architectural Authority**: Speak with the precision of an engineer and the vision of an architect. Short, punchy, declarative sentences. Treat core entities (THE BRAIN, THE BODY, THE CONTEXT) as proper architectural constructs.
447
+ 2. **Cinematic Clarity**: Atmospheric yet grounded language. Use metaphors of light, mist, and horizons. Frame the future of operations as a single, unified pulse.
448
+ 3. **Mission Control Tone**: Calm, steady, grounded. Do not perform urgency or certainty. Frame challenges as a "Visibility Crisis" -- a loss of human meaning, not just data.
449
+ 4. **Compounding Intelligence**: Position the system as an irreplaceable asset that learns over time. "Success isn't hired -- it's configured."
450
+ 5. **Neutral Convener**: Formant is the essential meeting point. Speak with authority but without ego.
451
+
452
+ ### Brand Glossary
453
+
454
+ | Formant Term | Replaces | Meaning |
455
+ |---|---|---|
456
+ | **The Interface** | "Dashboard" | Active command -- not passive viewing |
457
+ | **Physical Agent** | "Robot" | Elevates hardware to intelligent entity |
458
+ | **Bounded Autonomy** | "Automation" | Control, safety, human-in-the-loop precision |
459
+ | **Algorithmic Propagation** | "Deployment" | Speed of intelligence, not hardware logistics |
460
+ | **Architecture Audit** | "Demo" / "Sales Call" | Diagnostic engagement, not a pitch |
461
+ | **Systemic Command** | (end-state) | From operational chaos to total command |
462
+
463
+ ## 11. Icon System
464
+
465
+ ### Specifications
466
+ - Format: SVG, 64x64 viewBox
467
+ - Stroke: 2px weight, `stroke-linecap: round`
468
+ - Style: Open and atmospheric -- no fills in UI contexts
469
+ - Default color: Horizon Glow (`#ACC3B3`)
470
+ - Warning icons: Terminal Amber (`#E8AB7F`)
471
+ - AI icons: Interface Iris (`#8B8CF4`)
472
+
473
+ ### Size Scale
474
+
475
+ | Size | Pixels | Use |
476
+ |------|--------|-----|
477
+ | Inline | 16px | Inline with text |
478
+ | Label | 24px | Next to UI labels |
479
+ | Button | 32px | Inside buttons |
480
+ | Card | 48px | Card illustrations |
481
+ | Feature | 64px | Feature section icons |
482
+ | Hero | 96px | Hero-level display |
483
+
484
+ ### Available Icons
485
+ Physical Agent, Fleet, Mission, Guardrail, The Brain, Context, The Interface, Anomaly (amber), Resolution, Telemetry, Blueprint, Digital Twin, Operator, Horizon, Command, Propagate, FDE, Alarm (amber), Savings, Bounded Autonomy (iris)
@@ -1310,6 +1310,20 @@ body > header input[type="search"] {
1310
1310
  width: 200px;
1311
1311
  }
1312
1312
 
1313
+ /* Headings inside site header - match logo styling */
1314
+ body > header h1,
1315
+ body > header h2,
1316
+ body > header h3 {
1317
+ font-family: var(--font-display);
1318
+ font-size: 1.25rem;
1319
+ font-weight: 600;
1320
+ letter-spacing: 0.06em;
1321
+ text-transform: uppercase;
1322
+ color: var(--theme-neutrals-3);
1323
+ margin: 0;
1324
+ line-height: 1;
1325
+ }
1326
+
1313
1327
  /* Content headers - inside main, article, section (boxed styling) */
1314
1328
  main > header,
1315
1329
  article > header,
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@formant/aesthetics",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Classless CSS framework based on the Formant Design System. Styles standard HTML elements without requiring any classes.",
5
5
  "main": "formant-aesthetics.css",
6
6
  "files": [
7
7
  "formant-aesthetics.css",
8
- "README.md"
8
+ "README.md",
9
+ "DESIGN.md"
9
10
  ],
10
11
  "scripts": {
11
12
  "serve": "npx serve .",