@almadar/ui 6.29.0 → 6.31.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 (52) hide show
  1. package/dist/{EntityBindingContext-UyeCfEBS.d.cts → EntityBindingContext-ChCONv2W.d.cts} +1 -50
  2. package/dist/{EntityBindingContext-UyeCfEBS.d.ts → EntityBindingContext-ChCONv2W.d.ts} +1 -50
  3. package/dist/avl/index.cjs +5 -6
  4. package/dist/avl/index.js +5 -6
  5. package/dist/components/index.cjs +4 -5
  6. package/dist/components/index.js +4 -5
  7. package/dist/context/index.cjs +135 -105
  8. package/dist/context/index.d.cts +2 -60
  9. package/dist/context/index.d.ts +2 -60
  10. package/dist/context/index.js +135 -105
  11. package/dist/lib/index.cjs +455 -0
  12. package/dist/lib/index.d.cts +42 -1
  13. package/dist/lib/index.d.ts +42 -1
  14. package/dist/lib/index.js +438 -1
  15. package/dist/marketing/index.cjs +4 -5
  16. package/dist/marketing/index.js +4 -5
  17. package/dist/providers/index.cjs +143 -116
  18. package/dist/providers/index.d.cts +1 -1
  19. package/dist/providers/index.d.ts +1 -1
  20. package/dist/providers/index.js +143 -116
  21. package/dist/runtime/index.cjs +5 -6
  22. package/dist/runtime/index.d.cts +2 -2
  23. package/dist/runtime/index.d.ts +2 -2
  24. package/dist/runtime/index.js +5 -6
  25. package/dist/themeTokens-DVRwufw8.d.cts +112 -0
  26. package/dist/themeTokens-DVRwufw8.d.ts +112 -0
  27. package/package.json +6 -5
  28. package/scripts/audit-tailwind-safelist.ts +4 -0
  29. package/tailwind-preset.cjs +155 -28
  30. package/themes/almadar-website.css +37 -107
  31. package/themes/almadar.css +37 -108
  32. package/themes/atelier.css +145 -240
  33. package/themes/bloomberg-dense.css +145 -252
  34. package/themes/clay.css +39 -137
  35. package/themes/comic.css +39 -145
  36. package/themes/corporate.css +39 -131
  37. package/themes/game-adventure.css +22 -87
  38. package/themes/game-rpg.css +22 -84
  39. package/themes/game-sci-fi.css +22 -88
  40. package/themes/game-ui-pack.css +22 -85
  41. package/themes/gazette.css +43 -135
  42. package/themes/glass.css +39 -148
  43. package/themes/kiosk.css +51 -146
  44. package/themes/linear-clean.css +145 -215
  45. package/themes/minimalist.css +39 -125
  46. package/themes/neon.css +39 -132
  47. package/themes/notion-editorial.css +145 -215
  48. package/themes/prism.css +37 -100
  49. package/themes/retro.css +39 -130
  50. package/themes/terminal.css +61 -152
  51. package/themes/trait-wars.css +121 -285
  52. package/themes/wireframe.css +41 -128
@@ -1,75 +1,28 @@
1
1
  /**
2
- * Game RPG Theme "Wood & Gold"
3
- *
4
- * Kenney's RPG adventure UI pack (carved wood panels + long buttons with
5
- * normal/pressed art) as a real theme, same contract as every other theme.
6
- * Dark near-black background so the warm wood chrome and gold accents read
7
- * as a classic JRPG dialog/menu skin.
8
- *
9
- * Chrome sprites: --game-panel-border-image / --game-button-bg-image are CSS
10
- * 9-slice / stretched backgrounds sourced from kenney-ui-adventure-pack's
11
- * brown panel + long-button sprites, consumed by the `.chrome-panel` /
12
- * `.chrome-button` utilities (tailwind-preset.cjs) that Card/Button/
13
- * GameShell/GameHud/GameMenu already apply unconditionally.
2
+ * GENERATED do not edit by hand.
3
+ * Source: packages/almadar-core/themes/game-rpg.json
4
+ * Regenerate: node tools/almadar-pattern-sync/dist/index.js themes (or `almadar-sync themes`)
14
5
  */
