@wildmason/aegis 1.5.4

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/themes.css ADDED
@@ -0,0 +1,778 @@
1
+ /* ================================================================
2
+ Aegis Design System — themes.css
3
+ Wildmason shared theme tokens for Works, Helm, Slate, Mortar.
4
+
5
+ WCAG AA / Section 508 Compliance
6
+ All token pairs in this file meet WCAG 2.1 AA requirements:
7
+ - Normal text (< 18pt / < 14pt bold): 4.5:1 minimum
8
+ - Large text and UI components: 3.0:1 minimum
9
+ (WCAG 1.4.11 Non-text Contrast — applies to --wm-border-input)
10
+
11
+ Placeholder text (--wm-text-placeholder) is intentionally lower contrast.
12
+ WCAG 2.2 Understanding 1.4.3 explicitly exempts placeholder text from
13
+ contrast requirements. Inputs MUST have a visible label; placeholder is
14
+ supplementary hint text only and must never serve as the sole label.
15
+
16
+ All tokens use the --wm- prefix. Apps should alias to local
17
+ names during migration, e.g.:
18
+ --primary-color: var(--wm-color-accent);
19
+
20
+ Token rename guide (Works → Aegis):
21
+ --bg-app → --wm-bg-base
22
+ --bg-header → --wm-bg-raised
23
+ --bg-card → --wm-bg-float
24
+ --bg-column → --wm-bg-sunken
25
+ --bg-hover → --wm-bg-hover
26
+ --text-primary → --wm-text-primary
27
+ --text-secondary → --wm-text-secondary
28
+ --text-muted → --wm-text-muted
29
+ --border-color → --wm-border
30
+ --border-subtle → --wm-border-subtle
31
+ --border-hover → --wm-border-hover
32
+ --primary-color → --wm-color-accent
33
+ --primary-hover → --wm-color-accent-hover
34
+ --success-color → --wm-color-success
35
+ --warning-color → --wm-color-warning
36
+ --danger-color → --wm-color-danger
37
+ --shadow-sm/md/lg → --wm-shadow-sm/md/lg
38
+ --radius-* → --wm-radius-*
39
+ --priority-* → --wm-priority-*
40
+ --color-task/bug/… → --wm-color-task/bug/…
41
+ --btn-*-text → --wm-color-*-text
42
+ ================================================================ */
43
+
44
+ /* ----------------------------------------------------------------
45
+ Base constants — theme-independent
46
+ ---------------------------------------------------------------- */
47
+ :root {
48
+ /* Border radius */
49
+ --wm-radius-xs: 4px;
50
+ --wm-radius-sm: 6px;
51
+ --wm-radius-md: 8px;
52
+ --wm-radius-lg: 12px;
53
+ --wm-radius-full: 9999px;
54
+
55
+ /* Motion */
56
+ --wm-transition-fast: 150ms ease;
57
+ --wm-transition-base: 200ms ease;
58
+ --wm-transition-slow: 300ms ease;
59
+
60
+ /* Typography */
61
+ --wm-font-sans: system-ui, -apple-system, 'Segoe UI', sans-serif;
62
+ --wm-font-mono: 'Cascadia Code', 'Fira Code', Consolas, 'Courier New', monospace;
63
+
64
+ /* Fixed semantic colors (not theme-dependent) */
65
+ --wm-color-critical: #7c3aed;
66
+
67
+ /* Priority opacity — overridden to 20% in dark color-scheme themes */
68
+ --wm-priority-alpha: 15%;
69
+
70
+ /* Priority tokens — computed from semantic colors at current theme scope */
71
+ --wm-priority-critical-bg: color-mix(in srgb, var(--wm-color-critical) var(--wm-priority-alpha), transparent);
72
+ --wm-priority-critical-text: var(--wm-color-critical);
73
+ --wm-priority-high-bg: color-mix(in srgb, var(--wm-color-danger) var(--wm-priority-alpha), transparent);
74
+ --wm-priority-high-text: var(--wm-color-danger);
75
+ --wm-priority-medium-bg: color-mix(in srgb, var(--wm-color-warning) var(--wm-priority-alpha), transparent);
76
+ --wm-priority-medium-text: var(--wm-color-warning);
77
+ --wm-priority-low-bg: color-mix(in srgb, var(--wm-color-success) var(--wm-priority-alpha), transparent);
78
+ --wm-priority-low-text: var(--wm-color-success);
79
+
80
+ /* Modal backdrop — opacity set per-theme via --wm-backdrop-opacity */
81
+ --wm-modal-backdrop: rgba(0, 0, 0, var(--wm-backdrop-opacity));
82
+
83
+ /* Derived tokens — computed at scope, valid for all themes */
84
+ --wm-bg-active: color-mix(in srgb, var(--wm-color-accent) 10%, transparent);
85
+ --wm-color-danger-bg: color-mix(in srgb, var(--wm-color-danger) 8%, transparent);
86
+ --wm-color-danger-border: color-mix(in srgb, var(--wm-color-danger) 25%, transparent);
87
+ --wm-color-success-bg: color-mix(in srgb, var(--wm-color-success) 8%, transparent);
88
+ --wm-color-success-border:color-mix(in srgb, var(--wm-color-success) 25%, transparent);
89
+ --wm-color-warning-bg: color-mix(in srgb, var(--wm-color-warning) 8%, transparent);
90
+ --wm-color-warning-border:color-mix(in srgb, var(--wm-color-warning) 25%, transparent);
91
+ }
92
+
93
+
94
+ /* ================================================================
95
+ Warm Light (Default)
96
+ ================================================================ */
97
+ :root,
98
+ [data-theme='warm-light'] {
99
+ color-scheme: light;
100
+
101
+ /* Surfaces */
102
+ --wm-bg-base: #ececea;
103
+ --wm-bg-raised: #e1e1de;
104
+ --wm-bg-float: #d2d2ce;
105
+ --wm-bg-sunken: #f9f9f8;
106
+ --wm-bg-hover: #f4f4f3;
107
+ --wm-bg-foreground: #c4c4c0;
108
+
109
+ /* Text */
110
+ --wm-text-primary: #002b36;
111
+ --wm-text-secondary: #073642;
112
+ --wm-text-muted: #525e64;
113
+ --wm-text-placeholder: #8d9fa6;
114
+
115
+ /* Borders */
116
+ --wm-border: #eee8d5;
117
+ --wm-border-subtle: #d6cdb7;
118
+ --wm-border-hover: #268bd2;
119
+ --wm-border-input: #7a7460;
120
+
121
+ /* Accent */
122
+ --wm-color-accent: #1b6ca5;
123
+ --wm-color-accent-hover: #2aa198;
124
+ --wm-color-accent-text: #ffffff;
125
+
126
+ /* Semantic */
127
+ --wm-color-success: #586900;
128
+ --wm-color-warning: #856600;
129
+ --wm-color-danger: #bd2c29;
130
+
131
+ /* Item type colors (Works-specific) */
132
+ --wm-color-task: #1b6ca5;
133
+ --wm-color-bug: #bd2c29;
134
+ --wm-color-story: #586900;
135
+ --wm-color-epic: #4e53a2;
136
+ --wm-color-initiative: #9b3a10;
137
+ --wm-color-completed: #1e7a71;
138
+ --wm-color-epic-text: #ffffff;
139
+ --wm-color-initiative-text: #ffffff;
140
+
141
+ /* Shadows */
142
+ --wm-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.08);
143
+ --wm-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.12);
144
+ --wm-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.12);
145
+
146
+ /* Overlay */
147
+ --wm-backdrop-opacity: 0.35;
148
+
149
+ /* Syntax highlighting */
150
+ --wm-syntax-keyword: #859900;
151
+ --wm-syntax-string: #2aa198;
152
+ --wm-syntax-comment: #93a1a1;
153
+ --wm-syntax-number: #d33682;
154
+ --wm-syntax-function: #268bd2;
155
+ --wm-syntax-type: #b58900;
156
+ --wm-syntax-variable: #cb4b16;
157
+ --wm-syntax-attr: #b58900;
158
+ --wm-syntax-builtin: #6c71c4;
159
+ }
160
+
161
+
162
+ /* ================================================================
163
+ Neutral Light
164
+ ================================================================ */
165
+ [data-theme='neutral-light'] {
166
+ color-scheme: light;
167
+
168
+ /* Surfaces */
169
+ --wm-bg-base: #ebebeb;
170
+ --wm-bg-raised: #e0e0e0;
171
+ --wm-bg-float: #d0d0d0;
172
+ --wm-bg-sunken: #f8f8f8;
173
+ --wm-bg-hover: #f3f3f3;
174
+ --wm-bg-foreground: #bababa;
175
+
176
+ /* Text */
177
+ --wm-text-primary: #111111;
178
+ --wm-text-secondary: #333333;
179
+ --wm-text-muted: #666666;
180
+ --wm-text-placeholder: #999999;
181
+
182
+ /* Borders */
183
+ --wm-border: #cccccc;
184
+ --wm-border-subtle: #dddddd;
185
+ --wm-border-hover: #888888;
186
+ --wm-border-input: #7d7d7d;
187
+
188
+ /* Accent */
189
+ --wm-color-accent: #2e5fba;
190
+ --wm-color-accent-hover: #3061af;
191
+ --wm-color-accent-text: #ffffff;
192
+
193
+ /* Semantic */
194
+ --wm-color-success: #0a7065;
195
+ --wm-color-warning: #b45309;
196
+ --wm-color-danger: #dc2626;
197
+
198
+ /* Item type colors */
199
+ --wm-color-task: #2563eb;
200
+ --wm-color-bug: #dc2626;
201
+ --wm-color-story: #059669;
202
+ --wm-color-epic: #7c3aed;
203
+ --wm-color-initiative: #c2410c;
204
+ --wm-color-completed: #6366f1;
205
+ --wm-color-epic-text: #ffffff;
206
+ --wm-color-initiative-text: #ffffff;
207
+
208
+ /* Shadows */
209
+ --wm-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06);
210
+ --wm-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
211
+ --wm-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.12);
212
+
213
+ /* Overlay */
214
+ --wm-backdrop-opacity: 0.35;
215
+
216
+ /* Syntax highlighting */
217
+ --wm-syntax-keyword: #a626a4;
218
+ --wm-syntax-string: #50a14f;
219
+ --wm-syntax-comment: #a0a1a7;
220
+ --wm-syntax-number: #986801;
221
+ --wm-syntax-function: #4078f2;
222
+ --wm-syntax-type: #c18401;
223
+ --wm-syntax-variable: #e45649;
224
+ --wm-syntax-attr: #986801;
225
+ --wm-syntax-builtin: #0184bc;
226
+ }
227
+
228
+
229
+ /* ================================================================
230
+ Arctic Night
231
+ ================================================================ */
232
+ [data-theme='arctic-night'] {
233
+ color-scheme: dark;
234
+ --wm-priority-alpha: 20%;
235
+ --wm-priority-critical-text: color-mix(in srgb, var(--wm-color-critical) 85%, white);
236
+
237
+ /* Surfaces */
238
+ --wm-bg-sunken: #242933;
239
+ --wm-bg-base: #2e3440;
240
+ --wm-bg-raised: #3b4252;
241
+ --wm-bg-float: #434c5e;
242
+ --wm-bg-hover: #4c566a;
243
+ --wm-bg-foreground: #535e6e;
244
+
245
+ /* Text */
246
+ --wm-text-primary: #eceff4;
247
+ --wm-text-secondary: #e5e9f0;
248
+ --wm-text-muted: #d8dee9;
249
+ --wm-text-placeholder: #adb9cb;
250
+
251
+ /* Borders */
252
+ --wm-border: #4c566a;
253
+ --wm-border-subtle: #434c5e;
254
+ --wm-border-hover: #88c0d0;
255
+ --wm-border-input: #8e9aa9;
256
+
257
+ /* Accent — light teal requires dark text */
258
+ --wm-color-accent: #8fc4d3;
259
+ --wm-color-accent-hover: #81a1c1;
260
+ --wm-color-accent-text: #2e3440;
261
+
262
+ /* Semantic */
263
+ --wm-color-success: #a3be8c;
264
+ --wm-color-warning: #ebcb8b;
265
+ --wm-color-danger: #bf616a;
266
+
267
+ /* Item type colors */
268
+ --wm-color-task: #88c0d0;
269
+ --wm-color-bug: #bf616a;
270
+ --wm-color-story: #a3be8c;
271
+ --wm-color-epic: #b48ead;
272
+ --wm-color-initiative: #ebcb8b;
273
+ --wm-color-completed: #81a1c1;
274
+ --wm-color-epic-text: #2e3440;
275
+ --wm-color-initiative-text: #2e3440;
276
+
277
+ /* Shadows */
278
+ --wm-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2);
279
+ --wm-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.3);
280
+ --wm-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.4);
281
+
282
+ /* Overlay */
283
+ --wm-backdrop-opacity: 0.5;
284
+
285
+ /* Syntax highlighting */
286
+ --wm-syntax-keyword: #81a1c1;
287
+ --wm-syntax-string: #a3be8c;
288
+ --wm-syntax-comment: #616e88;
289
+ --wm-syntax-number: #b48ead;
290
+ --wm-syntax-function: #88c0d0;
291
+ --wm-syntax-type: #8fbcbb;
292
+ --wm-syntax-variable: #d08770;
293
+ --wm-syntax-attr: #8fbcbb;
294
+ --wm-syntax-builtin: #81a1c1;
295
+ }
296
+
297
+
298
+
299
+
300
+ /* ================================================================
301
+ Vampire's Kiss
302
+ ================================================================ */
303
+ [data-theme='vampires-kiss'] {
304
+ color-scheme: dark;
305
+ --wm-priority-alpha: 20%;
306
+ --wm-priority-critical-text: color-mix(in srgb, var(--wm-color-critical) 85%, white);
307
+
308
+ /* Surfaces */
309
+ --wm-bg-sunken: #16171e;
310
+ --wm-bg-base: #21222c;
311
+ --wm-bg-raised: #282a36;
312
+ --wm-bg-float: #44475a;
313
+ --wm-bg-hover: #6272a4;
314
+ --wm-bg-foreground: #525568;
315
+
316
+ /* Text */
317
+ --wm-text-primary: #f8f8f2;
318
+ --wm-text-secondary: #d6acff;
319
+ --wm-text-muted: #c5cedd;
320
+ --wm-text-placeholder: #8b93a8;
321
+
322
+ /* Borders */
323
+ --wm-border: #6272a4;
324
+ --wm-border-subtle: #44475a;
325
+ --wm-border-hover: #ff79c6;
326
+ --wm-border-input: #8694b1;
327
+
328
+ /* Accent — slightly lighter than canonical purple for card contrast */
329
+ --wm-color-accent: #c9a7fa;
330
+ --wm-color-accent-hover: #ff79c6;
331
+ --wm-color-accent-text: #282a36;
332
+
333
+ /* Semantic */
334
+ --wm-color-success: #50fa7b;
335
+ --wm-color-warning: #f1fa8c;
336
+ --wm-color-danger: #ff5555;
337
+
338
+ /* Item type colors */
339
+ --wm-color-task: #8be9fd;
340
+ --wm-color-bug: #ff5555;
341
+ --wm-color-story: #50fa7b;
342
+ --wm-color-epic: #bd93f9;
343
+ --wm-color-initiative: #ffb86c;
344
+ --wm-color-completed: #bd93f9;
345
+ --wm-color-epic-text: #282a36;
346
+ --wm-color-initiative-text: #282a36;
347
+
348
+ /* Shadows */
349
+ --wm-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.4);
350
+ --wm-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.5);
351
+ --wm-shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.6);
352
+
353
+ /* Overlay */
354
+ --wm-backdrop-opacity: 0.5;
355
+
356
+ /* Syntax highlighting */
357
+ --wm-syntax-keyword: #ff79c6;
358
+ --wm-syntax-string: #f1fa8c;
359
+ --wm-syntax-comment: #6272a4;
360
+ --wm-syntax-number: #bd93f9;
361
+ --wm-syntax-function: #50fa7b;
362
+ --wm-syntax-type: #8be9fd;
363
+ --wm-syntax-variable: #ffb86c;
364
+ --wm-syntax-attr: #50fa7b;
365
+ --wm-syntax-builtin: #8be9fd;
366
+ }
367
+
368
+
369
+ /* ================================================================
370
+ Twilight Peach
371
+ ================================================================ */
372
+ [data-theme='twilight-peach'] {
373
+ color-scheme: dark;
374
+ --wm-priority-alpha: 20%;
375
+ --wm-priority-critical-text: color-mix(in srgb, var(--wm-color-critical) 85%, white);
376
+
377
+ /* Surfaces */
378
+ --wm-bg-sunken: #020617;
379
+ --wm-bg-base: #171827;
380
+ --wm-bg-raised: #201e37;
381
+ --wm-bg-float: #292a48;
382
+ --wm-bg-hover: #32334e;
383
+ --wm-bg-foreground: #3c3d5e;
384
+
385
+ /* Text */
386
+ --wm-text-primary: #eeedf8;
387
+ --wm-text-secondary: #a9a8c0;
388
+ --wm-text-muted: #9898b4;
389
+ --wm-text-placeholder: #4a4962;
390
+
391
+ /* Borders */
392
+ --wm-border: #565888;
393
+ --wm-border-subtle: #353758;
394
+ --wm-border-hover: #6468a0;
395
+ --wm-border-input: #797ba0;
396
+
397
+ /* Accent — warm peach */
398
+ --wm-color-accent: #f5986a;
399
+ --wm-color-accent-hover: #f08458;
400
+ --wm-color-accent-text: #1c1d2e;
401
+
402
+ /* Semantic */
403
+ --wm-color-success: #5cbfa0;
404
+ --wm-color-warning: #f0b464;
405
+ --wm-color-danger: #f07878;
406
+
407
+ /* Item type colors */
408
+ --wm-color-task: #70a8f0;
409
+ --wm-color-bug: #f07878;
410
+ --wm-color-story: #5cbfa0;
411
+ --wm-color-epic: #b090e8;
412
+ --wm-color-initiative: #f0b464;
413
+ --wm-color-completed: #9090d8;
414
+ --wm-color-epic-text: #ffffff;
415
+ --wm-color-initiative-text: #1c1d2e;
416
+
417
+ /* Shadows */
418
+ --wm-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.5);
419
+ --wm-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.6);
420
+ --wm-shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.7);
421
+
422
+ /* Overlay */
423
+ --wm-backdrop-opacity: 0.55;
424
+
425
+ /* Syntax highlighting */
426
+ --wm-syntax-keyword: #c78ed4;
427
+ --wm-syntax-string: #98c87a;
428
+ --wm-syntax-comment: #6b6a82;
429
+ --wm-syntax-number: #f0b464;
430
+ --wm-syntax-function: #80c0e8;
431
+ --wm-syntax-type: #e5c480;
432
+ --wm-syntax-variable: #f5986a;
433
+ --wm-syntax-attr: #d4a870;
434
+ --wm-syntax-builtin: #70c0c8;
435
+ }
436
+
437
+
438
+ /* ================================================================
439
+ Thistle & Mocha
440
+ ================================================================ */
441
+ [data-theme='thistle-mocha'] {
442
+ color-scheme: dark;
443
+ --wm-priority-alpha: 20%;
444
+ --wm-priority-critical-text: color-mix(in srgb, var(--wm-color-critical) 85%, white);
445
+
446
+ /* Surfaces — warm near-black mocha family */
447
+ --wm-bg-base: #221918;
448
+ --wm-bg-raised: #382e2c;
449
+ --wm-bg-float: #403635;
450
+ --wm-bg-sunken: #151310;
451
+ --wm-bg-hover: #2c2822;
452
+ --wm-bg-foreground: #514240;
453
+
454
+ /* Text — warm cream */
455
+ --wm-text-primary: #ede9e1;
456
+ --wm-text-secondary: #ada598;
457
+ --wm-text-muted: #a09890;
458
+ --wm-text-placeholder: #4a4540;
459
+
460
+ /* Borders */
461
+ --wm-border: #2e2820;
462
+ --wm-border-subtle: #241e18;
463
+ --wm-border-hover: #504840;
464
+ --wm-border-input: #8a7670;
465
+
466
+ /* Accent — thistle (muted lavender) */
467
+ --wm-color-accent: #c4a8d8;
468
+ --wm-color-accent-hover: #9e7abf;
469
+ --wm-color-accent-text: #1a1715;
470
+
471
+ /* Semantic */
472
+ --wm-color-success: #7ac4a0;
473
+ --wm-color-warning: #d4a85a;
474
+ --wm-color-danger: #e07878;
475
+
476
+ /* Item type colors */
477
+ --wm-color-task: #80a8e0;
478
+ --wm-color-bug: #e07878;
479
+ --wm-color-story: #7ac4a0;
480
+ --wm-color-epic: #b090d8;
481
+ --wm-color-initiative: #d4a85a;
482
+ --wm-color-completed: #9890c8;
483
+ --wm-color-epic-text: #1a1715;
484
+ --wm-color-initiative-text: #1a1715;
485
+
486
+ /* Shadows */
487
+ --wm-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.6);
488
+ --wm-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.7);
489
+ --wm-shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.8);
490
+
491
+ /* Overlay */
492
+ --wm-backdrop-opacity: 0.6;
493
+
494
+ /* Syntax highlighting */
495
+ --wm-syntax-keyword: #d8a8c4;
496
+ --wm-syntax-string: #a0c890;
497
+ --wm-syntax-comment: #6e6660;
498
+ --wm-syntax-number: #d4a85a;
499
+ --wm-syntax-function: #90b8d8;
500
+ --wm-syntax-type: #d8c890;
501
+ --wm-syntax-variable: #c4a8d8;
502
+ --wm-syntax-attr: #c8a870;
503
+ --wm-syntax-builtin: #80c4b8;
504
+ }
505
+
506
+
507
+ /* ================================================================
508
+ Solarized Precision
509
+ ================================================================ */
510
+ [data-theme='solarized-precision'] {
511
+ color-scheme: light;
512
+
513
+ /* Surfaces — warm cream base, distinct tan surface, clean white cards */
514
+ --wm-bg-base: #ede7d2;
515
+ --wm-bg-raised: #e2d8bc;
516
+ --wm-bg-float: #d4cba8;
517
+ --wm-bg-sunken: #f1e8dd;
518
+ --wm-bg-hover: #ede5cc;
519
+ --wm-bg-foreground: #c6be96;
520
+
521
+ /* Text — solarized blue-gray family */
522
+ --wm-text-primary: #2c3e48;
523
+ --wm-text-secondary: #4e6470;
524
+ --wm-text-muted: #455868;
525
+ --wm-text-placeholder: #a8b8be;
526
+
527
+ /* Borders */
528
+ --wm-border: #cec6aa;
529
+ --wm-border-subtle: #dad4bc;
530
+ --wm-border-hover: #8c9ea8;
531
+ --wm-border-input: #688090;
532
+
533
+ /* Accent — precision teal-blue */
534
+ --wm-color-accent: #185c78;
535
+ --wm-color-accent-hover: #1e6e96;
536
+ --wm-color-accent-text: #ffffff;
537
+
538
+ /* Semantic */
539
+ --wm-color-success: #218a5c;
540
+ --wm-color-warning: #9a6800;
541
+ --wm-color-danger: #c4302c;
542
+
543
+ /* Item type colors */
544
+ --wm-color-task: #1e6ea8;
545
+ --wm-color-bug: #c4302c;
546
+ --wm-color-story: #218a5c;
547
+ --wm-color-epic: #6a38aa;
548
+ --wm-color-initiative: #9a5800;
549
+ --wm-color-completed: #4a6ea8;
550
+ --wm-color-epic-text: #ffffff;
551
+ --wm-color-initiative-text: #ffffff;
552
+
553
+ /* Shadows — light theme, warm-tinted */
554
+ --wm-shadow-sm: 0 1px 2px rgba(44, 62, 72, 0.08);
555
+ --wm-shadow-md: 0 4px 8px rgba(44, 62, 72, 0.12);
556
+ --wm-shadow-lg: 0 10px 20px rgba(44, 62, 72, 0.15);
557
+
558
+ /* Overlay */
559
+ --wm-backdrop-opacity: 0.35;
560
+
561
+ /* Syntax — solarized light palette */
562
+ --wm-syntax-keyword: #859900;
563
+ --wm-syntax-string: #2aa198;
564
+ --wm-syntax-comment: #93a1a1;
565
+ --wm-syntax-number: #d48600;
566
+ --wm-syntax-function: #268bd2;
567
+ --wm-syntax-type: #b58900;
568
+ --wm-syntax-variable: #cb4b16;
569
+ --wm-syntax-attr: #b58900;
570
+ --wm-syntax-builtin: #2aa198;
571
+ }
572
+
573
+
574
+ /* ================================================================
575
+ Posh Sandalwood
576
+ ================================================================ */
577
+ [data-theme='posh-sandalwood'] {
578
+ color-scheme: dark;
579
+ --wm-priority-alpha: 20%;
580
+ --wm-priority-critical-text: color-mix(in srgb, var(--wm-color-critical) 85%, white);
581
+
582
+ /* Surfaces — warm olive-brown, sunken=darkest, float=lightest */
583
+ --wm-bg-sunken: #1c1c15;
584
+ --wm-bg-base: #27271f;
585
+ --wm-bg-raised: #333028;
586
+ --wm-bg-float: #403c30;
587
+ --wm-bg-hover: #4a4538;
588
+ --wm-bg-foreground: #524e3e;
589
+
590
+ /* Text — sandalwood cream palette */
591
+ --wm-text-primary: #fdf0e0;
592
+ --wm-text-secondary: #c5b59b;
593
+ --wm-text-muted: #b8a690;
594
+ --wm-text-placeholder: #5a5040;
595
+
596
+ /* Borders */
597
+ --wm-border: #3a3828;
598
+ --wm-border-subtle: #2e2c22;
599
+ --wm-border-hover: #f92672;
600
+ --wm-border-input: #877567;
601
+
602
+ /* Accent — Monokai hot pink */
603
+ --wm-color-accent: #f92672;
604
+ --wm-color-accent-hover: #fd971f;
605
+ --wm-color-accent-text: #1c1c15;
606
+
607
+ /* Semantic */
608
+ --wm-color-success: #a6e22e;
609
+ --wm-color-warning: #fd971f;
610
+ --wm-color-danger: #f92672;
611
+
612
+ /* Item type colors */
613
+ --wm-color-task: #66d9ef;
614
+ --wm-color-bug: #f92672;
615
+ --wm-color-story: #a6e22e;
616
+ --wm-color-epic: #ae81ff;
617
+ --wm-color-initiative: #fd971f;
618
+ --wm-color-completed: #a6e22e;
619
+ --wm-color-epic-text: #1c1c15;
620
+ --wm-color-initiative-text: #1c1c15;
621
+
622
+ /* Shadows */
623
+ --wm-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.5);
624
+ --wm-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.6);
625
+ --wm-shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.7);
626
+
627
+ /* Overlay */
628
+ --wm-backdrop-opacity: 0.5;
629
+
630
+ /* Syntax highlighting — full Monokai palette on warm surfaces */
631
+ --wm-syntax-keyword: #f92672;
632
+ --wm-syntax-string: #e6db74;
633
+ --wm-syntax-comment: #75715e;
634
+ --wm-syntax-number: #ae81ff;
635
+ --wm-syntax-function: #a6e22e;
636
+ --wm-syntax-type: #66d9ef;
637
+ --wm-syntax-variable: #fd971f;
638
+ --wm-syntax-attr: #a6e22e;
639
+ --wm-syntax-builtin: #66d9ef;
640
+ }
641
+
642
+
643
+ /* ================================================================
644
+ Crepuscular Sky
645
+ ================================================================ */
646
+ [data-theme='crepuscular-sky'] {
647
+ color-scheme: dark;
648
+ --wm-priority-alpha: 20%;
649
+ --wm-priority-critical-text: color-mix(in srgb, var(--wm-color-critical) 85%, white);
650
+
651
+ /* Surfaces — deep navy, sunken=darkest, float=lightest */
652
+ --wm-bg-sunken: #060810;
653
+ --wm-bg-base: #121523;
654
+ --wm-bg-raised: #131a28;
655
+ --wm-bg-float: #1d2338;
656
+ --wm-bg-hover: #252c44;
657
+ --wm-bg-foreground: #2d3654;
658
+
659
+ /* Text — pale warm cream, stepping through amber to cool blue-grey */
660
+ --wm-text-primary: #edd9a3;
661
+ --wm-text-secondary: #ba9d7a;
662
+ --wm-text-muted: #9083a0;
663
+ --wm-text-placeholder: #3d4d68;
664
+
665
+ /* Borders */
666
+ --wm-border: #202a40;
667
+ --wm-border-subtle: #54575c;
668
+ --wm-border-hover: #e8920a;
669
+ --wm-border-input: #5a6888;
670
+
671
+ /* Accent — golden orange, the crepuscular ray color */
672
+ --wm-color-accent: #c09d06;
673
+ --wm-color-accent-hover: #b15000;
674
+ --wm-color-accent-text: #060810;
675
+
676
+ /* Semantic */
677
+ --wm-color-success: #4aba80;
678
+ --wm-color-warning: #d4830a;
679
+ --wm-color-danger: #e05c5c;
680
+
681
+ /* Item type colors */
682
+ --wm-color-task: #8ab4d8;
683
+ --wm-color-bug: #e05c5c;
684
+ --wm-color-story: #4aba80;
685
+ --wm-color-epic: #c08ae0;
686
+ --wm-color-initiative: #e8920a;
687
+ --wm-color-completed: #7bb8a8;
688
+ --wm-color-epic-text: #ffffff;
689
+ --wm-color-initiative-text: #060810;
690
+
691
+ /* Shadows */
692
+ --wm-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.6);
693
+ --wm-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.7);
694
+ --wm-shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.8);
695
+
696
+ /* Overlay */
697
+ --wm-backdrop-opacity: 0.6;
698
+
699
+ /* Syntax highlighting — warm golden with reddish-purple accents */
700
+ --wm-syntax-keyword: #d4830a;
701
+ --wm-syntax-string: #edd9a3;
702
+ --wm-syntax-comment: #4a5a7a;
703
+ --wm-syntax-number: #e05c8a;
704
+ --wm-syntax-function: #8ab4d8;
705
+ --wm-syntax-type: #c0986a;
706
+ --wm-syntax-variable: #e05c5c;
707
+ --wm-syntax-attr: #d4830a;
708
+ --wm-syntax-builtin: #9b6bcc;
709
+ }
710
+
711
+
712
+ /* ================================================================
713
+ Source Control Dark
714
+ ================================================================ */
715
+ [data-theme='source-control-dark'] {
716
+ color-scheme: dark;
717
+ --wm-priority-alpha: 20%;
718
+ --wm-priority-critical-text: color-mix(in srgb, var(--wm-color-critical) 85%, white);
719
+
720
+ /* Surfaces */
721
+ --wm-bg-base: #0d1117;
722
+ --wm-bg-raised: #161b22;
723
+ --wm-bg-float: #21262d;
724
+ --wm-bg-sunken: #010409;
725
+ --wm-bg-hover: #262c36;
726
+ --wm-bg-foreground: #313b45;
727
+
728
+ /* Text */
729
+ --wm-text-primary: #f0f6fc;
730
+ --wm-text-secondary: #c9d1d9;
731
+ --wm-text-muted: #9198a1;
732
+ --wm-text-placeholder: #636c76;
733
+
734
+ /* Borders */
735
+ --wm-border: #444c56;
736
+ --wm-border-subtle: #30363d;
737
+ --wm-border-hover: #58a6ff;
738
+ --wm-border-input: #6a6f76;
739
+
740
+ /* Accent — medium green, needs dark text for contrast */
741
+ --wm-color-accent: #3fb950;
742
+ --wm-color-accent-hover: #58a6ff;
743
+ --wm-color-accent-text: #0d1117;
744
+
745
+ /* Semantic */
746
+ --wm-color-success: #3fb950;
747
+ --wm-color-warning: #d29922;
748
+ --wm-color-danger: #f85149;
749
+
750
+ /* Item type colors */
751
+ --wm-color-task: #58a6ff;
752
+ --wm-color-bug: #f85149;
753
+ --wm-color-story: #3fb950;
754
+ --wm-color-epic: #bc8cff;
755
+ --wm-color-initiative: #d29922;
756
+ --wm-color-completed: #3fb950;
757
+ --wm-color-epic-text: #ffffff;
758
+ --wm-color-initiative-text: #ffffff;
759
+
760
+ /* Shadows */
761
+ --wm-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.5);
762
+ --wm-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.6);
763
+ --wm-shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.7);
764
+
765
+ /* Overlay */
766
+ --wm-backdrop-opacity: 0.5;
767
+
768
+ /* Syntax highlighting */
769
+ --wm-syntax-keyword: #ff7b72;
770
+ --wm-syntax-string: #a5d6ff;
771
+ --wm-syntax-comment: #8b949e;
772
+ --wm-syntax-number: #79c0ff;
773
+ --wm-syntax-function: #d2a8ff;
774
+ --wm-syntax-type: #ffa657;
775
+ --wm-syntax-variable: #ffa657;
776
+ --wm-syntax-attr: #79c0ff;
777
+ --wm-syntax-builtin: #79c0ff;
778
+ }