@almadar/ui 4.57.4 → 5.0.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 (41) hide show
  1. package/dist/avl/index.cjs +270 -69
  2. package/dist/avl/index.js +270 -69
  3. package/dist/components/index.cjs +101 -68
  4. package/dist/components/index.js +101 -68
  5. package/dist/context/index.cjs +199 -0
  6. package/dist/context/index.js +199 -0
  7. package/dist/context/themeTokens.d.ts +1 -1
  8. package/dist/docs/index.cjs +21 -21
  9. package/dist/docs/index.js +21 -21
  10. package/dist/marketing/index.cjs +18 -18
  11. package/dist/marketing/index.js +18 -18
  12. package/dist/providers/index.cjs +101 -68
  13. package/dist/providers/index.js +101 -68
  14. package/dist/runtime/index.cjs +270 -69
  15. package/dist/runtime/index.js +270 -69
  16. package/package.json +2 -2
  17. package/tailwind-preset.cjs +118 -3
  18. package/themes/_contract.md +198 -0
  19. package/themes/almadar-website.css +212 -0
  20. package/themes/almadar.css +210 -0
  21. package/themes/arctic.css +210 -0
  22. package/themes/atelier.css +427 -0
  23. package/themes/copper.css +210 -0
  24. package/themes/ember.css +210 -0
  25. package/themes/forest.css +210 -0
  26. package/themes/gazette.css +411 -0
  27. package/themes/index.css +7 -0
  28. package/themes/kiosk.css +412 -0
  29. package/themes/lavender.css +210 -0
  30. package/themes/midnight.css +210 -0
  31. package/themes/minimalist.css +210 -0
  32. package/themes/neon.css +210 -0
  33. package/themes/ocean.css +210 -0
  34. package/themes/prism.css +406 -0
  35. package/themes/rose.css +210 -0
  36. package/themes/sand.css +210 -0
  37. package/themes/slate.css +210 -0
  38. package/themes/sunset.css +210 -0
  39. package/themes/terminal.css +422 -0
  40. package/themes/trait-wars.css +210 -0
  41. package/themes/wireframe.css +216 -0
