@tui/design-system 5.0.0-beta.4 → 5.0.0-beta.5

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 (57) hide show
  1. package/CHANGELOG.md +34 -1
  2. package/dist/themes/crystalski/index.css +34 -4
  3. package/dist/themes/crystalski/index.css.map +1 -1
  4. package/dist/themes/firstchoice/index.css +34 -4
  5. package/dist/themes/firstchoice/index.css.map +1 -1
  6. package/dist/themes/tui/fonts.css +14 -0
  7. package/dist/themes/tui/fonts.css.map +1 -1
  8. package/dist/themes/tui/index.css +46 -6
  9. package/dist/themes/tui/index.css.map +1 -1
  10. package/package.json +30 -28
  11. package/scss/lib/active-tag/_mixins.scss +1 -1
  12. package/scss/lib/button/_mixins.scss +12 -6
  13. package/scss/lib/cards/card/_mixins.scss +1 -1
  14. package/scss/lib/cards/search/_mixins.scss +4 -4
  15. package/scss/lib/flight-details/_index.scss +3 -0
  16. package/scss/lib/flight-details/_mixins.scss +468 -0
  17. package/scss/lib/flight-details/_variables.scss +6 -0
  18. package/scss/lib/forms/input-chip/_mixins.scss +1 -1
  19. package/scss/lib/forms/input-chip/_variables.scss +1 -1
  20. package/scss/lib/forms/input-switch/_index.scss +3 -0
  21. package/scss/lib/forms/input-switch/_mixins.scss +122 -0
  22. package/scss/lib/forms/input-switch/_variables.scss +18 -0
  23. package/scss/lib/forms/textarea/_index.scss +3 -0
  24. package/scss/lib/forms/textarea/_mixins.scss +88 -0
  25. package/scss/lib/hero/_index.scss +3 -0
  26. package/scss/lib/hero/_mixins.scss +336 -0
  27. package/scss/lib/hero/_variables.scss +21 -0
  28. package/scss/lib/image/_mixins.scss +40 -0
  29. package/scss/lib/media-button/_mixins.scss +1 -1
  30. package/scss/lib/pagination/_mixins.scss +1 -1
  31. package/scss/lib/ratings-reviews/percentage/_mixins.scss +1 -1
  32. package/scss/lib/show-more-less/_mixins.scss +1 -1
  33. package/scss/mixins.scss +3 -0
  34. package/scss/themes/crystalski/_overrides.scss +11 -2
  35. package/scss/themes/crystalski/fonts.json +19 -0
  36. package/scss/themes/crystalski/index.scss +9 -0
  37. package/scss/themes/crystalski/theme.json +1 -1
  38. package/scss/themes/firstchoice/_overrides.scss +11 -2
  39. package/scss/themes/firstchoice/fonts.json +27 -0
  40. package/scss/themes/firstchoice/index.scss +9 -0
  41. package/scss/themes/firstchoice/theme.json +1 -1
  42. package/scss/themes/tui/_colors.scss +1 -0
  43. package/scss/themes/tui/_overrides.scss +2 -1
  44. package/scss/themes/tui/_primitives.scss +1 -0
  45. package/scss/themes/tui/_typography.scss +10 -1
  46. package/scss/themes/tui/fonts.json +59 -0
  47. package/scss/themes/tui/fonts.scss +2 -0
  48. package/scss/themes/tui/index.scss +9 -0
  49. package/scss/themes/tui/theme.json +5 -3
  50. package/scss/variables/_elevations.scss +4 -3
  51. package/scss/variables/_env-variables.scss +1 -1
  52. package/scss/variables/_typography.scss +2 -0
  53. package/scss/variables/base-theme.json +324 -134
  54. package/scss/variables/fonts/_tuiheadline-black-italic.scss +10 -0
  55. package/scss/variables/fonts/_tuiheadline-black.scss +10 -0
  56. package/scss/variables/fonts/_tuiheadline-fallback.scss +11 -0
  57. package/scss/variables.scss +3 -0
