@warmio/design 1.0.0 → 1.2.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 (3) hide show
  1. package/README.md +9 -0
  2. package/package.json +2 -2
  3. package/theme.css +103 -1
package/README.md CHANGED
@@ -11,3 +11,12 @@ The default product typefaces are Geist and Geist Mono. The `font-editorial`
11
11
  utility uses Inter and should be reserved for deliberate editorial accents.
12
12
 
13
13
  This package has no JavaScript entry point or runtime dependencies.
14
+
15
+ ## Releases
16
+
17
+ The `1.0.0` cutover is done. Bump this `package.json` version whenever fonts, colors,
18
+ spacing, or theme tokens in this folder change, then follow
19
+ [docs/reference/DESIGN_PACKAGE.md](../../docs/reference/DESIGN_PACKAGE.md).
20
+
21
+ App uses the workspace package immediately. Chat and Warm Static stay on the last
22
+ published npm version until that release is bumped the same day.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@warmio/design",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "Warm's public CSS-only design contract.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -35,4 +35,4 @@
35
35
  "scripts": {
36
36
  "pack:check": "node ../../tools/tasks/check-design-package.mjs"
37
37
  }
38
- }
38
+ }
package/theme.css CHANGED
@@ -117,6 +117,13 @@
117
117
  oklch(from var(--warning) l calc(c + 0.08) h) 18%
118
118
  );
119
119
 
120
+ /* Finance = legible on-surface tones of WARM_COLORS.finance
121
+ (libraries/app-core/utils/colors.ts): cash=sage, debt=mauve, investment=seafoam.
122
+ Darkened from the raw palette hues so they meet AA as text on light surfaces. */
123
+ --finance-cash: oklch(0.43 0.055 128);
124
+ --finance-debt: oklch(0.45 0.09 5);
125
+ --finance-investment: oklch(0.44 0.05 200);
126
+
120
127
  /* Destructive/Error = Red (H: 30) */
121
128
  --destructive: oklch(0.55 0.12 30);
122
129
  --destructive-foreground: oklch(1 0 0);
@@ -156,6 +163,11 @@
156
163
  --glass-border: rgb(255 255 255 / 0.5);
157
164
  --backdrop-blur: rgb(0 0 0 / 0.1);
158
165
 
166
+ /* Auth coastal backdrop */
167
+ --auth-backdrop-overlay-start: oklch(0.98 0.018 300 / 0.94);
168
+ --auth-backdrop-overlay-end: oklch(0.94 0.035 266 / 0.72);
169
+ --auth-backdrop-overlay-accent: oklch(0.82 0.1 318 / 0.5);
170
+
159
171
  /* Shadows */
160
172
  --shadow-2xs: 0px 1px 2px 0px var(--overlay-subtle);
161
173
  --shadow-xs: 0px 1px 2px 0px var(--overlay-subtle);
@@ -166,7 +178,8 @@
166
178
  --shadow-xl: 0px 1px 2px 0px var(--overlay-light), 0px 8px 10px -1px var(--overlay-light);
167
179
  --shadow-2xl: 0px 1px 2px 0px var(--overlay-strong);
168
180
  --shadow-border:
169
- 0 0 0 1px var(--border), 0 1px 2px -1px var(--overlay-subtle), 0 2px 4px 0 var(--overlay-subtle);
181
+ 0 0 0 1px var(--card-edge-border, var(--border)), 0 1px 2px -1px var(--overlay-subtle),
182
+ 0 2px 4px 0 var(--overlay-subtle);
170
183
 
