@ttt-productions/theme-core 0.1.20 → 0.1.23
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/dist/styles/base.css +8 -11
- package/dist/styles/components.css +53 -53
- package/dist/styles/contract.css +25 -25
- package/dist/styles/hooks.css +91 -92
- package/dist/styles/tokens.css +73 -74
- package/package.json +1 -1
package/dist/styles/base.css
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
1
|
+
html, body {
|
|
2
|
+
background-color: hsl(var(--background));
|
|
3
|
+
color: hsl(var(--foreground));
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
* {
|
|
7
|
+
border-color: hsl(var(--border));
|
|
8
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
@layer components {
|
|
2
2
|
/* =========================================================
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
FOUNDATIONS (icon + layout bundles) — replaces inline utils
|
|
4
|
+
========================================================= */
|
|
5
5
|
|
|
6
6
|
/* Icons */
|
|
7
7
|
.icon-xxs { @apply h-3 w-3; }
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
.stack-6 { @apply space-y-6; }
|
|
35
35
|
|
|
36
36
|
/* =========================================================
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
PAGE LAYOUT
|
|
38
|
+
========================================================= */
|
|
39
39
|
.page-container {
|
|
40
40
|
@apply flex-1 w-full mx-auto py-4;
|
|
41
41
|
}
|
|
@@ -65,8 +65,8 @@
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
/* =========================================================
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
TYPOGRAPHY (high-level)
|
|
69
|
+
========================================================= */
|
|
70
70
|
.text-body {
|
|
71
71
|
@apply text-sm font-medium;
|
|
72
72
|
color: hsl(var(--foreground));
|
|
@@ -136,16 +136,16 @@
|
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
/* =========================================================
|
|
139
|
-
|
|
140
|
-
|
|
139
|
+
LINKS
|
|
140
|
+
========================================================= */
|
|
141
141
|
.auth-link {
|
|
142
142
|
@apply text-sm underline font-semibold;
|
|
143
143
|
color: hsl(var(--primary));
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
/* =========================================================
|
|
147
|
-
|
|
148
|
-
|
|
147
|
+
CHAT
|
|
148
|
+
========================================================= */
|
|
149
149
|
.chat-date-separator {
|
|
150
150
|
@apply text-xs font-bold bg-muted px-3 py-1 rounded-full;
|
|
151
151
|
color: hsl(var(--foreground));
|
|
@@ -192,20 +192,20 @@
|
|
|
192
192
|
.screen-adaptive-root {
|
|
193
193
|
@apply flex flex-1 flex-col w-full;
|
|
194
194
|
}
|
|
195
|
-
|
|
195
|
+
|
|
196
196
|
.screen-adaptive-inner {
|
|
197
197
|
@apply mx-auto w-full;
|
|
198
198
|
}
|
|
199
|
-
|
|
199
|
+
|
|
200
200
|
/* Max width variants */
|
|
201
201
|
.screen-max-w-none { max-width: none; }
|
|
202
202
|
.screen-max-w-full { max-width: 100%; }
|
|
203
|
-
|
|
203
|
+
|
|
204
204
|
.screen-max-w-sm { max-width: 24rem; } /* 384px */
|
|
205
205
|
.screen-max-w-md { max-width: 28rem; } /* 448px */
|
|
206
206
|
.screen-max-w-lg { max-width: 32rem; } /* 512px */
|
|
207
207
|
.screen-max-w-xl { max-width: 36rem; } /* 576px */
|
|
208
|
-
|
|
208
|
+
|
|
209
209
|
.screen-max-w-2xl { max-width: 42rem; } /* 672px */
|
|
210
210
|
.screen-max-w-3xl { max-width: 48rem; } /* 768px */
|
|
211
211
|
.screen-max-w-4xl { max-width: 56rem; } /* 896px */
|
|
@@ -214,8 +214,8 @@
|
|
|
214
214
|
.screen-max-w-7xl { max-width: 80rem; } /* 1280px */
|
|
215
215
|
|
|
216
216
|
/* =========================================================
|
|
217
|
-
|
|
218
|
-
|
|
217
|
+
RULE CARDS
|
|
218
|
+
========================================================= */
|
|
219
219
|
.rule-card {
|
|
220
220
|
@apply p-4 rounded-lg border-2 border-border bg-card;
|
|
221
221
|
}
|
|
@@ -231,8 +231,8 @@
|
|
|
231
231
|
}
|
|
232
232
|
|
|
233
233
|
/* =========================================================
|
|
234
|
-
|
|
235
|
-
|
|
234
|
+
ACCORDION
|
|
235
|
+
========================================================= */
|
|
236
236
|
.accordion-trigger {
|
|
237
237
|
@apply p-6 hover:no-underline rounded-t-lg;
|
|
238
238
|
}
|
|
@@ -253,8 +253,8 @@
|
|
|
253
253
|
}
|
|
254
254
|
|
|
255
255
|
/* =========================================================
|
|
256
|
-
|
|
257
|
-
|
|
256
|
+
DETAILS (nested accordions)
|
|
257
|
+
========================================================= */
|
|
258
258
|
.details-summary {
|
|
259
259
|
@apply flex items-center justify-between cursor-pointer list-none p-4 rounded-lg border-2 border-border bg-card transition-all;
|
|
260
260
|
}
|
|
@@ -285,16 +285,16 @@
|
|
|
285
285
|
}
|
|
286
286
|
|
|
287
287
|
/* =========================================================
|
|
288
|
-
|
|
289
|
-
|
|
288
|
+
AGREEMENT LIST ITEMS
|
|
289
|
+
========================================================= */
|
|
290
290
|
.agreement-list-item {
|
|
291
291
|
@apply flex gap-2 text-sm font-bold;
|
|
292
292
|
color: hsl(var(--muted-foreground));
|
|
293
293
|
}
|
|
294
294
|
|
|
295
295
|
/* =========================================================
|
|
296
|
-
|
|
297
|
-
|
|
296
|
+
FUTURE PLANS / MEDIA
|
|
297
|
+
========================================================= */
|
|
298
298
|
.future-plan-description {
|
|
299
299
|
@apply text-base whitespace-pre-wrap leading-relaxed max-w-prose font-bold;
|
|
300
300
|
color: hsl(var(--muted-foreground));
|
|
@@ -323,8 +323,8 @@
|
|
|
323
323
|
}
|
|
324
324
|
|
|
325
325
|
/* =========================================================
|
|
326
|
-
|
|
327
|
-
|
|
326
|
+
INFO SECTIONS
|
|
327
|
+
========================================================= */
|
|
328
328
|
.info-section {
|
|
329
329
|
@apply flex items-start gap-4;
|
|
330
330
|
}
|
|
@@ -355,8 +355,8 @@
|
|
|
355
355
|
}
|
|
356
356
|
|
|
357
357
|
/* =========================================================
|
|
358
|
-
|
|
359
|
-
|
|
358
|
+
ATTRIBUTION SECTIONS
|
|
359
|
+
========================================================= */
|
|
360
360
|
.attribution-item {
|
|
361
361
|
@apply flex items-start gap-4;
|
|
362
362
|
}
|
|
@@ -382,8 +382,8 @@
|
|
|
382
382
|
}
|
|
383
383
|
|
|
384
384
|
/* =========================================================
|
|
385
|
-
|
|
386
|
-
|
|
385
|
+
DEDICATION SECTIONS
|
|
386
|
+
========================================================= */
|
|
387
387
|
.dedication-section {
|
|
388
388
|
@apply text-center space-y-2;
|
|
389
389
|
}
|
|
@@ -403,8 +403,8 @@
|
|
|
403
403
|
}
|
|
404
404
|
|
|
405
405
|
/* =========================================================
|
|
406
|
-
|
|
407
|
-
|
|
406
|
+
DMCA INFO
|
|
407
|
+
========================================================= */
|
|
408
408
|
.dmca-section-title {
|
|
409
409
|
@apply text-lg font-semibold;
|
|
410
410
|
color: hsl(var(--foreground));
|
|
@@ -430,8 +430,8 @@
|
|
|
430
430
|
}
|
|
431
431
|
|
|
432
432
|
/* =========================================================
|
|
433
|
-
|
|
434
|
-
|
|
433
|
+
BUTTONS
|
|
434
|
+
========================================================= */
|
|
435
435
|
.primary-action-button {
|
|
436
436
|
@apply w-full text-lg py-6;
|
|
437
437
|
}
|
|
@@ -445,15 +445,15 @@
|
|
|
445
445
|
}
|
|
446
446
|
|
|
447
447
|
/* =========================================================
|
|
448
|
-
|
|
449
|
-
|
|
448
|
+
FOOTER
|
|
449
|
+
========================================================= */
|
|
450
450
|
.app-footer {
|
|
451
451
|
@apply w-full h-12 flex-shrink-0 bg-secondary pt-4;
|
|
452
452
|
}
|
|
453
453
|
|
|
454
454
|
/* =========================================================
|
|
455
|
-
|
|
456
|
-
|
|
455
|
+
CUSTOM FORM ELEMENTS
|
|
456
|
+
========================================================= */
|
|
457
457
|
.form-select-trigger {
|
|
458
458
|
@apply font-semibold rounded-xl h-11 px-4 shadow-sm border-2;
|
|
459
459
|
background-color: hsl(var(--background));
|
|
@@ -462,8 +462,8 @@
|
|
|
462
462
|
}
|
|
463
463
|
|
|
464
464
|
/* =========================================================
|
|
465
|
-
|
|
466
|
-
|
|
465
|
+
SAFE AREA UTILITIES
|
|
466
|
+
========================================================= */
|
|
467
467
|
.fixed-header {
|
|
468
468
|
padding-top: max(1rem, var(--sat));
|
|
469
469
|
}
|
|
@@ -473,8 +473,8 @@
|
|
|
473
473
|
}
|
|
474
474
|
|
|
475
475
|
/* =========================================================
|
|
476
|
-
|
|
477
|
-
|
|
476
|
+
LANDING PAGE
|
|
477
|
+
========================================================= */
|
|
478
478
|
.landing-tabs-list {
|
|
479
479
|
@apply grid w-full grid-cols-2 bg-transparent p-0 gap-2 mb-4;
|
|
480
480
|
}
|
|
@@ -500,8 +500,8 @@
|
|
|
500
500
|
}
|
|
501
501
|
|
|
502
502
|
/* =========================================================
|
|
503
|
-
|
|
504
|
-
|
|
503
|
+
APP HEADER
|
|
504
|
+
========================================================= */
|
|
505
505
|
.app-header {
|
|
506
506
|
@apply flex items-center h-[60px] shadow-md;
|
|
507
507
|
background-color: hsl(var(--secondary));
|
|
@@ -538,8 +538,8 @@
|
|
|
538
538
|
}
|
|
539
539
|
|
|
540
540
|
/* =========================================================
|
|
541
|
-
|
|
542
|
-
|
|
541
|
+
POPOVERS
|
|
542
|
+
========================================================= */
|
|
543
543
|
.app-popover {
|
|
544
544
|
@apply w-80 p-2 border-2;
|
|
545
545
|
background-color: hsl(var(--card));
|
|
@@ -548,8 +548,8 @@
|
|
|
548
548
|
}
|
|
549
549
|
|
|
550
550
|
/* =========================================================
|
|
551
|
-
|
|
552
|
-
|
|
551
|
+
HELP DIALOG
|
|
552
|
+
========================================================= */
|
|
553
553
|
.help-dialog-title {
|
|
554
554
|
@apply font-semibold;
|
|
555
555
|
color: hsl(var(--foreground)) !important;
|
|
@@ -567,8 +567,8 @@
|
|
|
567
567
|
}
|
|
568
568
|
|
|
569
569
|
/* =========================================================
|
|
570
|
-
|
|
571
|
-
|
|
570
|
+
FILTER & SORT (GENERIC)
|
|
571
|
+
========================================================= */
|
|
572
572
|
.filter-select-trigger,
|
|
573
573
|
.sort-select-trigger {
|
|
574
574
|
@apply w-full sm:w-auto rounded-xl h-11 px-4 font-bold shadow-sm border-2;
|
|
@@ -618,8 +618,8 @@
|
|
|
618
618
|
}
|
|
619
619
|
|
|
620
620
|
/* =========================================================
|
|
621
|
-
|
|
622
|
-
|
|
621
|
+
VIEW TOGGLE (GENERIC)
|
|
622
|
+
========================================================= */
|
|
623
623
|
.view-toggle-container {
|
|
624
624
|
@apply flex items-center p-1 rounded-xl border-2 shadow-sm;
|
|
625
625
|
background-color: hsl(var(--muted));
|
|
@@ -630,4 +630,4 @@
|
|
|
630
630
|
@apply rounded-lg h-8 w-8;
|
|
631
631
|
color: hsl(var(--foreground));
|
|
632
632
|
}
|
|
633
|
-
}
|
|
633
|
+
}
|
package/dist/styles/contract.css
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
@layer base {
|
|
2
|
-
:root {
|
|
3
|
-
/* Loud fallbacks: if you see this, app did NOT define required brand tokens */
|
|
4
|
-
--brand-primary: 999 100% 50%;
|
|
5
|
-
--brand-secondary: 999 100% 50%;
|
|
6
|
-
--brand-accent: 999 100% 50%;
|
|
7
1
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
:root {
|
|
3
|
+
/* Loud fallbacks: if you see this, app did NOT define required brand tokens */
|
|
4
|
+
--brand-primary: 999 100% 50%;
|
|
5
|
+
--brand-secondary: 999 100% 50%;
|
|
6
|
+
--brand-accent: 999 100% 50%;
|
|
13
7
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
8
|
+
/* Status tokens: OPTIONAL (sane defaults) */
|
|
9
|
+
--status-success: 140 70% 45%;
|
|
10
|
+
--status-warning: 45 90% 50%;
|
|
11
|
+
--status-error: 0 84% 60%;
|
|
12
|
+
--status-info: 221 83% 53%;
|
|
18
13
|
|
|
19
|
-
/*
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
14
|
+
/* Neutrals */
|
|
15
|
+
--neutral-white: 0 0% 100%;
|
|
16
|
+
--neutral-black: 0 0% 0%;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* High contrast must be pure B/W: override brand + status tokens too (prevents bleed) */
|
|
20
|
+
.high-contrast {
|
|
21
|
+
--brand-primary: 0 0% 0%;
|
|
22
|
+
--brand-secondary: 0 0% 0%;
|
|
23
|
+
--brand-accent: 0 0% 100%;
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
25
|
+
--status-success: 0 0% 0%;
|
|
26
|
+
--status-warning: 0 0% 0%;
|
|
27
|
+
--status-error: 0 0% 0%;
|
|
28
|
+
--status-info: 0 0% 0%;
|
|
30
29
|
}
|
|
30
|
+
|
package/dist/styles/hooks.css
CHANGED
|
@@ -1,94 +1,93 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
2
|
+
|
|
3
|
+
/* ===================
|
|
4
|
+
BUTTONS
|
|
5
|
+
=================== */
|
|
6
|
+
.btn-destructive {
|
|
7
|
+
@apply bg-destructive text-destructive-foreground hover:bg-destructive/90;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/* ===================
|
|
11
|
+
MESSAGE BUBBLES
|
|
12
|
+
=================== */
|
|
13
|
+
.msg-bubble {
|
|
14
|
+
@apply p-3 rounded-lg;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.msg-bubble--mine {
|
|
18
|
+
background-color: hsl(var(--primary) / 0.10);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.msg-bubble--theirs {
|
|
22
|
+
@apply bg-muted;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/* ===================
|
|
26
|
+
STATUS PILLS
|
|
27
|
+
=================== */
|
|
28
|
+
.status-pill {
|
|
29
|
+
@apply text-xs-bold px-2 py-0.5 rounded-full;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/* map to semantic tokens (no blue/yellow/green hardcodes) */
|
|
33
|
+
.status-pill--open-user {
|
|
34
|
+
background-color: hsl(var(--info) / 0.15);
|
|
35
|
+
color: hsl(var(--info-foreground));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.status-pill--admin-reply {
|
|
39
|
+
background-color: hsl(var(--warning) / 0.20);
|
|
40
|
+
color: hsl(var(--warning-foreground));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.status-pill--user-reply {
|
|
44
|
+
background-color: hsl(var(--success) / 0.18);
|
|
45
|
+
color: hsl(var(--success-foreground));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.status-pill--closed {
|
|
49
|
+
@apply bg-muted text-muted-foreground;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.status-pill--default {
|
|
53
|
+
@apply bg-muted text-muted-foreground;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* ===================
|
|
57
|
+
STATUS ICONS
|
|
58
|
+
=================== */
|
|
59
|
+
.status-icon {
|
|
60
|
+
@apply h-5 w-5;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.status-icon--success { color: hsl(var(--success)); }
|
|
64
|
+
.status-icon--warning { color: hsl(var(--warning)); }
|
|
65
|
+
.status-icon--info { color: hsl(var(--info)); }
|
|
66
|
+
.status-icon--error { color: hsl(var(--destructive)); }
|
|
67
|
+
|
|
68
|
+
/* ===================
|
|
69
|
+
NOTIFICATIONS
|
|
70
|
+
=================== */
|
|
71
|
+
.notify-dot {
|
|
72
|
+
@apply absolute top-1 right-1 h-2 w-2 rounded-full;
|
|
73
|
+
background-color: hsl(var(--destructive));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.notify-empty-icon {
|
|
77
|
+
color: hsl(var(--success));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/* ===================
|
|
81
|
+
MEDIA PREVIEW
|
|
82
|
+
=================== */
|
|
83
|
+
.media-preview {
|
|
84
|
+
@apply relative w-full h-full;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.media-preview--frame {
|
|
88
|
+
@apply w-full h-auto max-w-sm mx-auto;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.media-preview--fullwidth {
|
|
92
|
+
@apply w-full h-auto;
|
|
94
93
|
}
|
package/dist/styles/tokens.css
CHANGED
|
@@ -1,105 +1,104 @@
|
|
|
1
|
-
@layer base {
|
|
2
|
-
:root {
|
|
3
|
-
/* Semantic tokens (default = light) */
|
|
4
|
-
--background: var(--neutral-white);
|
|
5
|
-
--foreground: var(--neutral-black);
|
|
6
1
|
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
:root {
|
|
3
|
+
/* Semantic tokens (default = light) */
|
|
4
|
+
--background: var(--neutral-white);
|
|
5
|
+
--foreground: var(--neutral-black);
|
|
9
6
|
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
--card: var(--neutral-white);
|
|
8
|
+
--card-foreground: var(--neutral-black);
|
|
12
9
|
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
--popover: var(--neutral-white);
|
|
11
|
+
--popover-foreground: var(--neutral-black);
|
|
15
12
|
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
--muted: 0 0% 95%;
|
|
14
|
+
--muted-foreground: 0 0% 25%;
|
|
18
15
|
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
--accent: var(--brand-accent);
|
|
17
|
+
--accent-foreground: var(--neutral-black);
|
|
21
18
|
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
--primary: var(--brand-primary);
|
|
20
|
+
--primary-foreground: var(--neutral-white);
|
|
24
21
|
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
--secondary: var(--brand-secondary);
|
|
23
|
+
--secondary-foreground: var(--neutral-white);
|
|
27
24
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
--success-foreground: var(--neutral-white);
|
|
25
|
+
--destructive: var(--status-error);
|
|
26
|
+
--destructive-foreground: var(--neutral-white);
|
|
31
27
|
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
/* Extra semantic status colors (used by pills/toasts/etc.) */
|
|
29
|
+
--success: var(--status-success);
|
|
30
|
+
--success-foreground: var(--neutral-white);
|
|
34
31
|
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
--warning: var(--status-warning);
|
|
33
|
+
--warning-foreground: var(--neutral-black);
|
|
37
34
|
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
--info: var(--status-info);
|
|
36
|
+
--info-foreground: var(--neutral-white);
|
|
40
37
|
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
--border: var(--brand-primary);
|
|
39
|
+
--ring: var(--brand-primary);
|
|
43
40
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
--radius: 1rem;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.dark {
|
|
45
|
+
/* Dark base (brand tokens are still app-controlled) */
|
|
46
|
+
--background: 240 6% 10%;
|
|
47
|
+
--foreground: 0 0% 100%;
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
--card: 240 6% 12%;
|
|
50
|
+
--card-foreground: 0 0% 100%;
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
--popover: 240 6% 12%;
|
|
53
|
+
--popover-foreground: 0 0% 100%;
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
--muted: 240 4% 20%;
|
|
56
|
+
--muted-foreground: 0 0% 85%;
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
--border: 0 0% 100%;
|
|
59
|
+
--ring: 0 0% 100%;
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
61
|
+
/* status foregrounds still reasonable in dark */
|
|
62
|
+
--success-foreground: 0 0% 0%;
|
|
63
|
+
--warning-foreground: 0 0% 0%;
|
|
64
|
+
--info-foreground: 0 0% 0%;
|
|
65
|
+
}
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
.high-contrast {
|
|
68
|
+
/* Pure B/W semantic tokens */
|
|
69
|
+
--background: 0 0% 0%;
|
|
70
|
+
--foreground: 0 0% 100%;
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
--card: 0 0% 0%;
|
|
73
|
+
--card-foreground: 0 0% 100%;
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
--popover: 0 0% 0%;
|
|
76
|
+
--popover-foreground: 0 0% 100%;
|
|
77
77
|
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
--muted: 0 0% 0%;
|
|
79
|
+
--muted-foreground: 0 0% 100%;
|
|
80
80
|
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
--accent: 0 0% 0%;
|
|
82
|
+
--accent-foreground: 0 0% 100%;
|
|
83
83
|
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
--primary: 0 0% 100%;
|
|
85
|
+
--primary-foreground: 0 0% 0%;
|
|
86
86
|
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
--secondary: 0 0% 100%;
|
|
88
|
+
--secondary-foreground: 0 0% 0%;
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
--destructive: 0 0% 100%;
|
|
91
|
+
--destructive-foreground: 0 0% 0%;
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
--success: 0 0% 100%;
|
|
94
|
+
--success-foreground: 0 0% 0%;
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
--warning: 0 0% 100%;
|
|
97
|
+
--warning-foreground: 0 0% 0%;
|
|
98
98
|
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
--info: 0 0% 100%;
|
|
100
|
+
--info-foreground: 0 0% 0%;
|
|
101
101
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
102
|
+
--border: 0 0% 100%;
|
|
103
|
+
--ring: 0 0% 100%;
|
|
105
104
|
}
|