@scania/tegel-lite 0.1.0 → 1.0.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 (68) hide show
  1. package/README.dev.md +1 -5
  2. package/README.md +12 -12
  3. package/dist/assets/fonts/traton/TratonTypeDisplay-Bold.woff +0 -0
  4. package/dist/assets/fonts/traton/TratonTypeDisplay-Bold.woff2 +0 -0
  5. package/dist/assets/fonts/traton/TratonTypeDisplay-Medium.woff +0 -0
  6. package/dist/assets/fonts/traton/TratonTypeDisplay-Medium.woff2 +0 -0
  7. package/dist/assets/fonts/traton/TratonTypeText-Bold.woff +0 -0
  8. package/dist/assets/fonts/traton/TratonTypeText-Bold.woff2 +0 -0
  9. package/dist/assets/fonts/traton/TratonTypeText-BoldItalic.woff +0 -0
  10. package/dist/assets/fonts/traton/TratonTypeText-BoldItalic.woff2 +0 -0
  11. package/dist/assets/fonts/traton/TratonTypeText-Italic.woff +0 -0
  12. package/dist/assets/fonts/traton/TratonTypeText-Italic.woff2 +0 -0
  13. package/dist/assets/fonts/traton/TratonTypeText-Medium.woff +0 -0
  14. package/dist/assets/fonts/traton/TratonTypeText-Medium.woff2 +0 -0
  15. package/dist/assets/fonts/traton/TratonTypeText-MediumItalic.woff +0 -0
  16. package/dist/assets/fonts/traton/TratonTypeText-MediumItalic.woff2 +0 -0
  17. package/dist/assets/fonts/traton/TratonTypeText-Regular.woff +0 -0
  18. package/dist/assets/fonts/traton/TratonTypeText-Regular.woff2 +0 -0
  19. package/dist/assets/fonts/traton/TratonTypeText-SemiBold.woff +0 -0
  20. package/dist/assets/fonts/traton/TratonTypeText-SemiBold.woff2 +0 -0
  21. package/dist/assets/fonts/traton/TratonTypeText-SemiBoldItalic.woff2 +0 -0
  22. package/dist/assets/icons/scania/configurator.svg +1 -0
  23. package/dist/assets/icons/traton/edit_inactive.svg +1 -0
  24. package/dist/assets/icons/traton/placeholder.svg +3 -0
  25. package/dist/assets/icons/traton/skip_backwards.svg +1 -0
  26. package/dist/assets/icons/traton/skip_forward.svg +1 -0
  27. package/dist/components.css +3993 -6847
  28. package/dist/global.css +627 -5641
  29. package/dist/scania-variables.css +661 -565
  30. package/dist/tl-accordion.css +88 -35
  31. package/dist/tl-banner.css +87 -12
  32. package/dist/tl-block.css +62 -7
  33. package/dist/tl-breadcrumbs.css +55 -6
  34. package/dist/tl-button.css +498 -87
  35. package/dist/tl-card.css +80 -54
  36. package/dist/tl-checkbox.css +195 -115
  37. package/dist/tl-datetime.css +7 -4
  38. package/dist/tl-divider.css +61 -3
  39. package/dist/tl-footer.css +116 -18
  40. package/dist/tl-icon.css +6 -2
  41. package/dist/tl-link.css +114 -16
  42. package/dist/tl-message.css +128 -14
  43. package/dist/tl-modal.css +165 -16
  44. package/dist/tl-radio-button.css +158 -96
  45. package/dist/tl-text-field.css +272 -140
  46. package/dist/tl-textarea.css +274 -76
  47. package/dist/tl-toast.css +119 -10
  48. package/dist/tl-toggle.css +150 -45
  49. package/dist/tl-tooltip.css +17 -15
  50. package/dist/traton-variables.css +682 -447
  51. package/package.json +6 -27
  52. package/dist/tl-badge.css +0 -44
  53. package/dist/tl-checkbox-vars.css +0 -38
  54. package/dist/tl-chip.css +0 -149
  55. package/dist/tl-dropdown.css +0 -857
  56. package/dist/tl-folder-tabs.css +0 -139
  57. package/dist/tl-header.css +0 -859
  58. package/dist/tl-inline-tabs.css +0 -173
  59. package/dist/tl-navigation-tabs.css +0 -171
  60. package/dist/tl-popover-canvas.css +0 -70
  61. package/dist/tl-popover-menu.css +0 -123
  62. package/dist/tl-side-menu.css +0 -540
  63. package/dist/tl-slider.css +0 -1854
  64. package/dist/tl-spinner.css +0 -78
  65. package/dist/tl-step.css +0 -213
  66. package/dist/tl-stepper.css +0 -57
  67. package/dist/tl-table.css +0 -827
  68. /package/dist/assets/icons/scania/{gift inactive.svg → gift_inactive.svg} +0 -0