171
184
  /* ══════════════════════════════════════════════════════════════════════════
172
185
  NON-COLOR TOKENS (shared across all themes)
@@ -208,6 +221,26 @@
208
221
  --button-primary-border: oklch(0 0 0 / 0.18);
209
222
  --button-primary-hover: oklch(from var(--primary) calc(l + 0.08) c h);
210
223
  --button-primary-active: oklch(from var(--primary) calc(l - 0.04) c h);
224
+ --button-primary-shadow:
225
+ inset 0 1px 0 rgb(255 255 255 / 0.18), inset 0 -1px 0 rgb(0 0 0 / 0.55), 0 0 0 1px #26251f,
226
+ 0 1px 2px rgb(0 0 0 / 0.18);
227
+ --button-primary-gradient: linear-gradient(
228
+ to bottom,
229
+ #46453e 0%,
230
+ #383731 28%,
231
+ #292824 64%,
232
+ #1d1c19 100%
233
+ );
234
+ --button-primary-gradient-hover: linear-gradient(
235
+ to bottom,
236
+ #4f4e48 0%,
237
+ #42413b 28%,
238
+ #34332f 64%,
239
+ #282724 100%
240
+ );
241
+ --apple-button-background: var(--foreground);
242
+ --apple-button-foreground: var(--background);
243
+ --apple-button-hover: var(--apple-button-background);
211
244
 
212
245
  /* Form Specific */
213
246
  --input-height: 2.25rem;
@@ -234,6 +267,10 @@
234
267
  /* Card Specific */
235
268
  --card-padding: 1rem;
236
269
  --card-header-padding: 1.5rem;
270
+ --pricing-plan-min-width: 17.5rem;
271
+
272
+ /* Overlay Sizing */
273
+ --select-content-max-width: calc(100vw - var(--spacing-2xl));
237
274
 
238
275
  /* Border Radius */
239
276
  --radius: 0.5rem;
@@ -283,6 +320,10 @@
283
320
  /* Alternating section backgrounds - notably darker for visual distinction */
284
321
  --section-alt: oklch(0.2 0 0);
285
322
 
323
+ /* Date-group header band: a higher-contrast card surface so grouped date rows
324
+ read as clear section dividers in dark mode (light mode uses bg-muted/40). */
325
+ --date-group-surface: color-mix(in oklch, var(--card), white 8%);
326
+
286
327
  /* ─── Primary (brighter for dark mode) ─── */
287
328
  --primary: oklch(from var(--brand-primary) calc(l + 0.115) calc(c - 0.01) h);
288
329
  --primary-foreground: var(--background);
@@ -302,6 +343,25 @@
302
343
  --button-primary-border: oklch(1 0 0 / 0.18);
303
344
  --button-primary-hover: oklch(1 0 0);
304
345
  --button-primary-active: oklch(0.94 0 0);
346
+ --button-primary-shadow:
347
+ inset 0 1px 0 rgb(255 255 255), 0 0 0 1px rgb(0 0 0 / 0.42), 0 2px 3px rgb(0 0 0 / 0.28);
348
+ --button-primary-gradient: linear-gradient(
349
+ to bottom,
350
+ #ffffff 0%,
351
+ #f8f7f4 28%,
352
+ #f0eee9 64%,
353
+ #e4e1db 100%
354
+ );
355
+ --button-primary-gradient-hover: linear-gradient(
356
+ to bottom,
357
+ #f2f2f2 0%,
358
+ #ecebe8 28%,
359
+ #e4e2dd 64%,
360
+ #d9d6d0 100%
361
+ );
362
+ --apple-button-background: oklch(0 0 0);
363
+ --apple-button-foreground: oklch(1 0 0);
364
+ --apple-button-hover: var(--apple-button-background);
305
365
 
306
366
  /* Sidebar = solid dark surface */
307
367
  --sidebar: var(--background);
@@ -335,6 +395,11 @@
335
395
  oklch(from var(--warning) l calc(c + 0.06) h) 20%
336
396
  );
337
397
 
398
+ /* Finance (dark variants) — lightened for legibility on dark surfaces */
399
+ --finance-cash: oklch(0.74 0.06 128);
400
+ --finance-debt: oklch(0.76 0.08 5);
401
+ --finance-investment: oklch(0.73 0.05 200);
402
+
338
403
  --destructive-foreground: oklch(1 0 0);
339
404
  --error-text: oklch(0.7 0.12 30);
340
405
  --error-bg-subtle: oklch(0.2 0.05 30);
@@ -367,6 +432,11 @@
367
432
  --glass-border: rgb(255 255 255 / 0.08);
368
433
  --backdrop-blur: rgb(0 0 0 / 0.33);
369
434
 