15
- [data-theme="game-rpg-dark"] {
16
- /* Shadows — warm gold glow */
17
- --shadow-main: 0 4px 14px rgba(240, 200, 105, 0.14), 0 1px 3px rgba(0, 0, 0, 0.45);
18
- --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.3);
19
- --shadow-lg: 0 8px 30px rgba(240, 200, 105, 0.2), 0 4px 10px rgba(0, 0, 0, 0.4);
20
- --shadow-inner: inset 0 1px 3px rgba(0, 0, 0, 0.45);
21
- --shadow-none: none;
22
- --shadow-hover: 0 12px 40px rgba(240, 200, 105, 0.25), 0 4px 12px rgba(0, 0, 0, 0.35);
23
- --shadow-active: 0 2px 8px rgba(0, 0, 0, 0.4);
24
-
25
- /* Border radius — carved wood, only lightly rounded */
26
- --radius-none: 0px;
27
- --radius-sm: 3px;
28
- --radius-md: 5px;
29
- --radius-lg: 8px;
30
- --radius-xl: 12px;
31
- --radius-full: 9999px;
32
-
33
- /* Border width */
34
- --border-width: 1px;
35
- --border-width-thin: 1px;
36
- --border-width-thick: 2px;
37
-
38
- /* ======================================================================
39
- * CORE COLORS
40
- * ====================================================================== */
41
6
 
42
- /* Primary — amber CTA (from the button sprite's highlight edge) */
7
+ [data-theme="game-rpg-dark"] {
43
8
  --color-primary: #d99a4e;
44
9
  --color-primary-hover: #e6ac66;
45
10
  --color-primary-foreground: #1a1108;
46
-
47
- /* Secondary — dark wood */
48
11
  --color-secondary: #4a3520;
49
12
  --color-secondary-hover: #5a4227;
50
13
  --color-secondary-foreground: #f5e6cf;
51
-
52
- /* Accent — gold trim */
53
14
  --color-accent: #f0c869;
54
15
  --color-accent-foreground: #1a1108;
55
-
56
- /* Muted */
57
16
  --color-muted: #3a2a18;
58
17
  --color-muted-foreground: #e0cba8;
59
-
60
- /* Surfaces */
61
18
  --color-background: #1a1108;
62
19
  --color-foreground: #f5e6cf;
63
20
  --color-card: #6e4f30;
64
21
  --color-card-foreground: #fff5e0;
65
22
  --color-surface: #2a1d10;
66
-
67
- /* Borders & Inputs */
68
23
  --color-border: #886644;
69
24
  --color-input: #4a3520;
70
25
  --color-ring: #f0c869;
71
-
72
- /* Semantic colors */
73
26
  --color-error: #d9534f;
74
27
  --color-error-foreground: #1a0808;
75
28
  --color-success: #7ba05b;
@@ -78,50 +31,45 @@
78
31
  --color-warning-foreground: #1a1108;
79
32
  --color-info: #d99a4e;
80
33
  --color-info-foreground: #1a1108;
81
-
82
- /* ======================================================================
83
- * CHROME — sprite-driven panel/button skin (kenney-ui-adventure-pack, brown)
84
- * ====================================================================== */
34
+ --radius-none: 0px;
35
+ --radius-sm: 3px;
36
+ --radius-md: 5px;
37
+ --radius-lg: 8px;
38
+ --radius-xl: 12px;
39
+ --radius-full: 9999px;
40
+ --border-width: 1px;
41
+ --border-width-thin: 1px;
42
+ --border-width-thick: 2px;
85
43
  --game-panel-border-image: url('https://almadar-kflow-assets.web.app/shared/ui-game-shell/kenney-ui-adventure-pack/ui/panel_brown.png');
86
44
  --game-panel-border-image-slice: 26 fill;
87
45
  --game-panel-border-image-width: 22px;
88
46
  --game-button-bg-image: url('https://almadar-kflow-assets.web.app/shared/ui-game-shell/kenney-ui-adventure-pack/ui/buttonLong_brown.png');
89
-
90
- /* ======================================================================
91
- * TYPOGRAPHY
92
- * ====================================================================== */
93
- --font-family:
94
- "Kenney Mini", ui-sans-serif, system-ui, sans-serif;
47
+ --font-family: "Kenney Mini", ui-sans-serif, system-ui, sans-serif;
95
48
  --font-weight-normal: 400;
96
49
  --font-weight-medium: 500;
97
50
  --font-weight-bold: 700;
98
51
  --letter-spacing: 0.02em;
99
52
  --line-height: 1.5;
100
-
101
- /* Icon styling — gold tint */
102
- --icon-stroke-width: 1.75;
103
53
  --icon-color: #f0c869;
104
-
105
- /* Transitions */
106
54
  --transition-fast: 100ms;
107
55
  --transition-normal: 200ms;
108
56
  --transition-slow: 400ms;
109
57
  --transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
110
-
111
- /* Hover/Active transforms */
112
58
  --hover-scale: 1.01;
113
59
  --hover-translate-y: -1px;
114
60
  --hover-translate-x: 0;
115
61
  --active-scale: 0.99;
116
62
  --active-translate-y: 0;
117
-
118
- /* Focus ring — gold */
119
63
  --focus-ring-width: 2px;
120
64
  --focus-ring-offset: 2px;
121
65
  --focus-ring-color: #f0c869;
122
-
123
- /* Layer 1 backfill (see themes/_contract.md) */
124
- /* Density axis spacing scale */
66
+ --shadow-main: 0 4px 14px rgba(240, 200, 105, 0.14), 0 1px 3px rgba(0, 0, 0, 0.45);
67
+ --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.3);
68
+ --shadow-lg: 0 8px 30px rgba(240, 200, 105, 0.2), 0 4px 10px rgba(0, 0, 0, 0.4);
69
+ --shadow-inner: inset 0 1px 3px rgba(0, 0, 0, 0.45);
70
+ --shadow-none: none;
71
+ --shadow-hover: 0 12px 40px rgba(240, 200, 105, 0.25), 0 4px 12px rgba(0, 0, 0, 0.35);
72
+ --shadow-active: 0 2px 8px rgba(0, 0, 0, 0.4);
125
73
  --space-0: 0px;
