@lifecorner/angular-ui-kit 3.26.0 → 3.27.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.
- package/fesm2022/lifecorner-angular-ui-kit-callout.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-callout.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-chat.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-chat.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-color-picker.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-color-picker.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-date-range-picker.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-date-range-picker.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-datepicker.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-datepicker.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-dependency-viewer.mjs +47 -9
- package/fesm2022/lifecorner-angular-ui-kit-dependency-viewer.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-description-list.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-description-list.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-document-viewer.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-document-viewer.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-file-upload.mjs +4 -4
- package/fesm2022/lifecorner-angular-ui-kit-file-upload.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-filter-bar.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-filter-bar.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-gallery.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-gallery.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-gantt-chart.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-gantt-chart.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-header.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-header.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-input.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-input.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-kanban-board.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-kanban-board.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-log-viewer.mjs +4 -4
- package/fesm2022/lifecorner-angular-ui-kit-log-viewer.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-notification-center.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-notification-center.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-number-input.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-number-input.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-rich-text-editor.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-rich-text-editor.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-scatter-plot.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-scatter-plot.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-search-input.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-search-input.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-select.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-select.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-split-pane.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-split-pane.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-table.mjs +4 -4
- package/fesm2022/lifecorner-angular-ui-kit-table.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-tabs.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-tabs.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-tag-input.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-tag-input.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-textarea.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-textarea.mjs.map +1 -1
- package/fesm2022/lifecorner-angular-ui-kit-toggle-group.mjs +2 -2
- package/fesm2022/lifecorner-angular-ui-kit-toggle-group.mjs.map +1 -1
- package/package.json +1 -1
- package/src/styles/_reset.scss +4 -2
- package/src/styles/_theme-dark.scss +154 -137
- package/src/styles/_theme-light.scss +158 -138
- package/src/styles/focus-indicators.spec.ts +205 -0
- package/src/styles/theme-contrast.spec.ts +14 -2
- package/src/styles/theme-modes.spec.ts +40 -0
- package/src/styles/touch-targets-contrast.spec.ts +286 -0
- package/types/lifecorner-angular-ui-kit-dependency-viewer.d.ts +33 -4
- package/types/lifecorner-angular-ui-kit-file-upload.d.ts +6 -1
|
@@ -14,16 +14,12 @@
|
|
|
14
14
|
@use './tokens/animation' as *;
|
|
15
15
|
@use './tokens/size' as *;
|
|
16
16
|
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
//
|
|
22
|
-
|
|
23
|
-
// these dark tokens only under `prefers-color-scheme: dark`, so the page
|
|
24
|
-
// switches with the OS setting, also before (or without) any JavaScript.
|
|
25
|
-
// The declarations live in one mixin and are emitted twice (identical values).
|
|
26
|
-
@mixin dark-theme-tokens {
|
|
17
|
+
// Every colour token of the dark theme: --color-*, --gradient-*, --shadow-*,
|
|
18
|
+
// --elevation-*, --accent-line and --app-background-image (request 043, F-25).
|
|
19
|
+
// `dark-theme-tokens` below includes them for the root, and `.lc-header--dark`
|
|
20
|
+
// emits them a second time, so a dark header inside a light page gives its
|
|
21
|
+
// slot content the dark values (see `.lc-header--light` in _theme-light.scss).
|
|
22
|
+
@mixin -dark-theme-colors {
|
|
27
23
|
// ============================================================================
|
|
28
24
|
// Colors - Primary (Inverted for dark mode)
|
|
29
25
|
// ============================================================================
|
|
@@ -98,65 +94,6 @@
|
|
|
98
94
|
--color-accent-rust: #{$color-accent-rust};
|
|
99
95
|
--color-accent-violet: #{$color-accent-violet};
|
|
100
96
|
|
|
101
|
-
// ============================================================================
|
|
102
|
-
// Spacing (Same as light theme)
|
|
103
|
-
// ============================================================================
|
|
104
|
-
--spacing-0: #{$spacing-0};
|
|
105
|
-
--spacing-0-5: #{$spacing-0-5};
|
|
106
|
-
--spacing-1: #{$spacing-1};
|
|
107
|
-
--spacing-1-5: #{$spacing-1-5};
|
|
108
|
-
--spacing-2: #{$spacing-2};
|
|
109
|
-
--spacing-2-5: #{$spacing-2-5};
|
|
110
|
-
--spacing-3: #{$spacing-3};
|
|
111
|
-
--spacing-3-5: #{$spacing-3-5};
|
|
112
|
-
--spacing-4: #{$spacing-4};
|
|
113
|
-
--spacing-5: #{$spacing-5};
|
|
114
|
-
--spacing-6: #{$spacing-6};
|
|
115
|
-
--spacing-7: #{$spacing-7};
|
|
116
|
-
--spacing-8: #{$spacing-8};
|
|
117
|
-
--spacing-9: #{$spacing-9};
|
|
118
|
-
--spacing-10: #{$spacing-10};
|
|
119
|
-
--spacing-11: #{$spacing-11};
|
|
120
|
-
--spacing-12: #{$spacing-12};
|
|
121
|
-
--spacing-14: #{$spacing-14};
|
|
122
|
-
--spacing-16: #{$spacing-16};
|
|
123
|
-
|
|
124
|
-
// ============================================================================
|
|
125
|
-
// Typography - Font Families (Same as light theme)
|
|
126
|
-
// ============================================================================
|
|
127
|
-
--typography-font-family-base: #{$typography-font-family-base};
|
|
128
|
-
--typography-font-family-mono: #{$typography-font-family-mono};
|
|
129
|
-
|
|
130
|
-
// ============================================================================
|
|
131
|
-
// Typography - Font Sizes (Same as light theme)
|
|
132
|
-
// ============================================================================
|
|
133
|
-
--typography-font-size-xs: #{$typography-font-size-xs};
|
|
134
|
-
--typography-font-size-sm: #{$typography-font-size-sm};
|
|
135
|
-
--typography-font-size-base: #{$typography-font-size-base};
|
|
136
|
-
--typography-font-size-lg: #{$typography-font-size-lg};
|
|
137
|
-
--typography-font-size-xl: #{$typography-font-size-xl};
|
|
138
|
-
--typography-font-size-2xl: #{$typography-font-size-2xl};
|
|
139
|
-
--typography-font-size-3xl: #{$typography-font-size-3xl};
|
|
140
|
-
--typography-font-size-4xl: #{$typography-font-size-4xl};
|
|
141
|
-
--typography-font-size-5xl: #{$typography-font-size-5xl};
|
|
142
|
-
--typography-font-size-6xl: #{$typography-font-size-6xl};
|
|
143
|
-
--typography-font-size-7xl: #{$typography-font-size-7xl};
|
|
144
|
-
|
|
145
|
-
// ============================================================================
|
|
146
|
-
// Typography - Font Weights (Same as light theme)
|
|
147
|
-
// ============================================================================
|
|
148
|
-
--typography-font-weight-normal: #{$typography-font-weight-normal};
|
|
149
|
-
--typography-font-weight-medium: #{$typography-font-weight-medium};
|
|
150
|
-
--typography-font-weight-semibold: #{$typography-font-weight-semibold};
|
|
151
|
-
--typography-font-weight-bold: #{$typography-font-weight-bold};
|
|
152
|
-
|
|
153
|
-
// ============================================================================
|
|
154
|
-
// Typography - Line Heights (Same as light theme)
|
|
155
|
-
// ============================================================================
|
|
156
|
-
--typography-line-height-tight: #{$typography-line-height-tight};
|
|
157
|
-
--typography-line-height-normal: #{$typography-line-height-normal};
|
|
158
|
-
--typography-line-height-relaxed: #{$typography-line-height-relaxed};
|
|
159
|
-
|
|
160
97
|
// ============================================================================
|
|
161
98
|
// Elevation (DS2.0 deep layered shadows — from generated tokens)
|
|
162
99
|
// ============================================================================
|
|
@@ -165,55 +102,6 @@
|
|
|
165
102
|
--elevation-3: #{$elevation-3};
|
|
166
103
|
--elevation-4: #{$elevation-4};
|
|
167
104
|
|
|
168
|
-
// ============================================================================
|
|
169
|
-
// Border Radius (Same as light theme)
|
|
170
|
-
// ============================================================================
|
|
171
|
-
--border-radius-none: #{$border-radius-none};
|
|
172
|
-
--border-radius-sm: #{$border-radius-sm};
|
|
173
|
-
--border-radius-md: #{$border-radius-md};
|
|
174
|
-
--border-radius-lg: #{$border-radius-lg};
|
|
175
|
-
--border-radius-xl: #{$border-radius-xl};
|
|
176
|
-
--border-radius-2xl: #{$border-radius-2xl};
|
|
177
|
-
--border-radius-full: #{$border-radius-full};
|
|
178
|
-
|
|
179
|
-
// ============================================================================
|
|
180
|
-
// Animation (Same as light theme)
|
|
181
|
-
// ============================================================================
|
|
182
|
-
--animation-duration-base: #{$animation-duration-fast};
|
|
183
|
-
--animation-easing-ease-in: #{$animation-easing-ease-in};
|
|
184
|
-
--animation-easing-ease-out: #{$animation-easing-ease-out};
|
|
185
|
-
--animation-easing-ease-in-out: #{$animation-easing-ease-in-out};
|
|
186
|
-
|
|
187
|
-
// ============================================================================
|
|
188
|
-
// Size - Interactive Elements (Same as light theme)
|
|
189
|
-
// ============================================================================
|
|
190
|
-
--size-interactive-xs-height: #{$size-interactive-xs-height};
|
|
191
|
-
--size-interactive-xs-padding: #{$size-interactive-xs-padding};
|
|
192
|
-
--size-interactive-xs-font-size: #{$size-interactive-xs-font-size};
|
|
193
|
-
|
|
194
|
-
--size-interactive-sm-height: #{$size-interactive-sm-height};
|
|
195
|
-
--size-interactive-sm-padding: #{$size-interactive-sm-padding};
|
|
196
|
-
--size-interactive-sm-font-size: #{$size-interactive-sm-font-size};
|
|
197
|
-
|
|
198
|
-
--size-interactive-md-height: #{$size-interactive-md-height};
|
|
199
|
-
--size-interactive-md-padding: #{$size-interactive-md-padding};
|
|
200
|
-
--size-interactive-md-font-size: #{$size-interactive-md-font-size};
|
|
201
|
-
|
|
202
|
-
--size-interactive-lg-height: #{$size-interactive-lg-height};
|
|
203
|
-
--size-interactive-lg-padding: #{$size-interactive-lg-padding};
|
|
204
|
-
--size-interactive-lg-font-size: #{$size-interactive-lg-font-size};
|
|
205
|
-
|
|
206
|
-
// ============================================================================
|
|
207
|
-
// Size - Minimum Touch Target (Same as light theme)
|
|
208
|
-
// ============================================================================
|
|
209
|
-
--size-min-touch-width: #{$size-min-touch-width};
|
|
210
|
-
--size-min-touch-height: #{$size-min-touch-height};
|
|
211
|
-
|
|
212
|
-
// ============================================================================
|
|
213
|
-
// Layout - Content Width (Same as light theme)
|
|
214
|
-
// ============================================================================
|
|
215
|
-
--lc-content-max-width: #{$size-content-max-width};
|
|
216
|
-
|
|
217
105
|
// ============================================================================
|
|
218
106
|
// Semantic Color Mappings for Dark Theme (DS2.0 — teal-tinted surfaces)
|
|
219
107
|
// ============================================================================
|
|
@@ -397,25 +285,6 @@
|
|
|
397
285
|
--color-skeleton: rgba(132, 199, 212, 0.07);
|
|
398
286
|
--color-skeleton-highlight: rgba(132, 199, 212, 0.13);
|
|
399
287
|
|
|
400
|
-
// ============================================================================
|
|
401
|
-
// Short Aliases for Common Usage (Component Convenience)
|
|
402
|
-
// ============================================================================
|
|
403
|
-
--font-family-sans: var(--typography-font-family-base);
|
|
404
|
-
--font-family-mono: var(--typography-font-family-mono);
|
|
405
|
-
--font-size-xs: var(--typography-font-size-xs);
|
|
406
|
-
--font-size-sm: var(--typography-font-size-sm);
|
|
407
|
-
--font-size-base: var(--typography-font-size-base);
|
|
408
|
-
--font-size-lg: var(--typography-font-size-lg);
|
|
409
|
-
--font-size-xl: var(--typography-font-size-xl);
|
|
410
|
-
--font-weight-normal: var(--typography-font-weight-normal);
|
|
411
|
-
--font-weight-medium: var(--typography-font-weight-medium);
|
|
412
|
-
--font-weight-semibold: var(--typography-font-weight-semibold);
|
|
413
|
-
--font-weight-bold: var(--typography-font-weight-bold);
|
|
414
|
-
--line-height-tight: var(--typography-line-height-tight);
|
|
415
|
-
--line-height-normal: var(--typography-line-height-normal);
|
|
416
|
-
--line-height-relaxed: var(--typography-line-height-relaxed);
|
|
417
|
-
--animation-timing-ease: var(--animation-easing-ease-in-out);
|
|
418
|
-
|
|
419
288
|
// Semantic color scale aliases — resolve the numeric scale some components
|
|
420
289
|
// use onto the canonical semantic shades (already dark-tuned above).
|
|
421
290
|
--color-error-50: rgba(157, 14, 14, 0.18);
|
|
@@ -441,6 +310,146 @@
|
|
|
441
310
|
--color-info-700: var(--color-info-dark);
|
|
442
311
|
}
|
|
443
312
|
|
|
313
|
+
// Design System 2.0: dark is the DEFAULT look. `:root:not(.light)` makes dark
|
|
314
|
+
// apply before any theme class is set (no first-paint white flash); `.light` is
|
|
315
|
+
// the explicit opt-in escape hatch defined in _theme-light.scss.
|
|
316
|
+
//
|
|
317
|
+
// 3.3 (G-6): `:root.system` follows the OS without a script. A root with the
|
|
318
|
+
// `system` class gets the light tokens from _theme-light.scss (`:root`) and
|
|
319
|
+
// these dark tokens only under `prefers-color-scheme: dark`, so the page
|
|
320
|
+
// switches with the OS setting, also before (or without) any JavaScript.
|
|
321
|
+
// The declarations live in one mixin and are emitted twice (identical values).
|
|
322
|
+
@mixin dark-theme-tokens {
|
|
323
|
+
@include -dark-theme-colors;
|
|
324
|
+
|
|
325
|
+
// ============================================================================
|
|
326
|
+
// Spacing (Same as light theme)
|
|
327
|
+
// ============================================================================
|
|
328
|
+
--spacing-0: #{$spacing-0};
|
|
329
|
+
--spacing-0-5: #{$spacing-0-5};
|
|
330
|
+
--spacing-1: #{$spacing-1};
|
|
331
|
+
--spacing-1-5: #{$spacing-1-5};
|
|
332
|
+
--spacing-2: #{$spacing-2};
|
|
333
|
+
--spacing-2-5: #{$spacing-2-5};
|
|
334
|
+
--spacing-3: #{$spacing-3};
|
|
335
|
+
--spacing-3-5: #{$spacing-3-5};
|
|
336
|
+
--spacing-4: #{$spacing-4};
|
|
337
|
+
--spacing-5: #{$spacing-5};
|
|
338
|
+
--spacing-6: #{$spacing-6};
|
|
339
|
+
--spacing-7: #{$spacing-7};
|
|
340
|
+
--spacing-8: #{$spacing-8};
|
|
341
|
+
--spacing-9: #{$spacing-9};
|
|
342
|
+
--spacing-10: #{$spacing-10};
|
|
343
|
+
--spacing-11: #{$spacing-11};
|
|
344
|
+
--spacing-12: #{$spacing-12};
|
|
345
|
+
--spacing-14: #{$spacing-14};
|
|
346
|
+
--spacing-16: #{$spacing-16};
|
|
347
|
+
|
|
348
|
+
// ============================================================================
|
|
349
|
+
// Typography - Font Families (Same as light theme)
|
|
350
|
+
// ============================================================================
|
|
351
|
+
--typography-font-family-base: #{$typography-font-family-base};
|
|
352
|
+
--typography-font-family-mono: #{$typography-font-family-mono};
|
|
353
|
+
|
|
354
|
+
// ============================================================================
|
|
355
|
+
// Typography - Font Sizes (Same as light theme)
|
|
356
|
+
// ============================================================================
|
|
357
|
+
--typography-font-size-xs: #{$typography-font-size-xs};
|
|
358
|
+
--typography-font-size-sm: #{$typography-font-size-sm};
|
|
359
|
+
--typography-font-size-base: #{$typography-font-size-base};
|
|
360
|
+
--typography-font-size-lg: #{$typography-font-size-lg};
|
|
361
|
+
--typography-font-size-xl: #{$typography-font-size-xl};
|
|
362
|
+
--typography-font-size-2xl: #{$typography-font-size-2xl};
|
|
363
|
+
--typography-font-size-3xl: #{$typography-font-size-3xl};
|
|
364
|
+
--typography-font-size-4xl: #{$typography-font-size-4xl};
|
|
365
|
+
--typography-font-size-5xl: #{$typography-font-size-5xl};
|
|
366
|
+
--typography-font-size-6xl: #{$typography-font-size-6xl};
|
|
367
|
+
--typography-font-size-7xl: #{$typography-font-size-7xl};
|
|
368
|
+
|
|
369
|
+
// ============================================================================
|
|
370
|
+
// Typography - Font Weights (Same as light theme)
|
|
371
|
+
// ============================================================================
|
|
372
|
+
--typography-font-weight-normal: #{$typography-font-weight-normal};
|
|
373
|
+
--typography-font-weight-medium: #{$typography-font-weight-medium};
|
|
374
|
+
--typography-font-weight-semibold: #{$typography-font-weight-semibold};
|
|
375
|
+
--typography-font-weight-bold: #{$typography-font-weight-bold};
|
|
376
|
+
|
|
377
|
+
// ============================================================================
|
|
378
|
+
// Typography - Line Heights (Same as light theme)
|
|
379
|
+
// ============================================================================
|
|
380
|
+
--typography-line-height-tight: #{$typography-line-height-tight};
|
|
381
|
+
--typography-line-height-normal: #{$typography-line-height-normal};
|
|
382
|
+
--typography-line-height-relaxed: #{$typography-line-height-relaxed};
|
|
383
|
+
|
|
384
|
+
// ============================================================================
|
|
385
|
+
// Border Radius (Same as light theme)
|
|
386
|
+
// ============================================================================
|
|
387
|
+
--border-radius-none: #{$border-radius-none};
|
|
388
|
+
--border-radius-sm: #{$border-radius-sm};
|
|
389
|
+
--border-radius-md: #{$border-radius-md};
|
|
390
|
+
--border-radius-lg: #{$border-radius-lg};
|
|
391
|
+
--border-radius-xl: #{$border-radius-xl};
|
|
392
|
+
--border-radius-2xl: #{$border-radius-2xl};
|
|
393
|
+
--border-radius-full: #{$border-radius-full};
|
|
394
|
+
|
|
395
|
+
// ============================================================================
|
|
396
|
+
// Animation (Same as light theme)
|
|
397
|
+
// ============================================================================
|
|
398
|
+
--animation-duration-base: #{$animation-duration-fast};
|
|
399
|
+
--animation-easing-ease-in: #{$animation-easing-ease-in};
|
|
400
|
+
--animation-easing-ease-out: #{$animation-easing-ease-out};
|
|
401
|
+
--animation-easing-ease-in-out: #{$animation-easing-ease-in-out};
|
|
402
|
+
|
|
403
|
+
// ============================================================================
|
|
404
|
+
// Size - Interactive Elements (Same as light theme)
|
|
405
|
+
// ============================================================================
|
|
406
|
+
--size-interactive-xs-height: #{$size-interactive-xs-height};
|
|
407
|
+
--size-interactive-xs-padding: #{$size-interactive-xs-padding};
|
|
408
|
+
--size-interactive-xs-font-size: #{$size-interactive-xs-font-size};
|
|
409
|
+
|
|
410
|
+
--size-interactive-sm-height: #{$size-interactive-sm-height};
|
|
411
|
+
--size-interactive-sm-padding: #{$size-interactive-sm-padding};
|
|
412
|
+
--size-interactive-sm-font-size: #{$size-interactive-sm-font-size};
|
|
413
|
+
|
|
414
|
+
--size-interactive-md-height: #{$size-interactive-md-height};
|
|
415
|
+
--size-interactive-md-padding: #{$size-interactive-md-padding};
|
|
416
|
+
--size-interactive-md-font-size: #{$size-interactive-md-font-size};
|
|
417
|
+
|
|
418
|
+
--size-interactive-lg-height: #{$size-interactive-lg-height};
|
|
419
|
+
--size-interactive-lg-padding: #{$size-interactive-lg-padding};
|
|
420
|
+
--size-interactive-lg-font-size: #{$size-interactive-lg-font-size};
|
|
421
|
+
|
|
422
|
+
// ============================================================================
|
|
423
|
+
// Size - Minimum Touch Target (Same as light theme)
|
|
424
|
+
// ============================================================================
|
|
425
|
+
--size-min-touch-width: #{$size-min-touch-width};
|
|
426
|
+
--size-min-touch-height: #{$size-min-touch-height};
|
|
427
|
+
|
|
428
|
+
// ============================================================================
|
|
429
|
+
// Layout - Content Width (Same as light theme)
|
|
430
|
+
// ============================================================================
|
|
431
|
+
--lc-content-max-width: #{$size-content-max-width};
|
|
432
|
+
|
|
433
|
+
// ============================================================================
|
|
434
|
+
// Short Aliases for Common Usage (Component Convenience)
|
|
435
|
+
// ============================================================================
|
|
436
|
+
--font-family-sans: var(--typography-font-family-base);
|
|
437
|
+
--font-family-mono: var(--typography-font-family-mono);
|
|
438
|
+
--font-size-xs: var(--typography-font-size-xs);
|
|
439
|
+
--font-size-sm: var(--typography-font-size-sm);
|
|
440
|
+
--font-size-base: var(--typography-font-size-base);
|
|
441
|
+
--font-size-lg: var(--typography-font-size-lg);
|
|
442
|
+
--font-size-xl: var(--typography-font-size-xl);
|
|
443
|
+
--font-weight-normal: var(--typography-font-weight-normal);
|
|
444
|
+
--font-weight-medium: var(--typography-font-weight-medium);
|
|
445
|
+
--font-weight-semibold: var(--typography-font-weight-semibold);
|
|
446
|
+
--font-weight-bold: var(--typography-font-weight-bold);
|
|
447
|
+
--line-height-tight: var(--typography-line-height-tight);
|
|
448
|
+
--line-height-normal: var(--typography-line-height-normal);
|
|
449
|
+
--line-height-relaxed: var(--typography-line-height-relaxed);
|
|
450
|
+
--animation-timing-ease: var(--animation-easing-ease-in-out);
|
|
451
|
+
}
|
|
452
|
+
|
|
444
453
|
:root.dark,
|
|
445
454
|
:root:not(.light):not(.system) {
|
|
446
455
|
@include dark-theme-tokens;
|
|
@@ -457,3 +466,11 @@
|
|
|
457
466
|
:root.system {
|
|
458
467
|
color-scheme: light dark;
|
|
459
468
|
}
|
|
469
|
+
|
|
470
|
+
// `<lc-header theme="dark">` keeps the dark palette inside a light page
|
|
471
|
+
// (request 043, F-25): its slot buttons measured 1.00:1 (outline) and 3.12:1
|
|
472
|
+
// (link) there; with the tokens re-declared they match a dark page (16.32:1,
|
|
473
|
+
// 12.13:1). A root-level token override does not reach inside a themed header.
|
|
474
|
+
.lc-header--dark {
|
|
475
|
+
@include -dark-theme-colors;
|
|
476
|
+
}
|
|
@@ -14,9 +14,14 @@
|
|
|
14
14
|
@use './tokens/animation' as *;
|
|
15
15
|
@use './tokens/size' as *;
|
|
16
16
|
|
|
17
|
-
//
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
// Every colour token of the light theme: --color-*, --gradient-*, --shadow-*,
|
|
18
|
+
// --elevation-*, --accent-line and --app-background-image (request 043, F-25).
|
|
19
|
+
// The root rule below emits them, and `.lc-header--light` emits them a second
|
|
20
|
+
// time: derived tokens (`--color-primary: var(--color-primary-500)`) resolve
|
|
21
|
+
// where they are declared, so only the full set on the header gives its slot
|
|
22
|
+
// content (buttons, links, the theme toggle, the account menu) the light
|
|
23
|
+
// values inside a dark page.
|
|
24
|
+
@mixin -light-theme-colors {
|
|
20
25
|
// ============================================================================
|
|
21
26
|
// Colors - Primary
|
|
22
27
|
// ============================================================================
|
|
@@ -91,65 +96,6 @@
|
|
|
91
96
|
--color-accent-rust: #{$color-accent-rust};
|
|
92
97
|
--color-accent-violet: #{$color-accent-violet};
|
|
93
98
|
|
|
94
|
-
// ============================================================================
|
|
95
|
-
// Spacing
|
|
96
|
-
// ============================================================================
|
|
97
|
-
--spacing-0: #{$spacing-0};
|
|
98
|
-
--spacing-0-5: #{$spacing-0-5};
|
|
99
|
-
--spacing-1: #{$spacing-1};
|
|
100
|
-
--spacing-1-5: #{$spacing-1-5};
|
|
101
|
-
--spacing-2: #{$spacing-2};
|
|
102
|
-
--spacing-2-5: #{$spacing-2-5};
|
|
103
|
-
--spacing-3: #{$spacing-3};
|
|
104
|
-
--spacing-3-5: #{$spacing-3-5};
|
|
105
|
-
--spacing-4: #{$spacing-4};
|
|
106
|
-
--spacing-5: #{$spacing-5};
|
|
107
|
-
--spacing-6: #{$spacing-6};
|
|
108
|
-
--spacing-7: #{$spacing-7};
|
|
109
|
-
--spacing-8: #{$spacing-8};
|
|
110
|
-
--spacing-9: #{$spacing-9};
|
|
111
|
-
--spacing-10: #{$spacing-10};
|
|
112
|
-
--spacing-11: #{$spacing-11};
|
|
113
|
-
--spacing-12: #{$spacing-12};
|
|
114
|
-
--spacing-14: #{$spacing-14};
|
|
115
|
-
--spacing-16: #{$spacing-16};
|
|
116
|
-
|
|
117
|
-
// ============================================================================
|
|
118
|
-
// Typography - Font Families
|
|
119
|
-
// ============================================================================
|
|
120
|
-
--typography-font-family-base: #{$typography-font-family-base};
|
|
121
|
-
--typography-font-family-mono: #{$typography-font-family-mono};
|
|
122
|
-
|
|
123
|
-
// ============================================================================
|
|
124
|
-
// Typography - Font Sizes
|
|
125
|
-
// ============================================================================
|
|
126
|
-
--typography-font-size-xs: #{$typography-font-size-xs};
|
|
127
|
-
--typography-font-size-sm: #{$typography-font-size-sm};
|
|
128
|
-
--typography-font-size-base: #{$typography-font-size-base};
|
|
129
|
-
--typography-font-size-lg: #{$typography-font-size-lg};
|
|
130
|
-
--typography-font-size-xl: #{$typography-font-size-xl};
|
|
131
|
-
--typography-font-size-2xl: #{$typography-font-size-2xl};
|
|
132
|
-
--typography-font-size-3xl: #{$typography-font-size-3xl};
|
|
133
|
-
--typography-font-size-4xl: #{$typography-font-size-4xl};
|
|
134
|
-
--typography-font-size-5xl: #{$typography-font-size-5xl};
|
|
135
|
-
--typography-font-size-6xl: #{$typography-font-size-6xl};
|
|
136
|
-
--typography-font-size-7xl: #{$typography-font-size-7xl};
|
|
137
|
-
|
|
138
|
-
// ============================================================================
|
|
139
|
-
// Typography - Font Weights
|
|
140
|
-
// ============================================================================
|
|
141
|
-
--typography-font-weight-normal: #{$typography-font-weight-normal};
|
|
142
|
-
--typography-font-weight-medium: #{$typography-font-weight-medium};
|
|
143
|
-
--typography-font-weight-semibold: #{$typography-font-weight-semibold};
|
|
144
|
-
--typography-font-weight-bold: #{$typography-font-weight-bold};
|
|
145
|
-
|
|
146
|
-
// ============================================================================
|
|
147
|
-
// Typography - Line Heights
|
|
148
|
-
// ============================================================================
|
|
149
|
-
--typography-line-height-tight: #{$typography-line-height-tight};
|
|
150
|
-
--typography-line-height-normal: #{$typography-line-height-normal};
|
|
151
|
-
--typography-line-height-relaxed: #{$typography-line-height-relaxed};
|
|
152
|
-
|
|
153
99
|
// ============================================================================
|
|
154
100
|
// Elevation (Box Shadows) — light-tuned
|
|
155
101
|
// ============================================================================
|
|
@@ -162,58 +108,6 @@
|
|
|
162
108
|
--elevation-3: 0 4px 6px -2px rgba(16, 24, 40, 0.05), 0 12px 16px -4px rgba(16, 24, 40, 0.10);
|
|
163
109
|
--elevation-4: 0 8px 8px -4px rgba(16, 24, 40, 0.04), 0 20px 24px -4px rgba(16, 24, 40, 0.10);
|
|
164
110
|
|
|
165
|
-
// ============================================================================
|
|
166
|
-
// Border Radius
|
|
167
|
-
// ============================================================================
|
|
168
|
-
--border-radius-none: #{$border-radius-none};
|
|
169
|
-
--border-radius-sm: #{$border-radius-sm};
|
|
170
|
-
--border-radius-md: #{$border-radius-md};
|
|
171
|
-
--border-radius-lg: #{$border-radius-lg};
|
|
172
|
-
--border-radius-xl: #{$border-radius-xl};
|
|
173
|
-
--border-radius-2xl: #{$border-radius-2xl};
|
|
174
|
-
--border-radius-full: #{$border-radius-full};
|
|
175
|
-
|
|
176
|
-
// ============================================================================
|
|
177
|
-
// Animation
|
|
178
|
-
// ============================================================================
|
|
179
|
-
--animation-duration-base: #{$animation-duration-fast};
|
|
180
|
-
--animation-easing-ease-in: #{$animation-easing-ease-in};
|
|
181
|
-
--animation-easing-ease-out: #{$animation-easing-ease-out};
|
|
182
|
-
--animation-easing-ease-in-out: #{$animation-easing-ease-in-out};
|
|
183
|
-
|
|
184
|
-
// ============================================================================
|
|
185
|
-
// Size - Interactive Elements
|
|
186
|
-
// ============================================================================
|
|
187
|
-
--size-interactive-xs-height: #{$size-interactive-xs-height};
|
|
188
|
-
--size-interactive-xs-padding: #{$size-interactive-xs-padding};
|
|
189
|
-
--size-interactive-xs-font-size: #{$size-interactive-xs-font-size};
|
|
190
|
-
|
|
191
|
-
--size-interactive-sm-height: #{$size-interactive-sm-height};
|
|
192
|
-
--size-interactive-sm-padding: #{$size-interactive-sm-padding};
|
|
193
|
-
--size-interactive-sm-font-size: #{$size-interactive-sm-font-size};
|
|
194
|
-
|
|
195
|
-
--size-interactive-md-height: #{$size-interactive-md-height};
|
|
196
|
-
--size-interactive-md-padding: #{$size-interactive-md-padding};
|
|
197
|
-
--size-interactive-md-font-size: #{$size-interactive-md-font-size};
|
|
198
|
-
|
|
199
|
-
--size-interactive-lg-height: #{$size-interactive-lg-height};
|
|
200
|
-
--size-interactive-lg-padding: #{$size-interactive-lg-padding};
|
|
201
|
-
--size-interactive-lg-font-size: #{$size-interactive-lg-font-size};
|
|
202
|
-
|
|
203
|
-
// ============================================================================
|
|
204
|
-
// Size - Minimum Touch Target
|
|
205
|
-
// ============================================================================
|
|
206
|
-
--size-min-touch-width: #{$size-min-touch-width};
|
|
207
|
-
--size-min-touch-height: #{$size-min-touch-height};
|
|
208
|
-
|
|
209
|
-
// ============================================================================
|
|
210
|
-
// Layout - Content Width
|
|
211
|
-
// ============================================================================
|
|
212
|
-
// Canonical cap for page content. `lc-container size="xxl"` reads this, so an
|
|
213
|
-
// app shell that centres its own content against the same custom property
|
|
214
|
-
// stays in lockstep with the container instead of hard-coding a width.
|
|
215
|
-
--lc-content-max-width: #{$size-content-max-width};
|
|
216
|
-
|
|
217
111
|
// ============================================================================
|
|
218
112
|
// Semantic Color Mappings for Light Theme (DS2.0 — mirrors dark token names)
|
|
219
113
|
// ============================================================================
|
|
@@ -415,6 +309,147 @@
|
|
|
415
309
|
--color-skeleton: #e6eff1;
|
|
416
310
|
--color-skeleton-highlight: #f2f7f8;
|
|
417
311
|
|
|
312
|
+
// Semantic color scale aliases — map the numeric scale some components use
|
|
313
|
+
// onto the three canonical semantic shades so they always resolve.
|
|
314
|
+
--color-error-50: #{$color-error-light};
|
|
315
|
+
--color-error-100: #{$color-error-light};
|
|
316
|
+
--color-error-500: var(--color-error-default);
|
|
317
|
+
--color-error-600: var(--color-error-default);
|
|
318
|
+
--color-error-700: var(--color-error-dark);
|
|
319
|
+
--color-error-800: #5a0707; // Darker shade for active state
|
|
320
|
+
--color-success-50: #{$color-success-light};
|
|
321
|
+
--color-success-100: #{$color-success-light};
|
|
322
|
+
--color-success-500: var(--color-success-default);
|
|
323
|
+
--color-success-600: var(--color-success-default);
|
|
324
|
+
--color-success-700: var(--color-success-dark);
|
|
325
|
+
--color-warning-50: #{$color-warning-light};
|
|
326
|
+
--color-warning-100: #{$color-warning-light};
|
|
327
|
+
--color-warning-500: var(--color-warning-default);
|
|
328
|
+
--color-warning-600: var(--color-warning-default);
|
|
329
|
+
--color-warning-700: var(--color-warning-dark);
|
|
330
|
+
--color-info-50: #{$color-info-light};
|
|
331
|
+
--color-info-100: #{$color-info-light};
|
|
332
|
+
--color-info-500: var(--color-info-default);
|
|
333
|
+
--color-info-600: var(--color-info-default);
|
|
334
|
+
--color-info-700: var(--color-info-dark);
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
// Default theme (light) on :root
|
|
338
|
+
:root,
|
|
339
|
+
:root.light {
|
|
340
|
+
@include -light-theme-colors;
|
|
341
|
+
|
|
342
|
+
// ============================================================================
|
|
343
|
+
// Spacing
|
|
344
|
+
// ============================================================================
|
|
345
|
+
--spacing-0: #{$spacing-0};
|
|
346
|
+
--spacing-0-5: #{$spacing-0-5};
|
|
347
|
+
--spacing-1: #{$spacing-1};
|
|
348
|
+
--spacing-1-5: #{$spacing-1-5};
|
|
349
|
+
--spacing-2: #{$spacing-2};
|
|
350
|
+
--spacing-2-5: #{$spacing-2-5};
|
|
351
|
+
--spacing-3: #{$spacing-3};
|
|
352
|
+
--spacing-3-5: #{$spacing-3-5};
|
|
353
|
+
--spacing-4: #{$spacing-4};
|
|
354
|
+
--spacing-5: #{$spacing-5};
|
|
355
|
+
--spacing-6: #{$spacing-6};
|
|
356
|
+
--spacing-7: #{$spacing-7};
|
|
357
|
+
--spacing-8: #{$spacing-8};
|
|
358
|
+
--spacing-9: #{$spacing-9};
|
|
359
|
+
--spacing-10: #{$spacing-10};
|
|
360
|
+
--spacing-11: #{$spacing-11};
|
|
361
|
+
--spacing-12: #{$spacing-12};
|
|
362
|
+
--spacing-14: #{$spacing-14};
|
|
363
|
+
--spacing-16: #{$spacing-16};
|
|
364
|
+
|
|
365
|
+
// ============================================================================
|
|
366
|
+
// Typography - Font Families
|
|
367
|
+
// ============================================================================
|
|
368
|
+
--typography-font-family-base: #{$typography-font-family-base};
|
|
369
|
+
--typography-font-family-mono: #{$typography-font-family-mono};
|
|
370
|
+
|
|
371
|
+
// ============================================================================
|
|
372
|
+
// Typography - Font Sizes
|
|
373
|
+
// ============================================================================
|
|
374
|
+
--typography-font-size-xs: #{$typography-font-size-xs};
|
|
375
|
+
--typography-font-size-sm: #{$typography-font-size-sm};
|
|
376
|
+
--typography-font-size-base: #{$typography-font-size-base};
|
|
377
|
+
--typography-font-size-lg: #{$typography-font-size-lg};
|
|
378
|
+
--typography-font-size-xl: #{$typography-font-size-xl};
|
|
379
|
+
--typography-font-size-2xl: #{$typography-font-size-2xl};
|
|
380
|
+
--typography-font-size-3xl: #{$typography-font-size-3xl};
|
|
381
|
+
--typography-font-size-4xl: #{$typography-font-size-4xl};
|
|
382
|
+
--typography-font-size-5xl: #{$typography-font-size-5xl};
|
|
383
|
+
--typography-font-size-6xl: #{$typography-font-size-6xl};
|
|
384
|
+
--typography-font-size-7xl: #{$typography-font-size-7xl};
|
|
385
|
+
|
|
386
|
+
// ============================================================================
|
|
387
|
+
// Typography - Font Weights
|
|
388
|
+
// ============================================================================
|
|
389
|
+
--typography-font-weight-normal: #{$typography-font-weight-normal};
|
|
390
|
+
--typography-font-weight-medium: #{$typography-font-weight-medium};
|
|
391
|
+
--typography-font-weight-semibold: #{$typography-font-weight-semibold};
|
|
392
|
+
--typography-font-weight-bold: #{$typography-font-weight-bold};
|
|
393
|
+
|
|
394
|
+
// ============================================================================
|
|
395
|
+
// Typography - Line Heights
|
|
396
|
+
// ============================================================================
|
|
397
|
+
--typography-line-height-tight: #{$typography-line-height-tight};
|
|
398
|
+
--typography-line-height-normal: #{$typography-line-height-normal};
|
|
399
|
+
--typography-line-height-relaxed: #{$typography-line-height-relaxed};
|
|
400
|
+
|
|
401
|
+
// ============================================================================
|
|
402
|
+
// Border Radius
|
|
403
|
+
// ============================================================================
|
|
404
|
+
--border-radius-none: #{$border-radius-none};
|
|
405
|
+
--border-radius-sm: #{$border-radius-sm};
|
|
406
|
+
--border-radius-md: #{$border-radius-md};
|
|
407
|
+
--border-radius-lg: #{$border-radius-lg};
|
|
408
|
+
--border-radius-xl: #{$border-radius-xl};
|
|
409
|
+
--border-radius-2xl: #{$border-radius-2xl};
|
|
410
|
+
--border-radius-full: #{$border-radius-full};
|
|
411
|
+
|
|
412
|
+
// ============================================================================
|
|
413
|
+
// Animation
|
|
414
|
+
// ============================================================================
|
|
415
|
+
--animation-duration-base: #{$animation-duration-fast};
|
|
416
|
+
--animation-easing-ease-in: #{$animation-easing-ease-in};
|
|
417
|
+
--animation-easing-ease-out: #{$animation-easing-ease-out};
|
|
418
|
+
--animation-easing-ease-in-out: #{$animation-easing-ease-in-out};
|
|
419
|
+
|
|
420
|
+
// ============================================================================
|
|
421
|
+
// Size - Interactive Elements
|
|
422
|
+
// ============================================================================
|
|
423
|
+
--size-interactive-xs-height: #{$size-interactive-xs-height};
|
|
424
|
+
--size-interactive-xs-padding: #{$size-interactive-xs-padding};
|
|
425
|
+
--size-interactive-xs-font-size: #{$size-interactive-xs-font-size};
|
|
426
|
+
|
|
427
|
+
--size-interactive-sm-height: #{$size-interactive-sm-height};
|
|
428
|
+
--size-interactive-sm-padding: #{$size-interactive-sm-padding};
|
|
429
|
+
--size-interactive-sm-font-size: #{$size-interactive-sm-font-size};
|
|
430
|
+
|
|
431
|
+
--size-interactive-md-height: #{$size-interactive-md-height};
|
|
432
|
+
--size-interactive-md-padding: #{$size-interactive-md-padding};
|
|
433
|
+
--size-interactive-md-font-size: #{$size-interactive-md-font-size};
|
|
434
|
+
|
|
435
|
+
--size-interactive-lg-height: #{$size-interactive-lg-height};
|
|
436
|
+
--size-interactive-lg-padding: #{$size-interactive-lg-padding};
|
|
437
|
+
--size-interactive-lg-font-size: #{$size-interactive-lg-font-size};
|
|
438
|
+
|
|
439
|
+
// ============================================================================
|
|
440
|
+
// Size - Minimum Touch Target
|
|
441
|
+
// ============================================================================
|
|
442
|
+
--size-min-touch-width: #{$size-min-touch-width};
|
|
443
|
+
--size-min-touch-height: #{$size-min-touch-height};
|
|
444
|
+
|
|
445
|
+
// ============================================================================
|
|
446
|
+
// Layout - Content Width
|
|
447
|
+
// ============================================================================
|
|
448
|
+
// Canonical cap for page content. `lc-container size="xxl"` reads this, so an
|
|
449
|
+
// app shell that centres its own content against the same custom property
|
|
450
|
+
// stays in lockstep with the container instead of hard-coding a width.
|
|
451
|
+
--lc-content-max-width: #{$size-content-max-width};
|
|
452
|
+
|
|
418
453
|
// ============================================================================
|
|
419
454
|
// Short Aliases for Common Usage (Component Convenience)
|
|
420
455
|
// ============================================================================
|
|
@@ -441,28 +476,13 @@
|
|
|
441
476
|
--line-height-normal: var(--typography-line-height-normal);
|
|
442
477
|
--line-height-relaxed: var(--typography-line-height-relaxed);
|
|
443
478
|
--animation-timing-ease: var(--animation-easing-ease-in-out);
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
--color-success-50: #{$color-success-light};
|
|
454
|
-
--color-success-100: #{$color-success-light};
|
|
455
|
-
--color-success-500: var(--color-success-default);
|
|
456
|
-
--color-success-600: var(--color-success-default);
|
|
457
|
-
--color-success-700: var(--color-success-dark);
|
|
458
|
-
--color-warning-50: #{$color-warning-light};
|
|
459
|
-
--color-warning-100: #{$color-warning-light};
|
|
460
|
-
--color-warning-500: var(--color-warning-default);
|
|
461
|
-
--color-warning-600: var(--color-warning-default);
|
|
462
|
-
--color-warning-700: var(--color-warning-dark);
|
|
463
|
-
--color-info-50: #{$color-info-light};
|
|
464
|
-
--color-info-100: #{$color-info-light};
|
|
465
|
-
--color-info-500: var(--color-info-default);
|
|
466
|
-
--color-info-600: var(--color-info-default);
|
|
467
|
-
--color-info-700: var(--color-info-dark);
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
// `<lc-header theme="light">` keeps the light palette inside a dark page
|
|
482
|
+
// (request 043, F-25): its slot buttons and primary inks measured 1.05:1
|
|
483
|
+
// (outline) and 1.59:1 (link) there; with the tokens re-declared they match a
|
|
484
|
+
// light page (17.12:1, 6.21:1). A root-level token override does not reach
|
|
485
|
+
// inside a themed header.
|
|
486
|
+
.lc-header--light {
|
|
487
|
+
@include -light-theme-colors;
|
|
468
488
|
}
|