@almadar/ui 6.28.0 → 6.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/{EntityBindingContext-C6FgxdfG.d.cts → EntityBindingContext-ChCONv2W.d.cts} +3 -39
  2. package/dist/{EntityBindingContext-C6FgxdfG.d.ts → EntityBindingContext-ChCONv2W.d.ts} +3 -39
  3. package/dist/avl/index.cjs +74 -48
  4. package/dist/avl/index.js +74 -48
  5. package/dist/components/index.cjs +54 -45
  6. package/dist/components/index.d.cts +1 -1
  7. package/dist/components/index.d.ts +1 -1
  8. package/dist/components/index.js +54 -45
  9. package/dist/context/index.cjs +135 -105
  10. package/dist/context/index.d.cts +2 -60
  11. package/dist/context/index.d.ts +2 -60
  12. package/dist/context/index.js +135 -105
  13. package/dist/lib/index.cjs +455 -0
  14. package/dist/lib/index.d.cts +42 -1
  15. package/dist/lib/index.d.ts +42 -1
  16. package/dist/lib/index.js +438 -1
  17. package/dist/marketing/index.cjs +4 -5
  18. package/dist/marketing/index.js +4 -5
  19. package/dist/providers/index.cjs +194 -156
  20. package/dist/providers/index.d.cts +1 -1
  21. package/dist/providers/index.d.ts +1 -1
  22. package/dist/providers/index.js +194 -156
  23. package/dist/runtime/index.cjs +74 -48
  24. package/dist/runtime/index.d.cts +16 -2
  25. package/dist/runtime/index.d.ts +16 -2
  26. package/dist/runtime/index.js +74 -48
  27. package/dist/themeTokens-DVRwufw8.d.cts +112 -0
  28. package/dist/themeTokens-DVRwufw8.d.ts +112 -0
  29. package/package.json +7 -6
  30. package/scripts/audit-tailwind-safelist.ts +4 -0
  31. package/tailwind-preset.cjs +155 -28
  32. package/themes/almadar-website.css +37 -107
  33. package/themes/almadar.css +37 -108
  34. package/themes/atelier.css +145 -240
  35. package/themes/bloomberg-dense.css +145 -252
  36. package/themes/clay.css +39 -137
  37. package/themes/comic.css +39 -145
  38. package/themes/corporate.css +39 -131
  39. package/themes/game-adventure.css +22 -87
  40. package/themes/game-rpg.css +22 -84
  41. package/themes/game-sci-fi.css +22 -88
  42. package/themes/game-ui-pack.css +22 -85
  43. package/themes/gazette.css +43 -135
  44. package/themes/glass.css +39 -148
  45. package/themes/kiosk.css +51 -146
  46. package/themes/linear-clean.css +145 -215
  47. package/themes/minimalist.css +39 -125
  48. package/themes/neon.css +39 -132
  49. package/themes/notion-editorial.css +145 -215
  50. package/themes/prism.css +37 -100
  51. package/themes/retro.css +39 -130
  52. package/themes/terminal.css +61 -152
  53. package/themes/trait-wars.css +121 -285
  54. package/themes/wireframe.css +41 -128
@@ -1,169 +1,95 @@
1
1
  /**
2
- * Trait Wars Theme "Illuminated Manuscript Futurism"
3
- *
4
- * Dune meets Book of Kells: aged parchment surfaces, gold celtic filigree
5
- * borders, warm ivory text, faction-coded accents. Dark mode only — this
6
- * is a game UI, not a productivity app.
7
- *
8
- * Surface hierarchy (darkest → lightest):
9
- * background → card/surface → elevated (hover) → muted
2
+ * GENERATED do not edit by hand.
3
+ * Source: packages/almadar-core/themes/trait-wars.json
4
+ * Regenerate: node tools/almadar-pattern-sync/dist/index.js themes (or `almadar-sync themes`)
10
5
  */
11
6
 
