@nurix/etna 0.18.18 → 0.18.20
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/data/harness-index.json +1 -1
- package/data/harnesses/code/harness.json +2 -2
- package/data/harnesses/code/rules/general.md +2 -1
- package/data/harnesses/code/skills/design/SKILL.md +65 -0
- package/data/harnesses/code/skills/design/data/catalog/rules.csv +132 -0
- package/data/harnesses/code/skills/design/data/design-md/SCHEMA.md +317 -0
- package/data/harnesses/code/skills/design/data/design-md/library/airbnb.md +235 -0
- package/data/harnesses/code/skills/design/data/design-md/library/airtable.md +232 -0
- package/data/harnesses/code/skills/design/data/design-md/library/anthropic-claude.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/apple.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/binance.md +223 -0
- package/data/harnesses/code/skills/design/data/design-md/library/bmw.md +219 -0
- package/data/harnesses/code/skills/design/data/design-md/library/cal.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/clay.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/clickhouse.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/cohere.md +227 -0
- package/data/harnesses/code/skills/design/data/design-md/library/coinbase.md +237 -0
- package/data/harnesses/code/skills/design/data/design-md/library/composio.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/cursor.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/elevenlabs.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/expo.md +228 -0
- package/data/harnesses/code/skills/design/data/design-md/library/figma.md +221 -0
- package/data/harnesses/code/skills/design/data/design-md/library/framer.md +236 -0
- package/data/harnesses/code/skills/design/data/design-md/library/hashicorp.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/ibm.md +234 -0
- package/data/harnesses/code/skills/design/data/design-md/library/intercom.md +240 -0
- package/data/harnesses/code/skills/design/data/design-md/library/kraken.md +236 -0
- package/data/harnesses/code/skills/design/data/design-md/library/linear-app.md +237 -0
- package/data/harnesses/code/skills/design/data/design-md/library/lovable.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/meta.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/minimax.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/mintlify.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/miro.md +233 -0
- package/data/harnesses/code/skills/design/data/design-md/library/mistral-ai.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/mongodb.md +236 -0
- package/data/harnesses/code/skills/design/data/design-md/library/notion.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/nvidia.md +222 -0
- package/data/harnesses/code/skills/design/data/design-md/library/ollama.md +226 -0
- package/data/harnesses/code/skills/design/data/design-md/library/opencode-ai.md +223 -0
- package/data/harnesses/code/skills/design/data/design-md/library/posthog.md +234 -0
- package/data/harnesses/code/skills/design/data/design-md/library/raycast.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/replicate.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/resend.md +285 -0
- package/data/harnesses/code/skills/design/data/design-md/library/revolut.md +225 -0
- package/data/harnesses/code/skills/design/data/design-md/library/runwayml.md +219 -0
- package/data/harnesses/code/skills/design/data/design-md/library/sanity.md +251 -0
- package/data/harnesses/code/skills/design/data/design-md/library/sentry.md +244 -0
- package/data/harnesses/code/skills/design/data/design-md/library/shopify.md +227 -0
- package/data/harnesses/code/skills/design/data/design-md/library/slack.md +240 -0
- package/data/harnesses/code/skills/design/data/design-md/library/spacex.md +252 -0
- package/data/harnesses/code/skills/design/data/design-md/library/spotify.md +248 -0
- package/data/harnesses/code/skills/design/data/design-md/library/stripe.md +241 -0
- package/data/harnesses/code/skills/design/data/design-md/library/supabase.md +255 -0
- package/data/harnesses/code/skills/design/data/design-md/library/superhuman.md +226 -0
- package/data/harnesses/code/skills/design/data/design-md/library/tesla.md +233 -0
- package/data/harnesses/code/skills/design/data/design-md/library/theverge.md +248 -0
- package/data/harnesses/code/skills/design/data/design-md/library/together-ai.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/uber.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/vercel.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/voltagent.md +245 -0
- package/data/harnesses/code/skills/design/data/design-md/library/warp.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/webflow.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/wired.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/wise.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/x-ai.md +220 -0
- package/data/harnesses/code/skills/design/data/design-md/library/zapier.md +238 -0
- package/data/harnesses/code/skills/design/data/design-md/nurix.md +217 -0
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/command-center.tsx +249 -0
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/create-edit.tsx +249 -0
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/dashboard.tsx +248 -0
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/entity-detail.tsx +245 -0
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/list-detail.tsx +223 -0
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/log-stream.tsx +249 -0
- package/data/harnesses/code/skills/design/data/operator-pack/fixtures.md +88 -0
- package/data/harnesses/code/skills/design/data/operator-pack/surface-catalog.md +132 -0
- package/data/harnesses/code/skills/design/data/operator-pack/trust-rubric.md +76 -0
- package/data/harnesses/code/skills/design/references/create.md +126 -0
- package/data/harnesses/code/skills/design/references/diagnosis.md +108 -0
- package/data/harnesses/code/skills/design/references/hard-rules.md +155 -0
- package/data/harnesses/code/skills/design/references/improve.md +85 -0
- package/data/harnesses/code/skills/design/references/interaction.md +77 -0
- package/data/harnesses/code/skills/design/references/introspect.md +100 -0
- package/data/harnesses/code/skills/design/references/lifecycle.md +73 -0
- package/data/harnesses/code/skills/design/references/personality.md +504 -0
- package/data/harnesses/code/skills/design/references/structure.md +138 -0
- package/data/harnesses/code/skills/design/scripts/derive-personality.mjs +706 -0
- package/data/harnesses/code/skills/design/scripts/detector.mjs +898 -0
- package/data/harnesses/code/skills/design/scripts/generate-fixtures.mjs +551 -0
- package/data/harnesses/code/skills/design/scripts/hook-config.json +11 -0
- package/data/harnesses/code/skills/design/scripts/phase-gate.mjs +386 -0
- package/data/harnesses/code/skills/design/scripts/preship-sweep.mjs +280 -0
- package/data/harnesses/code/skills/design/scripts/render-rung.mjs +690 -0
- package/data/harnesses/code/skills/design/scripts/scaffold.mjs +552 -0
- package/data/harnesses/code/skills/design/scripts/self-integrity.mjs +432 -0
- package/data/harnesses/etna/CLAUDE.md +1 -1
- package/data/harnesses/etna/harness.json +2 -2
- package/data/harnesses/etna/rules/general.md +2 -1
- package/data/harnesses/mobile/harness.json +2 -2
- package/data/harnesses/mobile/rules/general.md +2 -1
- package/package.json +1 -1
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: design-md/v1
|
|
3
|
+
product: Tesla
|
|
4
|
+
provenance: library
|
|
5
|
+
sourced: 2026-07-04
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Tesla — radical-subtraction minimalism, translated for operators
|
|
9
|
+
|
|
10
|
+
Tesla's web design is radical subtraction: a white canvas, a single Electric Blue accent, a rich
|
|
11
|
+
grayscale ink ramp, near-zero decoration, and a categorical geometry — **barely-rounded 4px corners**.
|
|
12
|
+
This operator reading keeps the white-dominant palette, the one blue accent, the 4px radius character,
|
|
13
|
+
the flat/shadowless depth, the two-weight (400 / 500) type discipline, the signature **zero
|
|
14
|
+
letter-spacing**, and the color-only interaction feel. Left behind: full-viewport hero photography, 40px
|
|
15
|
+
display type, whitespace-as-luxury rhythm, the frosted-glass nav, the carousel, the chatbot bar. Both
|
|
16
|
+
machine blocks are fully valued; each judgment away from the brand is annotated `# derived:` where silent.
|
|
17
|
+
|
|
18
|
+
## 1 Visual Theme
|
|
19
|
+
|
|
20
|
+
Light by default; dark is opt-in. White-dominant and categorically shadowless: hierarchy rides a
|
|
21
|
+
grayscale surface ladder (`background` white → `muted` Light Ash → hairline `border`) and type weight,
|
|
22
|
+
never shadow. The single accent — Electric Blue `primary` (`#3e6ae1`) — is the only chromatic hue,
|
|
23
|
+
reserved for the one action that matters. Ink is Carbon Dark `foreground` (`#171a20`), a warm
|
|
24
|
+
blue-undertoned near-black, stepping down a documented ramp (Carbon → Graphite → Pewter → Silver Fog).
|
|
25
|
+
The geometry is the identity: `radius` 4, barely rounded. The anchor surface is a white canvas beside a
|
|
26
|
+
Light Ash `sidebar`; density is `standard` — engineered-uniform, the marketing whitespace left behind.
|
|
27
|
+
|
|
28
|
+
## 2 Color Roles
|
|
29
|
+
|
|
30
|
+
Light values (hex — the corpus's native format). One accent — `primary` Electric Blue is the only
|
|
31
|
+
chromatic hue that carries meaning; status hues speak only status. The rich grayscale ramp is Tesla's
|
|
32
|
+
signature alongside the single blue.
|
|
33
|
+
|
|
34
|
+
| Role | Value | Allowed where |
|
|
35
|
+
| --- | --- | --- |
|
|
36
|
+
| `background` / `card` / `popover` | Pure White `#ffffff` | page, cards, and overlays — the dominant canvas that lets content breathe |
|
|
37
|
+
| `foreground` | Carbon Dark `#171a20` | primary ink, headings, nav — the darkest text, a warm blue-undertoned near-black |
|
|
38
|
+
| `muted` / `secondary` | Light Ash `#f4f4f4` | hover rows, subtle fills, secondary-button surfaces, section differentiation |
|
|
39
|
+
| `muted-foreground` | Pewter `#5c5e62` | labels, captions, tertiary links, placeholders' firmer sibling |
|
|
40
|
+
| `border` | Cloud Gray `#eeeeee` | separators and divider lines — the light hairline |
|
|
41
|
+
| `input` | Pale Silver `#d0d1d2` | field edges — the firmer border tone Tesla uses for delineation |
|
|
42
|
+
| `primary` | Electric Blue `#3e6ae1` | the one primary action; active nav; promotional emphasis text |
|
|
43
|
+
| `accent` | faint blue wash `#edf1fc` | selected / hovered rows and nav, on-accent surfaces only |
|
|
44
|
+
| `ring` | `primary` | the focus outline — an unmistakable blue border, because keyboard-first |
|
|
45
|
+
| `destructive` | red `#dc2626` | destructive actions and error state only |
|
|
46
|
+
| `success` / `warning` | green `#16a34a` / amber `#d97706` | status signalling only, never chrome |
|
|
47
|
+
|
|
48
|
+
Graphite `#393c41` is the `secondary-foreground` (body / secondary-CTA text); Silver Fog `#8e8e8e` is the
|
|
49
|
+
placeholder / disabled tone. Tesla avoids semantic status color (browser defaults); the derived
|
|
50
|
+
`destructive` / `success` / `warning` give the operator tool a status vocabulary, kept off the chrome (§7).
|
|
51
|
+
|
|
52
|
+
## 3 Typography
|
|
53
|
+
|
|
54
|
+
One sans, one mono. `font-sans` leads with Universal Sans Text — Tesla's custom geometric family with
|
|
55
|
+
humanist terminals, unifying web, app, and in-car software — falling back to Inter, the open-source
|
|
56
|
+
stand-in. The hero-scale Universal Sans Display (40px / 500) stays behind; the operator ramp keeps the
|
|
57
|
+
voice at working sizes. `font-mono` is derived (Tesla ships none) — JetBrains Mono for IDs, codes,
|
|
58
|
+
timestamps; numeric columns render `tabular-nums`.
|
|
59
|
+
|
|
60
|
+
| Step | Role | Size · line | Weight · tracking |
|
|
61
|
+
| --- | --- | --- | --- |
|
|
62
|
+
| h1 | page title | 24px / 1.25 | `font-weight-strong` (500) · `heading-tracking` (0) |
|
|
63
|
+
| h2 | section head | 18px / 1.3 | `font-weight-strong` · 0 |
|
|
64
|
+
| h3 | card / group head | 16px / 1.35 | `font-weight-strong` · 0 |
|
|
65
|
+
| body | UI + prose | 14px / 1.45 | `font-weight-normal` (400) |
|
|
66
|
+
| small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` |
|
|
67
|
+
| caption | eyebrow / meta | 12px / 1.3 | `font-weight-strong` · 0 · sentence case |
|
|
68
|
+
|
|
69
|
+
Two weights only — 500 for heads and UI, 400 for body; **no bold, no light**. **Zero letter-spacing at
|
|
70
|
+
every level** is the Tesla signature (unlike most tech brands it takes no negative tracking); **no
|
|
71
|
+
uppercase transforms** — captions and labels stay sentence-case. Emphasize by weight, never size.
|
|
72
|
+
|
|
73
|
+
## 4 Component Stylings
|
|
74
|
+
|
|
75
|
+
Every recurring operator component composes from the primitives — no literal values, `radius` 4 on
|
|
76
|
+
controls throughout.
|
|
77
|
+
|
|
78
|
+
- **Button** — `primary`: filled Electric Blue on `primary-foreground`, `radius` (4px), no pill; the
|
|
79
|
+
border reserves space for the focus animation. Hover is color-only — a subtle darkening, never a
|
|
80
|
+
transform. Secondary: `secondary` Light Ash fill, 1px `border`, `secondary-foreground` Graphite.
|
|
81
|
+
- **Input** — `background` fill, 1px `input` (Pale Silver) edge, `radius`; placeholder in Silver Fog
|
|
82
|
+
(`muted-foreground`); focus draws the blue `ring` at 2px, no glow.
|
|
83
|
+
- **Card** — white `card`, optional 1px `border`, `radius` (4px controls; the scale offers 12px for a
|
|
84
|
+
large image-forward tile); no shadow at rest, inset by `density-inset`.
|
|
85
|
+
- **Table row** — `table-row-height`; Cloud Gray `border` grid lines; Light Ash `muted` on hover;
|
|
86
|
+
`tabular-nums` on numeric columns; row selection tints `accent`.
|
|
87
|
+
- **Side panel** — detail and edit open beside the work (`side-panel-width` / `side-panel-width-rich`),
|
|
88
|
+
never over it.
|
|
89
|
+
- **Badge / chip** — `radius`, hairline `border`, `muted` / status fill, sentence-case caption (no
|
|
90
|
+
uppercase); status badges take `success` / `warning` / `destructive`, never `primary`.
|
|
91
|
+
|
|
92
|
+
## 5 Layout
|
|
93
|
+
|
|
94
|
+
Base spacing unit 8px (Tesla's grid); the on-scale ramp is `4 · 8 · 12 · 16 · 24 · 32 · 48 · 64` (the
|
|
95
|
+
4px step is the button padding). Shell dimensions map one-to-one to the layout primitives — sidebar
|
|
96
|
+
`sidebar-width-expanded` / `sidebar-width-collapsed`, topbar `topbar-height`, side panel
|
|
97
|
+
`side-panel-width` / `side-panel-width-rich`, modal cap `modal-width-max`, forms `form-max-width`, tables
|
|
98
|
+
full-width capped at ~1383px (Tesla's container). Density is governed globally by `density-tier` and
|
|
99
|
+
stepped per archetype; the viewport-height rhythm and whitespace-as-luxury stay behind.
|
|
100
|
+
|
|
101
|
+
## 6 Depth
|
|
102
|
+
|
|
103
|
+
Flat, and essentially shadowless — Tesla's elevation approach is "none." Hierarchy comes from the surface
|
|
104
|
+
ladder, hairlines, and z-position, never a drop shadow:
|
|
105
|
+
|
|
106
|
+
- **0 — flat** `background` white, no shadow, no border — the default at rest for cards, panels, controls.
|
|
107
|
+
- **1 — frost** sticky chrome floats over content by a frosted-glass backdrop (`rgba(255,255,255,0.75)`)
|
|
108
|
+
and z-position, not shadow.
|
|
109
|
+
- **2 — overlay** `popover` / side panel / modal — a region-scrim (`rgba(128,128,128,0.65)`) dims the
|
|
110
|
+
canvas beneath; `shadow-intensity` earns only a whisper `sm` shadow, a hairline still carrying the edge.
|
|
111
|
+
|
|
112
|
+
Focus is a 2px `ring` outline in Electric Blue (never a glow), visible everywhere. Three z-levels:
|
|
113
|
+
content, sticky chrome, overlay.
|
|
114
|
+
|
|
115
|
+
## 7 Do's & Don'ts
|
|
116
|
+
|
|
117
|
+
- **Do** reserve Electric Blue (`primary`) for the single most important action — never decoration;
|
|
118
|
+
carry hierarchy with the grayscale surface ladder, hairlines, and weight.
|
|
119
|
+
- **Do** keep every corner barely rounded — `radius` 4 on buttons, inputs, and chips is the signature.
|
|
120
|
+
- **Do** hold typography at 400 / 500 only, zero letter-spacing, and sentence case — no bold, no light,
|
|
121
|
+
no negative tracking, no uppercase; apply `tabular-nums` to numbers, `font-mono` to IDs / codes / times.
|
|
122
|
+
- **Don't** promote a second chromatic accent — the palette is monochrome-plus-one; status uses
|
|
123
|
+
`success` / `warning` / `destructive`, never the blue.
|
|
124
|
+
- **Don't** pill or over-round a control (radius stays inside `radius-scale`), or signal elevation with a
|
|
125
|
+
drop shadow — the aesthetic is flat.
|
|
126
|
+
- **Don't** animate with scale or translate — Tesla's interactions are color-only (background and border
|
|
127
|
+
transitions).
|
|
128
|
+
|
|
129
|
+
## 8 Responsive
|
|
130
|
+
|
|
131
|
+
The operator sweep is 375 / 768 / 1024 / 1440.
|
|
132
|
+
|
|
133
|
+
| Breakpoint | What changes |
|
|
134
|
+
| --- | --- |
|
|
135
|
+
| 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
|
|
136
|
+
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
|
|
137
|
+
| 1024 | sidebar expands; two-pane queue+detail holds side by side |
|
|
138
|
+
| 1440 | content caps at ~1383px; forms hold `form-max-width`; tables and dashboards use the full width |
|
|
139
|
+
|
|
140
|
+
## 9 Agent Prompt Guide
|
|
141
|
+
|
|
142
|
+
Directives the emitting agent follows verbatim:
|
|
143
|
+
|
|
144
|
+
- Carries over: the white-dominant palette (Carbon → Graphite → Pewter → Silver Fog ink ramp, Electric
|
|
145
|
+
Blue `#3e6ae1`), the single-accent discipline, the 4px technical radius, the flat/shadowless depth, the
|
|
146
|
+
two-weight 500 / 400 type voice with zero tracking and no uppercase.
|
|
147
|
+
- Stays behind: full-viewport hero photography, 40px display type, whitespace-as-luxury rhythm, the
|
|
148
|
+
frosted-glass nav, the carousel, the chatbot bar — none belong in operator chrome.
|
|
149
|
+
- Accent only the primary action in Electric Blue — if two things want it, one is not primary.
|
|
150
|
+
- Keep motion color-only — background and border transitions, never a scale or translate; the hot path
|
|
151
|
+
tempers Tesla's languid 0.33s to a still-smooth normal, parking 330ms for large surface changes.
|
|
152
|
+
- Numeric columns `tabular-nums`, IDs / codes / timestamps `font-mono`; every workflow keyboard-complete
|
|
153
|
+
with the blue `ring` focus outline always visible; stay flat, a whisper `sm` shadow only for a true overlay.
|
|
154
|
+
|
|
155
|
+
```yaml design-primitives
|
|
156
|
+
radius: 4px # Tesla signature: barely-rounded 4px on all controls; scale still offers 12px for a large image-forward tile
|
|
157
|
+
shadow-intensity: 0.1 # derived: Tesla is essentially shadowless (Level-3 hint rgba(0,0,0,0.05)); a whisper only lifts a true overlay
|
|
158
|
+
border-weight: 1px
|
|
159
|
+
density-gap: 1 # derived: standard tier; marketing whitespace-as-luxury stays behind, base multiplier held at 1
|
|
160
|
+
density-inset: 1 # derived: standard operator inset; the generous gallery air stays behind
|
|
161
|
+
font-sans: Universal Sans Text, Inter, system-ui, -apple-system, sans-serif # Universal Sans is Tesla's proprietary family; Inter is the closest open stand-in (geometric with humanist terminals)
|
|
162
|
+
font-mono: JetBrains Mono, ui-monospace, SFMono-Regular, monospace # derived: Tesla ships no mono; operator-standard mono for IDs/codes/logs
|
|
163
|
+
font-weight-normal: 400 # Tesla body weight (regular)
|
|
164
|
+
font-weight-strong: 500 # Tesla heading/UI weight (medium) — the 500/400 pair is the whole type system; no bold, no light
|
|
165
|
+
heading-tracking: 0 # Tesla signature: zero letter-spacing at every level; unlike most tech brands it takes no negative tracking
|
|
166
|
+
duration-unit: 50ms # derived: corpus documents transition durations, not a base unit; functional operator base
|
|
167
|
+
duration-fast: 100ms # derived: snappy color-only state change
|
|
168
|
+
duration-normal: 200ms # derived: Tesla's smooth 0.33s marketing pace tempered to a still-relaxed operator normal; the color-only character is the carry
|
|
169
|
+
duration-slow: 330ms # Tesla's documented universal 0.33s timing, kept as the slow tier for larger surface changes
|
|
170
|
+
ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus's main transition curve is an unspecified "cubic-bezier"; standard functional ease (the documented text-link curve is preserved in the manifest)
|
|
171
|
+
contrast-boost: 1 # derived: Tesla's clean minimal surfaces read as a grid without a boost; the light hairline is intentional
|
|
172
|
+
icon-stroke: 1.5 # derived: Tesla's precise, understated aesthetic wants a refined thin stroke, one step under lucide's 2
|
|
173
|
+
icon-size-base: 16px # derived: corpus silent; operator standard
|
|
174
|
+
sidebar-width-expanded: 256px # derived: Tesla is a top-nav marketing site with no sidebar; 8px-rhythm operator shell
|
|
175
|
+
sidebar-width-collapsed: 56px # derived: standard icon-rail width, on the 8px grid
|
|
176
|
+
topbar-height: 56px # derived: Tesla's minimal floating nav → a thin recessive operator topbar
|
|
177
|
+
side-panel-width: 440px # derived: no operator shell in corpus; 8px-rhythm detail panel
|
|
178
|
+
side-panel-width-rich: 640px # derived: content-heavy detail panel on the 8px rhythm
|
|
179
|
+
modal-width-max: 480px # derived: Tesla's minimal, confirmation-scale read (its only modal idiom is the region/cookie popup)
|
|
180
|
+
form-max-width: 640px # derived: corpus silent; single-column form measure
|
|
181
|
+
table-row-height: 40px # derived: corpus has no tables; Tesla's calm engineered chrome sits at the operator-standard 40px, on the 8px rhythm
|
|
182
|
+
verbosity: compact # derived: Tesla's radical subtraction — minimal chrome, terse labels, UI that gets out of the way
|
|
183
|
+
feedback: minimal # derived: Tesla's interactions are strictly color-only (no scale/translate); minimal zeroes the press-scale to honor that, ring stays visible
|
|
184
|
+
density-tier: standard # derived: marketing whitespace-as-luxury stays behind; the engineered-uniform chrome carries as standard, neither cramped nor spacious
|
|
185
|
+
product-traits: [inventory, configurator, orders, dashboard, automotive]
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
```yaml lever-manifest
|
|
189
|
+
version: 1
|
|
190
|
+
fonts: { sans: "Universal Sans Text, Inter, system-ui, -apple-system, sans-serif", mono: "JetBrains Mono, ui-monospace, SFMono-Regular, monospace" }
|
|
191
|
+
color-tokens:
|
|
192
|
+
light:
|
|
193
|
+
background: "#ffffff"
|
|
194
|
+
foreground: "#171a20"
|
|
195
|
+
card: "#ffffff"
|
|
196
|
+
card-foreground: "#171a20"
|
|
197
|
+
muted: "#f4f4f4"
|
|
198
|
+
muted-foreground: "#5c5e62"
|
|
199
|
+
border: "#eeeeee"
|
|
200
|
+
input: "#d0d1d2"
|
|
201
|
+
ring: "#3e6ae1"
|
|
202
|
+
primary: "#3e6ae1"
|
|
203
|
+
primary-foreground: "#ffffff"
|
|
204
|
+
accent: "#edf1fc" # derived: faint wash of Electric Blue for selection/hover; brand has no blue-tint surface token
|
|
205
|
+
accent-foreground: "#3e6ae1"
|
|
206
|
+
destructive: "#dc2626" # derived: Tesla's marketing site uses browser defaults for status; operator needs a real destructive red
|
|
207
|
+
destructive-foreground: "#ffffff"
|
|
208
|
+
success: "#16a34a" # derived: Tesla avoids semantic color; an engineered green for operator status only
|
|
209
|
+
warning: "#d97706" # derived: Tesla avoids semantic color; an amber for operator status only
|
|
210
|
+
popover: "#ffffff"
|
|
211
|
+
popover-foreground: "#171a20"
|
|
212
|
+
secondary: "#f4f4f4" # Light Ash — the subtle alternate surface as secondary-button fill
|
|
213
|
+
secondary-foreground: "#393c41" # Graphite — Tesla's secondary-CTA text tone
|
|
214
|
+
chart-1: "#3e6ae1" # Electric Blue — the anchor
|
|
215
|
+
chart-2: "#171a20" # derived: Carbon Dark — monochrome-plus-one, so charts run blue + the grayscale ink ramp
|
|
216
|
+
chart-3: "#393c41" # derived: Graphite
|
|
217
|
+
chart-4: "#5c5e62" # derived: Pewter
|
|
218
|
+
chart-5: "#8e8e8e" # derived: Silver Fog
|
|
219
|
+
sidebar: "#f4f4f4" # derived: Tesla has no dark chrome; the Light Ash subtle surface serves as the recessive rail
|
|
220
|
+
sidebar-foreground: "#171a20"
|
|
221
|
+
sidebar-primary: "#3e6ae1"
|
|
222
|
+
sidebar-primary-foreground: "#ffffff"
|
|
223
|
+
sidebar-accent: "#edf1fc" # derived: faint Electric Blue wash for the active/hovered nav item
|
|
224
|
+
sidebar-accent-foreground: "#3e6ae1"
|
|
225
|
+
sidebar-border: "#eeeeee"
|
|
226
|
+
sidebar-ring: "#3e6ae1"
|
|
227
|
+
spacing-scale: [4, 8, 12, 16, 24, 32, 48, 64]
|
|
228
|
+
radius-scale: [0, 4, 12, 9999]
|
|
229
|
+
shadow-levels: [none, sm]
|
|
230
|
+
motion: { durations: [100, 200, 330], easings: ["cubic-bezier(0.4,0,0.2,1)", "cubic-bezier(0.5,0,0,0.75)"] }
|
|
231
|
+
icons: { family: lucide, stroke: 1.5 }
|
|
232
|
+
accent-count: 1
|
|
233
|
+
```
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: design-md/v1
|
|
3
|
+
product: The Verge
|
|
4
|
+
provenance: library
|
|
5
|
+
sourced: 2026-07-04
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# The Verge — the operator reading
|
|
9
|
+
|
|
10
|
+
The operator reading of The Verge's 2024 editorial system. The Verge is categorically dark — "there is
|
|
11
|
+
no light mode; the dark canvas is the product" — so this entry earns the doctrine's dark exception: the
|
|
12
|
+
near-black canvas fills the default-emitted theme, recorded plainly because the brand demands it. What
|
|
13
|
+
carries onto internal tools (a content queue, a moderation dashboard, an activity log): the near-black
|
|
14
|
+
canvas, the single acid-mint accent, the mono-uppercase label voice, the flat color-as-elevation depth,
|
|
15
|
+
and the rounded-never-square character. What stays behind: the marketing shout — 60–107px Manuka hero
|
|
16
|
+
display, the saturated rave-flyer story tiles, the FK Roman serif pulls, the 40px pill CTAs, the
|
|
17
|
+
thin-weight "fashion whisper" eyebrows. The result is unmistakably The Verge — a developer-console feel
|
|
18
|
+
with club-night color — but it reserves its one accent and earns its density; judgments away from the
|
|
19
|
+
editorial surfaces are annotated `# derived:` where the corpus is silent.
|
|
20
|
+
|
|
21
|
+
## 1 Visual Theme
|
|
22
|
+
|
|
23
|
+
Dark by default, deliberately — the categorically-dark exception, not the light-default norm. The canvas
|
|
24
|
+
is Canvas Black `#131313`, almost-but-not-pure black with just enough warmth to read as a printed-newsprint
|
|
25
|
+
negative rather than an OLED void. Flat: hierarchy comes from 1px hairline `border`, the near-black surface
|
|
26
|
+
ladder, and saturated color — never heavy shadow, color is elevation here. A single accent, Jelly Mint
|
|
27
|
+
`primary` (`#3cffd0`), is reserved for the one action that matters, treated like neon safety paint; ink is
|
|
28
|
+
Hazard White `foreground` (`#ffffff`). The type voice pairs a grotesque sans body with a mono-uppercase
|
|
29
|
+
label register — the second-most-identifiable Verge detail after the display face. Density is `standard`;
|
|
30
|
+
the anchor surface is the black canvas beside a fractionally darker `sidebar`.
|
|
31
|
+
|
|
32
|
+
## 2 Color Roles
|
|
33
|
+
|
|
34
|
+
The manifest carries hex (the corpus's native format) in the default-emitted theme, valued with the
|
|
35
|
+
brand's dark palette. One accent: `primary` (mint) is the only chromatic hue that carries brand meaning;
|
|
36
|
+
ultraviolet, yellow, pink, and electric blue live only in charts, and status hues speak status.
|
|
37
|
+
|
|
38
|
+
| Role | Value | Allowed where |
|
|
39
|
+
| --- | --- | --- |
|
|
40
|
+
| `background` | Canvas Black `#131313` | the page — the dominant near-black surface, no light mode |
|
|
41
|
+
| `foreground` | Hazard White `#ffffff` | primary text and headlines on the canvas |
|
|
42
|
+
| `card` / `popover` | `#1a1a1a` | panels and overlays — a faint step off canvas, border still carries |
|
|
43
|
+
| `muted` | `#242424` | subtle fills and hover rows |
|
|
44
|
+
| `muted-foreground` | Secondary Text `#949494` | bylines, timestamps, captions, column headers |
|
|
45
|
+
| `border` / `input` | Image Frame `#313131` | every quiet hairline, grid line, field edge; white/mint reserved for emphasis |
|
|
46
|
+
| `primary` | Jelly Mint `#3cffd0` | the one primary action, active nav underline — as fill with black text, never small text |
|
|
47
|
+
| `primary-foreground` | Absolute Black `#000000` | text/icon on the mint fill — the only place black appears |
|
|
48
|
+
| `accent` | Surface Slate `#2d2d2d` | selected/hovered rows and nav — a neutral step, never a mint wash |
|
|
49
|
+
| `ring` | Focus Cyan `#1eaedb` | the keyboard-focus outline — the brand's dedicated focus hue, shown nowhere else |
|
|
50
|
+
| `secondary` | Surface Slate `#2d2d2d` | secondary button fill |
|
|
51
|
+
| `destructive` | hazard red-pink `#ff3b5c` | destructive actions and error state only |
|
|
52
|
+
| `success` / `warning` | green `#22c55e` / hazard yellow `#ffd23c` | status signalling only, never chrome |
|
|
53
|
+
|
|
54
|
+
Verge Ultraviolet `#5200ff` is a brand hazard, not an operator accent — it survives here as a chart hue
|
|
55
|
+
(the corpus's error-purple role is handed to a readable red so destructive reads as danger). Deep Link
|
|
56
|
+
Blue `#3860be` is the text-link hover color; Console Mint Border `#309875` outlines mint elements where
|
|
57
|
+
pure mint over-saturates. White as a large fill is a "spotlight" moment, not the canvas.
|
|
58
|
+
|
|
59
|
+
## 3 Typography
|
|
60
|
+
|
|
61
|
+
Two families carry the voice. `font-sans` is PolySans (Space Grotesk the corpus-named substitute) — the
|
|
62
|
+
UI, body, table, and headline workhorse. `font-mono` is PolySans Mono (Space Mono substitute) — used
|
|
63
|
+
exclusively for ALL-CAPS labels: kickers, timestamps, category tags, IDs, log lines. Lowercase mono does
|
|
64
|
+
not exist in this system; every all-caps label carries positive letter-spacing, the Verge signature.
|
|
65
|
+
Numeric columns render `tabular-nums`. Line heights run tight for a telegraph-ticker rhythm.
|
|
66
|
+
|
|
67
|
+
| Step | Role | Family | Size · line | Weight · tracking |
|
|
68
|
+
| --- | --- | --- | --- | --- |
|
|
69
|
+
| h1 | page title | sans | 26px / 1.1 | `font-weight-strong` · `heading-tracking` |
|
|
70
|
+
| h2 | section head | sans | 20px / 1.2 | `font-weight-strong` · 0 |
|
|
71
|
+
| h3 | card / group head | sans | 16px / 1.3 | `font-weight-strong` · 0 |
|
|
72
|
+
| body | UI + prose | sans | 14px / 1.5 | `font-weight-normal` |
|
|
73
|
+
| small | labels, dense table | sans | 13px / 1.4 | `font-weight-normal` |
|
|
74
|
+
| label | all-caps kicker / tag / timestamp | mono | 12px / 1.2 | `font-weight-strong`, +0.12em, uppercase |
|
|
75
|
+
| code | IDs, logs, amounts | mono | 13px / 1.5 | `font-weight-normal` |
|
|
76
|
+
|
|
77
|
+
Emphasis is the jump from 400 to 700 — the brand is punchy, not calm. The Manuka display, the 300-weight
|
|
78
|
+
whisper eyebrows, and the FK Roman serif pulls stay behind; the mono-uppercase label register is the
|
|
79
|
+
irreducible type signature and carries.
|
|
80
|
+
|
|
81
|
+
## 4 Component Stylings
|
|
82
|
+
|
|
83
|
+
Every recurring operator component composes from the primitives — no literal values.
|
|
84
|
+
|
|
85
|
+
- **Button** — `primary`: filled mint on `primary-foreground` (black on mint), `radius`, no pill; hover
|
|
86
|
+
inverts to a translucent-white surface, active dims. Secondary: `secondary` slate fill, `foreground`.
|
|
87
|
+
Ghost: transparent, `accent` on hover.
|
|
88
|
+
- **Input** — `background` fill, 1px `border` (`border-weight`), `radius`; focus draws the Focus Cyan
|
|
89
|
+
`ring` at 2px, no glow.
|
|
90
|
+
- **Card** — `card` surface on a 1px `border`; a focused or active card firms its hairline to mint or
|
|
91
|
+
white (the depth ladder), never a shadow lift; inset by `density-inset`.
|
|
92
|
+
- **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on
|
|
93
|
+
numeric columns; row selection tints `accent`; timestamps and IDs ride `font-mono` uppercase.
|
|
94
|
+
- **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`
|
|
95
|
+
for content-heavy), beside the work, not over it.
|
|
96
|
+
- **Badge / tag** — pill radius, `muted` / status fill, `font-mono` uppercase caption with positive
|
|
97
|
+
tracking; status badges take `success` / `warning` / `destructive`, never `primary`.
|
|
98
|
+
|
|
99
|
+
## 5 Layout
|
|
100
|
+
|
|
101
|
+
Base spacing unit 4px (the corpus's editorial 8px base loosens for the operator grid); the on-scale ramp
|
|
102
|
+
is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64`. Shell dimensions map one-to-one to the layout primitives:
|
|
103
|
+
sidebar `sidebar-width-expanded` (248px) / `sidebar-width-collapsed` (56px), topbar `topbar-height`
|
|
104
|
+
(56px), side panel `side-panel-width` (420px) / `side-panel-width-rich` (640px), modal cap
|
|
105
|
+
`modal-width-max`, forms `form-max-width`, tables full-width. The corpus caps content at ~1280px with
|
|
106
|
+
24/48px outer padding — operator forms cap tighter at `form-max-width`. Density is governed globally by
|
|
107
|
+
`density-tier` and stepped per archetype by the surface catalog — never by absolute overrides.
|
|
108
|
+
|
|
109
|
+
## 6 Depth
|
|
110
|
+
|
|
111
|
+
Flat, color-as-elevation. Hierarchy comes from the near-black surface ladder and hairlines, never a
|
|
112
|
+
traditional shadow:
|
|
113
|
+
|
|
114
|
+
- **0 — canvas** `background` (`#131313`), no border.
|
|
115
|
+
- **1 — panel / card** `card` on a 1px `border`; a focused card firms its hairline to mint `#3cffd0` or
|
|
116
|
+
white — the border escalates, the surface does not lift.
|
|
117
|
+
- **2 — overlay** `popover` / side panel / modal — on a dark canvas a drop shadow barely registers, so
|
|
118
|
+
`shadow-intensity` earns only the faintest `sm` ring; separation is carried by border and position.
|
|
119
|
+
|
|
120
|
+
Focus is a Focus Cyan `ring` outline (never a glow), visible on every interactive element. The active-nav
|
|
121
|
+
underline is a 1px inset mint rule — a signature Verge move that carries. Three z-levels: content, sticky
|
|
122
|
+
chrome, overlay. No gradients, no glows, no atmospheric blurs — the hazard-tape aesthetic breaks if
|
|
123
|
+
anything fades.
|
|
124
|
+
|
|
125
|
+
## 7 Do's & Don'ts
|
|
126
|
+
|
|
127
|
+
- **Do** anchor every view on the near-black `#131313` canvas — the dark canvas is the product, the
|
|
128
|
+
categorically-dark exception, not a theme toggle.
|
|
129
|
+
- **Do** reserve mint `primary` for the single most important action and the active-nav underline (black
|
|
130
|
+
text on the mint fill); everything else is neutral or status.
|
|
131
|
+
- **Do** carry every all-caps label, tag, timestamp, and ID in `font-mono` uppercase with positive
|
|
132
|
+
tracking — missing tracking is missing voice; apply `tabular-nums` to every numeric column.
|
|
133
|
+
- **Don't** use mint as small text (it vibrates under 16px) or as a background wash — mint is a fill and a
|
|
134
|
+
hairline, never a canvas tint.
|
|
135
|
+
- **Don't** promote a second chromatic accent — ultraviolet, yellow, and pink are chart/status hues.
|
|
136
|
+
- **Don't** pill the primary CTA (the 40px pill is a marketing shout) or square a corner — controls stay
|
|
137
|
+
softly rounded at `radius`.
|
|
138
|
+
- **Don't** signal elevation with a drop shadow; escalate the hairline (white, then mint) or step the
|
|
139
|
+
surface instead.
|
|
140
|
+
|
|
141
|
+
## 8 Responsive
|
|
142
|
+
|
|
143
|
+
The operator sweep is 375 / 768 / 1024 / 1440.
|
|
144
|
+
|
|
145
|
+
| Breakpoint | What changes |
|
|
146
|
+
| --- | --- |
|
|
147
|
+
| 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; mono labels stay pinned at 11–12px; density holds |
|
|
148
|
+
| 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
|
|
149
|
+
| 1024 | sidebar expands; two-pane queue+detail holds side by side |
|
|
150
|
+
| 1440 | forms cap at `form-max-width`; tables and dashboards use the full width; margins breathe |
|
|
151
|
+
|
|
152
|
+
Saturated status and chart hues never lose saturation on any viewport — they reflow, they do not fade.
|
|
153
|
+
|
|
154
|
+
## 9 Agent Prompt Guide
|
|
155
|
+
|
|
156
|
+
Directives the emitting agent follows verbatim:
|
|
157
|
+
|
|
158
|
+
- Reach for the near-black `#131313` canvas first — there is no light mode; the dark canvas is the brand.
|
|
159
|
+
- Accent only the primary action in mint, as a fill with black text or the active-nav underline. If two
|
|
160
|
+
things want the accent, one of them is not primary.
|
|
161
|
+
- Carry the mono-uppercase label voice everywhere labels, tags, timestamps, and IDs appear — positive
|
|
162
|
+
tracking on every all-caps run; every numeric column is `tabular-nums`, every ID / log line `font-mono`.
|
|
163
|
+
- Every workflow completes from the keyboard; the Focus Cyan `ring` outline is always visible.
|
|
164
|
+
- Stay flat — hairline and the near-black surface ladder before any shadow; escalate a border to white or
|
|
165
|
+
mint before reaching for elevation.
|
|
166
|
+
- Leave the marketing shout behind: the 60–107px Manuka hero, the saturated story tiles, the FK Roman
|
|
167
|
+
serif pulls, the 40px pill CTAs, the 300-weight whisper eyebrows. What carries: the near-black palette,
|
|
168
|
+
the single mint accent, the mono-uppercase voice, the rounded-never-square character, and flat depth.
|
|
169
|
+
|
|
170
|
+
```yaml design-primitives
|
|
171
|
+
radius: 8px # derived: the Verge is emphatically never-square; controls stay softly rounded (scale offers 12/20px cards), the 24-40px marketing pill stays behind
|
|
172
|
+
shadow-intensity: 0.2 # derived: militantly flat color-as-elevation brand; on a dark canvas a shadow barely registers, so overlays get only the faintest ring
|
|
173
|
+
border-weight: 1px # corpus: 1px hairlines do the work shadows do elsewhere
|
|
174
|
+
density-gap: 1
|
|
175
|
+
density-inset: 1
|
|
176
|
+
font-sans: PolySans, Space Grotesk, system-ui, sans-serif # PolySans is the UI workhorse; Space Grotesk is the corpus-named substitute
|
|
177
|
+
font-mono: PolySans Mono, Space Mono, ui-monospace, monospace # PolySans Mono is the all-caps label voice; Space Mono substitute
|
|
178
|
+
font-weight-normal: 400 # derived: brand body runs 500 for editorial reading; dense operator body reads cleaner at 400
|
|
179
|
+
font-weight-strong: 700 # corpus: PolySans headlines run 700; the brand is punchy, not calm
|
|
180
|
+
heading-tracking: 0 # derived: PolySans operator headings track ~0; the signature positive tracking lives on the all-caps mono labels, applied by hand
|
|
181
|
+
duration-unit: 50ms # derived: operator base; corpus documents "ease" transitions but not a unit
|
|
182
|
+
duration-fast: 100ms # derived
|
|
183
|
+
duration-normal: 150ms # corpus: cards, tiles, and inputs transition at 150ms ease
|
|
184
|
+
duration-slow: 250ms # derived
|
|
185
|
+
ease-default: cubic-bezier(0.4,0,0.2,1) # corpus: transitions are "ease"; standard functional curve
|
|
186
|
+
contrast-boost: 1 # derived: liberal hairlines plus the near-black surface ladder already carry the grid
|
|
187
|
+
icon-stroke: 2 # derived: the Verge's bold, industrial character carries a full-weight 2px stroke, not the refined 1.75 default
|
|
188
|
+
icon-size-base: 16px # derived: corpus silent on UI icons; operator standard
|
|
189
|
+
sidebar-width-expanded: 248px # derived: corpus is an editorial homepage with no app shell; operator standard
|
|
190
|
+
sidebar-width-collapsed: 56px # derived: no shell in corpus; operator standard icon rail
|
|
191
|
+
topbar-height: 56px # derived: corpus top nav is "thin"; operator standard with room for the bold wordmark
|
|
192
|
+
side-panel-width: 420px # derived: no shell in corpus; operator standard
|
|
193
|
+
side-panel-width-rich: 640px # derived: content-heavy detail width
|
|
194
|
+
modal-width-max: 560px # derived: confirmations only
|
|
195
|
+
form-max-width: 640px # derived: corpus caps content at ~1280px; operator forms cap tighter
|
|
196
|
+
table-row-height: 44px # derived: the brand's paced whitespace → rows breathe a touch over the dense 40px default
|
|
197
|
+
verbosity: default # derived: the mono-label voice likes visible labels, kickers, and tags
|
|
198
|
+
feedback: subtle
|
|
199
|
+
density-tier: standard # derived: an editorial-paced brand read to an honest operator tier; the console density is available per-archetype
|
|
200
|
+
product-traits: [log-stream, dashboard, cms, content-queue, admin]
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
```yaml lever-manifest
|
|
204
|
+
version: 1
|
|
205
|
+
fonts: { sans: "PolySans, Space Grotesk, system-ui, sans-serif", mono: "PolySans Mono, Space Mono, ui-monospace, monospace" }
|
|
206
|
+
color-tokens:
|
|
207
|
+
light:
|
|
208
|
+
background: "#131313" # Canvas Black — the categorically-dark canvas fills the default-emitted theme slot
|
|
209
|
+
foreground: "#ffffff" # Hazard White
|
|
210
|
+
card: "#1a1a1a" # derived: a faint step off canvas so multi-card surfaces read; border still carries
|
|
211
|
+
card-foreground: "#ffffff"
|
|
212
|
+
muted: "#242424" # derived: subtle fill / hover, between card and slate
|
|
213
|
+
muted-foreground: "#949494" # Secondary Text
|
|
214
|
+
border: "#313131" # Image Frame hairline — white/mint reserved for emphasis
|
|
215
|
+
input: "#313131"
|
|
216
|
+
ring: "#1eaedb" # Focus Cyan — the brand's dedicated keyboard-focus hue
|
|
217
|
+
primary: "#3cffd0" # Jelly Mint — the one accent
|
|
218
|
+
primary-foreground: "#000000" # Absolute Black — the only place black appears
|
|
219
|
+
accent: "#2d2d2d" # Surface Slate — neutral selection tint, never a mint wash
|
|
220
|
+
accent-foreground: "#ffffff"
|
|
221
|
+
destructive: "#ff3b5c" # derived: brand has no red; a hazard-register red-pink so destructive reads as danger (corpus error-purple handed to charts)
|
|
222
|
+
destructive-foreground: "#ffffff"
|
|
223
|
+
success: "#22c55e" # derived: brand has no green; a clear green distinct from the mint-cyan primary
|
|
224
|
+
warning: "#ffd23c" # derived: echoes the brand's yellow story tile
|
|
225
|
+
popover: "#1a1a1a"
|
|
226
|
+
popover-foreground: "#ffffff"
|
|
227
|
+
secondary: "#2d2d2d" # Surface Slate — secondary button fill
|
|
228
|
+
secondary-foreground: "#e9e9e9" # Muted Text
|
|
229
|
+
chart-1: "#3cffd0" # mint
|
|
230
|
+
chart-2: "#5200ff" # Verge Ultraviolet — a brand hazard, chart-only here
|
|
231
|
+
chart-3: "#ffd23c" # yellow tile hue
|
|
232
|
+
chart-4: "#ff4da6" # derived: pink tile hue
|
|
233
|
+
chart-5: "#1eaedb" # electric blue / focus cyan doubling as a chart hue
|
|
234
|
+
sidebar: "#0f0f0f" # derived: a hair darker than canvas so the nav reads as chrome
|
|
235
|
+
sidebar-foreground: "#ffffff"
|
|
236
|
+
sidebar-primary: "#3cffd0" # mint active nav
|
|
237
|
+
sidebar-primary-foreground: "#000000"
|
|
238
|
+
sidebar-accent: "#2d2d2d"
|
|
239
|
+
sidebar-accent-foreground: "#ffffff"
|
|
240
|
+
sidebar-border: "#313131"
|
|
241
|
+
sidebar-ring: "#1eaedb"
|
|
242
|
+
spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
|
|
243
|
+
radius-scale: [2, 4, 8, 12, 20, 9999]
|
|
244
|
+
shadow-levels: [none, sm]
|
|
245
|
+
motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
|
|
246
|
+
icons: { family: lucide, stroke: 2 }
|
|
247
|
+
accent-count: 1
|
|
248
|
+
```
|