@@ -15,7 +15,7 @@
15
15
 
16
16
  background: var(--uilib-color-canvas-default);
17
17
 
18
- box-shadow: var(--uilib-elevation-0);
18
+ box-shadow: var(--uilib-elevation-100);
19
19
 
20
20
  &__image-content {
21
21
  grid-area: uilib-card-search-image;
@@ -102,7 +102,7 @@
102
102
 
103
103
  border-radius: var(--uilib-card-search-radius);
104
104
 
105
- box-shadow: var(--uilib-elevation-0);
105
+ box-shadow: var(--uilib-elevation-100);
106
106
  }
107
107
 
108
108
  &__main-content {
@@ -172,7 +172,7 @@
172
172
  margin-top: 0;
173
173
  margin-left: calc(var(--uilib-card-search-radius-spacing) * -1);
174
174
 
175
- box-shadow: var(--uilib-elevation-0);
175
+ box-shadow: var(--uilib-elevation-100);
176
176
  }
177
177
 
178
178
  &__supplementary-container {
@@ -319,7 +319,7 @@
319
319
 
320
320
  background: var(--uilib-card-search-color-flagship);
321
321
 
322
- box-shadow: var(--uilib-elevation-0);
322
+ box-shadow: var(--uilib-elevation-100);
323
323
 
324
324
  .uilib-card-search {
325
325
  box-shadow: none;
@@ -0,0 +1,3 @@
1
+ // flight-details / index
2
+ @use 'mixins' as *;
3
+ @include uilib-flight-details;
@@ -0,0 +1,468 @@
1
+ // flight-details / _mixins
2
+ @use '../utility/mixins' as *;
3
+
4
+ // Builds flight-details
5
+ @mixin uilib-flight-details() {
6
+ .uilib-flight-details {
7
+ display: block;
8
+ container-type: inline-size;
9
+ container-name: uilib-flight-details;
10
+
11
+ &__outbound,
12
+ &__return {
13
+ display: flex;
14
+ flex-flow: column;
15
+ gap: var(--uilib-spacing-100);
16
+ }
17
+
18
+ &__title {
19
+ display: flex;
20
+ flex-flow: row wrap;
21
+ gap: var(--uilib-spacing-100);
22
+ align-items: center;
23
+
24
+ &::before {
25
+ content: '';
26
+
27
+ order: 1;
28
+
29
+ display: block;
30
+
31
+ width: calc(var(--uilib-spacing-300) / 4);
32
+
33
+ aspect-ratio: var(--uilib-aspect-ratio-1x1-square);
34
+
35
+ border-radius: var(--uilib-border-radius-circle);
36
+
37
+ background: var(--uilib-color-text-body);
38
+ }
39
+
40
+ &-type {
41
+ order: 0;
42
+
43
+ color: var(--uilib-color-text-strong);
44
+ font: var(--uilib-typography-label-medium-strong);
45
+ }
46
+
47
+ &-date {
48
+ order: 2;
49
+
50
+ display: flex;
51
+ flex-flow: row wrap;
52
+ gap: var(--uilib-spacing-100);
53
+ align-items: center;
54
+
55
+ color: var(--uilib-color-text-body);
56
+ font: var(--uilib-typography-body-medium);
57
+ }
58
+ }
59
+
60
+ &__airline {
61
+ display: flex;
62
+ flex-flow: row nowrap;
63
+ gap: 0 1ex;
64
+ align-items: flex-start;
65
+
66
+ margin-bottom: calc(var(--uilib-spacing-600) * -1);
67
+ padding: var(--uilib-spacing-200) 0;
68
+ }
69
+
70
+ &__airline-logo {
71
+ max-height: 1.375rem; /* 22 / 16 */
72
+ margin-top: calc(calc(var(--uilib-spacing-050) / 2) * -1);
73
+ }
74
+
75
+ &-leg {
76
+ display: grid;
77
+ grid-template:
78
+ 'originTime originInfo'
79
+ 'destinationTime destinationInfo'
80
+ / auto 1fr;
81
+ gap: var(--uilib-spacing-200) var(--uilib-spacing-300);
82
+
83
+ margin-top: var(--uilib-spacing-600);
84
+ padding-left: var(--uilib-spacing-600);
85
+
86
+ &--indirect-concise {
87
+ display: none;
88
+ }
89
+
90
+ &:has(.uilib-flight-details-leg__type, .uilib-flight-details-leg__duration) {
91
+ grid-template-areas:
92
+ 'type duration'
93
+ 'originTime originInfo'
94
+ 'destinationTime destinationInfo';
95
+ }
96
+
97
+ &:has(.uilib-flight-details-leg__connection-time, .uilib-flight-details-leg__connection-details) {
98
+ grid-template-areas:
99
+ 'originTime originInfo'
100
+ 'destinationTime destinationInfo'
101
+ 'connectionTime connectionDetails';
102
+ }
103
+
104
+ &:has(.uilib-flight-details-leg__type, .uilib-flight-details-leg__duration):has(
105
+ .uilib-flight-details-leg__connection-time,
106
+ .uilib-flight-details-leg__connection-details
107
+ ) {
108
+ grid-template-areas:
109
+ 'type duration'
110
+ 'originTime originInfo'
111
+ 'destinationTime destinationInfo'
112
+ 'connectionTime connectionDetails';
113
+ }
114
+
115
+ &__type,
116
+ &__duration {
117
+ grid-area: type;
118
+
119
+ color: var(--uilib-color-text-body);
120
+ font: var(--uilib-typography-body-medium);
121
+ }
122
+
123
+ &__duration {
124
+ grid-area: duration;
125
+ }
126
+
127
+ &__origin-time,
128
+ &__destination-time {
129
+ grid-area: originTime;
130
+
131
+ position: relative;
132
+
133
+ align-self: stretch;
134
+
135
+ color: var(--uilib-color-text-strong);
136
+ font: var(--uilib-typography-component-heading-large-strong);
137
+
138
+ &::before {
139
+ position: absolute;
140
+ top: 0.3rem;
141
+ left: calc(var(--uilib-spacing-400) * -1);
142
+ content: '';
143
+
144
+ width: calc(var(--uilib-spacing-500) / 2);
145
+
146
+ aspect-ratio: var(--uilib-aspect-ratio-1x1-square);
147
+
148
+ border-radius: var(--uilib-border-radius-circle);
149
+
150
+ background: var(--uilib-color-border-brand-strong);
151
+
152
+ transform: translate(-50%, 0);
153
+ }
154
+
155
+ &::after {
156
+ position: absolute;
157
+ top: 0.3rem;
158
+ left: calc(var(--uilib-spacing-400) * -1);
159
+ bottom: calc(var(--uilib-spacing-100) * -1);
160
+ content: '';
161
+
162
+ border-right: var(--uilib-stroke-size-050) var(--uilib-stroke-style-solid) var(--uilib-color-border-brand-strong);
163
+
164
+ transform: translate(-50%, 0);
165
+ }
166
+ }
167
+
168
+ &__destination-time {
169
+ grid-area: destinationTime;
170
+
171
+ display: flex;
172
+ flex-flow: column;
173
+ align-items: flex-start;
174
+ align-self: start;
175
+
176
+ &::before {
177
+ top: unset;
178
+ bottom: 0.4rem;
179
+ }
180
+
181
+ &::after {
182
+ top: calc(var(--uilib-spacing-100) * -1);
183
+ bottom: 0.4rem;
184
+ }
185
+ }
186
+
187
+ &__origin,
188
+ &__destination {
189
+ grid-area: originInfo;
190
+
191
+ display: flex;
192
+ flex-flow: row nowrap;
193
+ gap: 0 1ex;
194
+ align-items: flex-end;
195
+
196
+ padding-bottom: var(--uilib-spacing-050);
197
+
198
+ overflow: hidden;
199
+ }
200
+
201
+ &__destination {
202
+ grid-area: destinationInfo;
203
+ }
204
+
205
+ &__origin-name,
206
+ &__destination-name {
207
+ grid-area: originName;
208
+
209
+ color: var(--uilib-color-text-body);
210
+ font: var(--uilib-typography-body-medium);
211
+ white-space: nowrap;
212
+ text-overflow: ellipsis;
213
+
214
+ overflow: hidden;
215
+ }
216
+
217
+ &__origin-code,
218
+ &__destination-code {
219
+ grid-area: originCode;
220
+
221
+ color: var(--uilib-color-text-body);
222
+ font: var(--uilib-typography-body-medium-strong);
223
+ }
224
+
225
+ &__destination-name {
226
+ grid-area: destinationName;
227
+ }
228
+
229
+ &__destination-code {
230
+ grid-area: destinationCode;
231
+ }
232
+
233
+ &__connection-time {
234
+ grid-area: connectionTime;
235
+
236
+ color: var(--uilib-color-text-strong);
237
+ font: var(--uilib-typography-label-small-strong);
238
+ }
239
+
240
+ &__connection-details {
241
+ grid-area: connectionDetails;
242
+
243
+ color: var(--uilib-color-text-body);
244
+ font: var(--uilib-typography-body-small);
245
+ }
246
+
247
+ &__tooltip.uilib-tooltip {
248
+ margin-top: calc(var(--uilib-spacing-100) * -1);
249
+
250
+ font: var(--uilib-typography-body-medium);
251
+ }
252
+ }
253
+
254
+ &__arrival-date {
255
+ display: flex;
256
+ flex-flow: row wrap;
257
+ gap: 0 var(--uilib-spacing-100);
258
+ align-items: baseline;
259
+
260
+ color: var(--uilib-color-text-body);
261
+ font: var(--uilib-typography-body-small-strong);
262
+ }
263
+
264
+ &__outbound--indirect &__arrival-date::before,
265
+ &__return--indirect &__arrival-date::before {
266
+ content: '';
267
+
268
+ order: 1;
269
+
270
+ display: block;
271
+ align-self: center;
272
+
273
+ width: calc(var(--uilib-spacing-300) / 4);
274
+
275
+ aspect-ratio: var(--uilib-aspect-ratio-1x1-square);
276
+
277
+ border-radius: var(--uilib-border-radius-circle);
278
+
279
+ background: var(--uilib-color-text-body);
280
+ }
281
+
282
+ &__duration {
283
+ order: 2;
284
+ }
285
+
286
+ &__outbound--indirect .uilib-flight-details__title + .uilib-flight-details__airline,
287
+ &__return--indirect .uilib-flight-details__title + .uilib-flight-details__airline {
288
+ display: none;
289
+ }
290
+
291
+ &__group--collapsed {
292
+ .uilib-flight-details__outbound--indirect .uilib-flight-details__airline,
293
+ .uilib-flight-details__return--indirect .uilib-flight-details__airline,
294
+ .uilib-flight-details-leg:not(.uilib-flight-details-leg--direct),
295
+ .uilib-flight-details__arrival-date::before,
296
+ .uilib-flight-details__duration {
297
+ display: none;
298
+ }
299
+
300
+ .uilib-flight-details__title + .uilib-flight-details__airline {
301
+ display: flex;
302
+ }
303
+
304
+ .uilib-flight-details-leg.uilib-flight-details-leg--indirect-concise {
305
+ display: grid;
306
+ }
307
+ }
308
+
309
+ &__button-icon {
310
+ -webkit-mask-image: var(--uilib-flight-details-icon);
311
+ mask-image: var(--uilib-flight-details-icon);
312
+
313
+ transform: rotate(0deg);
314
+
315
+ @media (prefers-reduced-motion: no-preference) {
316
+ transition: transform var(--uilib-motion-duration-medium) var(--uilib-motion-timing-out);
317
+ }
318
+ }
319
+
320
+ &__button[aria-expanded='true'] &__button-icon {
321
+ transform: rotate(180deg);
322
+ }
323
+
324
+ &__button.uilib-link {
325
+ margin-top: calc(var(--uilib-spacing-200) - var(--uilib-focus-gap));
326
+ margin-bottom: calc(var(--uilib-spacing-200) - var(--uilib-focus-gap));
327
+ }
328
+
329
+ /* stylelint-disable-next-line order/order */
330
+ @container uilib-flight-details (min-width: 15rem) {
331
+ .uilib-flight-details-leg--direct,
332
+ .uilib-flight-details-leg--indirect-concise {
333
+ grid-template:
334
+ 'originTime type type destinationTime'
335
+ 'originTime duration duration destinationTime'
336
+ 'originName originName destinationName destinationName'
337
+ 'originCode originCode destinationCode destinationCode'
338
+ / auto 1fr 1fr auto;
339
+ gap: 0 var(--uilib-spacing-600);
340
+
341
+ padding-left: 0;
342
+
343
+ .uilib-flight-details-leg__type,
344
+ .uilib-flight-details-leg__duration {
345
+ position: relative;
346
+
347
+ justify-self: stretch;
348
+
349
+ padding-bottom: var(--uilib-spacing-100);
350
+
351
+ text-align: center;
352
+ }
353
+
354
+ .uilib-flight-details-leg__duration {
355
+ padding-top: var(--uilib-spacing-100);
356
+ padding-bottom: 0;
357
+
358
+ border-top: var(--uilib-stroke-size-050) var(--uilib-stroke-style-solid) var(--uilib-color-border-brand-strong);
359
+
360
+ &::before,
361
+ &::after {
362
+ position: absolute;
363
+ top: calc(calc(var(--uilib-stroke-size-050) / 2) * -1);
364
+ left: 0;
365
+ content: '';
366
+
367
+ width: calc(var(--uilib-spacing-500) / 2);
368
+
369
+ aspect-ratio: var(--uilib-aspect-ratio-1x1-square);
370
+
371
+ border-radius: var(--uilib-border-radius-circle);
372
+
373
+ background: var(--uilib-color-border-brand-strong);
374
+
375
+ transform: translate(-50%, -50%);
376
+ }
377
+
378
+ &::after {
379
+ left: unset;
380
+ right: 0;
381
+
382
+ transform: translate(50%, -50%);
383
+ }
384
+ }
385
+
386
+ .uilib-flight-details-leg__origin,
387
+ .uilib-flight-details-leg__destination {
388
+ display: contents;
389
+ }
390
+
391
+ .uilib-flight-details-leg__origin-time,
392
+ .uilib-flight-details-leg__destination-time {
393
+ align-self: center;
394
+
395
+ &::before,
396
+ &::after {
397
+ display: none;
398
+ }
399
+ }
400
+
401
+ .uilib-flight-details-leg__destination-time {
402
+ justify-self: end;
403
+ }
404
+
405
+ .uilib-flight-details-leg__destination-name,
406
+ .uilib-flight-details-leg__destination-code {
407
+ justify-self: end;
408
+
409
+ text-align: right;
410
+ }
411
+
412
+ .uilib-flight-details-leg__origin-name,
413
+ .uilib-flight-details-leg__destination-name {
414
+ max-width: 100%;
415
+ }
416
+ }
417
+
418
+ .uilib-flight-details-leg--indirect-concise .uilib-flight-details-leg__type::before {
419
+ position: absolute;
420
+ left: 50%;
421
+ bottom: calc(calc(var(--uilib-stroke-size-050) / 2) * -1);
422
+ content: '';
423
+ z-index: 1;
424
+
425
+ width: calc(var(--uilib-spacing-500) / 2);
426
+
427
+ aspect-ratio: var(--uilib-aspect-ratio-1x1-square);
428
+
429
+ border: var(--uilib-stroke-size-050) var(--uilib-stroke-style-solid) var(--uilib-color-border-brand-strong);
430
+ border-radius: var(--uilib-border-radius-circle);
431
+
432
+ background: var(--uilib-color-core-neutral);
433
+
434
+ transform: translate(-50%, 50%);
435
+ }
436
+ }
437
+
438
+ @container uilib-flight-details (min-width: 34rem) {
439
+ .uilib-flight-details {
440
+ &__group {
441
+ display: flex;
442
+ flex-flow: row nowrap;
443
+ gap: var(--uilib-spacing-200);
444
+
445
+ width: 100%;
446
+
447
+ .uilib-flight-details__outbound,
448
+ .uilib-flight-details__return {
449
+ flex-grow: 1;
450
+
451
+ width: 50%;
452
+ }
453
+
454
+ .uilib-flight-details__divider {
455
+ margin: 0 var(--uilib-spacing-200);
456
+
457
+ border-top-width: var(--uilib-stroke-size-025);
458
+ border-right-width: var(--uilib-stroke-size-025);
459
+ }
460
+ }
461
+ }
462
+ }
463
+
464
+ &__visually-hidden {
465
+ @include uilib-visually-hidden;
466
+ }
467
+ }
468
+ }
@@ -0,0 +1,6 @@
1
+ @use '../../variables/env-variables' as *;
2
+
3
+ // Flight details specific variables to allow theming
4
+ $uilib-flight-details-variables: (
5
+ icon: url('#{$uilib-assets-base-url}v3/icons/tui/standard/chevron-down.svg'),
6
+ ) !default;
@@ -31,7 +31,7 @@
31
31
 
32
32
  background-color: var(--uilib-input-chip-active-bg-color);
33
33
 
34
- box-shadow: var(--uilib-elevation-100);
34
+ box-shadow: var(--uilib-elevation-200);
35
35
  }
36
36
 
37
37
  &:checked:hover + .uilib-input-chip__label {
@@ -13,7 +13,7 @@ $uilib-input-chip-variables: (
13
13
  active-bg-color: var(--uilib-color-other-active-state-tint),
14
14
  active-border-color: var(--uilib-color-core-interaction),
15
15
  active-hover-bg-color: color.mix(map.get($uilib-color-semantic, 'core-neutral'), map.get($uilib-color-semantic, 'core-interaction'), 80%),
16
- box-shadow: var(--uilib-elevation-100),
16
+ box-shadow: var(--uilib-elevation-200),
17
17
  disabled-text-color: var(--uilib-color-other-disabled-soft),
18
18
  disabled-bg-color: var(--uilib-color-core-neutral),
19
19
  ) !default;
@@ -0,0 +1,3 @@
1
+ // switch / index
2
+ @use 'mixins' as *;
3
+ @include uilib-input-switch;
@@ -0,0 +1,122 @@
1
+ // switch / _mixins
2
+ @use '../../utility/mixins' as *;
3
+
4
+ // Builds Switch input
5
+ @mixin uilib-input-switch() {
6
+ .uilib-form-row {
7
+ &--input-switch {
8
+ display: flex;
9
+ justify-self: flex-start;
10
+
11
+ width: fit-content;
12
+ margin-top: var(--uilib-spacing-200);
13
+ margin-bottom: var(--uilib-spacing-200);
14
+ }
15
+
16
+ &__input {
17
+ margin-top: 0;
18
+ }
19
+ }
20
+
21
+ .uilib-input-switch {
22
+ display: flex;
23
+ flex-wrap: nowrap;
24
+ gap: var(--uilib-spacing-200);
25
+ align-items: self-start;
26
+
27
+ margin-top: var(--uilib-spacing-050);
28
+ padding: var(--uilib-spacing-200) 0;
29
+
30
+ color: var(--uilib-color-text-body);
31
+ font: var(--uilib-typography-body-medium);
32
+
33
+ cursor: pointer;
34
+
35
+ &--title {
36
+ color: var(--uilib-color-text-strong);
37
+ font: var(--uilib-form-row-label-font);
38
+ }
39
+
40
+ &:has(.uilib-input-switch__input[disabled]) {
41
+ cursor: auto;
42
+ }
43
+
44
+ &:has(.uilib-input-switch__input:focus-visible) {
45
+ @include uilib-focus;
46
+
47
+ &::before {
48
+ border-radius: var(--uilib-border-radius-100);
49
+ }
50
+ }
51
+
52
+ &__input {
53
+ position: absolute;
54
+
55
+ width: 0;
56
+ height: 0;
57
+
58
+ visibility: visible;
59
+
60
+ opacity: 0;
61
+
62
+ &:checked + .uilib-input-switch__track {
63
+ border-color: var(--uilib-input-switch-track-border-color-selected);
64
+
65
+ background-color: var(--uilib-input-switch-track-color-selected);
66
+
67
+ &::before {
68
+ background-color: var(--uilib-input-switch-thumb-color-selected);
69
+
70
+ transform: translateX(115%);
71
+ }
72
+ }
73
+
74
+ &[disabled] + .uilib-input-switch__track {
75
+ border-color: var(--uilib-input-switch-track-border-color-disabled);
76
+
77
+ background-color: var(--uilib-input-switch-track-color-disabled);
78
+
79
+ &::before {
80
+ background-color: var(--uilib-input-switch-thumb-color-selected);
81
+ }
82
+ }
83
+ }
84
+
85
+ &__track {
86
+ display: flex;
87
+ align-items: center;
88
+
89
+ width: var(--uilib-input-switch-track-width);
90
+ height: var(--uilib-input-switch-track-height);
91
+ min-width: var(--uilib-input-switch-track-width);
92
+ margin-top: calc(var(--uilib-spacing-050) * -1);
93
+ padding: var(--uilib-spacing-100);
94
+
95
+ border: var(--uilib-stroke-size-025) solid var(--uilib-input-switch-track-border-color);
96
+ border-radius: var(--uilib-input-switch-track-radius);
97
+
98
+ background-color: var(--uilib-input-switch-track-color);
99
+
100
+ &::before {
101
+ content: '';
102
+
103
+ display: block;
104
+
105
+ width: var(--uilib-input-switch-thumb-size);
106
+ height: var(--uilib-input-switch-thumb-size);
107
+
108
+ border-radius: var(--uilib-input-switch-thumb-radius);
109
+
110
+ background-color: var(--uilib-input-switch-thumb-color);
111
+
112
+ box-shadow: 0 0.06rem 0.125rem var(--uilib-color-other-elevation);
113
+
114
+ transform: translateX(0);
115
+
116
+ @media (prefers-reduced-motion: no-preference) {
117
+ transition: transform var(--uilib-motion-duration-medium) var(--uilib-motion-timing-out);
118
+ }
119
+ }
120
+ }
121
+ }
122
+ }
@@ -0,0 +1,18 @@
1
+ @use '../../../variables/env-variables' as *;
2
+
3
+ // Input switch specific variables to allow theming
4
+ $uilib-input-switch-variables: (
5
+ track-color: var(--uilib-color-core-neutral),
6
+ track-color-selected: var(--uilib-color-core-interaction),
7
+ track-color-disabled: var(--uilib-color-other-disabled-soft),
8
+ track-border-color: var(--uilib-color-border-input),
9
+ track-border-color-selected: var(--uilib-color-border-interaction),
10
+ track-border-color-disabled: var(--uilib-color-other-disabled-soft),
11
+ track-height: 1.5rem,
12
+ track-width: 2.75rem,
13
+ /* 24 / 16 */ track-radius: var(--uilib-border-radius-pill),
14
+ thumb-size: 1rem,
15
+ /* 16 / 16 */ thumb-radius: var(--uilib-border-radius-circle),
16
+ thumb-color: var(--uilib-color-other-disabled-strong),
17
+ thumb-color-selected: var(--uilib-color-core-neutral),
18
+ ) !default;
@@ -0,0 +1,3 @@
1
+ // textarea / index
2
+ @use 'mixins' as *;
3
+ @include uilib-textarea;