@reliability-design/web 1.1.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/components/rel-accordion/rel-accordion.ts +289 -150
  2. package/dist/components/rel-alert/rel-alert.ts +34 -34
  3. package/dist/components/rel-avatar/README.md +15 -4
  4. package/dist/components/rel-avatar/rel-avatar.ts +138 -94
  5. package/dist/components/rel-badge/README.md +7 -0
  6. package/dist/components/rel-badge/rel-badge.ts +39 -2
  7. package/dist/components/rel-breadcrumb/rel-breadcrumb.ts +6 -6
  8. package/dist/components/rel-button/rel-button.ts +96 -28
  9. package/dist/components/rel-calendar/rel-calendar.ts +15 -8
  10. package/dist/components/rel-card/rel-card.ts +9 -17
  11. package/dist/components/rel-cardmedia/rel-cardmedia.ts +20 -23
  12. package/dist/components/rel-carousel/rel-carousel.ts +596 -468
  13. package/dist/components/rel-checkbox/rel-checkbox.ts +68 -16
  14. package/dist/components/rel-chip/README.md +7 -0
  15. package/dist/components/rel-chip/rel-chip.ts +411 -244
  16. package/dist/components/rel-container/rel-container.ts +2 -2
  17. package/dist/components/rel-date-picker/rel-date-picker.ts +23 -19
  18. package/dist/components/rel-divider/rel-divider.ts +3 -3
  19. package/dist/components/rel-drawer/rel-drawer-footer.ts +0 -2
  20. package/dist/components/rel-drawer/rel-drawer.ts +46 -90
  21. package/dist/components/rel-kbd/rel-kbd.ts +94 -118
  22. package/dist/components/rel-layout/rel-layout.ts +49 -58
  23. package/dist/components/rel-menu/rel-menu.ts +359 -359
  24. package/dist/components/rel-menubar/rel-menubar-menu.css +3 -0
  25. package/dist/components/rel-menubar/rel-menubar-menu.ts +2 -1
  26. package/dist/components/rel-menubar/rel-menubar.ts +603 -605
  27. package/dist/components/rel-otp/rel-otp.ts +22 -25
  28. package/dist/components/rel-pagination/rel-pagination.ts +442 -381
  29. package/dist/components/rel-popover/rel-popover-content.ts +6 -5
  30. package/dist/components/rel-popover/rel-popover.ts +26 -7
  31. package/dist/components/rel-progress/rel-progress.ts +10 -9
  32. package/dist/components/rel-radio/rel-radio.ts +228 -172
  33. package/dist/components/rel-range-picker/rel-range-picker.css +349 -0
  34. package/dist/components/rel-range-picker/rel-range-picker.ts +1080 -0
  35. package/dist/components/rel-resizable/rel-resizable-handle.ts +8 -7
  36. package/dist/components/rel-segmented-button/rel-segmented-button.ts +41 -20
  37. package/dist/components/rel-select/README.md +34 -28
  38. package/dist/components/rel-select/rel-select.ts +1015 -275
  39. package/dist/components/rel-sheet/rel-sheet.ts +365 -684
  40. package/dist/components/rel-skeleton/rel-skeleton.ts +139 -0
  41. package/dist/components/rel-slider/rel-slider.ts +49 -27
  42. package/dist/components/rel-snackbar/rel-snackbar.ts +28 -28
  43. package/dist/components/rel-stepper/rel-stepper.ts +11 -10
  44. package/dist/components/rel-switch/rel-switch.ts +7 -6
  45. package/dist/components/rel-tab/rel-tab.ts +15 -29
  46. package/dist/components/rel-textfield/rel-textfield.ts +192 -35
  47. package/dist/components/rel-toast/rel-toast.ts +21 -13
  48. package/dist/components/rel-tooltip/rel-tooltip.ts +123 -123
  49. package/dist/components/rel-topbar/rel-topbar-actions.ts +1 -0
  50. package/dist/components/rel-topbar/rel-topbar-brand.ts +1 -0
  51. package/dist/components/rel-topbar/rel-topbar-dropdown-item.ts +32 -2
  52. package/dist/components/rel-topbar/rel-topbar-dropdown.ts +1 -1
  53. package/dist/components/rel-topbar/rel-topbar-item.ts +15 -10
  54. package/dist/components/rel-topbar/rel-topbar-mobile-panel.ts +1 -0
  55. package/dist/components/rel-topbar/rel-topbar-profile.ts +30 -56
  56. package/dist/components/rel-topbar/rel-topbar-utilities.ts +1 -0
  57. package/dist/components/rel-topbar/rel-topbar.ts +137 -28
  58. package/dist/index.d.mts +310 -193
  59. package/dist/index.d.ts +310 -193
  60. package/dist/index.js +5562 -3526
  61. package/dist/index.js.map +1 -1
  62. package/dist/index.mjs +5328 -3284
  63. package/dist/index.mjs.map +1 -1
  64. package/dist/rel-menubar-menu-BEEQDAXW.css +3 -0
  65. package/dist/styles/vars-v2.css +525 -0
  66. package/dist/styles/vars.css +346 -346
  67. package/dist/{vars-TBB4BMSD.css → vars-I2PC74XD.css} +346 -346
  68. package/dist/vars-v2-VMGWTFJZ.css +525 -0
  69. package/package.json +2 -1