126
74
  --space-1: 4px;
127
75
  --space-2: 8px;
@@ -135,7 +83,6 @@
135
83
  --space-10: 40px;
136
84
  --space-11: 44px;
137
85
  --space-12: 48px;
138
- /* Density axis — per-element heights */
139
86
  --button-height-sm: 28px;
140
87
  --button-height-md: 36px;
141
88
  --button-height-lg: 44px;
@@ -145,17 +92,14 @@
145
92
  --row-height-compact: 32px;
146
93
  --row-height-normal: 40px;
147
94
  --row-height-spacious: 48px;
148
- /* Density axis — per-element padding */
149
95
  --card-padding-sm: 12px;
150
96
  --card-padding-md: 16px;
151
97
  --card-padding-lg: 24px;
152
98
  --dialog-padding: 24px;
153
99
  --section-gap: 32px;
154
- /* Type axis — family triplet */
155
100
  --font-family-display: var(--font-family);
156
101
  --font-family-body: var(--font-family);
157
102
  --font-family-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
158
- /* Type axis — size scale */
159
103
  --text-xs: 12px;
160
104
  --leading-xs: 16px;
161
105
  --text-sm: 14px;
@@ -176,7 +120,6 @@
176
120
  --leading-display-1: 52px;
177
121
  --text-display-2: 60px;
178
122
  --leading-display-2: 64px;
179
- /* Type axis — intent mapping */
180
123
  --intent-heading-major-size: var(--text-2xl);
181
124
  --intent-heading-major-weight: var(--font-weight-bold);
182
125
  --intent-heading-major-leading: var(--leading-2xl);
@@ -198,30 +141,25 @@
198
141
  --intent-numeric-size: var(--text-sm);
199
142
  --intent-numeric-weight: var(--font-weight-medium);
200
143
  --intent-numeric-leading: var(--leading-sm);
201
- /* Motion axis — duration palette */
202
144
  --duration-instant: 0ms;
203
145
  --duration-fast: var(--transition-fast);
204
146
  --duration-normal: var(--transition-normal);
205
147
  --duration-slow: var(--transition-slow);
206
148
  --duration-dramatic: 600ms;
207
- /* Motion axis — easing palette */
208
149
  --easing-linear: linear;
209
150
  --easing-standard: var(--transition-timing);
210
151
  --easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
211
152
  --easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
212
- /* Iconography axis */
213
153
  --icon-family: lucide;
154
+ --icon-stroke-width: 1.75;
214
155
  --icon-default-size: 16px;
215
- /* Elevation axis — per-layer mapping */
216
156
  --elevation-card: var(--shadow-sm);
217
157
  --elevation-popover: var(--shadow-main);
218
158
  --elevation-dialog: var(--shadow-lg);