@@ -0,0 +1,411 @@
1
+ /**
2
+ * Gazette Theme
3
+ *
4
+ * Spacious editorial aesthetic in the Substack/Notion lineage. Warm paper
5
+ * backgrounds, serif headlines, generous whitespace, and a single muted rust
6
+ * accent paired with sage — old-magazine warmth over corporate neutrals.
7
+ */
8
+
9
+ /* ==========================================================================
10
+ * LIGHT MODE
11
+ * ========================================================================== */
12
+ [data-theme="gazette-light"] {
13
+ /* Shadows - Soft, prominent for editorial card lift */
14
+ --shadow-none: none;
15
+ --shadow-sm: 0 1px 2px rgba(26, 22, 20, 0.06);
16
+ --shadow-main:
17
+ 0 4px 16px rgba(26, 22, 20, 0.08), 0 2px 4px rgba(26, 22, 20, 0.04);
18
+ --shadow-lg:
19
+ 0 16px 48px rgba(26, 22, 20, 0.14), 0 6px 16px rgba(26, 22, 20, 0.06);
20
+ --shadow-inner: inset 0 1px 2px rgba(26, 22, 20, 0.06);
21
+ --shadow-hover:
22
+ 0 20px 56px rgba(26, 22, 20, 0.16), 0 8px 20px rgba(26, 22, 20, 0.08);
23
+ --shadow-active: 0 2px 8px rgba(26, 22, 20, 0.1);
24
+
25
+ /* Border radius - Soft */
26
+ --radius-none: 0px;
27
+ --radius-sm: 6px;
28
+ --radius-md: 10px;
29
+ --radius-lg: 12px;
30
+ --radius-xl: 16px;
31
+ --radius-full: 9999px;
32
+
33
+ /* Border width - Hairline */
34
+ --border-width: 1px;
35
+ --border-width-thin: 1px;
36
+ --border-width-thick: 2px;
37
+
38
+ /* Colors - Warm paper with rust + sage accents */
39
+ --color-primary: #a85436;
40
+ --color-primary-hover: #8c4329;
41
+ --color-primary-foreground: #fdfbf6;
42
+
43
+ --color-secondary: #6b8e5a;
44
+ --color-secondary-hover: #5a7a4b;
45
+ --color-secondary-foreground: #fdfbf6;
46
+
47
+ --color-accent: #a85436;
48
+ --color-accent-foreground: #fdfbf6;
49
+
50
+ --color-muted: #f3eee3;
51
+ --color-muted-foreground: #6b5f55;
52
+
53
+ --color-background: #fdfbf6;
54
+ --color-foreground: #1a1614;
55
+ --color-card: #ffffff;
56
+ --color-card-foreground: #1a1614;
57
+ --color-surface: #f8f3e8;
58
+ --color-border: #e6dccb;
59
+ --color-input: #e6dccb;
60
+ --color-ring: #a85436;
61
+
62
+ /* Semantic colors */
63
+ --color-error: #b3402c;
64
+ --color-error-foreground: #fdfbf6;
65
+ --color-success: #5a7a4b;
66
+ --color-success-foreground: #fdfbf6;
67
+ --color-warning: #c08a2e;
68
+ --color-warning-foreground: #1a1614;
69
+ --color-info: #4a6b8a;
70
+ --color-info-foreground: #fdfbf6;
71
+
72
+ /* Typography - Editorial: serif display + Inter body + JetBrains mono */
73
+ --font-family:
74
+ "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
75
+ --font-weight-normal: 400;
76
+ --font-weight-medium: 500;
77
+ --font-weight-bold: 700;
78
+ --letter-spacing: -0.005em;
79
+ --line-height: 1.75;
80
+
81
+ /* Icon styling - Phosphor duotone, soft stroke */
82
+ --icon-stroke-width: 1.5;
83
+ --icon-color: #1a1614;
84
+
85
+ /* Transitions - Organic */
86
+ --transition-fast: 250ms;
87
+ --transition-normal: 400ms;
88
+ --transition-slow: 600ms;
89
+ --transition-timing: cubic-bezier(0.2, 0, 0, 1);
90
+
91
+ /* Hover/Active transforms - Gentle lift */
92
+ --hover-scale: 1;
93
+ --hover-translate-y: -2px;
94
+ --hover-translate-x: 0;
95
+ --active-scale: 0.99;
96
+ --active-translate-y: 0;
97
+
98
+ /* Focus ring - Rust */
99
+ --focus-ring-width: 2px;
100
+ --focus-ring-offset: 3px;
101
+ --focus-ring-color: #a85436;
102
+
103
+ /* Density axis — spacious 8pt rhythm */
104
+ --space-0: 0px;
105
+ --space-1: 4px;
106
+ --space-2: 8px;
107
+ --space-3: 12px;
108
+ --space-4: 16px;
109
+ --space-5: 20px;
110
+ --space-6: 24px;
111
+ --space-7: 32px;
112
+ --space-8: 40px;
113
+ --space-9: 48px;
114
+ --space-10: 56px;
115
+ --space-11: 64px;
116
+ --space-12: 80px;
117
+ /* Density axis — per-element heights (generous) */
118
+ --button-height-sm: 36px;
119
+ --button-height-md: 40px;
120
+ --button-height-lg: 44px;
121
+ --input-height-sm: 36px;
122
+ --input-height-md: 40px;
123
+ --input-height-lg: 44px;
124
+ --row-height-compact: 44px;
125
+ --row-height-normal: 56px;
126
+ --row-height-spacious: 64px;
127
+ /* Density axis — per-element padding (editorial breathing room) */
128
+ --card-padding-sm: 16px;
129
+ --card-padding-md: 24px;
130
+ --card-padding-lg: 32px;
131
+ --dialog-padding: 32px;
132
+ --section-gap: 48px;
133
+ /* Type axis — editorial family triplet */
134
+ --font-family-display: "Fraunces", "Charter", Georgia, serif;
135
+ --font-family-body:
136
+ "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
137
+ --font-family-mono:
138
+ "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
139
+ monospace;
140
+ /* Type axis — size scale (generous reading leading) */
141
+ --text-xs: 13px;
142
+ --leading-xs: 18px;
143
+ --text-sm: 14px;
144
+ --leading-sm: 22px;
145
+ --text-base: 16px;
146
+ --leading-base: 28px;
147
+ --text-lg: 19px;
148
+ --leading-lg: 30px;
149
+ --text-xl: 22px;
150
+ --leading-xl: 32px;
151
+ --text-2xl: 26px;
152
+ --leading-2xl: 34px;
153
+ --text-3xl: 30px;
154
+ --leading-3xl: 38px;
155
+ --text-4xl: 38px;
156
+ --leading-4xl: 46px;
157
+ --text-display-1: 52px;
158
+ --leading-display-1: 60px;
159
+ --text-display-2: 68px;
160
+ --leading-display-2: 76px;
161
+ /* Type axis — intent mapping (serif headlines, generous leading) */
162
+ --intent-heading-major-size: var(--text-3xl);
163
+ --intent-heading-major-weight: var(--font-weight-bold);
164
+ --intent-heading-major-leading: var(--leading-3xl);
165
+ --intent-heading-minor-size: var(--text-xl);
166
+ --intent-heading-minor-weight: var(--font-weight-bold);
167
+ --intent-heading-minor-leading: var(--leading-xl);
168
+ --intent-body-emphasis-size: var(--text-base);
169
+ --intent-body-emphasis-weight: var(--font-weight-medium);
170
+ --intent-body-emphasis-leading: var(--leading-base);
171
+ --intent-body-default-size: var(--text-base);
172
+ --intent-body-default-weight: var(--font-weight-normal);
173
+ --intent-body-default-leading: var(--leading-base);
174
+ --intent-body-quiet-size: var(--text-sm);
175
+ --intent-body-quiet-weight: var(--font-weight-normal);
176
+ --intent-body-quiet-leading: var(--leading-sm);
177
+ --intent-caption-size: var(--text-xs);
178
+ --intent-caption-weight: var(--font-weight-normal);
179
+ --intent-caption-leading: var(--leading-xs);
180
+ --intent-numeric-size: var(--text-sm);
181
+ --intent-numeric-weight: var(--font-weight-medium);
182
+ --intent-numeric-leading: var(--leading-sm);
183
+ /* Motion axis — organic durations */
184
+ --duration-instant: 0ms;
185
+ --duration-fast: 250ms;
186
+ --duration-normal: 400ms;
187
+ --duration-slow: 600ms;
188
+ --duration-dramatic: 900ms;
189
+ /* Motion axis — emphasized easing palette */
190
+ --easing-linear: linear;
191
+ --easing-standard: cubic-bezier(0.2, 0, 0, 1);
192
+ --easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
193
+ --easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
194
+ /* Iconography axis — phosphor duotone, larger default */
195
+ --icon-family: phosphor-duotone;
196
+ --icon-default-size: 20px;
197
+ /* Elevation axis — shadowed editorial cards */
198
+ --elevation-card: var(--shadow-main);
199
+ --elevation-popover: var(--shadow-lg);
200
+ --elevation-dialog: var(--shadow-lg);
201
+ --elevation-toast: var(--shadow-main);
202
+ /* Geometry axis — soft hairlines */
203
+ --radius-container: 12px;
204
+ --radius-interactive: 10px;
205
+ --radius-pill: var(--radius-full);
206
+ --border-hairline: 1px;
207
+ --border-standard: var(--border-width);
208
+ --border-heavy: var(--border-width-thick);
209
+ }
210
+
211
+ /* ==========================================================================
212
+ * DARK MODE
213
+ * ========================================================================== */
214
+ [data-theme="gazette-dark"] {
215
+ /* Shadows - Deeper for night-mode editorial */
216
+ --shadow-none: none;
217
+ --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
218
+ --shadow-main:
219
+ 0 4px 16px rgba(0, 0, 0, 0.45), 0 2px 4px rgba(0, 0, 0, 0.25);
220
+ --shadow-lg:
221
+ 0 16px 48px rgba(0, 0, 0, 0.55), 0 6px 16px rgba(0, 0, 0, 0.3);
222
+ --shadow-inner: inset 0 1px 2px rgba(0, 0, 0, 0.4);
223
+ --shadow-hover:
224
+ 0 20px 56px rgba(0, 0, 0, 0.6), 0 8px 20px rgba(0, 0, 0, 0.35);
225
+ --shadow-active: 0 2px 8px rgba(0, 0, 0, 0.4);
226
+
227
+ /* Border radius - Soft */
228
+ --radius-none: 0px;
229
+ --radius-sm: 6px;
230
+ --radius-md: 10px;
231
+ --radius-lg: 12px;
232
+ --radius-xl: 16px;
233
+ --radius-full: 9999px;
234
+
235
+ /* Border width - Hairline */
236
+ --border-width: 1px;
237
+ --border-width-thin: 1px;
238
+ --border-width-thick: 2px;
239
+
240
+ /* Colors - Warm deep-black with rust + brighter sage */
241
+ --color-primary: #c0664a;
242
+ --color-primary-hover: #d57a5d;
243
+ --color-primary-foreground: #14110d;
244
+
245
+ --color-secondary: #8aac76;
246
+ --color-secondary-hover: #9dbf89;
247
+ --color-secondary-foreground: #14110d;
248
+
249
+ --color-accent: #c0664a;
250
+ --color-accent-foreground: #14110d;
251
+
252
+ --color-muted: #1f1a16;
253
+ --color-muted-foreground: #a89e91;
254
+
255
+ --color-background: #14110d;
256
+ --color-foreground: #f5efe6;
257
+ --color-card: #1f1a16;
258
+ --color-card-foreground: #f5efe6;
259
+ --color-surface: #1a1612;
260
+ --color-border: #2e2620;
261
+ --color-input: #2e2620;
262
+ --color-ring: #c0664a;
263
+
264
+ /* Semantic colors - Warmer for dark */
265
+ --color-error: #d96650;
266
+ --color-error-foreground: #14110d;
267
+ --color-success: #8aac76;
268
+ --color-success-foreground: #14110d;
269
+ --color-warning: #d9a85a;
270
+ --color-warning-foreground: #14110d;
271
+ --color-info: #7a9ec0;
272
+ --color-info-foreground: #14110d;
273
+
274
+ /* Typography - Editorial: serif display + Inter body + JetBrains mono */
275
+ --font-family:
276
+ "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
277
+ --font-weight-normal: 400;
278
+ --font-weight-medium: 500;
279
+ --font-weight-bold: 700;
280
+ --letter-spacing: -0.005em;
281
+ --line-height: 1.75;
282
+
283
+ /* Icon styling - Phosphor duotone, soft stroke */
284
+ --icon-stroke-width: 1.5;
285
+ --icon-color: #f5efe6;
286
+
287
+ /* Transitions - Organic */
288
+ --transition-fast: 250ms;
289
+ --transition-normal: 400ms;
290
+ --transition-slow: 600ms;
291
+ --transition-timing: cubic-bezier(0.2, 0, 0, 1);
292
+
293
+ /* Hover/Active transforms - Gentle lift */
294
+ --hover-scale: 1;
295
+ --hover-translate-y: -2px;
296
+ --hover-translate-x: 0;
297
+ --active-scale: 0.99;
298
+ --active-translate-y: 0;
299
+
300
+ /* Focus ring - Rust */
301
+ --focus-ring-width: 2px;
302
+ --focus-ring-offset: 3px;
303
+ --focus-ring-color: #c0664a;
304
+
305
+ /* Density axis — spacious 8pt rhythm */
306
+ --space-0: 0px;
307
+ --space-1: 4px;
308
+ --space-2: 8px;
309
+ --space-3: 12px;
310
+ --space-4: 16px;
311
+ --space-5: 20px;
312
+ --space-6: 24px;
313
+ --space-7: 32px;
314
+ --space-8: 40px;
315
+ --space-9: 48px;
316
+ --space-10: 56px;
317
+ --space-11: 64px;
318
+ --space-12: 80px;
319
+ /* Density axis — per-element heights (generous) */
320
+ --button-height-sm: 36px;
321
+ --button-height-md: 40px;
322
+ --button-height-lg: 44px;
323
+ --input-height-sm: 36px;
324
+ --input-height-md: 40px;
325
+ --input-height-lg: 44px;
326
+ --row-height-compact: 44px;
327
+ --row-height-normal: 56px;
328
+ --row-height-spacious: 64px;
329
+ /* Density axis — per-element padding (editorial breathing room) */
330
+ --card-padding-sm: 16px;
331
+ --card-padding-md: 24px;
332
+ --card-padding-lg: 32px;
333
+ --dialog-padding: 32px;
334
+ --section-gap: 48px;
335
+ /* Type axis — editorial family triplet */
336
+ --font-family-display: "Fraunces", "Charter", Georgia, serif;
337
+ --font-family-body:
338
+ "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
339
+ --font-family-mono:
340
+ "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
341
+ monospace;
342
+ /* Type axis — size scale (generous reading leading) */
343
+ --text-xs: 13px;
344
+ --leading-xs: 18px;
345
+ --text-sm: 14px;
346
+ --leading-sm: 22px;
347
+ --text-base: 16px;
348
+ --leading-base: 28px;
349
+ --text-lg: 19px;
350
+ --leading-lg: 30px;
351
+ --text-xl: 22px;
352
+ --leading-xl: 32px;
353
+ --text-2xl: 26px;
354
+ --leading-2xl: 34px;
355
+ --text-3xl: 30px;
356
+ --leading-3xl: 38px;
357
+ --text-4xl: 38px;
358
+ --leading-4xl: 46px;
359
+ --text-display-1: 52px;
360
+ --leading-display-1: 60px;
361
+ --text-display-2: 68px;
362
+ --leading-display-2: 76px;
363
+ /* Type axis — intent mapping (serif headlines, generous leading) */
364
+ --intent-heading-major-size: var(--text-3xl);
365
+ --intent-heading-major-weight: var(--font-weight-bold);
366
+ --intent-heading-major-leading: var(--leading-3xl);
367
+ --intent-heading-minor-size: var(--text-xl);
368
+ --intent-heading-minor-weight: var(--font-weight-bold);
369
+ --intent-heading-minor-leading: var(--leading-xl);
370
+ --intent-body-emphasis-size: var(--text-base);
371
+ --intent-body-emphasis-weight: var(--font-weight-medium);
372
+ --intent-body-emphasis-leading: var(--leading-base);
373
+ --intent-body-default-size: var(--text-base);
374
+ --intent-body-default-weight: var(--font-weight-normal);
375
+ --intent-body-default-leading: var(--leading-base);
376
+ --intent-body-quiet-size: var(--text-sm);
377
+ --intent-body-quiet-weight: var(--font-weight-normal);
378
+ --intent-body-quiet-leading: var(--leading-sm);
379
+ --intent-caption-size: var(--text-xs);
380
+ --intent-caption-weight: var(--font-weight-normal);
381
+ --intent-caption-leading: var(--leading-xs);
382
+ --intent-numeric-size: var(--text-sm);
383
+ --intent-numeric-weight: var(--font-weight-medium);
384
+ --intent-numeric-leading: var(--leading-sm);
385
+ /* Motion axis — organic durations */
386
+ --duration-instant: 0ms;
387
+ --duration-fast: 250ms;
388
+ --duration-normal: 400ms;
389
+ --duration-slow: 600ms;
390
+ --duration-dramatic: 900ms;
391
+ /* Motion axis — emphasized easing palette */
392
+ --easing-linear: linear;
393
+ --easing-standard: cubic-bezier(0.2, 0, 0, 1);
394
+ --easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
395
+ --easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
396
+ /* Iconography axis — phosphor duotone, larger default */
397
+ --icon-family: phosphor-duotone;
398
+ --icon-default-size: 20px;
399
+ /* Elevation axis — shadowed editorial cards */
400
+ --elevation-card: var(--shadow-main);
401
+ --elevation-popover: var(--shadow-lg);
402
+ --elevation-dialog: var(--shadow-lg);
403
+ --elevation-toast: var(--shadow-main);
404
+ /* Geometry axis — soft hairlines */
405
+ --radius-container: 12px;
406
+ --radius-interactive: 10px;
407
+ --radius-pill: var(--radius-full);
408
+ --border-hairline: 1px;
409
+ --border-standard: var(--border-width);
410
+ --border-heavy: var(--border-width-thick);
411
+ }
package/themes/index.css CHANGED
@@ -29,6 +29,13 @@
29
29
  @import "./arctic.css";
30
30
  @import "./copper.css";
31
31
 
32
+ /* Layer 1 skin axes — truly-unique themes (see docs/Almadar_Std_Variations.md) */
33
+ @import "./prism.css";
34
+ @import "./gazette.css";
35
+ @import "./terminal.css";
36
+ @import "./atelier.css";
37
+ @import "./kiosk.css";
38
+
32
39
  /**
33
40
  * Minimal element reset for @almadar/ui components.
34
41
  *