@@ -1,346 +1,346 @@
1
- /* AUTO-GENERATED from tokens/*.json — DO NOT EDIT */
2
- /* To regenerate: npm run sync-tokens -w @reliability-design/figma-pipeline */
3
-
4
- /* ------------------ THEME TRANSITIONS ------------------ */
5
- /* Smooth transitions for theme switching (light/dark) */
6
- * {
7
- transition-property: color, background-color, border-color, box-shadow, fill, stroke;
8
- transition-duration: 0.2s;
9
- transition-timing-function: ease;
10
- }
11
-
12
- /* Disable theme transitions for reduced motion */
13
- @media (prefers-reduced-motion: reduce) {
14
- * {
15
- transition-property: none;
16
- transition-duration: 0s;
17
- }
18
- }
19
-
20
- :root {
21
-
22
- /* ------------------ BORDER RADII ------------------ */
23
- --rel-borders-radius-border-radius-0: 0px;
24
- --rel-borders-radius-border-radius-100: 2px;
25
- --rel-borders-radius-border-radius-200: 8px;
26
- --rel-borders-radius-border-radius-300: 16px;
27
- --rel-borders-radius-border-radius-400: 24px;
28
- --rel-borders-radius-border-radius-500: 1000px;
29
-
30
- /* ------------------ BORDER WIDTHS ------------------ */
31
- --rel-borders-width-stroke-050: 0.5px;
32
- --rel-borders-width-stroke-100: 1px;
33
- --rel-borders-width-stroke-150: 1.5px;
34
- --rel-borders-width-stroke-200: 2px;
35
- --rel-borders-width-stroke-300: 3px;
36
- --rel-borders-width-stroke-400: 4px;
37
-
38
- /* ------------------ COLORS ------------------ */
39
- --rel-colors-green-primary: #00F49C;
40
- --rel-colors-green-secondary: #06D98C;
41
- --rel-colors-green-tertiary: #00A86B;
42
- --rel-colors-green-success: #22C55E;
43
- --rel-colors-green-credited: #4CAA47;
44
- --rel-colors-green-bg-light: #E8F5E8;
45
- --rel-colors-black: #000000;
46
- --rel-colors-gray-primary: #333333;
47
- --rel-colors-gray-heading: #2B2B2B;
48
- --rel-colors-gray-placeholder: #A9A9A9;
49
- --rel-colors-gray-dark-placeholder: #373737;
50
- --rel-colors-gray-toast-bg: #404040;
51
- --rel-colors-gray-light: #FAFAFA;
52
- --rel-colors-gray-warm: #F5F5F4;
53
- --rel-colors-gray-border: #DDDDDD;
54
- --rel-colors-gray-disabled-text: #9E9E9E;
55
- --rel-colors-gray-divider: #BDBDBD;
56
- --rel-colors-gray-tab-border: #C4C4C4;
57
- --rel-colors-gray-surface: #F5F5F5;
58
- --rel-colors-gray-screen-bg: #EEEEEE;
59
- --rel-colors-red-primary: #CC0000;
60
- --rel-colors-red-secondary: #D50000;
61
- --rel-colors-red-tertiary: #9C1E33;
62
- --rel-colors-red-bg-alert: #FFE8EB;
63
- --rel-colors-red-light: #FFDEDE;
64
- --rel-colors-white: #FFFFFF;
65
- --rel-colors-blue-primary: #0091EA;
66
- --rel-colors-blue-secondary: #4A90E2;
67
- --rel-colors-blue-tertiary: #0059F4;
68
- --rel-colors-blue-light: #80D8FF;
69
- --rel-colors-blue-bg: #E1F2FF;
70
- --rel-colors-orange-warning: #FF6D00;
71
- --rel-colors-orange-expired: #F2915C;
72
- --rel-colors-orange-bg-light: #FFE9D9;
73
- --rel-colors-orange-bg-counter: #FFF3E0;
74
- --rel-colors-yellow-pending: #FFBF43;
75
- --rel-colors-gold: #D6BA00;
76
- --rel-colors-gold-light: #F6EFD7;
77
- --rel-colors-gold-secondary: #F5F0D3;
78
- --rel-colors-platinum: #8392C9;
79
- --rel-colors-platinum-secondary: #E4E6F2;
80
- --rel-colors-silver: #BABABA;
81
- --rel-colors-silver-secondary: #F0F0F0;
82
- --rel-colors-bronze: #7D5300;
83
- --rel-colors-bronze-secondary: #E2DAC7;
84
-
85
- /* ------------------ SEMANTIC TEXT ------------------ */
86
- --rel-text-primary: var(--rel-colors-gray-primary);
87
- --rel-text-heading: var(--rel-colors-gray-heading);
88
- --rel-text-error: var(--rel-colors-red-primary);
89
- --rel-text-error-small: var(--rel-colors-red-secondary);
90
- --rel-text-error-medium: var(--rel-colors-red-tertiary);
91
- --rel-text-error-large: var(--rel-colors-red-tertiary);
92
- --rel-text-warning: var(--rel-colors-orange-warning);
93
- --rel-text-warning-small: var(--rel-colors-orange-expired);
94
- --rel-text-warning-medium: var(--rel-colors-yellow-pending);
95
- --rel-text-warning-large: var(--rel-colors-orange-warning);
96
- --rel-text-success: var(--rel-colors-green-success);
97
- --rel-text-success-small: var(--rel-colors-green-secondary);
98
- --rel-text-success-medium: var(--rel-colors-green-tertiary);
99
- --rel-text-success-large: var(--rel-colors-green-success);
100
- --rel-text-info: var(--rel-colors-blue-primary);
101
- --rel-text-info-secondary: var(--rel-colors-blue-secondary);
102
- --rel-text-info-hover: var(--rel-colors-blue-tertiary);
103
- --rel-text-placeholder: var(--rel-colors-gray-placeholder);
104
- --rel-text-dark-placeholder: var(--rel-colors-gray-dark-placeholder);
105
- --rel-text-disabled: var(--rel-colors-gray-disabled-text);
106
- --rel-text-credited: var(--rel-colors-green-credited);
107
-
108
- /* ------------------ SEMANTIC ICONS ------------------ */
109
- --rel-icon-info: var(--rel-colors-blue-primary);
110
- --rel-icon-error: var(--rel-colors-red-primary);
111
- --rel-icon-warning: var(--rel-colors-orange-warning);
112
- --rel-icon-success: var(--rel-colors-green-success);
113
-
114
- /* ------------------ SEMANTIC BORDERS ------------------ */
115
- --rel-border-default: var(--rel-colors-gray-border);
116
- --rel-border-error: var(--rel-colors-red-primary);
117
- --rel-border-warning: var(--rel-colors-orange-warning);
118
- --rel-border-success: var(--rel-colors-green-primary);
119
- --rel-border-info: var(--rel-colors-blue-primary);
120
- --rel-border-divider: var(--rel-colors-gray-divider);
121
- --rel-border-tab: var(--rel-colors-gray-tab-border);
122
-
123
- /* ------------------ SEMANTIC BACKGROUNDS ------------------ */
124
- --rel-background-error: var(--rel-colors-red-bg-alert);
125
- --rel-background-error-light: var(--rel-colors-red-light);
126
- --rel-background-warning: var(--rel-colors-orange-bg-light);
127
- --rel-background-warning-counter: var(--rel-colors-orange-bg-counter);
128
- --rel-background-success: var(--rel-colors-green-bg-light);
129
- --rel-background-info: var(--rel-colors-blue-bg);
130
- --rel-background-info-accent: var(--rel-colors-blue-light);
131
-
132
- /* ------------------ SEMANTIC SURFACES ------------------ */
133
- --rel-surface-secondary: var(--rel-colors-gray-light);
134
- --rel-surface-screen: var(--rel-colors-gray-screen-bg);
135
- --rel-surface-surface: var(--rel-colors-gray-surface);
136
- --rel-surface-warm: var(--rel-colors-gray-warm);
137
- --rel-surface-toast: var(--rel-colors-gray-toast-bg);
138
-
139
- /* ------------------ SHADOWS ------------------ */
140
- --rel-shadows-shadow-100: 0px 1px 2px 0px rgba(0,0,0,0.3), 0px 1px 3px 1px rgba(0,0,0,0.15);
141
- --rel-shadows-shadow-200: 0px 1px 2px 0px rgba(0,0,0,0.3), 0px 2px 6px 2px rgba(0,0,0,0.15);
142
- --rel-shadows-shadow-300: 0px 1px 2px 0px rgba(0,0,0,0.3), 0px 4px 8px 3px rgba(0,0,0,0.15);
143
- --rel-shadows-shadow-400: 0px 2px 3px 0px rgba(0,0,0,0.3), 0px 6px 10px 4px rgba(0,0,0,0.15);
144
- --rel-shadows-shadow-500: 0px 4px 4px 0px rgba(0,0,0,0.3), 0px 8px 12px 6px rgba(0,0,0,0.15);
145
-
146
- /* ------------------ SPACING ------------------ */
147
- --rel-spacing-space-3xs: 2px;
148
- --rel-spacing-space-2xs: 4px;
149
- --rel-spacing-space-xs: 8px;
150
- --rel-spacing-space-sm: 12px;
151
- --rel-spacing-space-md: 16px;
152
- --rel-spacing-space-lg: 20px;
153
- --rel-spacing-space-xl: 24px;
154
- --rel-spacing-space-2xl: 32px;
155
- --rel-spacing-space-3xl: 48px;
156
-
157
- /* ------------------ TYPOGRAPHY ------------------ */
158
- --rel-fontFamilies-primary: Poppins, sans-serif;
159
-
160
- --rel-fontWeights-regular: 400;
161
- --rel-fontWeights-medium: 500;
162
- --rel-fontWeights-semibold: 600;
163
- --rel-fontWeights-bold: 700;
164
-
165
- --rel-fontSizes-3xl: 36px;
166
- --rel-fontSizes-2xl: 28px;
167
- --rel-fontSizes-xl: 24px;
168
- --rel-fontSizes-lg: 20px;
169
- --rel-fontSizes-md: 14px;
170
- --rel-fontSizes-sm: 12px;
171
- --rel-fontSizes-xs: 10px;
172
-
173
- --rel-lineHeights-3xl: 48px;
174
- --rel-lineHeights-2xl: 42px;
175
- --rel-lineHeights-xl: 36px;
176
- --rel-lineHeights-lg: 28px;
177
- --rel-lineHeights-md: 20px;
178
- --rel-lineHeights-sm: 18px;
179
- --rel-lineHeights-xs: 16px;
180
- --rel-lineHeights-2xs: 12px;
181
-
182
- --rel-letterSpacing-normal: 0px;
183
- --rel-letterSpacing-dense: -0.2px;
184
- --rel-letterSpacing-denser: -0.3px;
185
- --rel-letterSpacing-densest: -0.54px;
186
-
187
- /* ------------------ OVERLAYS ------------------ */
188
- --rel-overlay-scrim: rgba(0, 0, 0, 0.5);
189
-
190
- /* ------------------ NEW ADDITIONS / COMPAT TOKENS ------------------ */
191
- /* Keep expected/legacy token names working across components */
192
- --rel-colors-primary-500: var(--rel-colors-blue-primary);
193
- --rel-colors-gray-body: var(--rel-text-primary);
194
- }
195
-
196
- /* !!MANUAL_START!! */
197
-
198
- /* ------------------ SEMANTIC ALIAS LAYER — LIGHT MODE DEFAULTS ------------------
199
- Components should reference these tokens. They automatically flip in dark mode.
200
- Each must resolve to the same effective value as the primitive it wraps. */
201
- :root {
202
-
203
- /* Backgrounds */
204
- --rel-color-bg-primary: var(--rel-colors-white); /* #FFFFFF — Main page/card surface */
205
- --rel-color-bg-secondary: var(--rel-colors-gray-light); /* #FAFAFA — Subtle surface lift */
206
- --rel-color-bg-tertiary: var(--rel-colors-gray-surface); /* #F5F5F5 — Input fill, code bg */
207
- --rel-color-bg-hover: var(--rel-colors-gray-surface); /* #F5F5F5 — Hover state */
208
- --rel-color-bg-selected: var(--rel-colors-gray-screen-bg); /* #EEEEEE — Selected/active bg */
209
-
210
- /* Text */
211
- --rel-color-text-primary: var(--rel-text-primary); /* #333333 — Body text */
212
- --rel-color-text-secondary: var(--rel-colors-gray-disabled-text);/* #9E9E9E — Muted text */
213
- --rel-color-text-heading: var(--rel-text-heading); /* #2B2B2B — Headings */
214
- --rel-color-text-inverse: var(--rel-colors-white); /* #FFFFFF — Text on dark/colored fills — PINNED */
215
- --rel-color-text-disabled: var(--rel-text-disabled); /* #9E9E9E — Disabled text */
216
- --rel-color-text-placeholder: var(--rel-text-placeholder); /* #A9A9A9 — Input placeholder */
217
-
218
- /* Borders */
219
- --rel-color-border-default: var(--rel-border-default); /* #DDDDDD — Default border */
220
- --rel-color-border-strong: var(--rel-colors-black); /* #000000 — High-contrast border (secondary buttons) */
221
- --rel-color-border-focus: var(--rel-colors-blue-primary); /* #0091EA — Focus ring */
222
- --rel-color-border-divider: var(--rel-border-divider); /* #BDBDBD — Divider line */
223
-
224
- /* Icons */
225
- --rel-color-icon-primary: var(--rel-colors-gray-placeholder);/* #A9A9A9 — Default icon */
226
- --rel-color-icon-hover: var(--rel-colors-black); /* #000000 — Hovered icon */
227
-
228
- /* Brand */
229
- --rel-color-brand: var(--rel-colors-green-primary); /* #00F49C — Brand accent — pinned, never flips */
230
- --rel-color-brand-hover: var(--rel-colors-green-secondary); /* #06D98C — Brand hover — pinned */
231
- }
232
-
233
- /* ------------------ DARK MODE ------------------ */
234
- /* Enable by setting: <html data-theme="dark"> or adding class="dark" */
235
- :root[data-theme="dark"], .dark {
236
-
237
- /* ------------------ COLORS (OVERRIDES) ------------------ */
238
- /* Inverted base colors for dark theme */
239
- --rel-colors-white: #0f1115;
240
- --rel-colors-black: #e6e8ee;
241
-
242
- /* Text colors - refined for better readability */
243
- --rel-colors-gray-primary: #e6e8ee;
244
- --rel-colors-gray-heading: #f5f7ff;
245
- --rel-colors-gray-placeholder: #8b95a7;
246
- --rel-colors-gray-dark-placeholder: #707a8c;
247
- --rel-colors-gray-disabled-text: #667085;
248
-
249
- /* Border & divider colors - subtle but clear */
250
- --rel-colors-gray-border: #2a3241;
251
- --rel-colors-gray-divider: #2a3241;
252
- --rel-colors-gray-tab-border: #323b4b;
253
-
254
- /* Surface hierarchy - screen < surface < secondary, warm, toast */
255
- --rel-colors-gray-screen-bg: #0f1115;
256
- --rel-colors-gray-surface: #141821;
257
- --rel-colors-gray-light: #1a1f2b;
258
- --rel-colors-gray-warm: #161b22;
259
- --rel-colors-gray-toast-bg: #1d2430;
260
-
261
-
262
- /* ------------------ STATUS BACKGROUNDS (DARK TINTS) ------------------ */
263
- --rel-colors-red-bg-alert: #2a1116;
264
- --rel-colors-red-light: #3a151c;
265
-
266
- --rel-colors-orange-bg-light: #2a1a10;
267
- --rel-colors-orange-bg-counter: #241a10;
268
-
269
- --rel-colors-green-bg-light: #0f231a;
270
-
271
- --rel-colors-blue-bg: #0f1e2c;
272
- --rel-colors-blue-light: #1b6ea8;
273
-
274
- /* ------------------ SEMANTIC TEXT (EXPLICIT) ------------------ */
275
- --rel-text-primary: var(--rel-colors-gray-primary);
276
- --rel-text-heading: var(--rel-colors-gray-heading);
277
-
278
- --rel-text-placeholder: var(--rel-colors-gray-placeholder);
279
- --rel-text-dark-placeholder: var(--rel-colors-gray-dark-placeholder);
280
-
281
- --rel-text-disabled: var(--rel-colors-gray-disabled-text);
282
-
283
- /* ------------------ SEMANTIC BORDERS (EXPLICIT) ------------------ */
284
- --rel-border-default: var(--rel-colors-gray-border);
285
- --rel-border-divider: var(--rel-colors-gray-divider);
286
- --rel-border-tab: var(--rel-colors-gray-tab-border);
287
-
288
- /* ------------------ SEMANTIC BACKGROUNDS ------------------ */
289
- --rel-background-error: var(--rel-colors-red-bg-alert);
290
- --rel-background-error-light: var(--rel-colors-red-light);
291
- --rel-background-warning: var(--rel-colors-orange-bg-light);
292
- --rel-background-warning-counter: var(--rel-colors-orange-bg-counter);
293
- --rel-background-success: var(--rel-colors-green-bg-light);
294
- --rel-background-info: var(--rel-colors-blue-bg);
295
- --rel-background-info-accent: var(--rel-colors-blue-light);
296
-
297
- /* ------------------ SEMANTIC SURFACES (EXPLICIT) ------------------ */
298
- --rel-surface-secondary: var(--rel-colors-gray-light);
299
- --rel-surface-screen: var(--rel-colors-gray-screen-bg);
300
- --rel-surface-surface: var(--rel-colors-gray-surface);
301
- --rel-surface-warm: var(--rel-colors-gray-warm);
302
- --rel-surface-toast: var(--rel-colors-gray-toast-bg);
303
-
304
- /* ------------------ SHADOWS (DARK TUNED) ------------------ */
305
- --rel-shadows-shadow-100: 0px 1px 2px rgba(0, 0, 0, 0.6);
306
- --rel-shadows-shadow-200: 0px 2px 6px rgba(0, 0, 0, 0.6);
307
- --rel-shadows-shadow-300: 0px 4px 10px rgba(0, 0, 0, 0.65);
308
- --rel-shadows-shadow-400: 0px 6px 16px rgba(0, 0, 0, 0.7);
309
- --rel-shadows-shadow-500: 0px 10px 24px rgba(0, 0, 0, 0.75);
310
-
311
- /* ------------------ OVERLAYS ------------------ */
312
- --rel-overlay-scrim: rgba(0, 0, 0, 0.6);
313
-
314
- /* ------------------ NEW ADDITIONS / COMPAT TOKENS ------------------ */
315
- /* Keep expected/legacy token names working across components */
316
- --rel-colors-primary-500: var(--rel-colors-blue-primary);
317
- --rel-colors-gray-body: var(--rel-text-primary);
318
-
319
- /* ------------------ SEMANTIC ALIAS LAYER — DARK MODE OVERRIDES ------------------
320
- Values sourced from tokens/semantic-colors.json § dark */
321
-
322
- /* Backgrounds */
323
- --rel-color-bg-primary: #1A1A1A; /* --color-dark-50 */
324
- --rel-color-bg-secondary: #262626; /* --color-dark-100 */
325
- --rel-color-bg-tertiary: #2E2E2E; /* --color-dark-200 */
326
- --rel-color-bg-hover: #2E2E2E; /* --color-dark-200 */
327
- --rel-color-bg-selected: #404040; /* --color-dark-300 */
328
-
329
- /* Text */
330
- --rel-color-text-primary: #F5F5F5; /* --color-dark-900 */
331
- --rel-color-text-secondary: #D4D4D4; /* --color-dark-700 */
332
- --rel-color-text-heading: #F5F5F5; /* --color-dark-900 */
333
- --rel-color-text-inverse: #212121; /* --color-gray-900 */
334
- --rel-color-text-disabled: #737373; /* --color-dark-500 */
335
- --rel-color-text-placeholder: #737373; /* --color-dark-500 */
336
-
337
- /* Borders */
338
- --rel-color-border-default: #404040; /* --color-dark-300 */
339
- --rel-color-border-strong: #D4D4D4; /* --color-dark-700 */
340
- --rel-color-border-focus: #D4D4D4; /* --color-dark-700 */
341
- --rel-color-border-divider: #404040; /* --color-dark-300 */
342
-
343
- /* Icons */
344
- --rel-color-icon-primary: #A3A3A3; /* --color-dark-600 */
345
- --rel-color-icon-hover: #F5F5F5; /* --color-dark-900 */
346
- }
1
+ /* AUTO-GENERATED from tokens/*.json — DO NOT EDIT */
2
+ /* To regenerate: npm run sync-tokens -w @reliability-design/figma-pipeline */
3
+
4
+ /* ------------------ THEME TRANSITIONS ------------------ */
5
+ /* Smooth transitions for theme switching (light/dark) */
6
+ * {
7
+ transition-property: color, background-color, border-color, box-shadow, fill, stroke;
8
+ transition-duration: 0.2s;
9
+ transition-timing-function: ease;
10
+ }
11
+
12
+ /* Disable theme transitions for reduced motion */
13
+ @media (prefers-reduced-motion: reduce) {
14
+ * {
15
+ transition-property: none;
16
+ transition-duration: 0s;
17
+ }
18
+ }
19
+
20
+ :root {
21
+
22
+ /* ------------------ BORDER RADII ------------------ */
23
+ --rel-borders-radius-border-radius-0: 0px;
24
+ --rel-borders-radius-border-radius-100: 2px;
25
+ --rel-borders-radius-border-radius-200: 8px;
26
+ --rel-borders-radius-border-radius-300: 16px;
27
+ --rel-borders-radius-border-radius-400: 24px;
28
+ --rel-borders-radius-border-radius-500: 1000px;
29
+
30
+ /* ------------------ BORDER WIDTHS ------------------ */
31
+ --rel-borders-width-stroke-050: 0.5px;
32
+ --rel-borders-width-stroke-100: 1px;
33
+ --rel-borders-width-stroke-150: 1.5px;
34
+ --rel-borders-width-stroke-200: 2px;
35
+ --rel-borders-width-stroke-300: 3px;
36
+ --rel-borders-width-stroke-400: 4px;
37
+
38
+ /* ------------------ COLORS ------------------ */
39
+ --rel-colors-green-primary: #00F49C;
40
+ --rel-colors-green-secondary: #06D98C;
41
+ --rel-colors-green-tertiary: #00A86B;
42
+ --rel-colors-green-success: #22C55E;
43
+ --rel-colors-green-credited: #4CAA47;
44
+ --rel-colors-green-bg-light: #E8F5E8;
45
+ --rel-colors-black: #000000;
46
+ --rel-colors-gray-primary: #333333;
47
+ --rel-colors-gray-heading: #2B2B2B;
48
+ --rel-colors-gray-placeholder: #A9A9A9;
49
+ --rel-colors-gray-dark-placeholder: #373737;
50
+ --rel-colors-gray-toast-bg: #404040;
51
+ --rel-colors-gray-light: #FAFAFA;
52
+ --rel-colors-gray-warm: #F5F5F4;
53
+ --rel-colors-gray-border: #DDDDDD;
54
+ --rel-colors-gray-disabled-text: #9E9E9E;
55
+ --rel-colors-gray-divider: #BDBDBD;
56
+ --rel-colors-gray-tab-border: #C4C4C4;
57
+ --rel-colors-gray-surface: #F5F5F5;
58
+ --rel-colors-gray-screen-bg: #EEEEEE;
59
+ --rel-colors-red-primary: #CC0000;
60
+ --rel-colors-red-secondary: #D50000;
61
+ --rel-colors-red-tertiary: #9C1E33;
62
+ --rel-colors-red-bg-alert: #FFE8EB;
63
+ --rel-colors-red-light: #FFDEDE;
64
+ --rel-colors-white: #FFFFFF;
65
+ --rel-colors-blue-primary: #0091EA;
66
+ --rel-colors-blue-secondary: #4A90E2;
67
+ --rel-colors-blue-tertiary: #0059F4;
68
+ --rel-colors-blue-light: #80D8FF;
69
+ --rel-colors-blue-bg: #E1F2FF;
70
+ --rel-colors-orange-warning: #FF6D00;
71
+ --rel-colors-orange-expired: #F2915C;
72
+ --rel-colors-orange-bg-light: #FFE9D9;
73
+ --rel-colors-orange-bg-counter: #FFF3E0;
74
+ --rel-colors-yellow-pending: #FFBF43;
75
+ --rel-colors-gold: #D6BA00;
76
+ --rel-colors-gold-light: #F6EFD7;
77
+ --rel-colors-gold-secondary: #F5F0D3;
78
+ --rel-colors-platinum: #8392C9;
79
+ --rel-colors-platinum-secondary: #E4E6F2;
80
+ --rel-colors-silver: #BABABA;
81
+ --rel-colors-silver-secondary: #F0F0F0;
82
+ --rel-colors-bronze: #7D5300;
83
+ --rel-colors-bronze-secondary: #E2DAC7;
84
+
85
+ /* ------------------ SEMANTIC TEXT ------------------ */
86
+ --rel-text-primary: var(--rel-colors-gray-primary);
87
+ --rel-text-heading: var(--rel-colors-gray-heading);
88
+ --rel-text-error: var(--rel-colors-red-primary);
89
+ --rel-text-error-small: var(--rel-colors-red-secondary);
90
+ --rel-text-error-medium: var(--rel-colors-red-tertiary);
91
+ --rel-text-error-large: var(--rel-colors-red-tertiary);
92
+ --rel-text-warning: var(--rel-colors-orange-warning);
93
+ --rel-text-warning-small: var(--rel-colors-orange-expired);
94
+ --rel-text-warning-medium: var(--rel-colors-yellow-pending);
95
+ --rel-text-warning-large: var(--rel-colors-orange-warning);
96
+ --rel-text-success: var(--rel-colors-green-success);
97
+ --rel-text-success-small: var(--rel-colors-green-secondary);
98
+ --rel-text-success-medium: var(--rel-colors-green-tertiary);
99
+ --rel-text-success-large: var(--rel-colors-green-success);
100
+ --rel-text-info: var(--rel-colors-blue-primary);
101
+ --rel-text-info-secondary: var(--rel-colors-blue-secondary);
102
+ --rel-text-info-hover: var(--rel-colors-blue-tertiary);
103
+ --rel-text-placeholder: var(--rel-colors-gray-placeholder);
104
+ --rel-text-dark-placeholder: var(--rel-colors-gray-dark-placeholder);
105
+ --rel-text-disabled: var(--rel-colors-gray-disabled-text);
106
+ --rel-text-credited: var(--rel-colors-green-credited);
107
+
108
+ /* ------------------ SEMANTIC ICONS ------------------ */
109
+ --rel-icon-info: var(--rel-colors-blue-primary);
110
+ --rel-icon-error: var(--rel-colors-red-primary);
111
+ --rel-icon-warning: var(--rel-colors-orange-warning);
112
+ --rel-icon-success: var(--rel-colors-green-success);
113
+
114
+ /* ------------------ SEMANTIC BORDERS ------------------ */
115
+ --rel-border-default: var(--rel-colors-gray-border);
116
+ --rel-border-error: var(--rel-colors-red-primary);
117
+ --rel-border-warning: var(--rel-colors-orange-warning);
118
+ --rel-border-success: var(--rel-colors-green-primary);
119
+ --rel-border-info: var(--rel-colors-blue-primary);
120
+ --rel-border-divider: var(--rel-colors-gray-divider);
121
+ --rel-border-tab: var(--rel-colors-gray-tab-border);
122
+
123
+ /* ------------------ SEMANTIC BACKGROUNDS ------------------ */
124
+ --rel-background-error: var(--rel-colors-red-bg-alert);
125
+ --rel-background-error-light: var(--rel-colors-red-light);
126
+ --rel-background-warning: var(--rel-colors-orange-bg-light);
127
+ --rel-background-warning-counter: var(--rel-colors-orange-bg-counter);
128
+ --rel-background-success: var(--rel-colors-green-bg-light);
129
+ --rel-background-info: var(--rel-colors-blue-bg);
130
+ --rel-background-info-accent: var(--rel-colors-blue-light);
131
+
132
+ /* ------------------ SEMANTIC SURFACES ------------------ */
133
+ --rel-surface-secondary: var(--rel-colors-gray-light);
134
+ --rel-surface-screen: var(--rel-colors-gray-screen-bg);
135
+ --rel-surface-surface: var(--rel-colors-gray-surface);
136
+ --rel-surface-warm: var(--rel-colors-gray-warm);
137
+ --rel-surface-toast: var(--rel-colors-gray-toast-bg);
138
+
139
+ /* ------------------ SHADOWS ------------------ */
140
+ --rel-shadows-shadow-100: 0px 1px 2px 0px rgba(0,0,0,0.3), 0px 1px 3px 1px rgba(0,0,0,0.15);
141
+ --rel-shadows-shadow-200: 0px 1px 2px 0px rgba(0,0,0,0.3), 0px 2px 6px 2px rgba(0,0,0,0.15);
142
+ --rel-shadows-shadow-300: 0px 1px 2px 0px rgba(0,0,0,0.3), 0px 4px 8px 3px rgba(0,0,0,0.15);
143
+ --rel-shadows-shadow-400: 0px 2px 3px 0px rgba(0,0,0,0.3), 0px 6px 10px 4px rgba(0,0,0,0.15);
144
+ --rel-shadows-shadow-500: 0px 4px 4px 0px rgba(0,0,0,0.3), 0px 8px 12px 6px rgba(0,0,0,0.15);
145
+
146
+ /* ------------------ SPACING ------------------ */
147
+ --rel-spacing-space-3xs: 2px;
148
+ --rel-spacing-space-2xs: 4px;
149
+ --rel-spacing-space-xs: 8px;
150
+ --rel-spacing-space-sm: 12px;
151
+ --rel-spacing-space-md: 16px;
152
+ --rel-spacing-space-lg: 20px;
153
+ --rel-spacing-space-xl: 24px;
154
+ --rel-spacing-space-2xl: 32px;
155
+ --rel-spacing-space-3xl: 48px;
156
+
157
+ /* ------------------ TYPOGRAPHY ------------------ */
158
+ --rel-fontFamilies-primary: Poppins, sans-serif;
159
+
160
+ --rel-fontWeights-regular: 400;
161
+ --rel-fontWeights-medium: 500;
162
+ --rel-fontWeights-semibold: 600;
163
+ --rel-fontWeights-bold: 700;
164
+
165
+ --rel-fontSizes-3xl: 36px;
166
+ --rel-fontSizes-2xl: 28px;
167
+ --rel-fontSizes-xl: 24px;
168
+ --rel-fontSizes-lg: 20px;
169
+ --rel-fontSizes-md: 14px;
170
+ --rel-fontSizes-sm: 12px;
171
+ --rel-fontSizes-xs: 10px;
172
+
173
+ --rel-lineHeights-3xl: 48px;
174
+ --rel-lineHeights-2xl: 42px;
175
+ --rel-lineHeights-xl: 36px;
176
+ --rel-lineHeights-lg: 28px;
177
+ --rel-lineHeights-md: 20px;
178
+ --rel-lineHeights-sm: 18px;
179
+ --rel-lineHeights-xs: 16px;
180
+ --rel-lineHeights-2xs: 12px;
181
+
182
+ --rel-letterSpacing-normal: 0px;
183
+ --rel-letterSpacing-dense: -0.2px;
184
+ --rel-letterSpacing-denser: -0.3px;
185
+ --rel-letterSpacing-densest: -0.54px;
186
+
187
+ /* ------------------ OVERLAYS ------------------ */
188
+ --rel-overlay-scrim: rgba(0, 0, 0, 0.5);
189
+
190
+ /* ------------------ NEW ADDITIONS / COMPAT TOKENS ------------------ */
191
+ /* Keep expected/legacy token names working across components */
192
+ --rel-colors-primary-500: var(--rel-colors-blue-primary);
193
+ --rel-colors-gray-body: var(--rel-text-primary);
194
+ }
195
+
196
+ /* !!MANUAL_START!! */
197
+
198
+ /* ------------------ SEMANTIC ALIAS LAYER — LIGHT MODE DEFAULTS ------------------
199
+ Components should reference these tokens. They automatically flip in dark mode.
200
+ Each must resolve to the same effective value as the primitive it wraps. */
201
+ :root {
202
+
203
+ /* Backgrounds */
204
+ --rel-color-bg-primary: var(--rel-colors-white); /* #FFFFFF — Main page/card surface */
205
+ --rel-color-bg-secondary: var(--rel-colors-gray-light); /* #FAFAFA — Subtle surface lift */
206
+ --rel-color-bg-tertiary: var(--rel-colors-gray-surface); /* #F5F5F5 — Input fill, code bg */
207
+ --rel-color-bg-hover: var(--rel-colors-gray-surface); /* #F5F5F5 — Hover state */
208
+ --rel-color-bg-selected: var(--rel-colors-gray-screen-bg); /* #EEEEEE — Selected/active bg */
209
+
210
+ /* Text */
211
+ --rel-color-text-primary: var(--rel-text-primary); /* #333333 — Body text */
212
+ --rel-color-text-secondary: var(--rel-colors-gray-disabled-text);/* #9E9E9E — Muted text */
213
+ --rel-color-text-heading: var(--rel-text-heading); /* #2B2B2B — Headings */
214
+ --rel-color-text-inverse: var(--rel-colors-white); /* #FFFFFF — Text on dark/colored fills — PINNED */
215
+ --rel-color-text-disabled: var(--rel-text-disabled); /* #9E9E9E — Disabled text */
216
+ --rel-color-text-placeholder: var(--rel-text-placeholder); /* #A9A9A9 — Input placeholder */
217
+
218
+ /* Borders */
219
+ --rel-color-border-default: var(--rel-border-default); /* #DDDDDD — Default border */
220
+ --rel-color-border-strong: var(--rel-colors-black); /* #000000 — High-contrast border (secondary buttons) */
221
+ --rel-color-border-focus: var(--rel-colors-blue-primary); /* #0091EA — Focus ring */
222
+ --rel-color-border-divider: var(--rel-border-divider); /* #BDBDBD — Divider line */
223
+
224
+ /* Icons */
225
+ --rel-color-icon-primary: var(--rel-colors-gray-placeholder);/* #A9A9A9 — Default icon */
226
+ --rel-color-icon-hover: var(--rel-colors-black); /* #000000 — Hovered icon */
227
+
228
+ /* Brand */
229
+ --rel-color-brand: var(--rel-colors-green-primary); /* #00F49C — Brand accent — pinned, never flips */
230
+ --rel-color-brand-hover: var(--rel-colors-green-secondary); /* #06D98C — Brand hover — pinned */
231
+ }
232
+
233
+ /* ------------------ DARK MODE ------------------ */
234
+ /* Enable by setting: <html data-theme="dark"> or adding class="dark" */
235
+ :root[data-theme="dark"], .dark {
236
+
237
+ /* ------------------ COLORS (OVERRIDES) ------------------ */
238
+ /* Inverted base colors for dark theme */
239
+ --rel-colors-white: #0f1115;
240
+ --rel-colors-black: #e6e8ee;
241
+
242
+ /* Text colors - refined for better readability */
243
+ --rel-colors-gray-primary: #e6e8ee;
244
+ --rel-colors-gray-heading: #f5f7ff;
245
+ --rel-colors-gray-placeholder: #8b95a7;
246
+ --rel-colors-gray-dark-placeholder: #707a8c;
247
+ --rel-colors-gray-disabled-text: #667085;
248
+
249
+ /* Border & divider colors - subtle but clear */
250
+ --rel-colors-gray-border: #2a3241;
251
+ --rel-colors-gray-divider: #2a3241;
252
+ --rel-colors-gray-tab-border: #323b4b;
253
+
254
+ /* Surface hierarchy - screen < surface < secondary, warm, toast */
255
+ --rel-colors-gray-screen-bg: #0f1115;
256
+ --rel-colors-gray-surface: #141821;
257
+ --rel-colors-gray-light: #1a1f2b;
258
+ --rel-colors-gray-warm: #161b22;
259
+ --rel-colors-gray-toast-bg: #1d2430;
260
+
261
+
262
+ /* ------------------ STATUS BACKGROUNDS (DARK TINTS) ------------------ */
263
+ --rel-colors-red-bg-alert: #2a1116;
264
+ --rel-colors-red-light: #3a151c;
265
+
266
+ --rel-colors-orange-bg-light: #2a1a10;
267
+ --rel-colors-orange-bg-counter: #241a10;
268
+
269
+ --rel-colors-green-bg-light: #0f231a;
270
+
271
+ --rel-colors-blue-bg: #0f1e2c;
272
+ --rel-colors-blue-light: #1b6ea8;
273
+
274
+ /* ------------------ SEMANTIC TEXT (EXPLICIT) ------------------ */
275
+ --rel-text-primary: var(--rel-colors-gray-primary);
276
+ --rel-text-heading: var(--rel-colors-gray-heading);
277
+
278
+ --rel-text-placeholder: var(--rel-colors-gray-placeholder);
279
+ --rel-text-dark-placeholder: var(--rel-colors-gray-dark-placeholder);
280
+
281
+ --rel-text-disabled: var(--rel-colors-gray-disabled-text);
282
+
283
+ /* ------------------ SEMANTIC BORDERS (EXPLICIT) ------------------ */
284
+ --rel-border-default: var(--rel-colors-gray-border);
285
+ --rel-border-divider: var(--rel-colors-gray-divider);
286
+ --rel-border-tab: var(--rel-colors-gray-tab-border);
287
+
288
+ /* ------------------ SEMANTIC BACKGROUNDS ------------------ */
289
+ --rel-background-error: var(--rel-colors-red-bg-alert);
290
+ --rel-background-error-light: var(--rel-colors-red-light);
291
+ --rel-background-warning: var(--rel-colors-orange-bg-light);
292
+ --rel-background-warning-counter: var(--rel-colors-orange-bg-counter);
293
+ --rel-background-success: var(--rel-colors-green-bg-light);
294
+ --rel-background-info: var(--rel-colors-blue-bg);
295
+ --rel-background-info-accent: var(--rel-colors-blue-light);
296
+
297
+ /* ------------------ SEMANTIC SURFACES (EXPLICIT) ------------------ */
298
+ --rel-surface-secondary: var(--rel-colors-gray-light);
299
+ --rel-surface-screen: var(--rel-colors-gray-screen-bg);
300
+ --rel-surface-surface: var(--rel-colors-gray-surface);
301
+ --rel-surface-warm: var(--rel-colors-gray-warm);
302
+ --rel-surface-toast: var(--rel-colors-gray-toast-bg);
303
+
304
+ /* ------------------ SHADOWS (DARK TUNED) ------------------ */
305
+ --rel-shadows-shadow-100: 0px 1px 2px rgba(0, 0, 0, 0.6);
306
+ --rel-shadows-shadow-200: 0px 2px 6px rgba(0, 0, 0, 0.6);
307
+ --rel-shadows-shadow-300: 0px 4px 10px rgba(0, 0, 0, 0.65);
308
+ --rel-shadows-shadow-400: 0px 6px 16px rgba(0, 0, 0, 0.7);
309
+ --rel-shadows-shadow-500: 0px 10px 24px rgba(0, 0, 0, 0.75);
310
+
311
+ /* ------------------ OVERLAYS ------------------ */
312
+ --rel-overlay-scrim: rgba(0, 0, 0, 0.6);
313
+
314
+ /* ------------------ NEW ADDITIONS / COMPAT TOKENS ------------------ */
315
+ /* Keep expected/legacy token names working across components */
316
+ --rel-colors-primary-500: var(--rel-colors-blue-primary);
317
+ --rel-colors-gray-body: var(--rel-text-primary);
318
+
319
+ /* ------------------ SEMANTIC ALIAS LAYER — DARK MODE OVERRIDES ------------------
320
+ Values sourced from tokens/semantic-colors.json § dark */
321
+
322
+ /* Backgrounds */
323
+ --rel-color-bg-primary: #1A1A1A; /* --color-dark-50 */
324
+ --rel-color-bg-secondary: #262626; /* --color-dark-100 */
325
+ --rel-color-bg-tertiary: #2E2E2E; /* --color-dark-200 */
326
+ --rel-color-bg-hover: #2E2E2E; /* --color-dark-200 */
327
+ --rel-color-bg-selected: #404040; /* --color-dark-300 */
328
+
329
+ /* Text */
330
+ --rel-color-text-primary: #F5F5F5; /* --color-dark-900 */
331
+ --rel-color-text-secondary: #D4D4D4; /* --color-dark-700 */
332
+ --rel-color-text-heading: #F5F5F5; /* --color-dark-900 */
333
+ --rel-color-text-inverse: #212121; /* --color-gray-900 */
334
+ --rel-color-text-disabled: #737373; /* --color-dark-500 */
335
+ --rel-color-text-placeholder: #737373; /* --color-dark-500 */
336
+
337
+ /* Borders */
338
+ --rel-color-border-default: #404040; /* --color-dark-300 */
339
+ --rel-color-border-strong: #D4D4D4; /* --color-dark-700 */
340
+ --rel-color-border-focus: #D4D4D4; /* --color-dark-700 */
341
+ --rel-color-border-divider: #404040; /* --color-dark-300 */
342
+
343
+ /* Icons */
344
+ --rel-color-icon-primary: #A3A3A3; /* --color-dark-600 */
345
+ --rel-color-icon-hover: #F5F5F5; /* --color-dark-900 */
346
+ }