219
159
  --elevation-toast: var(--shadow-main);
220
- /* Geometry axis — radius rhythm with intent */
221
160
  --radius-container: var(--radius-md);
222
161
  --radius-interactive: var(--radius-md);
223
162
  --radius-pill: var(--radius-full);
224
- /* Geometry axis — border-width rhythm */
225
163
  --border-hairline: 1px;
226
164
  --border-standard: var(--border-width);
227
165
  --border-heavy: var(--border-width-thick);
@@ -1,79 +1,28 @@
1
1
  /**
2
- * Game Sci-Fi Theme "Deep Space HUD"
3
- *
4
- * Kenney sci-fi UI pack (glass/metal HUD panels, cyan/blue accents) as a real
5
- * theme, following the same contract every other theme uses. Dark mode only —
6
- * this is a game UI, not a productivity app (see trait-wars.css precedent).
7
- *
8
- * Chrome sprites: --game-panel-border-image is a CSS 9-slice (border-image)
9
- * sourced from kenney-ui-pack-sci-fi's `metalPanel_blue` sprite, consumed by
10
- * the `.bg-chrome-panel` utility (tailwind-preset.cjs) that Card/GameShell/
11
- * GameHud/GameMenu already apply unconditionally. This pack ships no button
12
- * sprites, so --game-button-bg-image is left undeclared — Button renders with
13
- * flat theme-colored chrome instead (a legitimate sci-fi HUD look, and the
14
- * `.bg-chrome-button` utility's `none` fallback already handles this cleanly).
2
+ * GENERATED do not edit by hand.
3
+ * Source: packages/almadar-core/themes/game-sci-fi.json
4
+ * Regenerate: node tools/almadar-pattern-sync/dist/index.js themes (or `almadar-sync themes`)
15
5
  */
