@scania/tegel-lite 0.1.0-variables-beta.1 → 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 (62) 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/traton/placeholder.svg +3 -0
  23. package/dist/components.css +3552 -7157
  24. package/dist/global.css +134 -11
  25. package/dist/scania-variables.css +357 -136
  26. package/dist/tl-accordion.css +88 -35
  27. package/dist/tl-banner.css +88 -13
  28. package/dist/tl-block.css +62 -7
  29. package/dist/tl-breadcrumbs.css +55 -6
  30. package/dist/tl-button.css +192 -160
  31. package/dist/tl-card.css +54 -66
  32. package/dist/tl-checkbox.css +195 -115
  33. package/dist/tl-divider.css +61 -3
  34. package/dist/tl-footer.css +98 -38
  35. package/dist/tl-icon.css +4 -0
  36. package/dist/tl-link.css +114 -16
  37. package/dist/tl-message.css +128 -14
  38. package/dist/tl-modal.css +123 -20
  39. package/dist/tl-radio-button.css +158 -96
  40. package/dist/tl-text-field.css +256 -76
  41. package/dist/tl-textarea.css +274 -76
  42. package/dist/tl-toast.css +119 -10
  43. package/dist/tl-toggle.css +149 -44
  44. package/dist/tl-tooltip.css +17 -15
  45. package/dist/traton-variables.css +365 -23
  46. package/package.json +5 -26
  47. package/dist/tl-badge.css +0 -45
  48. package/dist/tl-checkbox-vars.css +0 -38
  49. package/dist/tl-chip.css +0 -99
  50. package/dist/tl-dropdown.css +0 -913
  51. package/dist/tl-folder-tabs.css +0 -139
  52. package/dist/tl-header.css +0 -935
  53. package/dist/tl-inline-tabs.css +0 -173
  54. package/dist/tl-navigation-tabs.css +0 -171
  55. package/dist/tl-popover-canvas.css +0 -70
  56. package/dist/tl-popover-menu.css +0 -123
  57. package/dist/tl-side-menu.css +0 -695
  58. package/dist/tl-slider.css +0 -2242
  59. package/dist/tl-spinner.css +0 -78
  60. package/dist/tl-step.css +0 -239
  61. package/dist/tl-stepper.css +0 -83
  62. package/dist/tl-table.css +0 -849