12
- /* Google Fonts — Cinzel (400, 500, 700) */
13
- @import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;700&display=swap');
14
-
15
- /* ==========================================================================
16
- * DARK MODE (primary — game is always dark)
17
- * ========================================================================== */
18
- [data-theme="trait-wars-dark"] {
19
- /* Shadows — warm gold glow instead of cool blue */
20
- --shadow-main:
21
- 0 4px 14px rgba(201, 168, 76, 0.10), 0 1px 3px rgba(0, 0, 0, 0.20);
22
- --shadow-sm: 0 2px 4px rgba(201, 168, 76, 0.06);
23
- --shadow-lg:
24
- 0 8px 30px rgba(201, 168, 76, 0.15), 0 4px 10px rgba(0, 0, 0, 0.15);
25
- --shadow-inner: inset 0 1px 3px rgba(0, 0, 0, 0.25);
26
- --shadow-none: none;
27
- --shadow-hover:
28
- 0 12px 40px rgba(201, 168, 76, 0.20), 0 4px 12px rgba(234, 179, 8, 0.10);
29
- --shadow-active: 0 2px 8px rgba(201, 168, 76, 0.15);
30
-
31
- /* Border radius — slightly rounded, not too modern */
7
+ [data-theme="trait-wars-light"] {
8
+ --color-primary: #785c12;
9
+ --color-primary-hover: #5c4a0d;
10
+ --color-primary-foreground: #faf6ee;
11
+ --color-secondary: #f0e8d8;
12
+ --color-secondary-hover: #e6dbc4;
13
+ --color-secondary-foreground: #3a2f22;
14
+ --color-accent: #0f766e;
15
+ --color-accent-foreground: #faf6ee;
16
+ --color-muted: #ede4d0;
17
+ --color-muted-foreground: #6e5f46;
18
+ --color-background: #faf6ee;
19
+ --color-foreground: #2a1f14;
20
+ --color-card: #ffffff;
21
+ --color-card-foreground: #2a1f14;
22
+ --color-surface: #f5efe3;
23
+ --color-border: #d4c4a8;
24
+ --color-input: #e6dbc4;
25
+ --color-ring: #9e7e1e;
26
+ --color-error: #b91c1c;
27
+ --color-error-foreground: #faf6ee;
28
+ --color-success: #15803d;
29
+ --color-success-foreground: #faf6ee;
30
+ --color-warning: #d97706;
31
+ --color-warning-foreground: #2a1f14;
32
+ --color-info: #0f766e;
33
+ --color-info-foreground: #faf6ee;
32
34
  --radius-none: 0px;
33
35
  --radius-sm: 4px;
34
36
  --radius-md: 6px;
35
37
  --radius-lg: 8px;
36
38
  --radius-xl: 12px;
37
39
  --radius-full: 9999px;
38
-
39
- /* Border width — thin default, thick for emphasis */
40
40
  --border-width: 1px;
41
41
  --border-width-thin: 1px;
42
42
  --border-width-thick: 2px;
43
-
44
- /* ======================================================================
45
- * CORE COLORS
46
- * ====================================================================== */
47
-
48
- /* Primary — Gold (actions, interactive elements) */
49
- --color-primary: #c9a84c;
50
- --color-primary-hover: #eab308;
51
- --color-primary-foreground: #1a1410;
52
-
53
- /* Secondary — Dark parchment (neutral backgrounds) */
54
- --color-secondary: #2a2118;
55
- --color-secondary-hover: #3a2f22;
56
- --color-secondary-foreground: #e8dcc8;
57
-
58
- /* Accent — Teal resonance (faction, energy, selected) */
59
- --color-accent: #14b8a6;
60
- --color-accent-foreground: #042f2e;
61
-
62
- /* Muted — Dim parchment (disabled, tertiary) */
63
- --color-muted: #3a2f22;
64
- --color-muted-foreground: #a89878;
65
-
66
- /* Surfaces */
67
- --color-background: #1a1410;
68
- --color-foreground: #e8dcc8;
69
- --color-card: #2a2118;
70
- --color-card-foreground: #e8dcc8;
71
- --color-surface: #2a2118;
72
-
73
- /* Borders & Inputs */
74
- --color-border: #5a4a36;
75
- --color-input: #3a2f22;
76
- --color-ring: #c9a84c;
77
-
78
- /* Semantic colors — warmed to match parchment palette */
79
- --color-error: #a03030;
80
- --color-error-foreground: #e8dcc8;
81
- --color-success: #2a6a2a;
82
- --color-success-foreground: #e8dcc8;
83
- --color-warning: #d97706;
84
- --color-warning-foreground: #1a1410;
85
- --color-info: #0d6a63;
86
- --color-info-foreground: #e8dcc8;
87
-
88
- /* ======================================================================
89
- * GAME-SPECIFIC TOKENS (extend the base theme system)
90
- * ====================================================================== */
91
-
92
- /* Gold hierarchy (bright → dim) */
93
- --tw-gold: #eab308;
94
- --tw-gold-mid: #c9a84c;
95
- --tw-gold-dim: #8a7340;
96
- --tw-gold-dark: #5a4a36;
97
-
98
- /* Parchment text hierarchy (bright → dim) */
99
- --tw-text-primary: #e8dcc8;
100
- --tw-text-secondary: #b8a88c;
101
- --tw-text-dim: #7a6a50;
102
-
103
- /* Surface hierarchy (light → dark) */
104
- --tw-surface-elevated: #3a2f22;
105
- --tw-surface-hover: #4a3d2e;
106
-
107
- /* Faction: Resonator (player) */
43
+ --tw-gold: #9e7e1e;
44
+ --tw-gold-mid: #b8940f;
45
+ --tw-gold-dim: #d4c4a8;
46
+ --tw-gold-dark: #e6dbc4;
47
+ --tw-text-primary: #2a1f14;
48
+ --tw-text-secondary: #5a4a36;
49
+ --tw-text-dim: #8a7a60;
50
+ --tw-surface-elevated: #f0e8d8;
51
+ --tw-surface-hover: #e6dbc4;
108
52
  --tw-faction-resonator: #7c3aed;
109
- --tw-faction-resonator-glow: rgba(124, 58, 237, 0.3);
110
-
111
- /* Faction: Dominion (enemy) */
53
+ --tw-faction-resonator-glow: rgba(124, 58, 237, 0.15);
112
54
  --tw-faction-dominion: #b91c1c;
113
- --tw-faction-dominion-glow: rgba(185, 28, 28, 0.3);
114
-
115
- /* Faction: Neutral */
55
+ --tw-faction-dominion-glow: rgba(185, 28, 28, 0.15);
116
56
  --tw-faction-neutral: #78716c;
117
-
118
- /* Tier colors (bronze → illuminated) */
119
- --tw-tier-1: #8B7355;
120
- --tw-tier-2: #A8A8A8;
121
- --tw-tier-3: #c9a84c;
122
- --tw-tier-4: #eab308;
123
-
124
- /* Combat */
125
- --tw-health: #c04040;
126
- --tw-health-bg: rgba(192, 64, 64, 0.2);
127
- --tw-heal: #4a9e4a;
128
- --tw-heal-bg: rgba(74, 158, 74, 0.2);
129
- --tw-mana: #7c5cbf;
130
- --tw-mana-bg: rgba(124, 92, 191, 0.2);
131
-
132
- /* ======================================================================
133
- * TYPOGRAPHY
134
- * ====================================================================== */
135
- --font-family:
136
- "Cinzel", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
57
+ --tw-tier-1: #7a6340;
58
+ --tw-tier-2: #808080;
59
+ --tw-tier-3: #9e7e1e;
60
+ --tw-tier-4: #b8940f;
61
+ --tw-health: #b91c1c;
62
+ --tw-health-bg: rgba(185, 28, 28, 0.1);
63
+ --tw-heal: #15803d;
64
+ --tw-heal-bg: rgba(21, 128, 61, 0.1);
65
+ --tw-mana: #6d28d9;
66
+ --tw-mana-bg: rgba(109, 40, 217, 0.1);
67
+ --font-family: "Cinzel", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
137
68
  --font-weight-normal: 400;
138
69
  --font-weight-medium: 500;
139
70
  --font-weight-bold: 700;
140
71
  --letter-spacing: 0.01em;
141
72
  --line-height: 1.5;
142
-
143
- /* Icon styling — gold tint */
144
- --icon-stroke-width: 1.75;
145
- --icon-color: #c9a84c;
146
-
147
- /* Transitions — slightly slower for gravitas */
73
+ --icon-color: #9e7e1e;
148
74
  --transition-fast: 150ms;
149
75
  --transition-normal: 300ms;
150
76
  --transition-slow: 500ms;
151
77
  --transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
152
-
153
- /* Hover/Active transforms — subtle, dignified */
154
78
  --hover-scale: 1.01;
155
79
  --hover-translate-y: -1px;
156
80
  --hover-translate-x: 0;
157
81
  --active-scale: 0.99;
158
82
  --active-translate-y: 0;
159
-
160
- /* Focus ring — gold */
161
83
  --focus-ring-width: 2px;
162
84
  --focus-ring-offset: 2px;
163
- --focus-ring-color: #c9a84c;
164
-
165
- /* Layer 1 backfill (preserves current visual output, see themes/_contract.md) */
166
- /* Density axis spacing scale */
85
+ --focus-ring-color: #9e7e1e;
86
+ --shadow-main: 0 4px 14px rgba(139, 115, 85, 0.12), 0 1px 3px rgba(0, 0, 0, 0.06);
87
+ --shadow-sm: 0 2px 4px rgba(139, 115, 85, 0.08);
88
+ --shadow-lg: 0 8px 30px rgba(139, 115, 85, 0.16), 0 4px 10px rgba(0, 0, 0, 0.06);
89
+ --shadow-inner: inset 0 1px 3px rgba(0, 0, 0, 0.08);
90
+ --shadow-none: none;
91
+ --shadow-hover: 0 12px 40px rgba(139, 115, 85, 0.20), 0 4px 12px rgba(201, 168, 76, 0.10);
92
+ --shadow-active: 0 2px 8px rgba(139, 115, 85, 0.12);
167
93
  --space-0: 0px;
168
94
  --space-1: 4px;
169
95
  --space-2: 8px;
@@ -177,7 +103,6 @@
177
103
  --space-10: 40px;
178
104
  --space-11: 44px;
179
105
  --space-12: 48px;
180
- /* Density axis — per-element heights */
181
106
  --button-height-sm: 28px;
182
107
  --button-height-md: 36px;
183
108
  --button-height-lg: 44px;
@@ -187,17 +112,14 @@
187
112
  --row-height-compact: 32px;
188
113
  --row-height-normal: 40px;
189
114
  --row-height-spacious: 48px;
190
- /* Density axis — per-element padding */
191
115
  --card-padding-sm: 12px;
192
116
  --card-padding-md: 16px;
193
117
  --card-padding-lg: 24px;
194
118
  --dialog-padding: 24px;
195
119
  --section-gap: 32px;
196
- /* Type axis — family triplet */
197
120
  --font-family-display: var(--font-family);
198
121
  --font-family-body: var(--font-family);
199
122
  --font-family-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
200
- /* Type axis — size scale */
201
123
  --text-xs: 12px;
202
124
  --leading-xs: 16px;
203
125
  --text-sm: 14px;
@@ -218,7 +140,6 @@
218
140
  --leading-display-1: 52px;
219
141
  --text-display-2: 60px;
220
142
  --leading-display-2: 64px;
221
- /* Type axis — intent mapping */
222
143
  --intent-heading-major-size: var(--text-2xl);
223
144
  --intent-heading-major-weight: var(--font-weight-bold);
224
145
  --intent-heading-major-leading: var(--leading-2xl);
@@ -240,191 +161,116 @@
240
161
  --intent-numeric-size: var(--text-sm);
241
162
  --intent-numeric-weight: var(--font-weight-medium);
242
163
  --intent-numeric-leading: var(--leading-sm);
243
- /* Motion axis — duration palette */
244
164
  --duration-instant: 0ms;
245
165
  --duration-fast: var(--transition-fast);
246
166
  --duration-normal: var(--transition-normal);
247
167
  --duration-slow: var(--transition-slow);
248
168
  --duration-dramatic: 600ms;
249
- /* Motion axis — easing palette */
250
169
  --easing-linear: linear;
251
170
  --easing-standard: var(--transition-timing);
252
171
  --easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
253
172
  --easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
254
- /* Iconography axis */
255
173
  --icon-family: lucide;
174
+ --icon-stroke-width: 1.75;
256
175
  --icon-default-size: 16px;
257
- /* Elevation axis — per-layer mapping */
258
176
  --elevation-card: var(--shadow-sm);
259
177
  --elevation-popover: var(--shadow-main);
260
178
  --elevation-dialog: var(--shadow-lg);
261
179
  --elevation-toast: var(--shadow-main);
262
- /* Geometry axis — radius rhythm with intent */
263
180
  --radius-container: var(--radius-md);
264
181
  --radius-interactive: var(--radius-md);
265
182
  --radius-pill: var(--radius-full);
266
- /* Geometry axis — border-width rhythm */
267
183
  --border-hairline: 1px;
268
184
  --border-standard: var(--border-width);
269
185
  --border-heavy: var(--border-width-thick);
270
186
  }
271
187
 
272
- /* ==========================================================================
273
- * LIGHT MODE — "Sunlit Manuscript"
274
- *
275
- * Warm parchment surfaces, dark-ink text, gold accents retained.
276
- * Surface hierarchy (lightest → darkest):
277
- * background → card/surface → elevated (hover) → muted
278
- * ========================================================================== */
279
- [data-theme="trait-wars-light"] {
280
- /* Shadows — warm sepia */
281
- --shadow-main:
282
- 0 4px 14px rgba(139, 115, 85, 0.12), 0 1px 3px rgba(0, 0, 0, 0.06);
283
- --shadow-sm: 0 2px 4px rgba(139, 115, 85, 0.08);
284
- --shadow-lg:
285
- 0 8px 30px rgba(139, 115, 85, 0.16), 0 4px 10px rgba(0, 0, 0, 0.06);
286
- --shadow-inner: inset 0 1px 3px rgba(0, 0, 0, 0.08);
287
- --shadow-none: none;
288
- --shadow-hover:
289
- 0 12px 40px rgba(139, 115, 85, 0.20), 0 4px 12px rgba(201, 168, 76, 0.10);
290
- --shadow-active: 0 2px 8px rgba(139, 115, 85, 0.12);
291
-
292
- /* Border radius — same as dark */
188
+ [data-theme="trait-wars-dark"] {
189
+ --color-primary: #c9a84c;
190
+ --color-primary-hover: #eab308;
191
+ --color-primary-foreground: #1a1410;
192
+ --color-secondary: #2a2118;
193
+ --color-secondary-hover: #3a2f22;
194
+ --color-secondary-foreground: #e8dcc8;
195
+ --color-accent: #14b8a6;
196
+ --color-accent-foreground: #042f2e;
197
+ --color-muted: #3a2f22;
198
+ --color-muted-foreground: #a89878;
199
+ --color-background: #1a1410;
200
+ --color-foreground: #e8dcc8;
201
+ --color-card: #2a2118;
202
+ --color-card-foreground: #e8dcc8;
203
+ --color-surface: #2a2118;
204
+ --color-border: #5a4a36;
205
+ --color-input: #3a2f22;
206
+ --color-ring: #c9a84c;
207
+ --color-error: #a03030;
208
+ --color-error-foreground: #e8dcc8;
209
+ --color-success: #2a6a2a;
210
+ --color-success-foreground: #e8dcc8;
211
+ --color-warning: #d97706;
212
+ --color-warning-foreground: #1a1410;
213
+ --color-info: #0d6a63;
214
+ --color-info-foreground: #e8dcc8;
293
215
  --radius-none: 0px;
294
216
  --radius-sm: 4px;
295
217
  --radius-md: 6px;
296
218
  --radius-lg: 8px;
297
219
  --radius-xl: 12px;
298
220
  --radius-full: 9999px;
299
-
300
- /* Border width */
301
221
  --border-width: 1px;
302
222
  --border-width-thin: 1px;
303
223
  --border-width-thick: 2px;
304
-
305
- /* ======================================================================
306
- * CORE COLORS
307
- * ====================================================================== */
308
-
309
- /* Primary — Deep gold (darker for contrast on light surfaces) */
310
- --color-primary: #785c12;
311
- --color-primary-hover: #5c4a0d;
312
- --color-primary-foreground: #faf6ee;
313
-
314
- /* Secondary — Light parchment */
315
- --color-secondary: #f0e8d8;
316
- --color-secondary-hover: #e6dbc4;
317
- --color-secondary-foreground: #3a2f22;
318
-
319
- /* Accent — Teal resonance (same hue, darker for contrast) */
320
- --color-accent: #0f766e;
321
- --color-accent-foreground: #faf6ee;
322
-
323
- /* Muted — Faded parchment */
324
- --color-muted: #ede4d0;
325
- --color-muted-foreground: #6e5f46;
326
-
327
- /* Surfaces — warm parchment hierarchy */
328
- --color-background: #faf6ee;
329
- --color-foreground: #2a1f14;
330
- --color-card: #ffffff;
331
- --color-card-foreground: #2a1f14;
332
- --color-surface: #f5efe3;
333
-
334
- /* Borders & Inputs */
335
- --color-border: #d4c4a8;
336
- --color-input: #e6dbc4;
337
- --color-ring: #9e7e1e;
338
-
339
- /* Semantic colors — warm-shifted for parchment */
340
- --color-error: #b91c1c;
341
- --color-error-foreground: #faf6ee;
342
- --color-success: #15803d;
343
- --color-success-foreground: #faf6ee;
344
- --color-warning: #d97706;
345
- --color-warning-foreground: #2a1f14;
346
- --color-info: #0f766e;
347
- --color-info-foreground: #faf6ee;
348
-
349
- /* ======================================================================
350
- * GAME-SPECIFIC TOKENS
351
- * ====================================================================== */
352
-
353
- /* Gold hierarchy (dark → light for light mode) */
354
- --tw-gold: #9e7e1e;
355
- --tw-gold-mid: #b8940f;
356
- --tw-gold-dim: #d4c4a8;
357
- --tw-gold-dark: #e6dbc4;
358
-
359
- /* Text hierarchy (dark → light) */
360
- --tw-text-primary: #2a1f14;
361
- --tw-text-secondary: #5a4a36;
362
- --tw-text-dim: #8a7a60;
363
-
364
- /* Surface hierarchy (dark → light) */
365
- --tw-surface-elevated: #f0e8d8;
366
- --tw-surface-hover: #e6dbc4;
367
-
368
- /* Faction: Resonator (player) */
224
+ --tw-gold: #eab308;
225
+ --tw-gold-mid: #c9a84c;
226
+ --tw-gold-dim: #8a7340;
227
+ --tw-gold-dark: #5a4a36;
228
+ --tw-text-primary: #e8dcc8;
229
+ --tw-text-secondary: #b8a88c;
230
+ --tw-text-dim: #7a6a50;
231
+ --tw-surface-elevated: #3a2f22;
232
+ --tw-surface-hover: #4a3d2e;
369
233
  --tw-faction-resonator: #7c3aed;
370
- --tw-faction-resonator-glow: rgba(124, 58, 237, 0.15);
371
-
372
- /* Faction: Dominion (enemy) */
234
+ --tw-faction-resonator-glow: rgba(124, 58, 237, 0.3);
373
235
  --tw-faction-dominion: #b91c1c;
374
- --tw-faction-dominion-glow: rgba(185, 28, 28, 0.15);
375
-
376
- /* Faction: Neutral */
236
+ --tw-faction-dominion-glow: rgba(185, 28, 28, 0.3);
377
237
  --tw-faction-neutral: #78716c;
378
-
379
- /* Tier colors — slightly darker for light bg contrast */
380
- --tw-tier-1: #7a6340;
381
- --tw-tier-2: #808080;
382
- --tw-tier-3: #9e7e1e;
383
- --tw-tier-4: #b8940f;
384
-
385
- /* Combat */
386
- --tw-health: #b91c1c;
387
- --tw-health-bg: rgba(185, 28, 28, 0.1);
388
- --tw-heal: #15803d;
389
- --tw-heal-bg: rgba(21, 128, 61, 0.1);
390
- --tw-mana: #6d28d9;
391
- --tw-mana-bg: rgba(109, 40, 217, 0.1);
392
-
393
- /* ======================================================================
394
- * TYPOGRAPHY
395
- * ====================================================================== */
396
- --font-family:
397
- "Cinzel", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
238
+ --tw-tier-1: #8B7355;
239
+ --tw-tier-2: #A8A8A8;
240
+ --tw-tier-3: #c9a84c;
241
+ --tw-tier-4: #eab308;
242
+ --tw-health: #c04040;
243
+ --tw-health-bg: rgba(192, 64, 64, 0.2);
244
+ --tw-heal: #4a9e4a;
245
+ --tw-heal-bg: rgba(74, 158, 74, 0.2);
246
+ --tw-mana: #7c5cbf;
247
+ --tw-mana-bg: rgba(124, 92, 191, 0.2);
248
+ --font-family: "Cinzel", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
398
249
  --font-weight-normal: 400;
399
250
  --font-weight-medium: 500;
400
251
  --font-weight-bold: 700;
401
252
  --letter-spacing: 0.01em;
402
253
  --line-height: 1.5;
403
-
404
- /* Icon styling — dark gold */
405
- --icon-stroke-width: 1.75;
406
- --icon-color: #9e7e1e;
407
-
408
- /* Transitions */
254
+ --icon-color: #c9a84c;
409
255
  --transition-fast: 150ms;
410
256
  --transition-normal: 300ms;
411
257
  --transition-slow: 500ms;
412
258
  --transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
413
-
414
- /* Hover/Active transforms */
415
259
  --hover-scale: 1.01;
416
260
  --hover-translate-y: -1px;
417
261
  --hover-translate-x: 0;
418
262
  --active-scale: 0.99;
419
263
  --active-translate-y: 0;
420
-
421
- /* Focus ring — gold */
422
264
  --focus-ring-width: 2px;
423
265
  --focus-ring-offset: 2px;
424
- --focus-ring-color: #9e7e1e;
425
-
426
- /* Layer 1 backfill (preserves current visual output, see themes/_contract.md) */
427
- /* Density axis spacing scale */
266
+ --focus-ring-color: #c9a84c;
267
+ --shadow-main: 0 4px 14px rgba(201, 168, 76, 0.10), 0 1px 3px rgba(0, 0, 0, 0.20);
268
+ --shadow-sm: 0 2px 4px rgba(201, 168, 76, 0.06);
269
+ --shadow-lg: 0 8px 30px rgba(201, 168, 76, 0.15), 0 4px 10px rgba(0, 0, 0, 0.15);
270
+ --shadow-inner: inset 0 1px 3px rgba(0, 0, 0, 0.25);
271
+ --shadow-none: none;
272
+ --shadow-hover: 0 12px 40px rgba(201, 168, 76, 0.20), 0 4px 12px rgba(234, 179, 8, 0.10);
273
+ --shadow-active: 0 2px 8px rgba(201, 168, 76, 0.15);
428
274
  --space-0: 0px;
429
275
  --space-1: 4px;
430
276
  --space-2: 8px;
@@ -438,7 +284,6 @@
438
284
  --space-10: 40px;
439
285
  --space-11: 44px;
440
286
  --space-12: 48px;
441
- /* Density axis — per-element heights */
442
287
  --button-height-sm: 28px;
443
288
  --button-height-md: 36px;
444
289
  --button-height-lg: 44px;
@@ -448,17 +293,14 @@
448
293
  --row-height-compact: 32px;
449
294
  --row-height-normal: 40px;
450
295
  --row-height-spacious: 48px;
451
- /* Density axis — per-element padding */
452
296
  --card-padding-sm: 12px;
453
297
  --card-padding-md: 16px;
454
298
  --card-padding-lg: 24px;
455
299
  --dialog-padding: 24px;
456
300
  --section-gap: 32px;
457
- /* Type axis — family triplet */
458
301
  --font-family-display: var(--font-family);
459
302
  --font-family-body: var(--font-family);
460
303
  --font-family-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
461
- /* Type axis — size scale */
462
304
  --text-xs: 12px;
463
305
  --leading-xs: 16px;
464
306
  --text-sm: 14px;
@@ -479,7 +321,6 @@
479
321
  --leading-display-1: 52px;
480
322
  --text-display-2: 60px;
481
323
  --leading-display-2: 64px;
482
- /* Type axis — intent mapping */
483
324
  --intent-heading-major-size: var(--text-2xl);
484
325
  --intent-heading-major-weight: var(--font-weight-bold);
485
326
  --intent-heading-major-leading: var(--leading-2xl);
@@ -501,30 +342,25 @@
501
342
  --intent-numeric-size: var(--text-sm);
502
343
  --intent-numeric-weight: var(--font-weight-medium);
503
344
  --intent-numeric-leading: var(--leading-sm);
504
- /* Motion axis — duration palette */
505
345
  --duration-instant: 0ms;
506
346
  --duration-fast: var(--transition-fast);
507
347
  --duration-normal: var(--transition-normal);
508
348
  --duration-slow: var(--transition-slow);
509
349
  --duration-dramatic: 600ms;
510
- /* Motion axis — easing palette */
511
350
  --easing-linear: linear;
512
351
  --easing-standard: var(--transition-timing);
513
352
  --easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
514
353
  --easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
515
- /* Iconography axis */
516
354
  --icon-family: lucide;
355
+ --icon-stroke-width: 1.75;
517
356
  --icon-default-size: 16px;
518
- /* Elevation axis — per-layer mapping */
519
357
  --elevation-card: var(--shadow-sm);
520
358
  --elevation-popover: var(--shadow-main);
521
359
  --elevation-dialog: var(--shadow-lg);
522
360
  --elevation-toast: var(--shadow-main);
523
- /* Geometry axis — radius rhythm with intent */
524
361
  --radius-container: var(--radius-md);
525
362
  --radius-interactive: var(--radius-md);
526
363
  --radius-pill: var(--radius-full);
527
- /* Geometry axis — border-width rhythm */
528
364
  --border-hairline: 1px;
529
365
  --border-standard: var(--border-width);
530
366
  --border-heavy: var(--border-width-thick);