16
- [data-theme="game-sci-fi-dark"] {
17
- /* Shadows — cool cyan glow */
18
- --shadow-main:
19
- 0 4px 14px rgba(62, 166, 255, 0.14), 0 1px 3px rgba(0, 0, 0, 0.35);
20
- --shadow-sm: 0 2px 4px rgba(62, 166, 255, 0.08);
21
- --shadow-lg:
22
- 0 8px 30px rgba(62, 166, 255, 0.20), 0 4px 10px rgba(0, 0, 0, 0.30);
23
- --shadow-inner: inset 0 1px 3px rgba(0, 0, 0, 0.35);
24
- --shadow-none: none;
25
- --shadow-hover:
26
- 0 12px 40px rgba(62, 166, 255, 0.25), 0 4px 12px rgba(79, 195, 247, 0.12);
27
- --shadow-active: 0 2px 8px rgba(62, 166, 255, 0.18);
28
-
29
- /* Border radius — HUD panels are only lightly rounded */
30
- --radius-none: 0px;
31
- --radius-sm: 4px;
32
- --radius-md: 6px;
33
- --radius-lg: 8px;
34
- --radius-xl: 12px;
35
- --radius-full: 9999px;
36
6
 
37
- /* Border width */
38
- --border-width: 1px;
39
- --border-width-thin: 1px;
40
- --border-width-thick: 2px;
41
-
42
- /* ======================================================================
43
- * CORE COLORS
44
- * ====================================================================== */
45
-
46
- /* Primary — HUD cyan (actions, interactive elements) */
7
+ [data-theme="game-sci-fi-dark"] {
47
8
  --color-primary: #3ea6ff;
48
9
  --color-primary-hover: #6cc3ff;
49
10
  --color-primary-foreground: #071018;
50
-
51
- /* Secondary — deep space panel */
52
11
  --color-secondary: #182338;
53
12
  --color-secondary-hover: #22314c;
54
13
  --color-secondary-foreground: #dceaf7;
55
-
56
- /* Accent — energy yellow (score/highlight) */
57
14
  --color-accent: #ffcc4d;
58
15
  --color-accent-foreground: #1a1408;
59
-
60
- /* Muted — dim HUD grey */
61
16
  --color-muted: #22314c;
62
17
  --color-muted-foreground: #8b9bb6;
63
-
64
- /* Surfaces */
65
18
  --color-background: #0a0e1a;
66
19
  --color-foreground: #e8f4fb;
67
20
  --color-card: #141d30;
68
21
  --color-card-foreground: #e8f4fb;
69
22
  --color-surface: #141d30;
70
-
71
- /* Borders & Inputs */
72
23
  --color-border: #3a4a66;
73
24
  --color-input: #182338;
74
25
  --color-ring: #3ea6ff;
75
-
76
- /* Semantic colors */
77
26
  --color-error: #ff5c5c;
78
27
  --color-error-foreground: #1a0808;
79
28
  --color-success: #4ade80;
@@ -82,49 +31,44 @@
82
31
  --color-warning-foreground: #1a1408;
83
32
  --color-info: #3ea6ff;
84
33
  --color-info-foreground: #071018;
85
-
86
- /* ======================================================================
87
- * CHROME — sprite-driven panel skin (kenney-ui-pack-sci-fi/metalPanel_blue)
88
- * ====================================================================== */
34
+ --radius-none: 0px;
35
+ --radius-sm: 4px;
36
+ --radius-md: 6px;
37
+ --radius-lg: 8px;
38
+ --radius-xl: 12px;
39
+ --radius-full: 9999px;
40
+ --border-width: 1px;
41
+ --border-width-thin: 1px;
42
+ --border-width-thick: 2px;
89
43
  --game-panel-border-image: url('https://almadar-kflow-assets.web.app/shared/ui-game-shell/kenney-ui-pack-sci-fi/ui/metalPanel_blue.png');
90
44
  --game-panel-border-image-slice: 26 fill;
91
45
  --game-panel-border-image-width: 22px;
92
-
93
- /* ======================================================================
94
- * TYPOGRAPHY
95
- * ====================================================================== */
96
- --font-family:
97
- "Kenney Future", "Orbitron", "Rajdhani", ui-sans-serif, system-ui, sans-serif;
46
+ --font-family: "Kenney Future", "Orbitron", "Rajdhani", ui-sans-serif, system-ui, sans-serif;
98
47
  --font-weight-normal: 400;
99
48
  --font-weight-medium: 500;
100
49
  --font-weight-bold: 700;
101
50
  --letter-spacing: 0.02em;
102
51
  --line-height: 1.5;
103
-
104
- /* Icon styling — cyan tint */
105
- --icon-stroke-width: 1.75;
106
52
  --icon-color: #3ea6ff;
107
-
108
- /* Transitions — snappy HUD response */
109
53
  --transition-fast: 100ms;
110
54
  --transition-normal: 200ms;
111
55
  --transition-slow: 400ms;
112
56
  --transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
113
-
114
- /* Hover/Active transforms */
115
57
  --hover-scale: 1.01;
116
58
  --hover-translate-y: -1px;
117
59
  --hover-translate-x: 0;
118
60
  --active-scale: 0.99;
119
61
  --active-translate-y: 0;
120
-
121
- /* Focus ring — cyan */
122
62
  --focus-ring-width: 2px;
123
63
  --focus-ring-offset: 2px;
124
64
  --focus-ring-color: #3ea6ff;
125
-
126
- /* Layer 1 backfill (see themes/_contract.md) */
127
- /* Density axis spacing scale */
65
+ --shadow-main: 0 4px 14px rgba(62, 166, 255, 0.14), 0 1px 3px rgba(0, 0, 0, 0.35);
66
+ --shadow-sm: 0 2px 4px rgba(62, 166, 255, 0.08);
67
+ --shadow-lg: 0 8px 30px rgba(62, 166, 255, 0.20), 0 4px 10px rgba(0, 0, 0, 0.30);
68
+ --shadow-inner: inset 0 1px 3px rgba(0, 0, 0, 0.35);
69
+ --shadow-none: none;
70
+ --shadow-hover: 0 12px 40px rgba(62, 166, 255, 0.25), 0 4px 12px rgba(79, 195, 247, 0.12);
71
+ --shadow-active: 0 2px 8px rgba(62, 166, 255, 0.18);
128
72
  --space-0: 0px;
129
73
  --space-1: 4px;
130
74
  --space-2: 8px;
@@ -138,7 +82,6 @@
138
82
  --space-10: 40px;
139
83
  --space-11: 44px;
140
84
  --space-12: 48px;
141
- /* Density axis — per-element heights */
142
85
  --button-height-sm: 28px;
143
86
  --button-height-md: 36px;
144
87
  --button-height-lg: 44px;
@@ -148,17 +91,14 @@
148
91
  --row-height-compact: 32px;
149
92
  --row-height-normal: 40px;
150
93
  --row-height-spacious: 48px;
151
- /* Density axis — per-element padding */
152
94
  --card-padding-sm: 12px;
153
95
  --card-padding-md: 16px;
154
96
  --card-padding-lg: 24px;
155
97
  --dialog-padding: 24px;
156
98
  --section-gap: 32px;
157
- /* Type axis — family triplet */
158
99
  --font-family-display: var(--font-family);
159
100
  --font-family-body: var(--font-family);
160
101
  --font-family-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
161
- /* Type axis — size scale */
162
102
  --text-xs: 12px;
163
103
  --leading-xs: 16px;
164
104
  --text-sm: 14px;
@@ -179,7 +119,6 @@
179
119
  --leading-display-1: 52px;
180
120
  --text-display-2: 60px;
181
121
  --leading-display-2: 64px;
182
- /* Type axis — intent mapping */
183
122
  --intent-heading-major-size: var(--text-2xl);
184
123
  --intent-heading-major-weight: var(--font-weight-bold);
185
124
  --intent-heading-major-leading: var(--leading-2xl);
@@ -201,30 +140,25 @@
201
140
  --intent-numeric-size: var(--text-sm);
202
141
  --intent-numeric-weight: var(--font-weight-medium);
203
142
  --intent-numeric-leading: var(--leading-sm);
204
- /* Motion axis — duration palette */
205
143
  --duration-instant: 0ms;
206
144
  --duration-fast: var(--transition-fast);
207
145
  --duration-normal: var(--transition-normal);
208
146
  --duration-slow: var(--transition-slow);
209
147
  --duration-dramatic: 600ms;
210
- /* Motion axis — easing palette */
211
148
  --easing-linear: linear;
212
149
  --easing-standard: var(--transition-timing);
213
150
  --easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
214
151
  --easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
215
- /* Iconography axis */
216
152
  --icon-family: lucide;
153
+ --icon-stroke-width: 1.75;
217
154
  --icon-default-size: 16px;
218
- /* Elevation axis — per-layer mapping */
219
155
  --elevation-card: var(--shadow-sm);
220
156
  --elevation-popover: var(--shadow-main);
221
157
  --elevation-dialog: var(--shadow-lg);
222
158
  --elevation-toast: var(--shadow-main);
223
- /* Geometry axis — radius rhythm with intent */
224
159
  --radius-container: var(--radius-md);
225
160
  --radius-interactive: var(--radius-md);
226
161
  --radius-pill: var(--radius-full);
227
- /* Geometry axis — border-width rhythm */
228
162
  --border-hairline: 1px;
229
163
  --border-standard: var(--border-width);
230
164
  --border-heavy: var(--border-width-thick);
@@ -1,76 +1,28 @@
1
1
  /**
2
- * Game UI Pack Theme "Neutral Flat HUD"
3
- *
4
- * Kenney's grey/neutral UI pack (light, flat chip-style panels + buttons) as a
5
- * real theme, same contract as every other theme. Dark-mode background so the
6
- * light sprite chrome pops as high-contrast HUD chips (the sprite art itself
7
- * is near-white — pairing it with a light page background is what produced
8
- * the original washed-out look this project fixed).
9
- *
10
- * Chrome sprites: --game-panel-border-image / --game-button-bg-image are CSS
11
- * 9-slice / stretched backgrounds sourced from kenney-ui-pack's grey sheet,
12
- * consumed by the `.chrome-panel` / `.chrome-button` utilities
13
- * (tailwind-preset.cjs) that Card/Button/GameShell/GameHud/GameMenu already
14
- * apply unconditionally.
2
+ * GENERATED do not edit by hand.
3
+ * Source: packages/almadar-core/themes/game-ui-pack.json
4
+ * Regenerate: node tools/almadar-pattern-sync/dist/index.js themes (or `almadar-sync themes`)
15
5
  */
16
- [data-theme="game-ui-pack-dark"] {
17
- /* Shadows */
18
- --shadow-main: 0 4px 14px rgba(0, 0, 0, 0.35), 0 1px 3px rgba(0, 0, 0, 0.4);
19
- --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.25);
20
- --shadow-lg: 0 8px 30px rgba(0, 0, 0, 0.45), 0 4px 10px rgba(0, 0, 0, 0.3);
21
- --shadow-inner: inset 0 1px 3px rgba(0, 0, 0, 0.35);
22
- --shadow-none: none;
23
- --shadow-hover: 0 12px 40px rgba(46, 167, 225, 0.25), 0 4px 12px rgba(0, 0, 0, 0.3);
24
- --shadow-active: 0 2px 8px rgba(0, 0, 0, 0.3);
25
-
26
- /* Border radius — flat chip UI, lightly rounded */
27
- --radius-none: 0px;
28
- --radius-sm: 4px;
29
- --radius-md: 6px;
30
- --radius-lg: 8px;
31
- --radius-xl: 12px;
32
- --radius-full: 9999px;
33
-
34
- /* Border width */
35
- --border-width: 1px;
36
- --border-width-thin: 1px;
37
- --border-width-thick: 2px;
38
-
39
- /* ======================================================================
40
- * CORE COLORS
41
- * ====================================================================== */
42
6
 
43
- /* Primary — friendly flat blue */
7
+ [data-theme="game-ui-pack-dark"] {
44
8
  --color-primary: #2ea7e1;
45
9
  --color-primary-hover: #4fb8ea;
46
10
  --color-primary-foreground: #06202c;
47
-
48
- /* Secondary — neutral chip grey */
49
11
  --color-secondary: #3a3f47;
50
12
  --color-secondary-hover: #474d56;
51
13
  --color-secondary-foreground: #f2f3f4;
52
-
53
- /* Accent — score/highlight gold */
54
14
  --color-accent: #ffb703;
55
15
  --color-accent-foreground: #241a00;
56
-
57
- /* Muted */
58
16
  --color-muted: #b9bec6;
59
17
  --color-muted-foreground: #454a51;
60
-
61
- /* Surfaces */
62
18
  --color-background: #1b1e22;
63
19
  --color-foreground: #f2f3f4;
64
20
  --color-card: #eeeeee;
65
21
  --color-card-foreground: #22262b;
66
22
  --color-surface: #24272c;
67
-
68
- /* Borders & Inputs */
69
23
  --color-border: #999999;
70
24
  --color-input: #3a3f47;
71
25
  --color-ring: #2ea7e1;
72
-
73
- /* Semantic colors */
74
26
  --color-error: #ff5c5c;
75
27
  --color-error-foreground: #1a0808;
76
28
  --color-success: #4ade80;
@@ -79,50 +31,45 @@
79
31
  --color-warning-foreground: #241a00;
80
32
  --color-info: #2ea7e1;
81
33
  --color-info-foreground: #06202c;
82
-
83
- /* ======================================================================
84
- * CHROME — sprite-driven panel/button skin (kenney-ui-pack grey sheet)
85
- * ====================================================================== */
34
+ --radius-none: 0px;
35
+ --radius-sm: 4px;
36
+ --radius-md: 6px;
37
+ --radius-lg: 8px;
38
+ --radius-xl: 12px;
39
+ --radius-full: 9999px;
40
+ --border-width: 1px;
41
+ --border-width-thin: 1px;
42
+ --border-width-thick: 2px;
86
43
  --game-panel-border-image: url('https://almadar-kflow-assets.web.app/shared/ui-game-shell/kenney-ui-pack/ui/grey_panel.png');
87
44
  --game-panel-border-image-slice: 26 fill;
88
45
  --game-panel-border-image-width: 22px;
89
46
  --game-button-bg-image: url('https://almadar-kflow-assets.web.app/shared/ui-game-shell/kenney-ui-pack/ui/grey_button00.png');
90
-
91
- /* ======================================================================
92
- * TYPOGRAPHY
93
- * ====================================================================== */
94
- --font-family:
95
- "Kenney Future", ui-sans-serif, system-ui, sans-serif;
47
+ --font-family: "Kenney Future", ui-sans-serif, system-ui, sans-serif;
96
48
  --font-weight-normal: 400;
97
49
  --font-weight-medium: 500;
98
50
  --font-weight-bold: 700;
99
51
  --letter-spacing: 0.01em;
100
52
  --line-height: 1.5;
101
-
102
- /* Icon styling */
103
- --icon-stroke-width: 1.75;
104
53
  --icon-color: #2ea7e1;
105
-
106
- /* Transitions */
107
54
  --transition-fast: 100ms;
108
55
  --transition-normal: 200ms;
109
56
  --transition-slow: 400ms;
110
57
  --transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
111
-
112
- /* Hover/Active transforms */
113
58
  --hover-scale: 1.01;
114
59
  --hover-translate-y: -1px;
115
60
  --hover-translate-x: 0;
116
61
  --active-scale: 0.99;
117
62
  --active-translate-y: 0;
118
-
119
- /* Focus ring */
120
63
  --focus-ring-width: 2px;
121
64
  --focus-ring-offset: 2px;
122
65
  --focus-ring-color: #2ea7e1;
123
-
124
- /* Layer 1 backfill (see themes/_contract.md) */
125
- /* Density axis spacing scale */
66
+ --shadow-main: 0 4px 14px rgba(0, 0, 0, 0.35), 0 1px 3px rgba(0, 0, 0, 0.4);
67
+ --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.25);
68
+ --shadow-lg: 0 8px 30px rgba(0, 0, 0, 0.45), 0 4px 10px rgba(0, 0, 0, 0.3);
69
+ --shadow-inner: inset 0 1px 3px rgba(0, 0, 0, 0.35);
70
+ --shadow-none: none;
71
+ --shadow-hover: 0 12px 40px rgba(46, 167, 225, 0.25), 0 4px 12px rgba(0, 0, 0, 0.3);
72
+ --shadow-active: 0 2px 8px rgba(0, 0, 0, 0.3);
126
73
  --space-0: 0px;
127
74
  --space-1: 4px;
128
75
  --space-2: 8px;
@@ -136,7 +83,6 @@
136
83
  --space-10: 40px;
137
84
  --space-11: 44px;
138
85
  --space-12: 48px;
139
- /* Density axis — per-element heights */
140
86
  --button-height-sm: 28px;
141
87
  --button-height-md: 36px;
142
88
  --button-height-lg: 44px;
@@ -146,17 +92,14 @@
146
92
  --row-height-compact: 32px;
147
93
  --row-height-normal: 40px;
148
94
  --row-height-spacious: 48px;
149
- /* Density axis — per-element padding */
150
95
  --card-padding-sm: 12px;
151
96
  --card-padding-md: 16px;
152
97
  --card-padding-lg: 24px;
153
98
  --dialog-padding: 24px;
154
99
  --section-gap: 32px;
155
- /* Type axis — family triplet */
156
100
  --font-family-display: var(--font-family);
157
101
  --font-family-body: var(--font-family);
158
102
  --font-family-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
159
- /* Type axis — size scale */
160
103
  --text-xs: 12px;
161
104
  --leading-xs: 16px;
162
105
  --text-sm: 14px;
@@ -177,7 +120,6 @@
177
120
  --leading-display-1: 52px;
178
121
  --text-display-2: 60px;
179
122
  --leading-display-2: 64px;
180
- /* Type axis — intent mapping */
181
123
  --intent-heading-major-size: var(--text-2xl);
182
124
  --intent-heading-major-weight: var(--font-weight-bold);
183
125
  --intent-heading-major-leading: var(--leading-2xl);
@@ -199,30 +141,25 @@
199
141
  --intent-numeric-size: var(--text-sm);
200
142
  --intent-numeric-weight: var(--font-weight-medium);
201
143
  --intent-numeric-leading: var(--leading-sm);
202
- /* Motion axis — duration palette */
203
144
  --duration-instant: 0ms;
204
145
  --duration-fast: var(--transition-fast);
205
146
  --duration-normal: var(--transition-normal);
206
147
  --duration-slow: var(--transition-slow);
207
148
  --duration-dramatic: 600ms;
208
- /* Motion axis — easing palette */
209
149
  --easing-linear: linear;
210
150
  --easing-standard: var(--transition-timing);
211
151
  --easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
212
152
  --easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
213
- /* Iconography axis */
214
153
  --icon-family: lucide;
154
+ --icon-stroke-width: 1.75;
215
155
  --icon-default-size: 16px;
216
- /* Elevation axis — per-layer mapping */
217
156
  --elevation-card: var(--shadow-sm);
218
157
  --elevation-popover: var(--shadow-main);
219
158
  --elevation-dialog: var(--shadow-lg);
220
159
  --elevation-toast: var(--shadow-main);
221
- /* Geometry axis — radius rhythm with intent */
222
160
  --radius-container: var(--radius-md);
223
161
  --radius-interactive: var(--radius-md);
224
162
  --radius-pill: var(--radius-full);
225
- /* Geometry axis — border-width rhythm */
226
163
  --border-hairline: 1px;
227
164
  --border-standard: var(--border-width);
228
165
  --border-heavy: var(--border-width-thick);