435
+ /* Auth coastal backdrop */
436
+ --auth-backdrop-overlay-start: oklch(0.13 0.035 270 / 0.84);
437
+ --auth-backdrop-overlay-end: oklch(0.19 0.045 314 / 0.72);
438
+ --auth-backdrop-overlay-accent: oklch(0.33 0.1 318 / 0.52);
439
+
370
440
  /* Shadows (stronger in dark) */
371
441
  --shadow-2xs: 0px 1px 2px 0px var(--overlay-strong);
372
442
  --shadow-xs: 0px 1px 2px 0px var(--overlay-strong);
@@ -396,6 +466,9 @@
396
466
  /* ─── Primary (standard for light mode) ─── */
397
467
  --primary: var(--brand-primary);
398
468
  --primary-foreground: oklch(1 0 0);
469
+ --apple-button-background: var(--foreground);
470
+ --apple-button-foreground: var(--background);
471
+ --apple-button-hover: var(--apple-button-background);
399
472
 
400
473
  /* ─── Secondary/Accent ─── */
401
474
  --secondary: oklch(from var(--brand-primary) calc(l + 0.27) calc(c - 0.025) h);
@@ -407,6 +480,23 @@
407
480
  --default-button-gradient-start: oklch(1 0 0);
408
481
  --default-button-gradient-end: oklch(0.92 0 0);
409
482
  --default-button-active: oklch(0.91 0 0);
483
+ --button-primary-shadow:
484
+ inset 0 1px 0 rgb(255 255 255 / 0.18), inset 0 -1px 0 rgb(0 0 0 / 0.55), 0 0 0 1px #26251f,
485
+ 0 1px 2px rgb(0 0 0 / 0.18);
486
+ --button-primary-gradient: linear-gradient(
487
+ to bottom,
488
+ #46453e 0%,
489
+ #383731 28%,
490
+ #292824 64%,
491
+ #1d1c19 100%
492
+ );
493
+ --button-primary-gradient-hover: linear-gradient(
494
+ to bottom,
495
+ #4f4e48 0%,
496
+ #42413b 28%,
497
+ #34332f 64%,
498
+ #282724 100%
499
+ );
410
500
 
411
501
  /* Charts */
412
502
  --chart-1: var(--brand-primary);
@@ -432,6 +522,11 @@
432
522
  oklch(from var(--warning) l calc(c + 0.08) h) 18%
433
523
  );
434
524
 
525
+ /* Finance (light variants) — darkened for legibility on light surfaces */
526
+ --finance-cash: oklch(0.43 0.055 128);
527
+ --finance-debt: oklch(0.45 0.09 5);
528
+ --finance-investment: oklch(0.44 0.05 200);
529
+
435
530
  --destructive-foreground: oklch(1 0 0);
436
531
  --error-text: oklch(0.35 0.14 30);
437
532
  --error-bg-subtle: oklch(0.96 0.02 30);
@@ -488,6 +583,9 @@
488
583
  --color-popover-foreground: var(--popover-foreground);
489
584
  --color-primary: var(--primary);
490
585
  --color-primary-foreground: var(--primary-foreground);
586
+ --color-apple-button-background: var(--apple-button-background);
587
+ --color-apple-button-foreground: var(--apple-button-foreground);
588
+ --color-apple-button-hover: var(--apple-button-hover);
491
589
  --color-secondary: var(--secondary);
492
590
  --color-secondary-foreground: var(--secondary-foreground);
493
591
  --color-muted: var(--muted);
@@ -520,6 +618,9 @@
520
618
  --color-info-bg-subtle: var(--info-bg-subtle);
521
619
  --color-info-bg-muted: var(--info-bg-muted);
522
620
  --color-info-border: var(--info-border);
621
+ --color-finance-cash: var(--finance-cash);
622
+ --color-finance-debt: var(--finance-debt);
623
+ --color-finance-investment: var(--finance-investment);
523
624
 
524
625
  /* UI elements */
525
626
  --color-border: var(--border);
@@ -589,4 +690,5 @@
589
690
  --shadow-lg: var(--shadow-lg);
590
691
  --shadow-xl: var(--shadow-xl);
591
692
  --shadow-2xl: var(--shadow-2xl);
693
+ --shadow-card-edge: var(--shadow-border);
592
694
  }