package/dist/tl-modal.css CHANGED
@@ -12,16 +12,162 @@ body {
12
12
  }
13
13
 
14
14
  /* Typography Usage mixins */
15
- /* Component variables */
16
- .tl-modal,
17
- :root {
18
- --modal-scroll-bar-thumb: var(--color-foreground-icon-discrete);
19
- --modal-background: var(--color-background-layer-02);
20
- --modal-backdrop: var(--color-background-overlay);
21
- --modal-text: var(--color-foreground-text-strong);
22
- --modal-cross-svg: var(--color-foreground-text-strong);
23
- --modal-shadow: 0 2px 3px 0 var(--component-shadow-base-modifier);
15
+ /**
16
+ * Do not edit directly, this file was auto-generated.
17
+ */
18
+ :root,
19
+ .tds-mode-light,
20
+ .scania .tds-mode-light,
21
+ .scania.tds-mode-light,
22
+ .scania .tl-mode-light,
23
+ .scania.tl-mode-light {
24
+ --component-shadow-base-modifier: var(--scania-color-transparent-shadow-100);
25
+ --component-shadow-default: var(--scania-color-transparent-shadow-150);
26
+ --component-shadow-hover: var(--scania-color-transparent-shadow-250);
27
+ --component-shadow-pressed: var(--scania-color-transparent-shadow-250);
28
+ --component-shadow-focus: var(--scania-color-transparent-shadow-350);
29
+ --component-shadow-dragged: var(--scania-color-transparent-shadow-200);
30
+ }
31
+
32
+ .traton .tds-mode-light,
33
+ .traton.tds-mode-light,
34
+ .traton .tl-mode-light,
35
+ .traton.tl-mode-light {
36
+ --component-shadow-base-modifier: var(--traton-color-transparent-invisible-dark);
37
+ --component-shadow-default: var(--traton-color-transparent-invisible-dark);
38
+ --component-shadow-hover: var(--traton-color-transparent-invisible-dark);
39
+ --component-shadow-pressed: var(--traton-color-transparent-invisible-dark);
40
+ --component-shadow-focus: var(--traton-color-transparent-invisible-dark);
41
+ --component-shadow-dragged: var(--traton-color-transparent-invisible-dark);
42
+ }
43
+
44
+ .tds-mode-dark,
45
+ .scania .tds-mode-dark,
46
+ .scania.tds-mode-dark,
47
+ .scania .tl-mode-dark,
48
+ .scania.tl-mode-dark {
24
49
  --component-shadow-base-modifier: var(--scania-color-transparent-invisible-dark);
50
+ --component-shadow-default: var(--scania-color-transparent-invisible-dark);
51
+ --component-shadow-hover: var(--scania-color-transparent-invisible-dark);
52
+ --component-shadow-pressed: var(--scania-color-transparent-invisible-dark);
53
+ --component-shadow-focus: var(--scania-color-transparent-invisible-dark);
54
+ --component-shadow-dragged: var(--scania-color-transparent-invisible-dark);
55
+ }
56
+
57
+ .traton .tds-mode-dark,
58
+ .traton.tds-mode-dark,
59
+ .traton .tl-mode-dark,
60
+ .traton.tl-mode-dark {
61
+ --component-shadow-base-modifier: var(--traton-color-transparent-invisible-dark);
62
+ --component-shadow-default: var(--traton-color-transparent-invisible-dark);
63
+ --component-shadow-hover: var(--traton-color-transparent-invisible-dark);
64
+ --component-shadow-pressed: var(--traton-color-transparent-invisible-dark);
65
+ --component-shadow-focus: var(--traton-color-transparent-invisible-dark);
66
+ --component-shadow-dragged: var(--traton-color-transparent-invisible-dark);
67
+ }
68
+
69
+ /**
70
+ * Do not edit directly, this file was auto-generated.
71
+ */
72
+ :root,
73
+ .tds-mode-light,
74
+ .scania .tds-mode-light,
75
+ .scania.tds-mode-light,
76
+ .scania .tl-mode-light,
77
+ .scania.tl-mode-light {
78
+ --component-modal-background-default: var(--color-background-layer-02);
79
+ --component-modal-border-radius-default: 4;
80
+ --component-modal-icon-dismiss-default: var(--color-icon-strong);
81
+ --component-modal-text-title-default: var(--color-text-strong);
82
+ --component-modal-text-body-default: var(--color-text-strong);
83
+ }
84
+
85
+ .traton .tds-mode-light,
86
+ .traton.tds-mode-light,
87
+ .traton .tl-mode-light,
88
+ .traton.tl-mode-light {
89
+ --component-modal-background-default: var(--color-background-layer-02);
90
+ --component-modal-border-radius-default: 4;
91
+ --component-modal-icon-dismiss-default: var(--color-icon-strong);
92
+ --component-modal-text-title-default: var(--color-text-strong);
93
+ --component-modal-text-body-default: var(--color-text-strong);
94
+ }
95
+
96
+ .tds-mode-dark,
97
+ .scania .tds-mode-dark,
98
+ .scania.tds-mode-dark,
99
+ .scania .tl-mode-dark,
100
+ .scania.tl-mode-dark {
101
+ --component-modal-background-default: var(--color-background-layer-01);
102
+ --component-modal-border-radius-default: 4;
103
+ --component-modal-icon-dismiss-default: var(--color-icon-strong);
104
+ --component-modal-text-title-default: var(--color-text-strong);
105
+ --component-modal-text-body-default: var(--color-text-strong);
106
+ }
107
+
108
+ .traton .tds-mode-dark,
109
+ .traton.tds-mode-dark,
110
+ .traton .tl-mode-dark,
111
+ .traton.tl-mode-dark {
112
+ --component-modal-background-default: var(--color-background-layer-02);
113
+ --component-modal-border-radius-default: 4;
114
+ --component-modal-icon-dismiss-default: var(--color-icon-strong);
115
+ --component-modal-text-title-default: var(--color-text-strong);
116
+ --component-modal-text-body-default: var(--color-text-strong);
117
+ }
118
+
119
+ /**
120
+ * Do not edit directly, this file was auto-generated.
121
+ */
122
+ :root,
123
+ .tds-mode-light,
124
+ .scania .tds-mode-light,
125
+ .scania.tds-mode-light,
126
+ .scania .tl-mode-light,
127
+ .scania.tl-mode-light {
128
+ --component-overlay-background-default: var(--scania-color-base-black);
129
+ --component-overlay-opacity-default: 60;
130
+ }
131
+
132
+ .traton .tds-mode-light,
133
+ .traton.tds-mode-light,
134
+ .traton .tl-mode-light,
135
+ .traton.tl-mode-light {
136
+ --component-overlay-background-default: var(--traton-color-base-black);
137
+ --component-overlay-opacity-default: 40;
138
+ }
139
+
140
+ .tds-mode-dark,
141
+ .scania .tds-mode-dark,
142
+ .scania.tds-mode-dark,
143
+ .scania .tl-mode-dark,
144
+ .scania.tl-mode-dark {
145
+ --component-overlay-background-default: var(--scania-color-grey-900);
146
+ --component-overlay-opacity-default: 84;
147
+ }
148
+
149
+ .traton .tds-mode-dark,
150
+ .traton.tds-mode-dark,
151
+ .traton .tl-mode-dark,
152
+ .traton.tl-mode-dark {
153
+ --component-overlay-background-default: var(--traton-color-base-black);
154
+ --component-overlay-opacity-default: 60;
155
+ }
156
+
157
+ .tl-modal,
158
+ .tl-modal__overlay {
159
+ --modal-background: var(--component-modal-background-default);
160
+ --modal-backdrop: color-mix(
161
+ in srgb,
162
+ var(--component-overlay-background-default) calc(var(--component-overlay-opacity-default) * 1%),
163
+ transparent
164
+ );
165
+ --modal-border-radius: calc(var(--component-modal-border-radius-default) * 1px);
166
+ --modal-text: var(--component-modal-text-title-default);
167
+ --modal-body-text: var(--component-modal-text-body-default);
168
+ --modal-cross-svg: var(--component-modal-icon-dismiss-default);
169
+ --modal-shadow: 0 3px 3px 0 var(--component-shadow-default, rgba(0, 0, 0, 0.15)),
170
+ 0 -1px 1px 0 var(--component-shadow-base-modifier, rgba(0, 0, 0, 0.10));
25
171
  }
26
172
 
27
173
  /* MIXINS */
@@ -36,7 +182,7 @@ body {
36
182
  box-shadow: var(--modal-shadow);
37
183
  margin: auto;
38
184
  position: relative;
39
- border-radius: 4px;
185
+ border-radius: var(--modal-border-radius);
40
186
  max-height: 85vh;
41
187
  overflow-y: auto;
42
188
  pointer-events: auto;
@@ -49,7 +195,7 @@ body {
49
195
  background: var(--tl-scrollbar-track-color);
50
196
  }
51
197
  .tl-modal::-webkit-scrollbar-thumb {
52
- border-radius: 40px;
198
+ border-radius: var(--tl-scrollbar-thumb-border-radius);
53
199
  background: var(--tl-scrollbar-thumb-color);
54
200
  border-width: var(--tl-scrollbar-thumb-border-width);
55
201
  border-style: solid;
@@ -58,6 +204,7 @@ body {
58
204
  }
59
205
  .tl-modal::-webkit-scrollbar-thumb:hover {
60
206
  border-width: var(--tl-scrollbar-thumb-border-hover-width);
207
+ border-radius: var(--tl-scrollbar-hover-thumb-border-radius);
61
208
  }
62
209
  .tl-modal::-webkit-scrollbar-button {
63
210
  height: 0;
@@ -188,7 +335,7 @@ body {
188
335
  font-weight: var(--body-01-font-weight);
189
336
  letter-spacing: var(--body-01-letter-spacing);
190
337
  text-transform: var(--body-01-text-transform);
191
- color: var(--modal-text);
338
+ color: var(--modal-body-text);
192
339
  padding: 0 16px 16px;
193
340
  }
194
341
  .tl-modal__body::-webkit-scrollbar {
@@ -198,7 +345,7 @@ body {
198
345
  background: var(--tl-scrollbar-track-color);
199
346
  }
200
347
  .tl-modal__body::-webkit-scrollbar-thumb {
201
- border-radius: 40px;
348
+ border-radius: var(--tl-scrollbar-thumb-border-radius);
202
349
  background: var(--tl-scrollbar-thumb-color);
203
350
  border-width: var(--tl-scrollbar-thumb-border-width);
204
351
  border-style: solid;
@@ -207,6 +354,7 @@ body {
207
354
  }
208
355
  .tl-modal__body::-webkit-scrollbar-thumb:hover {
209
356
  border-width: var(--tl-scrollbar-thumb-border-hover-width);
357
+ border-radius: var(--tl-scrollbar-hover-thumb-border-radius);
210
358
  }
211
359
  .tl-modal__body::-webkit-scrollbar-button {
212
360
  height: 0;
@@ -239,15 +387,16 @@ body {
239
387
  background-color: transparent;
240
388
  border: 0;
241
389
  padding: 0;
390
+ height: 20px;
391
+ width: 20px;
242
392
  appearance: unset;
243
393
  display: inline-block;
244
- height: auto;
245
394
  color: var(--modal-text);
246
395
  cursor: pointer;
247
396
  }
248
397
  .tl-modal__close:focus {
249
- outline: 2px solid var(--tds-focus-outline-color);
250
- box-shadow: 0 0 0 1px var(--tds-white);
398
+ outline: 2px solid var(--component--focus-ring-color-strong);
399
+ box-shadow: 0 0 0 1px var(--component--focus-ring-color-discrete);
251
400
  outline-offset: 1px;
252
401
  z-index: 1;
253
402
  }
@@ -1,26 +1,120 @@
1
1
  @charset "UTF-8";
2
- .tl-radio-button {
3
- --radio-button-background-hover: var(--color-foreground-border-discrete);
4
- --radio-button-background-inverse: var(--color-foreground-icon-inverse-strong);
5
- --radio-button-background-disabled: var(--color-background-accent-primary-disabled);
6
- --radio-button-border: var(--color-foreground-border-strong);
7
- --radio-button-label: var(--color-foreground-text-strong);
8
- --radio-button-label-disabled: var(--color-foreground-text-disabled);
9
- --radio-button-border-disabled: var(--color-foreground-border-discrete);
10
- --radio-button-focus: var(--color-foreground-border-accent-focus);
11
- --radio-button-checked-disabled: var(--color-foreground-icon-disabled);
12
- --radio-button-spacing-4: var(--tds-spacing-element-4) 0 var(--tds-spacing-element-4)
13
- var(--tds-spacing-element-4);
14
- --radio-button-focus-outline-color: var(--color-foreground-border-accent-focus);
15
- --radio-button-focus-outline-width: 2px;
2
+ /**
3
+ * Do not edit directly, this file was auto-generated.
4
+ */
5
+ :root,
6
+ .tds-mode-light,
7
+ .scania .tds-mode-light,
8
+ .scania.tds-mode-light,
9
+ .scania .tl-mode-light,
10
+ .scania.tl-mode-light {
11
+ --component-radio-button-background-standard-default: var(--color-background-none);
12
+ --component-radio-button-background-standard-hover: var(--color-background-none);
13
+ --component-radio-button-background-selected-default: var(--scania-color-grey-950);
14
+ --component-radio-button-background-selected-hover: var(--scania-color-grey-950);
15
+ --component-radio-button-border-standard-default: var(--color-border-strong);
16
+ --component-radio-button-border-standard-hover: var(--color-border-strong);
17
+ --component-radio-button-border-selected-default: var(--color-border-none);
18
+ --component-radio-button-border-selected-hover: var(--color-border-none);
19
+ --component-radio-button-border-indicator-default: var(--color-border-none);
20
+ --component-radio-button-border-indicator-hover: var(--color-border-subtle);
21
+ --component-radio-button-border-radius-default: var(--scania-unit-9999);
22
+ --component-radio-button-focus-ring-radius-default: var(--component--focus-ring-radius-full);
23
+ --component-radio-button-icon-selected-default: var(--color-icon-inverse-strong);
24
+ --component-radio-button-icon-selected-hover: var(--color-icon-inverse-strong);
25
+ --component-radio-button-opacity-disabled: var(--scania-opacity-25);
26
+ --component-radio-button-text-default: var(--color-text-strong);
27
+ --component-radio-button-text-hover: var(--color-text-strong);
28
+ }
29
+
30
+ .traton .tds-mode-light,
31
+ .traton.tds-mode-light,
32
+ .traton .tl-mode-light,
33
+ .traton.tl-mode-light {
34
+ --component-radio-button-background-standard-default: var(--color-background-none);
35
+ --component-radio-button-background-standard-hover: var(--color-background-none);
36
+ --component-radio-button-background-selected-default: var(--traton-color-blue-950);
37
+ --component-radio-button-background-selected-hover: var(--traton-color-blue-950);
38
+ --component-radio-button-border-standard-default: var(--color-border-strong);
39
+ --component-radio-button-border-standard-hover: var(--color-border-strong);
40
+ --component-radio-button-border-selected-default: var(--color-border-none);
41
+ --component-radio-button-border-selected-hover: var(--color-border-none);
42
+ --component-radio-button-border-indicator-default: var(--color-border-none);
43
+ --component-radio-button-border-indicator-hover: var(--color-border-subtle);
44
+ --component-radio-button-border-radius-default: var(--traton-unit-9999);
45
+ --component-radio-button-focus-ring-radius-default: var(--component--focus-ring-radius-full);
46
+ --component-radio-button-icon-selected-default: var(--color-icon-inverse-strong);
47
+ --component-radio-button-icon-selected-hover: var(--color-icon-inverse-strong);
48
+ --component-radio-button-opacity-disabled: var(--traton-opacity-25);
49
+ --component-radio-button-text-default: var(--color-text-strong);
50
+ --component-radio-button-text-hover: var(--color-text-strong);
51
+ }
52
+
53
+ .tds-mode-dark,
54
+ .scania .tds-mode-dark,
55
+ .scania.tds-mode-dark,
56
+ .scania .tl-mode-dark,
57
+ .scania.tl-mode-dark {
58
+ --component-radio-button-background-standard-default: var(--color-background-none);
59
+ --component-radio-button-background-standard-hover: var(--color-background-none);
60
+ --component-radio-button-background-selected-default: var(--scania-color-grey-50);
61
+ --component-radio-button-background-selected-hover: var(--scania-color-grey-50);
62
+ --component-radio-button-border-standard-default: var(--color-border-strong);
63
+ --component-radio-button-border-standard-hover: var(--color-border-strong);
64
+ --component-radio-button-border-selected-default: var(--color-border-none);
65
+ --component-radio-button-border-selected-hover: var(--color-border-none);
66
+ --component-radio-button-border-indicator-default: var(--color-border-none);
67
+ --component-radio-button-border-indicator-hover: var(--color-border-subtle);
68
+ --component-radio-button-border-radius-default: var(--scania-unit-9999);
69
+ --component-radio-button-focus-ring-radius-default: var(--component--focus-ring-radius-full);
70
+ --component-radio-button-icon-selected-default: var(--color-icon-inverse-strong);
71
+ --component-radio-button-icon-selected-hover: var(--color-icon-inverse-strong);
72
+ --component-radio-button-opacity-disabled: var(--scania-opacity-25);
73
+ --component-radio-button-text-default: var(--color-text-strong);
74
+ --component-radio-button-text-hover: var(--color-text-strong);
16
75
  }
17
76
 
18
- .scania .tl-radio-button {
19
- --radio-button-focus-outline-width: 2px;
77
+ .traton .tds-mode-dark,
78
+ .traton.tds-mode-dark,
79
+ .traton .tl-mode-dark,
80
+ .traton.tl-mode-dark {
81
+ --component-radio-button-background-standard-default: var(--color-background-none);
82
+ --component-radio-button-background-standard-hover: var(--color-background-none);
83
+ --component-radio-button-background-selected-default: var(--traton-color-base-white);
84
+ --component-radio-button-background-selected-hover: var(--traton-color-base-white);
85
+ --component-radio-button-border-standard-default: var(--color-border-strong);
86
+ --component-radio-button-border-standard-hover: var(--color-border-strong);
87
+ --component-radio-button-border-selected-default: var(--color-border-none);
88
+ --component-radio-button-border-selected-hover: var(--color-border-none);
89
+ --component-radio-button-border-indicator-default: var(--color-border-none);
90
+ --component-radio-button-border-indicator-hover: var(--color-border-subtle);
91
+ --component-radio-button-border-radius-default: var(--traton-unit-9999);
92
+ --component-radio-button-focus-ring-radius-default: var(--component--focus-ring-radius-full);
93
+ --component-radio-button-icon-selected-default: var(--color-icon-inverse-strong);
94
+ --component-radio-button-icon-selected-hover: var(--color-icon-inverse-strong);
95
+ --component-radio-button-opacity-disabled: var(--traton-opacity-25);
96
+ --component-radio-button-text-default: var(--color-text-strong);
97
+ --component-radio-button-text-hover: var(--color-text-strong);
20
98
  }
21
99
 
22
- .traton .tl-radio-button {
23
- --radio-button-focus-outline-width: 4px;
100
+ .tl-radio-button {
101
+ --radio-button-text: var(--component-radio-button-text-default);
102
+ --radio-button-text-hover: var(--component-radio-button-text-hover);
103
+ --radio-button-background: var(--component-radio-button-background-standard-default);
104
+ --radio-button-background-hover: var(--component-radio-button-background-standard-hover);
105
+ --radio-button-background-selected: var(--component-radio-button-background-selected-default);
106
+ --radio-button-background-selected-hover: var(--component-radio-button-background-selected-hover);
107
+ --radio-button-border: var(--component-radio-button-border-standard-default);
108
+ --radio-button-border-hover: var(--component-radio-button-border-standard-hover);
109
+ --radio-button-border-selected: var(--component-radio-button-border-selected-default);
110
+ --radio-button-border-selected-hover: var(--component-radio-button-border-selected-hover);
111
+ --radio-button-indicator: var(--component-radio-button-border-indicator-default);
112
+ --radio-button-indicator-hover: var(--component-radio-button-border-indicator-hover);
113
+ --radio-button-icon-selected: var(--component-radio-button-icon-selected-default);
114
+ --radio-button-icon-selected-hover: var(--component-radio-button-icon-selected-hover);
115
+ --radio-button-border-radius: calc(var(--component-radio-button-border-radius-default) * 1px);
116
+ --radio-button-focus-ring-radius: calc(var(--component-radio-button-focus-ring-radius-default) * 1px);
117
+ --radio-button-opacity-disabled: calc(var(--component-radio-button-opacity-disabled) / 100);
24
118
  }
25
119
 
26
120
  /* Typography Usage mixins */
@@ -38,10 +132,9 @@
38
132
  font-weight: var(--detail-02-font-weight);
39
133
  letter-spacing: var(--detail-02-letter-spacing);
40
134
  text-transform: var(--detail-02-text-transform);
41
- color: var(--radio-button-label);
135
+ color: var(--radio-button-text);
42
136
  display: flex;
43
137
  align-items: center;
44
- gap: var(--radio-button-spacing-8);
45
138
  }
46
139
  .tl-radio-button:has(:disabled) {
47
140
  cursor: not-allowed;
@@ -59,110 +152,79 @@
59
152
  position: relative;
60
153
  cursor: pointer;
61
154
  flex-shrink: 0;
62
- border-radius: 50%;
63
155
  }
64
156
  .tl-radio-button__input::before, .tl-radio-button__input::after {
65
157
  content: "";
66
158
  position: absolute;
67
- border-radius: 50%;
68
159
  box-sizing: border-box;
160
+ border-radius: var(--radio-button-border-radius);
161
+ left: 50%;
162
+ top: 50%;
163
+ transform: translate(-50%, -50%);
69
164
  }
70
165
  .tl-radio-button__input {
71
- /* focus "pulse" background holder */
166
+ /* The outer circle: border + fill, plus the (transparent by default) hover indicator halo. */
72
167
  }
73
168
  .tl-radio-button__input::before {
74
- inline-size: 22px;
75
- block-size: 22px;
76
- left: 1px;
77
- top: 1px;
78
- }
79
- .tl-radio-button__input {
80
- /* base inner circle + ring */
81
- }
82
- .tl-radio-button__input::after {
83
- background-color: var(--radio-button-background-inverse);
84
- border: 1px solid var(--radio-button-border);
85
169
  inline-size: 16px;
86
170
  block-size: 16px;
87
- left: 4px;
88
- top: 4px;
171
+ border: 1px solid var(--radio-button-border);
172
+ background-color: var(--radio-button-background);
173
+ box-shadow: 0 0 0 2px var(--radio-button-indicator);
174
+ transition: box-shadow 0.2s ease-in-out;
89
175
  }
90
176
  .tl-radio-button__input {
91
- /* Focus */
177
+ /* The inner dot, colour driven by the icon token. Hidden until selected. */
92
178
  }
93
- .tl-radio-button__input:focus::before {
94
- background-color: var(--radio-button-focus);
95
- animation: rb-focus 0.4s cubic-bezier(0.65, 0.05, 0.38, 0.95) forwards;
96
- }
97
- .tl-radio-button__input:focus::after {
98
- outline: var(--radio-button-focus-outline-width) solid var(--radio-button-focus-outline-color);
99
- }
100
- .tl-radio-button__input {
101
- /* Checked */
179
+ .tl-radio-button__input::after {
180
+ inline-size: 6px;
181
+ block-size: 6px;
182
+ background-color: var(--radio-button-icon-selected);
183
+ opacity: 0;
184
+ /* Keep the dot above the circle fill, which gets z-index: 1 from the focus ring. */
185
+ z-index: 1;
186
+ }
187
+ .tl-radio-button__input:not(:disabled):hover::before {
188
+ border-color: var(--radio-button-border-hover);
189
+ background-color: var(--radio-button-background-hover);
190
+ box-shadow: 0 0 0 2px var(--radio-button-indicator-hover);
191
+ }
192
+ .tl-radio-button__input:focus-visible::before {
193
+ outline: 2px solid var(--component--focus-ring-color-strong);
194
+ box-shadow: 0 0 0 1px var(--component--focus-ring-color-discrete);
195
+ outline-offset: 1px;
196
+ z-index: 1;
197
+ border-radius: var(--radio-button-focus-ring-radius);
198
+ }
199
+ .tl-radio-button__input:checked::before {
200
+ border-color: var(--radio-button-border-selected);
201
+ background-color: var(--radio-button-background-selected);
102
202
  }
103
203
  .tl-radio-button__input:checked::after {
104
- border: 4px solid var(--radio-button-border);
204
+ background-color: var(--radio-button-icon-selected);
205
+ opacity: 1;
105
206
  }
106
- .tl-radio-button__input {
107
- /* Checked + focus */
108
- }
109
- .tl-radio-button__input:checked:focus::after {
110
- outline: var(--radio-button-focus-outline-width) solid var(--radio-button-focus-outline-color);
111
- }
112
- .tl-radio-button__input {
113
- /* Hover */
207
+ .tl-radio-button__input:checked:not(:disabled):hover::before {
208
+ border-color: var(--radio-button-border-selected-hover);
209
+ background-color: var(--radio-button-background-selected-hover);
114
210
  }
115
- .tl-radio-button:not(:has(:disabled)):hover .tl-radio-button__input::after {
116
- outline: var(--radio-button-focus-outline-width) solid var(--radio-button-background-hover);
117
- }
118
- .tl-radio-button__input {
119
- /* Disabled */
211
+ .tl-radio-button__input:checked:not(:disabled):hover::after {
212
+ background-color: var(--radio-button-icon-selected-hover);
120
213
  }
121
214
  .tl-radio-button__input:disabled {
122
215
  cursor: not-allowed;
123
- }
124
- .tl-radio-button__input:disabled::before {
125
- outline: 1px solid var(--radio-button-border-disabled);
126
- outline-offset: -4px;
127
- }
128
- .tl-radio-button__input:disabled::after {
129
- background-color: var(--radio-button-background-disabled);
130
- border: 1px solid var(--radio-button-border-disabled);
131
- outline: none;
132
- }
133
- .tl-radio-button__input:disabled:checked::before {
134
- border: 1px solid var(--radio-button-border-disabled);
135
- display: block;
136
- inline-size: 16px;
137
- block-size: 16px;
138
- left: 3px;
139
- top: 3px;
140
- box-sizing: content-box;
141
- }
142
- .tl-radio-button__input:disabled:checked::after {
143
- border: 4px solid var(--radio-button-background-disabled);
144
- background-color: var(--radio-button-checked-disabled);
145
- left: 4px;
146
- top: 4px;
216
+ opacity: var(--radio-button-opacity-disabled);
147
217
  }
148
218
 
149
219
  /* LABEL — text only */
150
220
  .tl-radio-button__label {
151
221
  cursor: pointer;
152
222
  padding-left: 4px;
223
+ color: var(--radio-button-text);
224
+ }
225
+ .tl-radio-button__input:not(:disabled):hover + .tl-radio-button__label {
226
+ color: var(--radio-button-text-hover);
153
227
  }
154
228
  .tl-radio-button:has(:disabled) .tl-radio-button__label {
155
229
  cursor: not-allowed;
156
- color: var(--radio-button-label-disabled);
157
- }
158
-
159
- /* Focus animation */
160
- @keyframes rb-focus {
161
- 0% {
162
- transform: scale(0);
163
- opacity: 0;
164
- }
165
- 100% {
166
- transform: scale(1);
167
- }
168
230
  }