@trinityui/design-system-css 1.0.1

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 +30 -0
  2. package/dist/trinity.css +1286 -0
  3. package/package.json +20 -0
package/README.md ADDED
@@ -0,0 +1,30 @@
1
+ # @trinityui/design-system-css
2
+
3
+ CSS-only package for Trinity Design System.
4
+
5
+ Use this package if you do not need React components (for example Angular, Vue, static HTML, server-rendered apps).
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ npm install @trinityui/design-system-css
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ ### Angular (`angular.json`)
16
+
17
+ ```json
18
+ {
19
+ "styles": [
20
+ "node_modules/@trinityui/design-system-css/dist/trinity.css",
21
+ "src/styles.css"
22
+ ]
23
+ }
24
+ ```
25
+
26
+ ### CSS import
27
+
28
+ ```css
29
+ @import "@trinityui/design-system-css/css";
30
+ ```
@@ -0,0 +1,1286 @@
1
+ /**
2
+ * Trinity Design System - Comprehensive CSS Theme
3
+ *
4
+ * Complete CSS custom properties including:
5
+ * - Brand Colors (with full shade scales)
6
+ * - Semantic Colors (text, background, border, interactive, status)
7
+ * - Semantic Effects (overlays, onDark, shadows, focus, states)
8
+ * - Full Typography (display, heading, body, label, micro, data)
9
+ * - Spacing (base scale, inline, stack, density)
10
+ * - Border Radius (base scale + semantic assignments)
11
+ * - Icon Sizes
12
+ * - Component Tokens (button, input, card, avatar, badge, chip, tooltip, modal, switch, navigation)
13
+ * - Shadows and Elevation
14
+ * - Motion (duration, easing)
15
+ * - Z-Index Scale
16
+ * - Dark Mode Support
17
+ *
18
+ * Usage:
19
+ * <link rel="stylesheet" href="path/to/trinity.css">
20
+ * OR
21
+ * @import "@trinityui/design-system/css";
22
+ *
23
+ * Dark mode: Add data-theme="dark" to <html> or <body>
24
+ */
25
+
26
+ :root {
27
+ /* ============================================
28
+ BRAND COLOR SCALES
29
+ Full shade scales for each brand color
30
+ ============================================ */
31
+
32
+ /* Navy Scale */
33
+ --trinity-navy-50: #E8E8F0;
34
+ --trinity-navy-100: #C5C6D9;
35
+ --trinity-navy-200: #9FA1C0;
36
+ --trinity-navy-300: #7879A7;
37
+ --trinity-navy-400: #5B5C94;
38
+ --trinity-navy-500: #3E3F81;
39
+ --trinity-navy-600: #383979;
40
+ --trinity-navy-700: #30316E;
41
+ --trinity-navy-800: #282964;
42
+ --trinity-navy-900: #050742;
43
+
44
+ /* Purple Scale */
45
+ --trinity-purple-50: #F3EAFA;
46
+ --trinity-purple-100: #E1CBF2;
47
+ --trinity-purple-200: #CDA8EA;
48
+ --trinity-purple-300: #B985E1;
49
+ --trinity-purple-400: #A96ADA;
50
+ --trinity-purple-500: #9950D3;
51
+ --trinity-purple-600: #8D49CE;
52
+ --trinity-purple-700: #7841C9;
53
+ --trinity-purple-800: #6939B5;
54
+ --trinity-purple-900: #4E2A97;
55
+
56
+ /* Indigo Scale */
57
+ --trinity-indigo-50: #EDE7FD;
58
+ --trinity-indigo-100: #D2C3FA;
59
+ --trinity-indigo-200: #B49CF6;
60
+ --trinity-indigo-300: #9574F2;
61
+ --trinity-indigo-400: #7E57F0;
62
+ --trinity-indigo-500: #6739ED;
63
+ --trinity-indigo-600: #5F33EB;
64
+ --trinity-indigo-700: #542CE8;
65
+ --trinity-indigo-800: #4A24E5;
66
+ --trinity-indigo-900: #3816A0;
67
+ --trinity-indigo-electric: #6B12ED;
68
+
69
+ /* Coral Scale */
70
+ --trinity-coral-50: #FFEFEE;
71
+ --trinity-coral-100: #FFD7D4;
72
+ --trinity-coral-200: #FFBCB7;
73
+ --trinity-coral-300: #FFA19A;
74
+ --trinity-coral-400: #FF8D85;
75
+ --trinity-coral-500: #FF796F;
76
+ --trinity-coral-600: #FF7167;
77
+ --trinity-coral-700: #FF665C;
78
+ --trinity-coral-800: #FF6150;
79
+ --trinity-coral-900: #FF5241;
80
+
81
+ /* Azure Scale */
82
+ --trinity-azure-50: #E5F5FC;
83
+ --trinity-azure-100: #BEE5F7;
84
+ --trinity-azure-200: #93D4F2;
85
+ --trinity-azure-300: #67C3ED;
86
+ --trinity-azure-400: #47B6E9;
87
+ --trinity-azure-500: #27AAE1;
88
+ --trinity-azure-600: #239DDD;
89
+ --trinity-azure-700: #1D8DD8;
90
+ --trinity-azure-800: #177ED3;
91
+ --trinity-azure-900: #0E62CA;
92
+
93
+ /* Gray/Neutral Scale */
94
+ --trinity-gray-0: #FFFFFF;
95
+ --trinity-gray-50: #FAFAFA;
96
+ --trinity-gray-100: #F4F4F5;
97
+ --trinity-gray-200: #E5E7EB;
98
+ --trinity-gray-300: #D4D4D8;
99
+ --trinity-gray-400: #9CA3AF;
100
+ --trinity-gray-500: #6B7280;
101
+ --trinity-gray-600: #374151;
102
+ --trinity-gray-700: #27272A;
103
+ --trinity-gray-800: #18181B;
104
+ --trinity-gray-900: #09090B;
105
+
106
+ /* ============================================
107
+ SEMANTIC BRAND COLORS
108
+ ============================================ */
109
+ --trinity-brand-primary: #050742;
110
+ --trinity-brand-secondary: #7841C9;
111
+ --trinity-brand-tertiary: #3816A0;
112
+ --trinity-brand-accent: #FF6150;
113
+
114
+ /* Shorthand Aliases */
115
+ --trinity-primary: #050742;
116
+ --trinity-primary-light: #7841C9;
117
+ --trinity-primary-dark: #3816A0;
118
+ --trinity-secondary: #FF6150;
119
+ --trinity-secondary-light: #27AAE1;
120
+ --trinity-secondary-dark: #6B12ED;
121
+
122
+ /* ============================================
123
+ SEMANTIC TEXT COLORS
124
+ ============================================ */
125
+ --trinity-text-primary: #18181B;
126
+ --trinity-text-secondary: #6B7280;
127
+ --trinity-text-tertiary: #9CA3AF;
128
+ --trinity-text-disabled: #D4D4D8;
129
+ --trinity-text-inverse: #FFFFFF;
130
+ --trinity-text-brand: #050742;
131
+ --trinity-text-link: #27AAE1;
132
+ --trinity-text-link-hover: #1D8DD8;
133
+ --trinity-text-error: #DC2626;
134
+ --trinity-text-success: #16A34A;
135
+ --trinity-text-warning: #D97706;
136
+
137
+ /* ============================================
138
+ SEMANTIC BACKGROUND COLORS
139
+ ============================================ */
140
+ --trinity-bg-primary: #FFFFFF;
141
+ --trinity-bg-secondary: #FAFAFA;
142
+ --trinity-bg-tertiary: #F4F4F5;
143
+ --trinity-bg-inverse: #18181B;
144
+ --trinity-bg-brand: #050742;
145
+ --trinity-bg-brand-subtle: #E8E8F0;
146
+ --trinity-bg-accent: #FF6150;
147
+ --trinity-bg-accent-subtle: #FFEFEE;
148
+
149
+ /* Surface Colors (elevated/sunken elements) */
150
+ --trinity-surface-elevated: #FFFFFF;
151
+ --trinity-surface-sunken: #F4F4F5;
152
+ --trinity-surface-overlay: rgba(0, 0, 0, 0.5);
153
+ --trinity-surface-success: #F0FDF4;
154
+ --trinity-surface-error: #FEF2F2;
155
+ --trinity-surface-warning: #FFFBEB;
156
+ --trinity-surface-info: #E5F5FC;
157
+
158
+ /* ============================================
159
+ SEMANTIC BORDER COLORS
160
+ ============================================ */
161
+ --trinity-border-default: #E5E7EB;
162
+ --trinity-border-subtle: #F4F4F5;
163
+ --trinity-border-strong: #9CA3AF;
164
+ --trinity-border-focus: #7841C9;
165
+ --trinity-border-error: #DC2626;
166
+ --trinity-border-success: #16A34A;
167
+
168
+ /* ============================================
169
+ INTERACTIVE COLORS
170
+ ============================================ */
171
+ --trinity-interactive-default: #050742;
172
+ --trinity-interactive-hover: #FF6150;
173
+ --trinity-interactive-active: #3816A0;
174
+ --trinity-interactive-disabled: #D4D4D8;
175
+ --trinity-interactive-focus: #7841C9;
176
+
177
+ /* Focus Ring */
178
+ --trinity-focus-ring: #050742;
179
+ --trinity-focus-ring-offset: #FFFFFF;
180
+
181
+ /* Selection */
182
+ --trinity-selection-bg: #BEE5F7;
183
+ --trinity-selection-text: #18181B;
184
+
185
+ /* ============================================
186
+ STATUS COLORS
187
+ ============================================ */
188
+ /* Error */
189
+ --trinity-status-error-text: #DC2626;
190
+ --trinity-status-error-bg: #FEF2F2;
191
+ --trinity-status-error-border: #FECACA;
192
+
193
+ /* Warning */
194
+ --trinity-status-warning-text: #D97706;
195
+ --trinity-status-warning-bg: #FFFBEB;
196
+ --trinity-status-warning-border: #FDE68A;
197
+
198
+ /* Success */
199
+ --trinity-status-success-text: #16A34A;
200
+ --trinity-status-success-bg: #F0FDF4;
201
+ --trinity-status-success-border: #BBF7D0;
202
+
203
+ /* Info */
204
+ --trinity-status-info-text: #27AAE1;
205
+ --trinity-status-info-bg: #E5F5FC;
206
+ --trinity-status-info-border: #93D4F2;
207
+
208
+ /* ============================================
209
+ SEMANTIC EFFECTS - OVERLAYS
210
+ ============================================ */
211
+ --trinity-overlay-scrim: rgba(0, 0, 0, 0.5);
212
+ --trinity-overlay-hover: rgba(0, 0, 0, 0.08);
213
+ --trinity-overlay-hover-subtle: rgba(0, 0, 0, 0.04);
214
+ --trinity-overlay-pressed: rgba(0, 0, 0, 0.12);
215
+ --trinity-overlay-selected: rgba(0, 0, 0, 0.08);
216
+ --trinity-overlay-disabled: rgba(0, 0, 0, 0.38);
217
+
218
+ /* ============================================
219
+ SEMANTIC EFFECTS - ON DARK (white opacities)
220
+ ============================================ */
221
+ --trinity-on-dark-primary: rgba(255, 255, 255, 0.87);
222
+ --trinity-on-dark-secondary: rgba(255, 255, 255, 0.7);
223
+ --trinity-on-dark-tertiary: rgba(255, 255, 255, 0.5);
224
+ --trinity-on-dark-subtle: rgba(255, 255, 255, 0.12);
225
+ --trinity-on-dark-tint: rgba(255, 255, 255, 0.1);
226
+ --trinity-on-dark-divider: rgba(255, 255, 255, 0.24);
227
+ --trinity-on-dark-emphasis: rgba(255, 255, 255, 0.8);
228
+ --trinity-on-dark-contrast: rgba(255, 255, 255, 0.95);
229
+
230
+ /* ============================================
231
+ SEMANTIC EFFECTS - SHADOWS
232
+ ============================================ */
233
+ --trinity-shadow-surface: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
234
+ --trinity-shadow-raised: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
235
+ --trinity-shadow-floating: 0 4px 20px rgba(0, 0, 0, 0.15);
236
+ --trinity-shadow-dialog: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
237
+ --trinity-shadow-inset: inset 0 2px 4px 0 rgba(0, 0, 0, 0.05);
238
+
239
+ /* Base Shadow Scale */
240
+ --trinity-shadow-none: none;
241
+ --trinity-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
242
+ --trinity-shadow-base: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
243
+ --trinity-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
244
+ --trinity-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
245
+ --trinity-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
246
+ --trinity-shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
247
+ --trinity-shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
248
+
249
+ /* ============================================
250
+ SEMANTIC EFFECTS - FOCUS RINGS
251
+ ============================================ */
252
+ --trinity-focus-ring-default: 0 0 0 3px rgba(120, 65, 201, 0.25);
253
+ --trinity-focus-ring-on-dark: 0 0 0 3px rgba(255, 255, 255, 0.3);
254
+ --trinity-focus-ring-glow: 0 0 0 3px rgba(120, 65, 201, 0.4);
255
+
256
+ /* ============================================
257
+ SEMANTIC EFFECTS - STATE INDICATORS
258
+ ============================================ */
259
+ --trinity-state-error-subtle: rgba(218, 30, 40, 0.05);
260
+ --trinity-state-error-emphasis: rgba(218, 30, 40, 0.3);
261
+ --trinity-state-warning-subtle: rgba(241, 194, 27, 0.1);
262
+ --trinity-state-warning-emphasis: rgba(241, 194, 27, 0.4);
263
+ --trinity-state-success-subtle: rgba(36, 161, 72, 0.05);
264
+ --trinity-state-success-emphasis: rgba(36, 161, 72, 0.3);
265
+ --trinity-state-info-subtle: rgba(0, 67, 206, 0.05);
266
+ --trinity-state-info-emphasis: rgba(0, 67, 206, 0.3);
267
+
268
+ /* ============================================
269
+ SPACING SCALE (Base)
270
+ ============================================ */
271
+ --trinity-space-0: 0;
272
+ --trinity-space-0-5: 2px;
273
+ --trinity-space-1: 4px;
274
+ --trinity-space-1-5: 6px;
275
+ --trinity-space-2: 8px;
276
+ --trinity-space-2-5: 10px;
277
+ --trinity-space-3: 12px;
278
+ --trinity-space-4: 16px;
279
+ --trinity-space-5: 20px;
280
+ --trinity-space-6: 24px;
281
+ --trinity-space-7: 28px;
282
+ --trinity-space-8: 32px;
283
+ --trinity-space-9: 36px;
284
+ --trinity-space-10: 40px;
285
+ --trinity-space-12: 48px;
286
+ --trinity-space-14: 56px;
287
+ --trinity-space-16: 64px;
288
+ --trinity-space-20: 80px;
289
+ --trinity-space-24: 96px;
290
+ --trinity-space-32: 128px;
291
+
292
+ /* ============================================
293
+ INTENT-BASED INLINE SPACING (Horizontal)
294
+ ============================================ */
295
+ --trinity-inline-tight: 4px;
296
+ --trinity-inline-compact: 8px;
297
+ --trinity-inline-snug: 12px;
298
+ --trinity-inline-comfortable: 16px;
299
+ --trinity-inline-relaxed: 20px;
300
+ --trinity-inline-spacious: 24px;
301
+
302
+ /* ============================================
303
+ INTENT-BASED STACK SPACING (Vertical)
304
+ ============================================ */
305
+ --trinity-stack-tight: 4px;
306
+ --trinity-stack-compact: 8px;
307
+ --trinity-stack-snug: 12px;
308
+ --trinity-stack-comfortable: 16px;
309
+ --trinity-stack-relaxed: 20px;
310
+ --trinity-stack-spacious: 24px;
311
+
312
+ /* ============================================
313
+ DENSITY CONTEXTS
314
+ ============================================ */
315
+ /* Compact Density */
316
+ --trinity-density-compact-row-height: 36px;
317
+ --trinity-density-compact-cell-padding: 6px;
318
+ --trinity-density-compact-gap: 4px;
319
+
320
+ /* Standard Density */
321
+ --trinity-density-standard-row-height: 48px;
322
+ --trinity-density-standard-cell-padding: 12px;
323
+ --trinity-density-standard-gap: 8px;
324
+
325
+ /* Comfortable Density */
326
+ --trinity-density-comfortable-row-height: 64px;
327
+ --trinity-density-comfortable-cell-padding: 16px;
328
+ --trinity-density-comfortable-gap: 12px;
329
+
330
+ /* ============================================
331
+ LAYOUT SPACING
332
+ ============================================ */
333
+ --trinity-layout-page-padding: 24px;
334
+ --trinity-layout-section-gap: 48px;
335
+ --trinity-layout-container-max-width: 1280px;
336
+ --trinity-layout-header-height: 64px;
337
+ --trinity-layout-sidebar-width-expanded: 200px;
338
+ --trinity-layout-sidebar-width-collapsed: 56px;
339
+ --trinity-layout-ai-panel-width: 420px;
340
+ --trinity-layout-gutter: 24px;
341
+ --trinity-layout-content-padding: 64px;
342
+
343
+ /* ============================================
344
+ BORDER RADIUS (Base Scale)
345
+ ============================================ */
346
+ --trinity-radius-none: 0;
347
+ --trinity-radius-xs: 4px;
348
+ --trinity-radius-sm: 6px;
349
+ --trinity-radius-md: 8px;
350
+ --trinity-radius-lg: 12px;
351
+ --trinity-radius-xl: 16px;
352
+ --trinity-radius-2xl: 20px;
353
+ --trinity-radius-3xl: 24px;
354
+ --trinity-radius-full: 9999px;
355
+
356
+ /* ============================================
357
+ SEMANTIC BORDER RADIUS (Component-Specific)
358
+ ============================================ */
359
+ --trinity-radius-button: 9999px;
360
+ --trinity-radius-input: 6px;
361
+ --trinity-radius-card: 8px;
362
+ --trinity-radius-modal: 12px;
363
+ --trinity-radius-modal-large: 16px;
364
+ --trinity-radius-badge: 6px;
365
+ --trinity-radius-avatar: 9999px;
366
+ --trinity-radius-chip: 6px;
367
+ --trinity-radius-menu-item: 6px;
368
+ --trinity-radius-menu: 12px;
369
+ --trinity-radius-tooltip: 8px;
370
+ --trinity-radius-icon-container: 4px;
371
+ --trinity-radius-skeleton: 4px;
372
+ --trinity-radius-table-cell: 0;
373
+
374
+ /* Intent-Based Radius */
375
+ --trinity-radius-subtle: 4px;
376
+ --trinity-radius-soft: 6px;
377
+ --trinity-radius-rounded: 8px;
378
+ --trinity-radius-pill: 9999px;
379
+ --trinity-radius-circle: 50%;
380
+
381
+ /* ============================================
382
+ BORDER WIDTH
383
+ ============================================ */
384
+ --trinity-border-width-0: 0;
385
+ --trinity-border-width-1: 1px;
386
+ --trinity-border-width-2: 2px;
387
+ --trinity-border-width-4: 4px;
388
+ --trinity-border-width-8: 8px;
389
+
390
+ /* Semantic Border Width */
391
+ --trinity-border-width-default: 1px;
392
+ --trinity-border-width-focus: 2px;
393
+ --trinity-border-width-thick: 4px;
394
+
395
+ /* ============================================
396
+ ICON SIZES
397
+ ============================================ */
398
+ --trinity-icon-inline: 14px;
399
+ --trinity-icon-control: 16px;
400
+ --trinity-icon-navigation: 20px;
401
+ --trinity-icon-prominent: 24px;
402
+ --trinity-icon-hero: 28px;
403
+ --trinity-icon-display: 36px;
404
+
405
+ /* Legacy Icon Scale */
406
+ --trinity-icon-xs: 12px;
407
+ --trinity-icon-sm: 16px;
408
+ --trinity-icon-md: 20px;
409
+ --trinity-icon-lg: 24px;
410
+ --trinity-icon-xl: 32px;
411
+ --trinity-icon-2xl: 40px;
412
+
413
+ /* ============================================
414
+ TYPOGRAPHY - FONT FAMILY
415
+ ============================================ */
416
+ --trinity-font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
417
+ --trinity-font-family-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Monaco, Consolas, monospace;
418
+
419
+ /* ============================================
420
+ TYPOGRAPHY - FONT SIZES
421
+ ============================================ */
422
+ --trinity-text-xs: 0.75rem;
423
+ --trinity-text-sm: 0.875rem;
424
+ --trinity-text-base: 1rem;
425
+ --trinity-text-lg: 1.125rem;
426
+ --trinity-text-xl: 1.25rem;
427
+ --trinity-text-2xl: 1.5rem;
428
+ --trinity-text-3xl: 1.875rem;
429
+ --trinity-text-4xl: 2.25rem;
430
+ --trinity-text-5xl: 3rem;
431
+ --trinity-text-6xl: 3.75rem;
432
+
433
+ /* Micro Typography (for dense UI) */
434
+ --trinity-text-micro-xs: 0.625rem;
435
+ --trinity-text-micro-sm: 0.6875rem;
436
+
437
+ /* ============================================
438
+ TYPOGRAPHY - FONT WEIGHTS
439
+ ============================================ */
440
+ --trinity-font-light: 300;
441
+ --trinity-font-regular: 400;
442
+ --trinity-font-medium: 500;
443
+ --trinity-font-semibold: 600;
444
+ --trinity-font-bold: 700;
445
+ --trinity-font-extrabold: 800;
446
+
447
+ /* ============================================
448
+ TYPOGRAPHY - LINE HEIGHTS
449
+ ============================================ */
450
+ --trinity-leading-none: 1;
451
+ --trinity-leading-tight: 1.25;
452
+ --trinity-leading-snug: 1.375;
453
+ --trinity-leading-normal: 1.5;
454
+ --trinity-leading-relaxed: 1.625;
455
+ --trinity-leading-loose: 2;
456
+
457
+ /* ============================================
458
+ TYPOGRAPHY - LETTER SPACING
459
+ ============================================ */
460
+ --trinity-tracking-tighter: -0.05em;
461
+ --trinity-tracking-tight: -0.025em;
462
+ --trinity-tracking-normal: 0em;
463
+ --trinity-tracking-wide: 0.025em;
464
+ --trinity-tracking-wider: 0.05em;
465
+ --trinity-tracking-widest: 0.1em;
466
+
467
+ /* ============================================
468
+ TYPOGRAPHY - DISPLAY STYLES
469
+ ============================================ */
470
+ --trinity-display-large-size: 3rem;
471
+ --trinity-display-large-weight: 700;
472
+ --trinity-display-large-line-height: 1.1;
473
+ --trinity-display-large-tracking: -0.02em;
474
+
475
+ --trinity-display-medium-size: 2.25rem;
476
+ --trinity-display-medium-weight: 700;
477
+ --trinity-display-medium-line-height: 1.15;
478
+ --trinity-display-medium-tracking: -0.01em;
479
+
480
+ --trinity-display-small-size: 1.875rem;
481
+ --trinity-display-small-weight: 600;
482
+ --trinity-display-small-line-height: 1.2;
483
+ --trinity-display-small-tracking: 0;
484
+
485
+ /* ============================================
486
+ TYPOGRAPHY - HEADING STYLES
487
+ ============================================ */
488
+ --trinity-h1-size: 1.875rem;
489
+ --trinity-h1-weight: 700;
490
+ --trinity-h1-line-height: 1.25;
491
+
492
+ --trinity-h2-size: 1.5rem;
493
+ --trinity-h2-weight: 600;
494
+ --trinity-h2-line-height: 1.3;
495
+
496
+ --trinity-h3-size: 1.25rem;
497
+ --trinity-h3-weight: 600;
498
+ --trinity-h3-line-height: 1.35;
499
+
500
+ --trinity-h4-size: 1.125rem;
501
+ --trinity-h4-weight: 600;
502
+ --trinity-h4-line-height: 1.4;
503
+
504
+ --trinity-h5-size: 1rem;
505
+ --trinity-h5-weight: 600;
506
+ --trinity-h5-line-height: 1.45;
507
+
508
+ --trinity-h6-size: 0.875rem;
509
+ --trinity-h6-weight: 600;
510
+ --trinity-h6-line-height: 1.5;
511
+
512
+ /* ============================================
513
+ TYPOGRAPHY - BODY STYLES
514
+ ============================================ */
515
+ --trinity-body-large-size: 1.125rem;
516
+ --trinity-body-large-weight: 400;
517
+ --trinity-body-large-line-height: 1.6;
518
+
519
+ --trinity-body-medium-size: 1rem;
520
+ --trinity-body-medium-weight: 400;
521
+ --trinity-body-medium-line-height: 1.5;
522
+
523
+ --trinity-body-small-size: 0.875rem;
524
+ --trinity-body-small-weight: 400;
525
+ --trinity-body-small-line-height: 1.5;
526
+
527
+ /* ============================================
528
+ TYPOGRAPHY - LABEL STYLES
529
+ ============================================ */
530
+ --trinity-label-large-size: 1rem;
531
+ --trinity-label-large-weight: 500;
532
+ --trinity-label-large-line-height: 1.25;
533
+
534
+ --trinity-label-medium-size: 0.875rem;
535
+ --trinity-label-medium-weight: 500;
536
+ --trinity-label-medium-line-height: 1.25;
537
+
538
+ --trinity-label-small-size: 0.75rem;
539
+ --trinity-label-small-weight: 500;
540
+ --trinity-label-small-line-height: 1.25;
541
+
542
+ /* ============================================
543
+ TYPOGRAPHY - MICRO STYLES (Dense UI)
544
+ ============================================ */
545
+ --trinity-micro-xs-size: 0.625rem;
546
+ --trinity-micro-xs-weight: 500;
547
+ --trinity-micro-xs-line-height: 1.25;
548
+ --trinity-micro-xs-tracking: 0.025em;
549
+
550
+ --trinity-micro-sm-size: 0.6875rem;
551
+ --trinity-micro-sm-weight: 500;
552
+ --trinity-micro-sm-line-height: 1.25;
553
+ --trinity-micro-sm-tracking: 0;
554
+
555
+ /* Dense Typography */
556
+ --trinity-dense-badge: 0.625rem;
557
+ --trinity-dense-text: 0.75rem;
558
+
559
+ /* ============================================
560
+ TYPOGRAPHY - DATA STYLES
561
+ ============================================ */
562
+ --trinity-data-font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Monaco, Consolas, monospace;
563
+ --trinity-data-numeric-feature: 'tnum' 1;
564
+
565
+ /* ============================================
566
+ TRANSITIONS - DURATION
567
+ ============================================ */
568
+ --trinity-duration-fastest: 50ms;
569
+ --trinity-duration-faster: 100ms;
570
+ --trinity-duration-fast: 150ms;
571
+ --trinity-duration-normal: 200ms;
572
+ --trinity-duration-slow: 300ms;
573
+ --trinity-duration-slower: 400ms;
574
+ --trinity-duration-slowest: 500ms;
575
+
576
+ /* Semantic Duration */
577
+ --trinity-motion-instant: 50ms;
578
+ --trinity-motion-fast: 150ms;
579
+ --trinity-motion-normal: 200ms;
580
+ --trinity-motion-slow: 300ms;
581
+
582
+ /* ============================================
583
+ TRANSITIONS - EASING
584
+ ============================================ */
585
+ --trinity-easing-linear: linear;
586
+ --trinity-easing-in: cubic-bezier(0.4, 0, 1, 1);
587
+ --trinity-easing-out: cubic-bezier(0, 0, 0.2, 1);
588
+ --trinity-easing-in-out: cubic-bezier(0.4, 0, 0.2, 1);
589
+ --trinity-easing-smooth: cubic-bezier(0.45, 0, 0.55, 1);
590
+ --trinity-easing-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
591
+ --trinity-easing-elastic: cubic-bezier(0.68, -0.55, 0.27, 1.55);
592
+
593
+ /* Semantic Easing */
594
+ --trinity-motion-easing-default: cubic-bezier(0.4, 0, 0.2, 1);
595
+ --trinity-motion-easing-enter: cubic-bezier(0, 0, 0.2, 1);
596
+ --trinity-motion-easing-exit: cubic-bezier(0.4, 0, 1, 1);
597
+
598
+ /* ============================================
599
+ Z-INDEX SCALE
600
+ ============================================ */
601
+ --trinity-z-0: 0;
602
+ --trinity-z-10: 10;
603
+ --trinity-z-20: 20;
604
+ --trinity-z-30: 30;
605
+ --trinity-z-40: 40;
606
+ --trinity-z-50: 50;
607
+ --trinity-z-dropdown: 1000;
608
+ --trinity-z-sticky: 1020;
609
+ --trinity-z-fixed: 1030;
610
+ --trinity-z-modal-backdrop: 1040;
611
+ --trinity-z-modal: 1050;
612
+ --trinity-z-popover: 1060;
613
+ --trinity-z-tooltip: 1070;
614
+
615
+ /* ============================================
616
+ OPACITY SCALE
617
+ ============================================ */
618
+ --trinity-opacity-0: 0;
619
+ --trinity-opacity-5: 0.05;
620
+ --trinity-opacity-10: 0.1;
621
+ --trinity-opacity-20: 0.2;
622
+ --trinity-opacity-25: 0.25;
623
+ --trinity-opacity-30: 0.3;
624
+ --trinity-opacity-40: 0.4;
625
+ --trinity-opacity-50: 0.5;
626
+ --trinity-opacity-60: 0.6;
627
+ --trinity-opacity-70: 0.7;
628
+ --trinity-opacity-75: 0.75;
629
+ --trinity-opacity-80: 0.8;
630
+ --trinity-opacity-90: 0.9;
631
+ --trinity-opacity-95: 0.95;
632
+ --trinity-opacity-100: 1;
633
+
634
+ /* ============================================
635
+ BREAKPOINTS
636
+ ============================================ */
637
+ --trinity-breakpoint-xs: 0px;
638
+ --trinity-breakpoint-sm: 600px;
639
+ --trinity-breakpoint-md: 900px;
640
+ --trinity-breakpoint-lg: 1200px;
641
+ --trinity-breakpoint-xl: 1536px;
642
+
643
+ /* ============================================
644
+ COMPONENT TOKENS - BUTTON
645
+ ============================================ */
646
+ /* Button Heights */
647
+ --trinity-button-height-sm: 32px;
648
+ --trinity-button-height-md: 40px;
649
+ --trinity-button-height-lg: 48px;
650
+
651
+ /* Button Padding */
652
+ --trinity-button-padding-sm-x: 16px;
653
+ --trinity-button-padding-sm-y: 8px;
654
+ --trinity-button-padding-md-x: 20px;
655
+ --trinity-button-padding-md-y: 10px;
656
+ --trinity-button-padding-lg-x: 24px;
657
+ --trinity-button-padding-lg-y: 12px;
658
+
659
+ /* Button Font Sizes */
660
+ --trinity-button-font-sm: 0.875rem;
661
+ --trinity-button-font-md: 1rem;
662
+ --trinity-button-font-lg: 1.125rem;
663
+
664
+ /* Button Colors - Primary */
665
+ --trinity-button-primary-bg: #050742;
666
+ --trinity-button-primary-bg-hover: #FF6150;
667
+ --trinity-button-primary-text: #FFFFFF;
668
+
669
+ /* Button Colors - Secondary */
670
+ --trinity-button-secondary-bg: #3816A0;
671
+ --trinity-button-secondary-bg-hover: #FF6150;
672
+ --trinity-button-secondary-text: #FFFFFF;
673
+
674
+ /* Button Colors - Outlined */
675
+ --trinity-button-outlined-bg: transparent;
676
+ --trinity-button-outlined-bg-hover: #FF6150;
677
+ --trinity-button-outlined-border: #050742;
678
+ --trinity-button-outlined-text: #050742;
679
+ --trinity-button-outlined-text-hover: #FFFFFF;
680
+
681
+ /* ============================================
682
+ COMPONENT TOKENS - INPUT
683
+ ============================================ */
684
+ /* Input Heights */
685
+ --trinity-input-height-sm: 36px;
686
+ --trinity-input-height-md: 44px;
687
+ --trinity-input-height-lg: 52px;
688
+
689
+ /* Input Padding */
690
+ --trinity-input-padding-sm-x: 12px;
691
+ --trinity-input-padding-sm-y: 8px;
692
+ --trinity-input-padding-md-x: 14px;
693
+ --trinity-input-padding-md-y: 10px;
694
+ --trinity-input-padding-lg-x: 16px;
695
+ --trinity-input-padding-lg-y: 12px;
696
+
697
+ /* Input Font Sizes */
698
+ --trinity-input-font-sm: 0.875rem;
699
+ --trinity-input-font-md: 1rem;
700
+ --trinity-input-font-lg: 1.125rem;
701
+
702
+ /* Input Border Colors */
703
+ --trinity-input-border-default: #E5E7EB;
704
+ --trinity-input-border-hover: #9CA3AF;
705
+ --trinity-input-border-focus: #7841C9;
706
+ --trinity-input-border-error: #DC2626;
707
+
708
+ /* Input Background */
709
+ --trinity-input-bg-default: #FFFFFF;
710
+ --trinity-input-bg-disabled: #F4F4F5;
711
+
712
+ /* ============================================
713
+ COMPONENT TOKENS - CARD
714
+ ============================================ */
715
+ --trinity-card-padding-sm: 16px;
716
+ --trinity-card-padding-md: 24px;
717
+ --trinity-card-padding-lg: 32px;
718
+ --trinity-card-border-radius: 12px;
719
+ --trinity-card-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
720
+ --trinity-card-bg: #FFFFFF;
721
+ --trinity-card-border: #F4F4F5;
722
+
723
+ /* ============================================
724
+ COMPONENT TOKENS - AVATAR
725
+ ============================================ */
726
+ --trinity-avatar-size-xs: 24px;
727
+ --trinity-avatar-size-sm: 32px;
728
+ --trinity-avatar-size-md: 40px;
729
+ --trinity-avatar-size-lg: 48px;
730
+ --trinity-avatar-size-xl: 64px;
731
+ --trinity-avatar-size-2xl: 96px;
732
+
733
+ --trinity-avatar-font-xs: 0.75rem;
734
+ --trinity-avatar-font-sm: 0.75rem;
735
+ --trinity-avatar-font-md: 0.875rem;
736
+ --trinity-avatar-font-lg: 1rem;
737
+ --trinity-avatar-font-xl: 1.25rem;
738
+ --trinity-avatar-font-2xl: 1.5rem;
739
+
740
+ /* ============================================
741
+ COMPONENT TOKENS - BADGE
742
+ ============================================ */
743
+ --trinity-badge-padding-x: 8px;
744
+ --trinity-badge-padding-y: 2px;
745
+ --trinity-badge-border-radius: 9999px;
746
+ --trinity-badge-font-size: 0.75rem;
747
+ --trinity-badge-font-weight: 500;
748
+
749
+ /* ============================================
750
+ COMPONENT TOKENS - CHIP
751
+ ============================================ */
752
+ --trinity-chip-height-sm: 24px;
753
+ --trinity-chip-height-md: 32px;
754
+ --trinity-chip-padding-sm-x: 8px;
755
+ --trinity-chip-padding-sm-y: 4px;
756
+ --trinity-chip-padding-md-x: 12px;
757
+ --trinity-chip-padding-md-y: 6px;
758
+ --trinity-chip-border-radius: 6px;
759
+ --trinity-chip-font-sm: 0.75rem;
760
+ --trinity-chip-font-md: 0.875rem;
761
+
762
+ /* ============================================
763
+ COMPONENT TOKENS - TOOLTIP
764
+ ============================================ */
765
+ --trinity-tooltip-padding-x: 12px;
766
+ --trinity-tooltip-padding-y: 8px;
767
+ --trinity-tooltip-border-radius: 6px;
768
+ --trinity-tooltip-font-size: 0.875rem;
769
+ --trinity-tooltip-bg: #18181B;
770
+ --trinity-tooltip-text: #FFFFFF;
771
+
772
+ /* ============================================
773
+ COMPONENT TOKENS - MODAL
774
+ ============================================ */
775
+ --trinity-modal-padding: 24px;
776
+ --trinity-modal-border-radius: 16px;
777
+ --trinity-modal-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
778
+ --trinity-modal-backdrop-opacity: 0.5;
779
+ --trinity-modal-width-sm: 400px;
780
+ --trinity-modal-width-md: 560px;
781
+ --trinity-modal-width-lg: 720px;
782
+ --trinity-modal-width-full: 90vw;
783
+
784
+ /* ============================================
785
+ COMPONENT TOKENS - SWITCH
786
+ ============================================ */
787
+ --trinity-switch-width-sm: 36px;
788
+ --trinity-switch-width-md: 48px;
789
+ --trinity-switch-height-sm: 20px;
790
+ --trinity-switch-height-md: 28px;
791
+ --trinity-switch-thumb-sm: 16px;
792
+ --trinity-switch-thumb-md: 24px;
793
+ --trinity-switch-track-off: #E5E7EB;
794
+ --trinity-switch-track-on: #050742;
795
+
796
+ /* ============================================
797
+ COMPONENT TOKENS - NAVIGATION
798
+ ============================================ */
799
+ /* Header */
800
+ --trinity-nav-header-height: 64px;
801
+ --trinity-nav-appbar-height: 56px;
802
+ --trinity-nav-header-bg: #050742;
803
+ --trinity-nav-header-text: #FFFFFF;
804
+
805
+ /* Sidebar */
806
+ --trinity-nav-sidebar-width: 240px;
807
+ --trinity-nav-sidebar-width-expanded: 200px;
808
+ --trinity-nav-sidebar-collapsed-width: 56px;
809
+ --trinity-nav-sidebar-bg: #050742;
810
+ --trinity-nav-sidebar-bg-light: #FFFFFF;
811
+ --trinity-nav-sidebar-border: #E5E7EB;
812
+
813
+ /* Nav Items */
814
+ --trinity-nav-item-height: 44px;
815
+ --trinity-nav-item-min-height: 40px;
816
+ --trinity-nav-item-padding-x: 16px;
817
+ --trinity-nav-item-padding-y: 12px;
818
+ --trinity-nav-item-padding-collapsed: 8px;
819
+ --trinity-nav-item-border-radius: 8px;
820
+ --trinity-nav-item-gap: 12px;
821
+
822
+ /* Nav Item States */
823
+ --trinity-nav-item-bg-default: transparent;
824
+ --trinity-nav-item-bg-hover: rgba(0, 0, 0, 0.04);
825
+ --trinity-nav-item-bg-active: #050742;
826
+ --trinity-nav-item-bg-selected: #050742;
827
+ --trinity-nav-item-text-default: #18181B;
828
+ --trinity-nav-item-text-hover: #18181B;
829
+ --trinity-nav-item-text-active: #FFFFFF;
830
+ --trinity-nav-item-text-selected: #FFFFFF;
831
+ --trinity-nav-item-icon-default: #7841C9;
832
+ --trinity-nav-item-icon-selected: #FFFFFF;
833
+
834
+ /* Nav Special Item (Gradient) */
835
+ --trinity-nav-item-special-gradient: linear-gradient(135deg, #FF6150 0%, #7841C9 100%);
836
+ --trinity-nav-item-special-text: #FFFFFF;
837
+ --trinity-nav-item-special-icon: #FF6150;
838
+
839
+ /* Search Component (on dark header) */
840
+ --trinity-nav-search-bg: rgba(255, 255, 255, 0.12);
841
+ --trinity-nav-search-bg-hover: rgba(255, 255, 255, 0.15);
842
+ --trinity-nav-search-bg-focus: #FFFFFF;
843
+ --trinity-nav-search-text: #FFFFFF;
844
+ --trinity-nav-search-text-focus: #050742;
845
+ --trinity-nav-search-placeholder: rgba(255, 255, 255, 0.5);
846
+ --trinity-nav-search-placeholder-focus: #6B7280;
847
+ --trinity-nav-search-icon: rgba(255, 255, 255, 0.5);
848
+ --trinity-nav-search-icon-focus: #050742;
849
+ --trinity-nav-search-radius: 12px;
850
+ --trinity-nav-search-min-width: 300px;
851
+ --trinity-nav-search-max-width: 400px;
852
+
853
+ /* Client Selector (on dark header) */
854
+ --trinity-nav-client-bg: rgba(255, 255, 255, 0.12);
855
+ --trinity-nav-client-bg-hover: rgba(255, 255, 255, 0.15);
856
+ --trinity-nav-client-text: #FFFFFF;
857
+ --trinity-nav-client-radius: 12px;
858
+ --trinity-nav-client-min-width: 180px;
859
+ --trinity-nav-client-padding-x: 12px;
860
+ --trinity-nav-client-padding-y: 6px;
861
+
862
+ /* Dividers on dark backgrounds */
863
+ --trinity-nav-divider-on-dark: rgba(255, 255, 255, 0.3);
864
+ --trinity-nav-divider-light: #E5E7EB;
865
+
866
+ /* Header Icons */
867
+ --trinity-nav-icon-color: rgba(255, 255, 255, 0.7);
868
+ --trinity-nav-icon-hover: #FFFFFF;
869
+ --trinity-nav-icon-hover-bg: rgba(255, 255, 255, 0.12);
870
+
871
+ /* Menu Dropdown */
872
+ --trinity-nav-menu-radius: 12px;
873
+ --trinity-nav-menu-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
874
+ --trinity-nav-menu-min-width: 240px;
875
+ --trinity-nav-menu-item-padding-y: 12px;
876
+
877
+ /* ============================================
878
+ SEMANTIC SHADOWS (Component-Specific)
879
+ ============================================ */
880
+ --trinity-shadow-card: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
881
+ --trinity-shadow-dropdown: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
882
+ --trinity-shadow-modal: 0 25px 50px -12px rgb(0 0 0 / 0.25);
883
+ --trinity-shadow-button: 0 1px 2px 0 rgb(0 0 0 / 0.05);
884
+ --trinity-shadow-input: none;
885
+ --trinity-shadow-input-focus: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
886
+
887
+ /* ============================================
888
+ GRADIENTS
889
+ ============================================ */
890
+ --trinity-gradient-primary: linear-gradient(135deg, #5F33EB 0%, #8D49CE 100%);
891
+ --trinity-gradient-secondary: linear-gradient(135deg, #FF796F 0%, #FF665C 100%);
892
+ --trinity-gradient-accent: linear-gradient(135deg, #47B6E9 0%, #239DDD 100%);
893
+ --trinity-gradient-avatar-primary: linear-gradient(135deg, #6739ED 0%, #8D49CE 100%);
894
+ --trinity-gradient-avatar-warm: linear-gradient(135deg, #FF8D85 0%, #FF7167 100%);
895
+ --trinity-gradient-avatar-cool: linear-gradient(135deg, #47B6E9 0%, #6739ED 100%);
896
+ --trinity-gradient-dark-overlay: linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,0.7) 100%);
897
+
898
+ /* ============================================
899
+ TOUCH TARGETS (Accessibility)
900
+ ============================================ */
901
+ --trinity-touch-target-minimum: 44px;
902
+ --trinity-touch-target-comfortable: 48px;
903
+ --trinity-touch-target-spacious: 56px;
904
+ }
905
+
906
+ /* ============================================
907
+ DARK MODE
908
+ ============================================ */
909
+ [data-theme="dark"],
910
+ .dark-mode,
911
+ :root.dark {
912
+ /* Text Colors */
913
+ --trinity-text-primary: #F9FAFB;
914
+ --trinity-text-secondary: #D1D5DB;
915
+ --trinity-text-tertiary: #9CA3AF;
916
+ --trinity-text-disabled: #6B7280;
917
+ --trinity-text-inverse: #18181B;
918
+
919
+ /* Background Colors */
920
+ --trinity-bg-primary: #121214;
921
+ --trinity-bg-secondary: #1C1C1F;
922
+ --trinity-bg-tertiary: #262629;
923
+ --trinity-bg-inverse: #FAFAFA;
924
+
925
+ /* Surface Colors */
926
+ --trinity-surface-elevated: #1C1C1F;
927
+ --trinity-surface-sunken: #0A0A0B;
928
+ --trinity-surface-success: #0A1A10;
929
+ --trinity-surface-error: #1F1315;
930
+ --trinity-surface-warning: #1A1607;
931
+ --trinity-surface-info: #0C1929;
932
+
933
+ /* Border Colors */
934
+ --trinity-border-default: #3F3F46;
935
+ --trinity-border-subtle: #27272A;
936
+ --trinity-border-strong: #52525B;
937
+
938
+ /* Interactive Colors */
939
+ --trinity-interactive-default: #A96ADA;
940
+ --trinity-interactive-hover: #FF8D85;
941
+ --trinity-interactive-active: #7E57F0;
942
+ --trinity-interactive-disabled: #374151;
943
+ --trinity-interactive-focus: #A96ADA;
944
+
945
+ /* Status Colors */
946
+ --trinity-status-error-text: #FCA5A5;
947
+ --trinity-status-error-bg: #1F1315;
948
+ --trinity-status-error-border: #991B1B;
949
+
950
+ --trinity-status-warning-text: #FDE68A;
951
+ --trinity-status-warning-bg: #1A1607;
952
+ --trinity-status-warning-border: #92400E;
953
+
954
+ --trinity-status-success-text: #86EFAC;
955
+ --trinity-status-success-bg: #0A1A10;
956
+ --trinity-status-success-border: #166534;
957
+
958
+ --trinity-status-info-text: #7DD3FC;
959
+ --trinity-status-info-bg: #0C1929;
960
+ --trinity-status-info-border: #075985;
961
+
962
+ /* Overlay Effects */
963
+ --trinity-overlay-hover: rgba(255, 255, 255, 0.08);
964
+ --trinity-overlay-hover-subtle: rgba(255, 255, 255, 0.04);
965
+ --trinity-overlay-pressed: rgba(255, 255, 255, 0.12);
966
+ --trinity-overlay-selected: rgba(255, 255, 255, 0.08);
967
+
968
+ /* Shadows (enhanced for dark mode) */
969
+ --trinity-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.3), 0 0 0 1px rgb(255 255 255 / 0.05);
970
+ --trinity-shadow-base: 0 1px 3px 0 rgb(0 0 0 / 0.4), 0 1px 2px -1px rgb(0 0 0 / 0.3), 0 0 0 1px rgb(255 255 255 / 0.05);
971
+ --trinity-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.3), 0 0 0 1px rgb(255 255 255 / 0.05);
972
+ --trinity-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.5), 0 4px 6px -4px rgb(0 0 0 / 0.4), 0 0 0 1px rgb(255 255 255 / 0.05);
973
+ --trinity-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.5), 0 8px 10px -6px rgb(0 0 0 / 0.4), 0 0 0 1px rgb(255 255 255 / 0.07);
974
+ --trinity-shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.6), 0 0 0 1px rgb(255 255 255 / 0.1);
975
+
976
+ /* Component-Specific Overrides */
977
+ --trinity-card-bg: #1C1C1F;
978
+ --trinity-card-border: #3F3F46;
979
+ --trinity-card-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.3), 0 0 0 1px rgb(255 255 255 / 0.05);
980
+
981
+ --trinity-input-bg-default: #1C1C1F;
982
+ --trinity-input-bg-disabled: #262629;
983
+ --trinity-input-border-default: #3F3F46;
984
+ --trinity-input-border-hover: #52525B;
985
+
986
+ --trinity-tooltip-bg: #FAFAFA;
987
+ --trinity-tooltip-text: #18181B;
988
+
989
+ --trinity-switch-track-off: #3F3F46;
990
+
991
+ /* Navigation Dark Mode Overrides */
992
+ --trinity-nav-sidebar-bg-light: #1C1C1F;
993
+ --trinity-nav-sidebar-border: #3F3F46;
994
+ --trinity-nav-item-bg-hover: rgba(255, 255, 255, 0.08);
995
+ --trinity-nav-item-bg-active: #A96ADA;
996
+ --trinity-nav-item-bg-selected: #A96ADA;
997
+ --trinity-nav-item-text-default: #F9FAFB;
998
+ --trinity-nav-item-text-hover: #F9FAFB;
999
+ --trinity-nav-item-icon-default: #A96ADA;
1000
+ --trinity-nav-divider-light: #3F3F46;
1001
+ }
1002
+
1003
+ /* System preference detection */
1004
+ @media (prefers-color-scheme: dark) {
1005
+ :root:not([data-theme="light"]) {
1006
+ --trinity-text-primary: #F9FAFB;
1007
+ --trinity-text-secondary: #D1D5DB;
1008
+ --trinity-text-tertiary: #9CA3AF;
1009
+ --trinity-bg-primary: #121214;
1010
+ --trinity-bg-secondary: #1C1C1F;
1011
+ --trinity-bg-tertiary: #262629;
1012
+ --trinity-surface-elevated: #1C1C1F;
1013
+ --trinity-border-default: #3F3F46;
1014
+ --trinity-border-subtle: #27272A;
1015
+ }
1016
+ }
1017
+
1018
+ /* ============================================
1019
+ UTILITY CLASSES
1020
+ ============================================ */
1021
+
1022
+ /* Text Colors */
1023
+ .trinity-text-primary { color: var(--trinity-text-primary); }
1024
+ .trinity-text-secondary { color: var(--trinity-text-secondary); }
1025
+ .trinity-text-tertiary { color: var(--trinity-text-tertiary); }
1026
+ .trinity-text-brand { color: var(--trinity-brand-primary); }
1027
+ .trinity-text-link { color: var(--trinity-text-link); }
1028
+ .trinity-text-success { color: var(--trinity-status-success-text); }
1029
+ .trinity-text-error { color: var(--trinity-status-error-text); }
1030
+ .trinity-text-warning { color: var(--trinity-status-warning-text); }
1031
+
1032
+ /* Background Colors */
1033
+ .trinity-bg-primary { background-color: var(--trinity-bg-primary); }
1034
+ .trinity-bg-secondary { background-color: var(--trinity-bg-secondary); }
1035
+ .trinity-bg-tertiary { background-color: var(--trinity-bg-tertiary); }
1036
+ .trinity-bg-brand { background-color: var(--trinity-brand-primary); }
1037
+ .trinity-bg-surface { background-color: var(--trinity-surface-elevated); }
1038
+ .trinity-bg-accent { background-color: var(--trinity-brand-accent); }
1039
+
1040
+ /* Borders */
1041
+ .trinity-border { border: 1px solid var(--trinity-border-default); }
1042
+ .trinity-border-subtle { border: 1px solid var(--trinity-border-subtle); }
1043
+ .trinity-border-strong { border: 1px solid var(--trinity-border-strong); }
1044
+
1045
+ /* Border Radius */
1046
+ .trinity-rounded-none { border-radius: var(--trinity-radius-none); }
1047
+ .trinity-rounded-sm { border-radius: var(--trinity-radius-sm); }
1048
+ .trinity-rounded { border-radius: var(--trinity-radius-md); }
1049
+ .trinity-rounded-lg { border-radius: var(--trinity-radius-lg); }
1050
+ .trinity-rounded-xl { border-radius: var(--trinity-radius-xl); }
1051
+ .trinity-rounded-full { border-radius: var(--trinity-radius-full); }
1052
+
1053
+ /* Shadows */
1054
+ .trinity-shadow-none { box-shadow: var(--trinity-shadow-none); }
1055
+ .trinity-shadow-sm { box-shadow: var(--trinity-shadow-sm); }
1056
+ .trinity-shadow { box-shadow: var(--trinity-shadow-md); }
1057
+ .trinity-shadow-lg { box-shadow: var(--trinity-shadow-lg); }
1058
+ .trinity-shadow-xl { box-shadow: var(--trinity-shadow-xl); }
1059
+
1060
+ /* Typography */
1061
+ .trinity-font-sans { font-family: var(--trinity-font-family); }
1062
+ .trinity-font-mono { font-family: var(--trinity-font-family-mono); }
1063
+
1064
+ .trinity-text-xs { font-size: var(--trinity-text-xs); }
1065
+ .trinity-text-sm { font-size: var(--trinity-text-sm); }
1066
+ .trinity-text-base { font-size: var(--trinity-text-base); }
1067
+ .trinity-text-lg { font-size: var(--trinity-text-lg); }
1068
+ .trinity-text-xl { font-size: var(--trinity-text-xl); }
1069
+ .trinity-text-2xl { font-size: var(--trinity-text-2xl); }
1070
+ .trinity-text-3xl { font-size: var(--trinity-text-3xl); }
1071
+
1072
+ .trinity-font-light { font-weight: var(--trinity-font-light); }
1073
+ .trinity-font-regular { font-weight: var(--trinity-font-regular); }
1074
+ .trinity-font-medium { font-weight: var(--trinity-font-medium); }
1075
+ .trinity-font-semibold { font-weight: var(--trinity-font-semibold); }
1076
+ .trinity-font-bold { font-weight: var(--trinity-font-bold); }
1077
+
1078
+ /* Transitions */
1079
+ .trinity-transition-fast { transition: all var(--trinity-duration-fast) var(--trinity-easing-in-out); }
1080
+ .trinity-transition { transition: all var(--trinity-duration-normal) var(--trinity-easing-in-out); }
1081
+ .trinity-transition-slow { transition: all var(--trinity-duration-slow) var(--trinity-easing-in-out); }
1082
+
1083
+ /* Opacity */
1084
+ .trinity-opacity-50 { opacity: var(--trinity-opacity-50); }
1085
+ .trinity-opacity-75 { opacity: var(--trinity-opacity-75); }
1086
+ .trinity-opacity-disabled { opacity: var(--trinity-opacity-50); cursor: not-allowed; }
1087
+
1088
+ /* Focus Ring */
1089
+ .trinity-focus-ring:focus-visible {
1090
+ outline: 2px solid var(--trinity-focus-ring);
1091
+ outline-offset: 2px;
1092
+ }
1093
+
1094
+ /* Data Typography */
1095
+ .trinity-tabular-nums {
1096
+ font-family: var(--trinity-data-font-family);
1097
+ font-feature-settings: var(--trinity-data-numeric-feature);
1098
+ }
1099
+
1100
+ /* ============================================
1101
+ NAVIGATION UTILITY CLASSES
1102
+ ============================================ */
1103
+
1104
+ /* Top Nav Header */
1105
+ .trinity-nav-header {
1106
+ height: var(--trinity-nav-header-height);
1107
+ background-color: var(--trinity-nav-header-bg);
1108
+ color: var(--trinity-nav-header-text);
1109
+ }
1110
+
1111
+ .trinity-nav-appbar {
1112
+ height: var(--trinity-nav-appbar-height);
1113
+ background-color: var(--trinity-nav-header-bg);
1114
+ color: var(--trinity-nav-header-text);
1115
+ }
1116
+
1117
+ /* Sidebar */
1118
+ .trinity-nav-sidebar {
1119
+ width: var(--trinity-nav-sidebar-width);
1120
+ background-color: var(--trinity-nav-sidebar-bg-light);
1121
+ border-right: 1px solid var(--trinity-nav-sidebar-border);
1122
+ transition: width var(--trinity-duration-normal) var(--trinity-easing-in-out);
1123
+ }
1124
+
1125
+ .trinity-nav-sidebar--collapsed {
1126
+ width: var(--trinity-nav-sidebar-collapsed-width);
1127
+ }
1128
+
1129
+ .trinity-nav-sidebar--dark {
1130
+ background-color: var(--trinity-nav-sidebar-bg);
1131
+ border-right-color: var(--trinity-nav-divider-on-dark);
1132
+ }
1133
+
1134
+ /* Nav Items */
1135
+ .trinity-nav-item {
1136
+ display: flex;
1137
+ align-items: center;
1138
+ height: var(--trinity-nav-item-height);
1139
+ padding: var(--trinity-nav-item-padding-y) var(--trinity-nav-item-padding-x);
1140
+ border-radius: var(--trinity-nav-item-border-radius);
1141
+ background-color: var(--trinity-nav-item-bg-default);
1142
+ color: var(--trinity-nav-item-text-default);
1143
+ transition: all var(--trinity-duration-fast) var(--trinity-easing-in-out);
1144
+ cursor: pointer;
1145
+ gap: var(--trinity-nav-item-gap);
1146
+ text-decoration: none;
1147
+ }
1148
+
1149
+ .trinity-nav-item:hover {
1150
+ background-color: var(--trinity-nav-item-bg-hover);
1151
+ color: var(--trinity-nav-item-text-hover);
1152
+ }
1153
+
1154
+ .trinity-nav-item--active,
1155
+ .trinity-nav-item--selected {
1156
+ background-color: var(--trinity-nav-item-bg-selected);
1157
+ color: var(--trinity-nav-item-text-selected);
1158
+ }
1159
+
1160
+ .trinity-nav-item--active:hover,
1161
+ .trinity-nav-item--selected:hover {
1162
+ background-color: var(--trinity-nav-item-bg-selected);
1163
+ }
1164
+
1165
+ .trinity-nav-item--special {
1166
+ background: var(--trinity-nav-item-special-gradient);
1167
+ color: var(--trinity-nav-item-special-text);
1168
+ }
1169
+
1170
+ .trinity-nav-item__icon {
1171
+ display: flex;
1172
+ align-items: center;
1173
+ justify-content: center;
1174
+ width: var(--trinity-icon-navigation);
1175
+ height: var(--trinity-icon-navigation);
1176
+ color: var(--trinity-nav-item-icon-default);
1177
+ }
1178
+
1179
+ .trinity-nav-item--active .trinity-nav-item__icon,
1180
+ .trinity-nav-item--selected .trinity-nav-item__icon {
1181
+ color: var(--trinity-nav-item-icon-selected);
1182
+ }
1183
+
1184
+ /* Search on dark header */
1185
+ .trinity-nav-search {
1186
+ position: relative;
1187
+ display: flex;
1188
+ align-items: center;
1189
+ min-width: var(--trinity-nav-search-min-width);
1190
+ max-width: var(--trinity-nav-search-max-width);
1191
+ background-color: var(--trinity-nav-search-bg);
1192
+ border-radius: var(--trinity-nav-search-radius);
1193
+ transition: background-color var(--trinity-duration-fast) var(--trinity-easing-in-out);
1194
+ }
1195
+
1196
+ .trinity-nav-search:hover {
1197
+ background-color: var(--trinity-nav-search-bg-hover);
1198
+ }
1199
+
1200
+ .trinity-nav-search--focused {
1201
+ background-color: var(--trinity-nav-search-bg-focus);
1202
+ }
1203
+
1204
+ .trinity-nav-search__input {
1205
+ flex: 1;
1206
+ background: transparent;
1207
+ border: none;
1208
+ outline: none;
1209
+ padding: 8px 16px 8px 40px;
1210
+ color: var(--trinity-nav-search-text);
1211
+ font-size: var(--trinity-body-small-size);
1212
+ }
1213
+
1214
+ .trinity-nav-search__input::placeholder {
1215
+ color: var(--trinity-nav-search-placeholder);
1216
+ }
1217
+
1218
+ .trinity-nav-search--focused .trinity-nav-search__input {
1219
+ color: var(--trinity-nav-search-text-focus);
1220
+ }
1221
+
1222
+ .trinity-nav-search--focused .trinity-nav-search__input::placeholder {
1223
+ color: var(--trinity-nav-search-placeholder-focus);
1224
+ }
1225
+
1226
+ .trinity-nav-search__icon {
1227
+ position: absolute;
1228
+ left: 12px;
1229
+ color: var(--trinity-nav-search-icon);
1230
+ }
1231
+
1232
+ .trinity-nav-search--focused .trinity-nav-search__icon {
1233
+ color: var(--trinity-nav-search-icon-focus);
1234
+ }
1235
+
1236
+ /* Client Selector */
1237
+ .trinity-nav-client {
1238
+ display: flex;
1239
+ align-items: center;
1240
+ justify-content: space-between;
1241
+ min-width: var(--trinity-nav-client-min-width);
1242
+ padding: var(--trinity-nav-client-padding-y) var(--trinity-nav-client-padding-x);
1243
+ background-color: var(--trinity-nav-client-bg);
1244
+ color: var(--trinity-nav-client-text);
1245
+ border: none;
1246
+ border-radius: var(--trinity-nav-client-radius);
1247
+ cursor: pointer;
1248
+ font-size: var(--trinity-body-small-size);
1249
+ transition: background-color var(--trinity-duration-fast) var(--trinity-easing-in-out);
1250
+ }
1251
+
1252
+ .trinity-nav-client:hover {
1253
+ background-color: var(--trinity-nav-client-bg-hover);
1254
+ }
1255
+
1256
+ /* Header Icon Buttons */
1257
+ .trinity-nav-icon-btn {
1258
+ display: flex;
1259
+ align-items: center;
1260
+ justify-content: center;
1261
+ width: 40px;
1262
+ height: 40px;
1263
+ border-radius: var(--trinity-radius-full);
1264
+ background-color: transparent;
1265
+ color: var(--trinity-nav-icon-color);
1266
+ border: none;
1267
+ cursor: pointer;
1268
+ transition: all var(--trinity-duration-fast) var(--trinity-easing-in-out);
1269
+ }
1270
+
1271
+ .trinity-nav-icon-btn:hover {
1272
+ background-color: var(--trinity-nav-icon-hover-bg);
1273
+ color: var(--trinity-nav-icon-hover);
1274
+ }
1275
+
1276
+ /* Menu Dropdown */
1277
+ .trinity-nav-menu {
1278
+ min-width: var(--trinity-nav-menu-min-width);
1279
+ border-radius: var(--trinity-nav-menu-radius);
1280
+ box-shadow: var(--trinity-nav-menu-shadow);
1281
+ background-color: var(--trinity-surface-elevated);
1282
+ }
1283
+
1284
+ .trinity-nav-menu__item {
1285
+ padding: var(--trinity-nav-menu-item-padding-y) var(--trinity-nav-item-padding-x);
1286
+ }
package/package.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "@trinityui/design-system-css",
3
+ "version": "1.0.1",
4
+ "private": false,
5
+ "description": "Trinity Design System CSS package for non-React frameworks (Angular, Vue, static HTML).",
6
+ "license": "MIT",
7
+ "files": [
8
+ "dist",
9
+ "README.md"
10
+ ],
11
+ "style": "dist/trinity.css",
12
+ "exports": {
13
+ ".": "./dist/trinity.css",
14
+ "./css": "./dist/trinity.css"
15
+ },
16
+ "scripts": {
17
+ "build": "mkdir -p dist && cp ../../src/styles/trinity.css dist/trinity.css",
18
+ "prepublishOnly": "npm run build"
19
+ }
20
+ }