package/dist/tl-modal.css CHANGED
@@ -18,7 +18,9 @@ body {
18
18
  :root,
19
19
  .tds-mode-light,
20
20
  .scania .tds-mode-light,
21
- .scania .tl-mode-light {
21
+ .scania.tds-mode-light,
22
+ .scania .tl-mode-light,
23
+ .scania.tl-mode-light {
22
24
  --component-shadow-base-modifier: var(--scania-color-transparent-shadow-100);
23
25
  --component-shadow-default: var(--scania-color-transparent-shadow-150);
24
26
  --component-shadow-hover: var(--scania-color-transparent-shadow-250);
@@ -28,7 +30,9 @@ body {
28
30
  }
29
31
 
30
32
  .traton .tds-mode-light,
31
- .traton .tl-mode-light {
33
+ .traton.tds-mode-light,
34
+ .traton .tl-mode-light,
35
+ .traton.tl-mode-light {
32
36
  --component-shadow-base-modifier: var(--traton-color-transparent-invisible-dark);
33
37
  --component-shadow-default: var(--traton-color-transparent-invisible-dark);
34
38
  --component-shadow-hover: var(--traton-color-transparent-invisible-dark);
@@ -39,7 +43,9 @@ body {
39
43
 
40
44
  .tds-mode-dark,
41
45
  .scania .tds-mode-dark,
42
- .scania .tl-mode-dark {
46
+ .scania.tds-mode-dark,
47
+ .scania .tl-mode-dark,
48
+ .scania.tl-mode-dark {
43
49
  --component-shadow-base-modifier: var(--scania-color-transparent-invisible-dark);
44
50
  --component-shadow-default: var(--scania-color-transparent-invisible-dark);
45
51
  --component-shadow-hover: var(--scania-color-transparent-invisible-dark);
@@ -49,7 +55,9 @@ body {
49
55
  }
50
56
 
51
57
  .traton .tds-mode-dark,
52
- .traton .tl-mode-dark {
58
+ .traton.tds-mode-dark,
59
+ .traton .tl-mode-dark,
60
+ .traton.tl-mode-dark {
53
61
  --component-shadow-base-modifier: var(--traton-color-transparent-invisible-dark);
54
62
  --component-shadow-default: var(--traton-color-transparent-invisible-dark);
55
63
  --component-shadow-hover: var(--traton-color-transparent-invisible-dark);
@@ -58,16 +66,108 @@ body {
58
66
  --component-shadow-dragged: var(--traton-color-transparent-invisible-dark);
59
67
  }
60
68
 
61
- /* Component variables */
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
+
62
157
  .tl-modal,
63
- :root {
64
- --modal-scroll-bar-thumb: var(--color-foreground-icon-discrete);
65
- --modal-background: var(--color-background-layer-02);
66
- --modal-backdrop: var(--color-background-overlay);
67
- --modal-text: var(--color-foreground-text-strong);
68
- --modal-cross-svg: var(--color-foreground-text-strong);
69
- --modal-shadow: 0 2px 3px 0 var(--component-shadow-base-modifier);
70
- --component-shadow-base-modifier: var(--scania-color-transparent-invisible-dark);
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));
71
171
  }
72
172
 
73
173
  /* MIXINS */
@@ -82,7 +182,7 @@ body {
82
182
  box-shadow: var(--modal-shadow);
83
183
  margin: auto;
84
184
  position: relative;
85
- border-radius: 4px;
185
+ border-radius: var(--modal-border-radius);
86
186
  max-height: 85vh;
87
187
  overflow-y: auto;
88
188
  pointer-events: auto;
@@ -95,7 +195,7 @@ body {
95
195
  background: var(--tl-scrollbar-track-color);
96
196
  }
97
197
  .tl-modal::-webkit-scrollbar-thumb {
98
- border-radius: 40px;
198
+ border-radius: var(--tl-scrollbar-thumb-border-radius);
99
199
  background: var(--tl-scrollbar-thumb-color);
100
200
  border-width: var(--tl-scrollbar-thumb-border-width);
101
201
  border-style: solid;
@@ -104,6 +204,7 @@ body {
104
204
  }
105
205
  .tl-modal::-webkit-scrollbar-thumb:hover {
106
206
  border-width: var(--tl-scrollbar-thumb-border-hover-width);
207
+ border-radius: var(--tl-scrollbar-hover-thumb-border-radius);
107
208
  }
108
209
  .tl-modal::-webkit-scrollbar-button {
109
210
  height: 0;
@@ -234,7 +335,7 @@ body {
234
335
  font-weight: var(--body-01-font-weight);
235
336
  letter-spacing: var(--body-01-letter-spacing);
236
337
  text-transform: var(--body-01-text-transform);
237
- color: var(--modal-text);
338
+ color: var(--modal-body-text);
238
339
  padding: 0 16px 16px;
239
340
  }
240
341
  .tl-modal__body::-webkit-scrollbar {
@@ -244,7 +345,7 @@ body {
244
345
  background: var(--tl-scrollbar-track-color);
245
346
  }
246
347
  .tl-modal__body::-webkit-scrollbar-thumb {
247
- border-radius: 40px;
348
+ border-radius: var(--tl-scrollbar-thumb-border-radius);
248
349
  background: var(--tl-scrollbar-thumb-color);
249
350
  border-width: var(--tl-scrollbar-thumb-border-width);
250
351
  border-style: solid;
@@ -253,6 +354,7 @@ body {
253
354
  }
254
355
  .tl-modal__body::-webkit-scrollbar-thumb:hover {
255
356
  border-width: var(--tl-scrollbar-thumb-border-hover-width);
357
+ border-radius: var(--tl-scrollbar-hover-thumb-border-radius);
256
358
  }
257
359
  .tl-modal__body::-webkit-scrollbar-button {
258
360
  height: 0;
@@ -285,15 +387,16 @@ body {
285
387
  background-color: transparent;
286
388
  border: 0;
287
389
  padding: 0;
390
+ height: 20px;
391
+ width: 20px;
288
392
  appearance: unset;
289
393
  display: inline-block;
290
- height: auto;
291
394
  color: var(--modal-text);
292
395
  cursor: pointer;
293
396
  }
294
397
  .tl-modal__close:focus {
295
- outline: 2px solid var(--tds-focus-outline-color);
296
- 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);
297
400
  outline-offset: 1px;
298
401
  z-index: 1;
299
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-color: var(--radio-button-background-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
  }