@jaimevalasek/aioson 1.30.1 → 1.30.2
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/CHANGELOG.md +9 -0
- package/docs/design-previews/cognitive-core-ui-auth.html +95 -0
- package/docs/design-previews/cognitive-core-ui-kanban.html +231 -0
- package/docs/design-previews/cognitive-core-ui-list-detail.html +174 -0
- package/docs/design-previews/cognitive-core-ui-preview.css +1315 -0
- package/docs/design-previews/cognitive-core-ui-settings.html +142 -0
- package/docs/design-previews/cognitive-core-ui-website.html +190 -1009
- package/docs/design-previews/cognitive-core-ui.html +281 -463
- package/docs/design-previews/index.html +83 -31
- package/package.json +1 -1
- package/src/constants.js +567 -511
- package/template/.aioson/docs/play/README.md +2 -0
- package/template/.aioson/docs/play/agent-usage-guide.md +7 -1
- package/template/.aioson/docs/play/app-compatibility-guide.md +6 -1
- package/template/.aioson/docs/play/auth-services-and-testing.md +16 -1
- package/template/.aioson/docs/play/manifest-and-runtime.md +23 -0
- package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +266 -243
- package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -293
- package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -827
- package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -250
- package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -585
- package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -365
- package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +485 -482
- package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +386 -387
- package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +228 -205
- package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -338
- package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -977
- package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -218
- package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -326
- package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -461
- package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -293
- package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -352
- package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +233 -210
- package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -319
- package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -365
- package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -196
- package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -244
- package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -235
- package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -215
- package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -295
- package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +239 -203
- package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -339
- package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +417 -407
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +289 -272
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +525 -524
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +279 -279
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +355 -289
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +443 -437
- package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +245 -222
- package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -159
- package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -498
- package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -236
- package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -274
- package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -355
- package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -198
- package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -307
- package/template/.aioson/skills/design/interface-design/SKILL.md +68 -47
- package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -105
- package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -101
- package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +92 -71
- package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -74
- package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -173
- package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +236 -213
- package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -228
- package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -855
- package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -334
- package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -342
- package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -286
- package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -458
- package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -723
- package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +83 -62
- package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -74
- package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -116
- package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -47
- package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -215
- package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -31
- package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +94 -66
- package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +366 -366
- package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -150
- package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -270
- package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -189
- package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +161 -161
- package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +232 -209
- package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -324
- package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -508
- package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -223
- package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -374
- package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -356
- package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -288
- package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -289
|
@@ -1,274 +1,274 @@
|
|
|
1
|
-
# Design Tokens — Glassmorphism UI
|
|
2
|
-
|
|
3
|
-
This is the source of truth for all CSS custom properties. Apply these on `:root` (or `[data-theme]`) and never hardcode values in components.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Typography
|
|
8
|
-
|
|
9
|
-
### Font families
|
|
10
|
-
```css
|
|
11
|
-
--font-display: 'Inter', -apple-system, BlinkMacSystemFont, "SF Pro Display", system-ui, sans-serif;
|
|
12
|
-
--font-body: 'Inter', -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
|
|
13
|
-
--font-mono: 'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace;
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
Note: SF Pro as first system fallback gives the Apple/iOS feel when Inter is not loaded. The differentiator in glassmorphism is not the typeface — it is the glass effects. Use headings weight 600-700, tracking -0.02em. Body weight 400.
|
|
17
|
-
|
|
18
|
-
### Font sizes
|
|
19
|
-
```css
|
|
20
|
-
--text-xs: 0.75rem; /* 12px */
|
|
21
|
-
--text-sm: 0.875rem; /* 14px */
|
|
22
|
-
--text-base: 1rem; /* 16px */
|
|
23
|
-
--text-lg: 1.125rem; /* 18px */
|
|
24
|
-
--text-xl: 1.25rem; /* 20px */
|
|
25
|
-
--text-2xl: 1.5rem; /* 24px */
|
|
26
|
-
--text-3xl: 2rem; /* 32px */
|
|
27
|
-
--text-4xl: 2.5rem; /* 40px — stat numbers, hero subheadings */
|
|
28
|
-
--text-5xl: 3.5rem; /* 56px — hero headlines */
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## Colors — Light Theme (default)
|
|
34
|
-
|
|
35
|
-
Apply on `:root` or `[data-theme="light"]`.
|
|
36
|
-
|
|
37
|
-
```css
|
|
38
|
-
/* Backgrounds */
|
|
39
|
-
--bg-void: #E8E6F0;
|
|
40
|
-
--bg-base: #F0EEF6;
|
|
41
|
-
--bg-gradient: linear-gradient(135deg, #F0EEF6 0%, #E0DFF0 30%, #D8E0F0 70%, #EDE8F0 100%);
|
|
42
|
-
|
|
43
|
-
/* Glass surfaces — TRANSPARENT by design */
|
|
44
|
-
--bg-surface: rgba(255, 255, 255, 0.60); /* standard glass card */
|
|
45
|
-
--bg-elevated: rgba(255, 255, 255, 0.80); /* hover state, nested card */
|
|
46
|
-
--bg-overlay: rgba(255, 255, 255, 0.40); /* transparent overlay */
|
|
47
|
-
|
|
48
|
-
/* Text */
|
|
49
|
-
--text-heading: #1A1A2E;
|
|
50
|
-
--text-primary: #2D2D44;
|
|
51
|
-
--text-secondary: #6B6B8A;
|
|
52
|
-
--text-muted: #9B9BB5;
|
|
53
|
-
|
|
54
|
-
/* Accent */
|
|
55
|
-
--accent: #7C3AED; /* violet-600 */
|
|
56
|
-
--accent-strong: #6D28D9; /* violet-700 */
|
|
57
|
-
--accent-dim: rgba(124, 58, 237, 0.12);
|
|
58
|
-
--accent-hover: #6D28D9;
|
|
59
|
-
--accent-contrast: #FFFFFF;
|
|
60
|
-
|
|
61
|
-
/* Accent secondary + gradient */
|
|
62
|
-
--accent-secondary: #3B82F6; /* blue-500 */
|
|
63
|
-
--accent-gradient: linear-gradient(135deg, #7C3AED, #3B82F6);
|
|
64
|
-
|
|
65
|
-
/* Semantic */
|
|
66
|
-
--semantic-green: #10B981;
|
|
67
|
-
--semantic-green-dim: rgba(16, 185, 129, 0.12);
|
|
68
|
-
--semantic-amber: #F59E0B;
|
|
69
|
-
--semantic-amber-dim: rgba(245, 158, 11, 0.12);
|
|
70
|
-
--semantic-red: #EF4444;
|
|
71
|
-
--semantic-red-dim: rgba(239, 68, 68, 0.12);
|
|
72
|
-
--semantic-blue: #3B82F6;
|
|
73
|
-
--semantic-blue-dim: rgba(59, 130, 246, 0.12);
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Colors — Dark Theme
|
|
79
|
-
|
|
80
|
-
Apply on `[data-theme="dark"]`.
|
|
81
|
-
|
|
82
|
-
```css
|
|
83
|
-
/* Backgrounds */
|
|
84
|
-
--bg-void: #0F0F1A;
|
|
85
|
-
--bg-base: #141425;
|
|
86
|
-
--bg-gradient: linear-gradient(135deg, #141425 0%, #1A1535 30%, #151A30 70%, #1A1425 100%);
|
|
87
|
-
|
|
88
|
-
/* Glass surfaces — TRANSPARENT by design */
|
|
89
|
-
--bg-surface: rgba(255, 255, 255, 0.08);
|
|
90
|
-
--bg-elevated: rgba(255, 255, 255, 0.12);
|
|
91
|
-
--bg-overlay: rgba(255, 255, 255, 0.05);
|
|
92
|
-
|
|
93
|
-
/* Text */
|
|
94
|
-
--text-heading: #F0F0FA;
|
|
95
|
-
--text-primary: #C8C8E0;
|
|
96
|
-
--text-secondary: #8888A8;
|
|
97
|
-
--text-muted: #5A5A78;
|
|
98
|
-
|
|
99
|
-
/* Accent */
|
|
100
|
-
--accent: #8B5CF6; /* violet-500 — brighter for dark */
|
|
101
|
-
--accent-strong: #7C3AED;
|
|
102
|
-
--accent-dim: rgba(139, 92, 246, 0.18);
|
|
103
|
-
--accent-hover: #7C3AED;
|
|
104
|
-
--accent-contrast: #FFFFFF;
|
|
105
|
-
|
|
106
|
-
/* Accent secondary + gradient */
|
|
107
|
-
--accent-secondary: #60A5FA; /* blue-400 */
|
|
108
|
-
--accent-gradient: linear-gradient(135deg, #8B5CF6, #60A5FA);
|
|
109
|
-
|
|
110
|
-
/* Semantic (same values work on dark) */
|
|
111
|
-
--semantic-green: #10B981;
|
|
112
|
-
--semantic-green-dim: rgba(16, 185, 129, 0.15);
|
|
113
|
-
--semantic-amber: #F59E0B;
|
|
114
|
-
--semantic-amber-dim: rgba(245, 158, 11, 0.15);
|
|
115
|
-
--semantic-red: #EF4444;
|
|
116
|
-
--semantic-red-dim: rgba(239, 68, 68, 0.15);
|
|
117
|
-
--semantic-blue: #60A5FA;
|
|
118
|
-
--semantic-blue-dim: rgba(96, 165, 250, 0.15);
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
---
|
|
122
|
-
|
|
123
|
-
## Glass Tokens (unique to this skill)
|
|
124
|
-
|
|
125
|
-
These tokens define the glass effect system. They are the core differentiator.
|
|
126
|
-
|
|
127
|
-
```css
|
|
128
|
-
/* Blur intensities */
|
|
129
|
-
--glass-blur-sm: blur(8px); /* subtle — zen mode, mobile (performance) */
|
|
130
|
-
--glass-blur-md: blur(16px); /* standard — most cards and containers */
|
|
131
|
-
--glass-blur-lg: blur(24px); /* strong — sidebars, modals, nav bars */
|
|
132
|
-
--glass-blur-xl: blur(40px); /* extreme — media player,
|
|
133
|
-
|
|
134
|
-
/* Glass surfaces — light theme */
|
|
135
|
-
--glass-bg: rgba(255, 255, 255, 0.60);
|
|
136
|
-
--glass-bg-hover: rgba(255, 255, 255, 0.75);
|
|
137
|
-
--glass-bg-active: rgba(255, 255, 255, 0.85);
|
|
138
|
-
--glass-border: rgba(255, 255, 255, 0.40); /* luminous border */
|
|
139
|
-
--glass-border-focus: rgba(124, 58, 237, 0.50); /* accent ring */
|
|
140
|
-
--glass-highlight: linear-gradient(180deg, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0) 50%);
|
|
141
|
-
|
|
142
|
-
/* Glass surfaces — dark theme */
|
|
143
|
-
--glass-bg-dark: rgba(255, 255, 255, 0.08);
|
|
144
|
-
--glass-bg-dark-hover: rgba(255, 255, 255, 0.12);
|
|
145
|
-
--glass-bg-dark-active: rgba(255, 255, 255, 0.16);
|
|
146
|
-
--glass-border-dark: rgba(255, 255, 255, 0.12);
|
|
147
|
-
--glass-highlight-dark: linear-gradient(180deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0) 50%);
|
|
148
|
-
|
|
149
|
-
/* Fallback (when backdrop-filter is unsupported) */
|
|
150
|
-
--glass-fallback-bg: rgba(255, 255, 255, 0.95); /* light */
|
|
151
|
-
--glass-fallback-dark: rgba(20, 20, 37, 0.95); /* dark */
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
Usage note: always wrap `backdrop-filter` in `@supports`:
|
|
155
|
-
```css
|
|
156
|
-
.glass-card {
|
|
157
|
-
background: var(--glass-fallback-bg);
|
|
158
|
-
}
|
|
159
|
-
@supports (backdrop-filter: blur(1px)) {
|
|
160
|
-
.glass-card {
|
|
161
|
-
background: var(--glass-bg);
|
|
162
|
-
backdrop-filter: var(--glass-blur-md);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
## Shadows (colored, not black)
|
|
170
|
-
|
|
171
|
-
Shadows use the accent color (violet) at very low opacity, creating a subtle glow instead of a dark shadow. Combined with `--glass-highlight` for the top reflection.
|
|
172
|
-
|
|
173
|
-
```css
|
|
174
|
-
--shadow-xs: 0 1px 3px rgba(124, 58, 237, 0.04);
|
|
175
|
-
--shadow-sm: 0 4px 12px rgba(124, 58, 237, 0.06);
|
|
176
|
-
--shadow-md: 0 8px 24px rgba(124, 58, 237, 0.08);
|
|
177
|
-
--shadow-lg: 0 16px 48px rgba(124, 58, 237, 0.10);
|
|
178
|
-
--shadow-glow: 0 0 40px rgba(124, 58, 237, 0.15); /* accent glow for featured elements */
|
|
179
|
-
--shadow-inner: inset 0 1px 0 rgba(255, 255, 255, 0.15); /* top inner highlight */
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
Dark theme shadow adjustment (same structure, slightly more visible):
|
|
183
|
-
```css
|
|
184
|
-
--shadow-sm: 0 4px 12px rgba(0, 0, 0, 0.20);
|
|
185
|
-
--shadow-md: 0 8px 24px rgba(0, 0, 0, 0.30);
|
|
186
|
-
--shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.40);
|
|
187
|
-
--shadow-glow: 0 0 40px rgba(139, 92, 246, 0.25);
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
---
|
|
191
|
-
|
|
192
|
-
## Border Radius (generous)
|
|
193
|
-
|
|
194
|
-
```css
|
|
195
|
-
--radius-sm: 0.375rem; /* 6px — badges, chips */
|
|
196
|
-
--radius-md: 0.5rem; /* 8px — inputs, small buttons */
|
|
197
|
-
--radius-lg: 0.75rem; /* 12px — small cards, dropdowns */
|
|
198
|
-
--radius-xl: 1rem; /* 16px — standard cards */
|
|
199
|
-
--radius-2xl: 1.25rem; /* 20px — large cards, modals */
|
|
200
|
-
--radius-3xl: 1.5rem; /* 24px — hero cards, feature cards */
|
|
201
|
-
--radius-full: 9999px; /* pills, avatars, toggles */
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
---
|
|
205
|
-
|
|
206
|
-
## Control Heights
|
|
207
|
-
|
|
208
|
-
```css
|
|
209
|
-
--control-xs: 1.75rem; /* 28px — compact chips */
|
|
210
|
-
--control-sm: 2rem; /* 32px — compact controls */
|
|
211
|
-
--control-md: 2.25rem; /* 36px — standard inputs */
|
|
212
|
-
--control-lg: 2.75rem; /* 44px — glass buttons (generous touch target) */
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
---
|
|
216
|
-
|
|
217
|
-
## Spacing
|
|
218
|
-
|
|
219
|
-
4px rhythm base (same as other skills):
|
|
220
|
-
|
|
221
|
-
```css
|
|
222
|
-
--space-1: 0.25rem; /* 4px */
|
|
223
|
-
--space-2: 0.5rem; /* 8px */
|
|
224
|
-
--space-3: 0.75rem; /* 12px */
|
|
225
|
-
--space-4: 1rem; /* 16px */
|
|
226
|
-
--space-5: 1.25rem; /* 20px */
|
|
227
|
-
--space-6: 1.5rem; /* 24px */
|
|
228
|
-
--space-8: 2rem; /* 32px */
|
|
229
|
-
--space-10: 2.5rem; /* 40px */
|
|
230
|
-
--space-12: 3rem; /* 48px */
|
|
231
|
-
--space-16: 4rem; /* 64px */
|
|
232
|
-
--space-20: 5rem; /* 80px */
|
|
233
|
-
--space-24: 6rem; /* 96px */
|
|
234
|
-
--space-32: 8rem; /* 128px — hero sections */
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
---
|
|
238
|
-
|
|
239
|
-
## Layout
|
|
240
|
-
|
|
241
|
-
```css
|
|
242
|
-
--sidebar-width: 256px;
|
|
243
|
-
--content-sm: 480px;
|
|
244
|
-
--content-md: 640px;
|
|
245
|
-
--content-lg: 800px;
|
|
246
|
-
--content-xl: 1024px;
|
|
247
|
-
--content-max: 1280px;
|
|
248
|
-
|
|
249
|
-
--nav-height: 64px; /* glass top bar */
|
|
250
|
-
--nav-height-web: 68px; /* glass website nav */
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
---
|
|
254
|
-
|
|
255
|
-
## Breakpoints
|
|
256
|
-
|
|
257
|
-
```css
|
|
258
|
-
--breakpoint-sm: 640px;
|
|
259
|
-
--breakpoint-md: 768px;
|
|
260
|
-
--breakpoint-lg: 1024px;
|
|
261
|
-
--breakpoint-xl: 1280px;
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
---
|
|
265
|
-
|
|
266
|
-
## Transitions
|
|
267
|
-
|
|
268
|
-
```css
|
|
269
|
-
--transition-fast: 120ms ease;
|
|
270
|
-
--transition-base: 200ms ease;
|
|
271
|
-
--transition-slow: 350ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
272
|
-
--transition-glass: backdrop-filter 300ms ease, background 300ms ease, border-color 300ms ease, box-shadow 300ms ease;
|
|
273
|
-
--transition-hero: 600ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
274
|
-
```
|
|
1
|
+
# Design Tokens — Glassmorphism UI
|
|
2
|
+
|
|
3
|
+
This is the source of truth for all CSS custom properties. Apply these on `:root` (or `[data-theme]`) and never hardcode values in components.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Typography
|
|
8
|
+
|
|
9
|
+
### Font families
|
|
10
|
+
```css
|
|
11
|
+
--font-display: 'Inter', -apple-system, BlinkMacSystemFont, "SF Pro Display", system-ui, sans-serif;
|
|
12
|
+
--font-body: 'Inter', -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
|
|
13
|
+
--font-mono: 'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace;
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Note: SF Pro as first system fallback gives the Apple/iOS feel when Inter is not loaded. The differentiator in glassmorphism is not the typeface — it is the glass effects. Use headings weight 600-700, tracking -0.02em. Body weight 400.
|
|
17
|
+
|
|
18
|
+
### Font sizes
|
|
19
|
+
```css
|
|
20
|
+
--text-xs: 0.75rem; /* 12px */
|
|
21
|
+
--text-sm: 0.875rem; /* 14px */
|
|
22
|
+
--text-base: 1rem; /* 16px */
|
|
23
|
+
--text-lg: 1.125rem; /* 18px */
|
|
24
|
+
--text-xl: 1.25rem; /* 20px */
|
|
25
|
+
--text-2xl: 1.5rem; /* 24px */
|
|
26
|
+
--text-3xl: 2rem; /* 32px */
|
|
27
|
+
--text-4xl: 2.5rem; /* 40px — stat numbers, hero subheadings */
|
|
28
|
+
--text-5xl: 3.5rem; /* 56px — hero headlines */
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Colors — Light Theme (default)
|
|
34
|
+
|
|
35
|
+
Apply on `:root` or `[data-theme="light"]`.
|
|
36
|
+
|
|
37
|
+
```css
|
|
38
|
+
/* Backgrounds */
|
|
39
|
+
--bg-void: #E8E6F0;
|
|
40
|
+
--bg-base: #F0EEF6;
|
|
41
|
+
--bg-gradient: linear-gradient(135deg, #F0EEF6 0%, #E0DFF0 30%, #D8E0F0 70%, #EDE8F0 100%);
|
|
42
|
+
|
|
43
|
+
/* Glass surfaces — TRANSPARENT by design */
|
|
44
|
+
--bg-surface: rgba(255, 255, 255, 0.60); /* standard glass card */
|
|
45
|
+
--bg-elevated: rgba(255, 255, 255, 0.80); /* hover state, nested card */
|
|
46
|
+
--bg-overlay: rgba(255, 255, 255, 0.40); /* transparent overlay */
|
|
47
|
+
|
|
48
|
+
/* Text */
|
|
49
|
+
--text-heading: #1A1A2E;
|
|
50
|
+
--text-primary: #2D2D44;
|
|
51
|
+
--text-secondary: #6B6B8A;
|
|
52
|
+
--text-muted: #9B9BB5;
|
|
53
|
+
|
|
54
|
+
/* Accent */
|
|
55
|
+
--accent: #7C3AED; /* violet-600 */
|
|
56
|
+
--accent-strong: #6D28D9; /* violet-700 */
|
|
57
|
+
--accent-dim: rgba(124, 58, 237, 0.12);
|
|
58
|
+
--accent-hover: #6D28D9;
|
|
59
|
+
--accent-contrast: #FFFFFF;
|
|
60
|
+
|
|
61
|
+
/* Accent secondary + gradient */
|
|
62
|
+
--accent-secondary: #3B82F6; /* blue-500 */
|
|
63
|
+
--accent-gradient: linear-gradient(135deg, #7C3AED, #3B82F6);
|
|
64
|
+
|
|
65
|
+
/* Semantic */
|
|
66
|
+
--semantic-green: #10B981;
|
|
67
|
+
--semantic-green-dim: rgba(16, 185, 129, 0.12);
|
|
68
|
+
--semantic-amber: #F59E0B;
|
|
69
|
+
--semantic-amber-dim: rgba(245, 158, 11, 0.12);
|
|
70
|
+
--semantic-red: #EF4444;
|
|
71
|
+
--semantic-red-dim: rgba(239, 68, 68, 0.12);
|
|
72
|
+
--semantic-blue: #3B82F6;
|
|
73
|
+
--semantic-blue-dim: rgba(59, 130, 246, 0.12);
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Colors — Dark Theme
|
|
79
|
+
|
|
80
|
+
Apply on `[data-theme="dark"]`.
|
|
81
|
+
|
|
82
|
+
```css
|
|
83
|
+
/* Backgrounds */
|
|
84
|
+
--bg-void: #0F0F1A;
|
|
85
|
+
--bg-base: #141425;
|
|
86
|
+
--bg-gradient: linear-gradient(135deg, #141425 0%, #1A1535 30%, #151A30 70%, #1A1425 100%);
|
|
87
|
+
|
|
88
|
+
/* Glass surfaces — TRANSPARENT by design */
|
|
89
|
+
--bg-surface: rgba(255, 255, 255, 0.08);
|
|
90
|
+
--bg-elevated: rgba(255, 255, 255, 0.12);
|
|
91
|
+
--bg-overlay: rgba(255, 255, 255, 0.05);
|
|
92
|
+
|
|
93
|
+
/* Text */
|
|
94
|
+
--text-heading: #F0F0FA;
|
|
95
|
+
--text-primary: #C8C8E0;
|
|
96
|
+
--text-secondary: #8888A8;
|
|
97
|
+
--text-muted: #5A5A78;
|
|
98
|
+
|
|
99
|
+
/* Accent */
|
|
100
|
+
--accent: #8B5CF6; /* violet-500 — brighter for dark */
|
|
101
|
+
--accent-strong: #7C3AED;
|
|
102
|
+
--accent-dim: rgba(139, 92, 246, 0.18);
|
|
103
|
+
--accent-hover: #7C3AED;
|
|
104
|
+
--accent-contrast: #FFFFFF;
|
|
105
|
+
|
|
106
|
+
/* Accent secondary + gradient */
|
|
107
|
+
--accent-secondary: #60A5FA; /* blue-400 */
|
|
108
|
+
--accent-gradient: linear-gradient(135deg, #8B5CF6, #60A5FA);
|
|
109
|
+
|
|
110
|
+
/* Semantic (same values work on dark) */
|
|
111
|
+
--semantic-green: #10B981;
|
|
112
|
+
--semantic-green-dim: rgba(16, 185, 129, 0.15);
|
|
113
|
+
--semantic-amber: #F59E0B;
|
|
114
|
+
--semantic-amber-dim: rgba(245, 158, 11, 0.15);
|
|
115
|
+
--semantic-red: #EF4444;
|
|
116
|
+
--semantic-red-dim: rgba(239, 68, 68, 0.15);
|
|
117
|
+
--semantic-blue: #60A5FA;
|
|
118
|
+
--semantic-blue-dim: rgba(96, 165, 250, 0.15);
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Glass Tokens (unique to this skill)
|
|
124
|
+
|
|
125
|
+
These tokens define the glass effect system. They are the core differentiator.
|
|
126
|
+
|
|
127
|
+
```css
|
|
128
|
+
/* Blur intensities */
|
|
129
|
+
--glass-blur-sm: blur(8px); /* subtle — zen mode, mobile (performance) */
|
|
130
|
+
--glass-blur-md: blur(16px); /* standard — most cards and containers */
|
|
131
|
+
--glass-blur-lg: blur(24px); /* strong — sidebars, modals, nav bars */
|
|
132
|
+
--glass-blur-xl: blur(40px); /* extreme — media player, ambient diffusion */
|
|
133
|
+
|
|
134
|
+
/* Glass surfaces — light theme */
|
|
135
|
+
--glass-bg: rgba(255, 255, 255, 0.60);
|
|
136
|
+
--glass-bg-hover: rgba(255, 255, 255, 0.75);
|
|
137
|
+
--glass-bg-active: rgba(255, 255, 255, 0.85);
|
|
138
|
+
--glass-border: rgba(255, 255, 255, 0.40); /* luminous border */
|
|
139
|
+
--glass-border-focus: rgba(124, 58, 237, 0.50); /* accent ring */
|
|
140
|
+
--glass-highlight: linear-gradient(180deg, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0) 50%);
|
|
141
|
+
|
|
142
|
+
/* Glass surfaces — dark theme */
|
|
143
|
+
--glass-bg-dark: rgba(255, 255, 255, 0.08);
|
|
144
|
+
--glass-bg-dark-hover: rgba(255, 255, 255, 0.12);
|
|
145
|
+
--glass-bg-dark-active: rgba(255, 255, 255, 0.16);
|
|
146
|
+
--glass-border-dark: rgba(255, 255, 255, 0.12);
|
|
147
|
+
--glass-highlight-dark: linear-gradient(180deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0) 50%);
|
|
148
|
+
|
|
149
|
+
/* Fallback (when backdrop-filter is unsupported) */
|
|
150
|
+
--glass-fallback-bg: rgba(255, 255, 255, 0.95); /* light */
|
|
151
|
+
--glass-fallback-dark: rgba(20, 20, 37, 0.95); /* dark */
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Usage note: always wrap `backdrop-filter` in `@supports`:
|
|
155
|
+
```css
|
|
156
|
+
.glass-card {
|
|
157
|
+
background: var(--glass-fallback-bg);
|
|
158
|
+
}
|
|
159
|
+
@supports (backdrop-filter: blur(1px)) {
|
|
160
|
+
.glass-card {
|
|
161
|
+
background: var(--glass-bg);
|
|
162
|
+
backdrop-filter: var(--glass-blur-md);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Shadows (colored, not black)
|
|
170
|
+
|
|
171
|
+
Shadows use the accent color (violet) at very low opacity, creating a subtle glow instead of a dark shadow. Combined with `--glass-highlight` for the top reflection.
|
|
172
|
+
|
|
173
|
+
```css
|
|
174
|
+
--shadow-xs: 0 1px 3px rgba(124, 58, 237, 0.04);
|
|
175
|
+
--shadow-sm: 0 4px 12px rgba(124, 58, 237, 0.06);
|
|
176
|
+
--shadow-md: 0 8px 24px rgba(124, 58, 237, 0.08);
|
|
177
|
+
--shadow-lg: 0 16px 48px rgba(124, 58, 237, 0.10);
|
|
178
|
+
--shadow-glow: 0 0 40px rgba(124, 58, 237, 0.15); /* accent glow for featured elements */
|
|
179
|
+
--shadow-inner: inset 0 1px 0 rgba(255, 255, 255, 0.15); /* top inner highlight */
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Dark theme shadow adjustment (same structure, slightly more visible):
|
|
183
|
+
```css
|
|
184
|
+
--shadow-sm: 0 4px 12px rgba(0, 0, 0, 0.20);
|
|
185
|
+
--shadow-md: 0 8px 24px rgba(0, 0, 0, 0.30);
|
|
186
|
+
--shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.40);
|
|
187
|
+
--shadow-glow: 0 0 40px rgba(139, 92, 246, 0.25);
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Border Radius (generous)
|
|
193
|
+
|
|
194
|
+
```css
|
|
195
|
+
--radius-sm: 0.375rem; /* 6px — badges, chips */
|
|
196
|
+
--radius-md: 0.5rem; /* 8px — inputs, small buttons */
|
|
197
|
+
--radius-lg: 0.75rem; /* 12px — small cards, dropdowns */
|
|
198
|
+
--radius-xl: 1rem; /* 16px — standard cards */
|
|
199
|
+
--radius-2xl: 1.25rem; /* 20px — large cards, modals */
|
|
200
|
+
--radius-3xl: 1.5rem; /* 24px — hero cards, feature cards */
|
|
201
|
+
--radius-full: 9999px; /* pills, avatars, toggles */
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Control Heights
|
|
207
|
+
|
|
208
|
+
```css
|
|
209
|
+
--control-xs: 1.75rem; /* 28px — compact chips */
|
|
210
|
+
--control-sm: 2rem; /* 32px — compact controls */
|
|
211
|
+
--control-md: 2.25rem; /* 36px — standard inputs */
|
|
212
|
+
--control-lg: 2.75rem; /* 44px — glass buttons (generous touch target) */
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Spacing
|
|
218
|
+
|
|
219
|
+
4px rhythm base (same as other skills):
|
|
220
|
+
|
|
221
|
+
```css
|
|
222
|
+
--space-1: 0.25rem; /* 4px */
|
|
223
|
+
--space-2: 0.5rem; /* 8px */
|
|
224
|
+
--space-3: 0.75rem; /* 12px */
|
|
225
|
+
--space-4: 1rem; /* 16px */
|
|
226
|
+
--space-5: 1.25rem; /* 20px */
|
|
227
|
+
--space-6: 1.5rem; /* 24px */
|
|
228
|
+
--space-8: 2rem; /* 32px */
|
|
229
|
+
--space-10: 2.5rem; /* 40px */
|
|
230
|
+
--space-12: 3rem; /* 48px */
|
|
231
|
+
--space-16: 4rem; /* 64px */
|
|
232
|
+
--space-20: 5rem; /* 80px */
|
|
233
|
+
--space-24: 6rem; /* 96px */
|
|
234
|
+
--space-32: 8rem; /* 128px — hero sections */
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## Layout
|
|
240
|
+
|
|
241
|
+
```css
|
|
242
|
+
--sidebar-width: 256px;
|
|
243
|
+
--content-sm: 480px;
|
|
244
|
+
--content-md: 640px;
|
|
245
|
+
--content-lg: 800px;
|
|
246
|
+
--content-xl: 1024px;
|
|
247
|
+
--content-max: 1280px;
|
|
248
|
+
|
|
249
|
+
--nav-height: 64px; /* glass top bar */
|
|
250
|
+
--nav-height-web: 68px; /* glass website nav */
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## Breakpoints
|
|
256
|
+
|
|
257
|
+
```css
|
|
258
|
+
--breakpoint-sm: 640px;
|
|
259
|
+
--breakpoint-md: 768px;
|
|
260
|
+
--breakpoint-lg: 1024px;
|
|
261
|
+
--breakpoint-xl: 1280px;
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## Transitions
|
|
267
|
+
|
|
268
|
+
```css
|
|
269
|
+
--transition-fast: 120ms ease;
|
|
270
|
+
--transition-base: 200ms ease;
|
|
271
|
+
--transition-slow: 350ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
272
|
+
--transition-glass: backdrop-filter 300ms ease, background 300ms ease, border-color 300ms ease, box-shadow 300ms ease;
|
|
273
|
+
--transition-hero: 600ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
274
|
+
```
|