@digdir/designsystemet-css 0.9.0 → 0.9.1-alpha.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 (78) hide show
  1. package/accordion.css +40 -43
  2. package/alert.css +36 -32
  3. package/box.css +18 -18
  4. package/button.css +107 -107
  5. package/card.css +41 -49
  6. package/checkbox.css +67 -55
  7. package/chip.css +65 -65
  8. package/combobox.css +68 -68
  9. package/dist/accordion.css +1 -1
  10. package/dist/alert.css +1 -1
  11. package/dist/box.css +1 -1
  12. package/dist/button.css +1 -1
  13. package/dist/card.css +1 -1
  14. package/dist/checkbox.css +1 -1
  15. package/dist/chip.css +1 -1
  16. package/dist/combobox.css +1 -1
  17. package/dist/divider.css +1 -1
  18. package/dist/dropdownmenu.css +1 -1
  19. package/dist/error-message.css +1 -1
  20. package/dist/error-summary.css +1 -1
  21. package/dist/fieldset.css +1 -1
  22. package/dist/heading.css +1 -1
  23. package/dist/helptext.css +1 -1
  24. package/dist/index.css +1 -1
  25. package/dist/ingress.css +1 -1
  26. package/dist/label.css +1 -1
  27. package/dist/link.css +1 -1
  28. package/dist/list.css +1 -1
  29. package/dist/modal.css +1 -1
  30. package/dist/native-select.css +1 -1
  31. package/dist/pagination.css +1 -1
  32. package/dist/paragraph.css +1 -1
  33. package/dist/popover.css +1 -1
  34. package/dist/radio.css +1 -1
  35. package/dist/search.css +1 -1
  36. package/dist/skeleton.css +1 -1
  37. package/dist/skiplink.css +1 -1
  38. package/dist/spinner.css +1 -1
  39. package/dist/switch.css +1 -1
  40. package/dist/table.css +1 -1
  41. package/dist/tabs.css +1 -1
  42. package/dist/tag.css +1 -1
  43. package/dist/textarea.css +1 -1
  44. package/dist/textfield.css +1 -1
  45. package/dist/togglegroup.css +1 -1
  46. package/dist/tooltip.css +1 -1
  47. package/dist/utils.css +1 -1
  48. package/divider.css +3 -3
  49. package/dropdownmenu.css +10 -10
  50. package/error-message.css +11 -11
  51. package/error-summary.css +4 -4
  52. package/fieldset.css +3 -3
  53. package/heading.css +17 -24
  54. package/helptext.css +10 -10
  55. package/ingress.css +11 -11
  56. package/label.css +7 -7
  57. package/link.css +13 -13
  58. package/list.css +4 -4
  59. package/modal.css +19 -19
  60. package/native-select.css +25 -25
  61. package/package.json +2 -2
  62. package/pagination.css +18 -18
  63. package/paragraph.css +22 -22
  64. package/popover.css +26 -26
  65. package/radio.css +48 -51
  66. package/search.css +33 -33
  67. package/skeleton.css +4 -4
  68. package/skiplink.css +3 -3
  69. package/spinner.css +5 -5
  70. package/switch.css +65 -49
  71. package/table.css +30 -26
  72. package/tabs.css +21 -29
  73. package/tag.css +32 -32
  74. package/textarea.css +17 -17
  75. package/textfield.css +33 -33
  76. package/togglegroup.css +5 -5
  77. package/tooltip.css +11 -9
  78. package/utils.css +4 -4
package/radio.css CHANGED
@@ -1,32 +1,34 @@
1
1
  @layer fds.radio {
2
2
  .fds-radio {
3
- --fds-radio-size: 1.75rem;
4
- --fds-radio-focus-border-width: 3px;
5
- --fds-radio-background: var(--fds-semantic-background-default);
6
- --fds-radio-border-color: var(--fds-semantic-border-input-default);
7
- --fds-radio-border__hover: 0 0 0 var(--fds-spacing-2) var(--fds-semantic-surface-info-subtle-hover);
3
+ --dsc-radio-size: var(--ds-spacing-5);
4
+ --dsc-radio-focus-border-width: 3px;
5
+ --dsc-radio-background: var(--ds-color-neutral-background-default);
6
+ --dsc-radio-border-color: var(--ds-color-neutral-border-default);
7
+ --dsc-radio-border__hover--size: calc(var(--ds-spacing-3) / 2);
8
+ --dsc-radio-border__hover: 0 0 0 var(--dsc-radio-border__hover--size) var(--ds-color-accent-border-subtle);
9
+ --dsc-radio-focus-color: var(--ds-color-neutral-text-default);
8
10
 
9
11
  display: grid;
10
12
  }
11
13
 
12
14
  .fds-radio:has(.fds-radio__label) {
13
- grid-template-columns: var(--fds-radio-size) auto;
14
- gap: var(--fds-spacing-2);
15
+ grid-template-columns: var(--dsc-radio-size) auto;
16
+ gap: var(--ds-spacing-2);
15
17
  }
16
18
 
17
19
  /* Radio */
18
20
  .fds-radio__input {
19
21
  position: relative;
20
- width: var(--fds-radio-size);
21
- height: var(--fds-radio-size);
22
+ width: var(--dsc-radio-size);
23
+ height: var(--dsc-radio-size);
22
24
  z-index: 1;
23
25
  appearance: none;
24
26
  outline: none;
25
27
  cursor: pointer;
26
28
  margin: 0;
27
29
  align-self: center;
28
- box-shadow: inset 0 0 0 2px var(--fds-radio-border-color);
29
- background: var(--fds-radio-background);
30
+ box-shadow: inset 0 0 0 2px var(--dsc-radio-border-color);
31
+ background: var(--dsc-radio-background);
30
32
  border-radius: 50%;
31
33
  }
32
34
 
@@ -40,22 +42,22 @@
40
42
  top: 50%;
41
43
  left: 50%;
42
44
  cursor: pointer;
43
- border-radius: var(--fds-border_radius-medium);
45
+ border-radius: var(--ds-border-radius-md);
44
46
  }
45
47
 
46
48
  .fds-radio__label {
47
- min-height: var(--fds-sizing-10);
49
+ min-height: var(--ds-sizing-10);
48
50
  min-width: min-content;
49
51
  display: inline-flex;
50
52
  flex-direction: row;
51
- gap: var(--fds-spacing-1);
53
+ gap: var(--ds-spacing-1);
52
54
  align-items: center;
53
55
  cursor: pointer;
54
56
  }
55
57
 
56
58
  .fds-radio__description {
57
- margin-top: calc(var(--fds-spacing-3) * -1);
58
- color: var(--fds-semantic-text-neutral-subtle);
59
+ margin-top: calc(var(--ds-spacing-3) * -1);
60
+ color: var(--ds-color-neutral-text-subtle);
59
61
  grid-column: 2;
60
62
  }
61
63
 
@@ -68,7 +70,7 @@
68
70
  .fds-radio--disabled > .fds-radio__label,
69
71
  .fds-radio--disabled > .fds-radio__input,
70
72
  .fds-radio--disabled > .fds-radio__description {
71
- opacity: var(--fds-opacity-disabled);
73
+ opacity: var(--ds-opacity-disabled);
72
74
  }
73
75
 
74
76
  .fds-radio--readonly > .fds-radio__input,
@@ -78,36 +80,37 @@
78
80
  }
79
81
 
80
82
  .fds-radio__input:focus-visible {
81
- outline-offset: 0;
82
- outline: var(--fds-radio-focus-border-width) solid var(--fds-semantic-border-focus-outline);
83
+ outline-offset: var(--ds-spacing-1);
84
+ outline: var(--dsc-radio-focus-border-width) solid var(--dsc-radio-focus-color);
83
85
  box-shadow:
84
- inset 0 0 0 var(--fds-radio-focus-border-width) var(--fds-semantic-border-focus-boxshadow),
85
- inset 0 0 0 6px var(--fds-radio-background);
86
+ inset 0 0 0 2px var(--dsc-radio-border-color),
87
+ inset 0 0 0 var(--dsc-radio-focus-border-width) var(--ds-color-neutral-background-default),
88
+ inset 0 0 0 6px var(--dsc-radio-background);
86
89
  }
87
90
 
88
91
  .fds-radio__input:checked {
89
- --fds-radio-border-color: var(--fds-semantic-border-input-hover);
92
+ --dsc-radio-border-color: var(--ds-color-accent-border-strong);
90
93
 
91
- background: var(--fds-radio-border-color);
94
+ background: var(--dsc-radio-border-color);
92
95
  }
93
96
 
94
97
  .fds-radio--readonly > .fds-radio__input {
95
- --fds-radio-border-color: var(--fds-semantic-border-neutral-subtle);
96
- --fds-radio-background: var(--fds-semantic-surface-neutral-subtle);
98
+ --dsc-radio-border-color: var(--ds-color-neutral-border-subtle);
99
+ --dsc-radio-background: var(--ds-color-neutral-background-subtle);
97
100
  }
98
101
 
99
102
  .fds-radio__input:checked:not(:focus-visible) {
100
103
  box-shadow:
101
- inset 0 0 0 2px var(--fds-radio-border-color),
102
- inset 0 0 0 6px var(--fds-radio-background);
104
+ inset 0 0 0 2px var(--dsc-radio-border-color),
105
+ inset 0 0 0 6px var(--dsc-radio-background);
103
106
  }
104
107
 
105
108
  .fds-radio--readonly > .fds-radio__input:checked {
106
- background: var(--fds-semantic-border-neutral-default);
109
+ background: var(--ds-color-neutral-border-strong);
107
110
  }
108
111
 
109
112
  .fds-radio--error > .fds-radio__input:not(:disabled, :focus-visible) {
110
- --fds-radio-border-color: var(--fds-semantic-border-danger-default);
113
+ --dsc-radio-border-color: var(--ds-color-danger-border-default);
111
114
  }
112
115
 
113
116
  /* Only use hover for non-touch devices to prevent sticky-hovering
@@ -115,57 +118,51 @@
115
118
  @media (hover: hover) and (pointer: fine) {
116
119
  .fds-radio:not(.fds-radio--readonly, .fds-radio--disabled) > .fds-radio__label:hover,
117
120
  .fds-radio:not(.fds-radio--readonly, .fds-radio--disabled) > .fds-radio__input:hover + .fds-radio__label {
118
- color: var(--fds-semantic-text-action-hover);
121
+ color: var(--ds-color-accent-text-subtle);
119
122
  }
120
123
 
121
124
  .fds-radio:not(.fds-radio--readonly, .fds-radio--disabled) > .fds-radio__input:hover:not(:checked) {
122
- --fds-radio-border-color: var(--fds-semantic-border-input-hover);
125
+ --dsc-radio-border-color: var(--ds-color-accent-border-strong);
123
126
 
124
127
  box-shadow:
125
- var(--fds-radio-border__hover),
126
- inset 0 0 0 2px var(--fds-radio-border-color);
128
+ var(--dsc-radio-border__hover),
129
+ inset 0 0 0 2px var(--dsc-radio-border-color);
127
130
  }
128
131
 
129
132
  .fds-radio:not(.fds-radio--readonly, .fds-radio--disabled) > .fds-radio__input:hover:checked {
130
- --fds-radio-border-color: var(--fds-semantic-border-input-hover);
133
+ --dsc-radio-border-color: var(--ds-color-accent-border-strong);
131
134
 
132
135
  box-shadow:
133
- var(--fds-radio-border__hover),
134
- inset 0 0 0 2px var(--fds-radio-border-color),
135
- inset 0 0 0 6px var(--fds-radio-background);
136
- }
137
-
138
- .fds-radio:not(.fds-radio--readonly, .fds-radio--disabled) > .fds-radio__input:hover:checked:focus-visible {
139
- box-shadow:
140
- var(--fds-radio-border__hover),
141
- inset 0 0 0 var(--fds-radio-focus-border-width) var(--fds-semantic-border-focus-boxshadow),
142
- inset 0 0 0 6px var(--fds-radio-background);
136
+ var(--dsc-radio-border__hover),
137
+ inset 0 0 0 2px var(--dsc-radio-border-color),
138
+ inset 0 0 0 6px var(--dsc-radio-background);
143
139
  }
144
140
  }
145
141
 
146
142
  /** Sizing */
147
143
 
148
144
  .fds-radio--sm {
149
- --fds-radio-size: var(--fds-sizing-5);
145
+ --dsc-radio-size: var(--ds-sizing-5);
150
146
 
151
- min-height: var(--fds-sizing-10);
147
+ min-height: var(--ds-sizing-10);
152
148
  }
153
149
 
154
150
  .fds-radio--md {
155
- --fds-radio-size: var(--fds-sizing-6);
151
+ --dsc-radio-size: var(--ds-sizing-6);
152
+ --dsc-radio-border__hover--size: var(--ds-spacing-1);
156
153
 
157
- min-height: var(--fds-sizing-11);
154
+ min-height: var(--ds-sizing-11);
158
155
  }
159
156
 
160
157
  .fds-radio--lg {
161
- --fds-radio-size: var(--fds-sizing-7);
158
+ --dsc-radio-size: var(--ds-sizing-7);
162
159
 
163
- min-height: var(--fds-sizing-12);
160
+ min-height: var(--ds-sizing-12);
164
161
  }
165
162
 
166
163
  .fds-radio-group--horizontal {
167
164
  display: flex;
168
165
  flex-direction: row;
169
- gap: var(--fds-spacing-6);
166
+ gap: var(--ds-spacing-6);
170
167
  }
171
168
  }
package/search.css CHANGED
@@ -2,19 +2,19 @@
2
2
  .fds-search {
3
3
  display: inline-grid;
4
4
  width: 100%;
5
- gap: var(--fds-spacing-2);
5
+ gap: var(--ds-spacing-2);
6
6
  }
7
7
 
8
8
  .fds-search--sm {
9
- --f-search-button-clear-size: var(--fds-sizing-5);
9
+ --dsc-search-button-clear-size: var(--ds-sizing-5);
10
10
  }
11
11
 
12
12
  .fds-search--md {
13
- --f-search-button-clear-size: var(--fds-sizing-6);
13
+ --dsc-search-button-clear-size: var(--ds-sizing-6);
14
14
  }
15
15
 
16
16
  .fds-search--lg {
17
- --f-search-button-clear-size: var(--fds-sizing-8);
17
+ --dsc-search-button-clear-size: var(--ds-sizing-8);
18
18
  }
19
19
 
20
20
  .fds-search__error:empty {
@@ -25,7 +25,7 @@
25
25
  min-width: min-content;
26
26
  display: inline-flex;
27
27
  flex-direction: row;
28
- gap: var(--fds-spacing-1);
28
+ gap: var(--ds-spacing-1);
29
29
  align-items: center;
30
30
  }
31
31
 
@@ -33,7 +33,7 @@
33
33
  display: flex;
34
34
  width: 100%;
35
35
  align-items: stretch;
36
- border-radius: var(--fds-border_radius-medium);
36
+ border-radius: var(--ds-border-radius-md);
37
37
  position: relative;
38
38
  }
39
39
 
@@ -41,7 +41,7 @@
41
41
  position: absolute;
42
42
  height: 100%;
43
43
  z-index: 2;
44
- left: var(--fds-spacing-4);
44
+ left: var(--ds-spacing-4);
45
45
  transform: scale(1.5);
46
46
  pointer-events: none;
47
47
  }
@@ -57,12 +57,12 @@
57
57
  position: relative;
58
58
  box-sizing: border-box;
59
59
  flex: 0 1 auto;
60
- height: var(--fds-sizing-10);
60
+ height: var(--ds-sizing-10);
61
61
  width: 100%;
62
62
  appearance: none;
63
- padding: 0 var(--fds-spacing-3);
64
- border: solid 1px var(--fds-semantic-border-input-default);
65
- border-radius: var(--fds-border_radius-medium);
63
+ padding: 0 var(--ds-spacing-3);
64
+ border: solid 1px var(--ds-color-neutral-border-default);
65
+ border-radius: var(--ds-border-radius-md);
66
66
  }
67
67
 
68
68
  .fds-search__input.fds-search__input--with-search-button {
@@ -79,7 +79,7 @@
79
79
  }
80
80
 
81
81
  .fds-search--disabled {
82
- opacity: var(--fds-opacity-disabled);
82
+ opacity: var(--ds-opacity-disabled);
83
83
  }
84
84
 
85
85
  .fds-search__search-button {
@@ -93,7 +93,7 @@
93
93
  }
94
94
 
95
95
  .fds-search__clear-button {
96
- color: var(--fds-semantic-text-neutral-default);
96
+ color: var(--ds-color-neutral-text-default);
97
97
  display: inline-flex;
98
98
  align-items: center;
99
99
  justify-content: center;
@@ -104,48 +104,48 @@
104
104
  top: 50%;
105
105
  transform: translateY(-50%);
106
106
  cursor: pointer;
107
- height: var(--f-search-button-clear-size);
108
- width: var(--f-search-button-clear-size);
109
- border-radius: var(--fds-border_radius-medium);
107
+ height: var(--dsc-search-button-clear-size);
108
+ width: var(--dsc-search-button-clear-size);
109
+ border-radius: var(--ds-border-radius-md);
110
110
  font-size: 1.25rem;
111
111
  padding: 0;
112
112
  z-index: 2;
113
113
  }
114
114
 
115
115
  .fds-search--sm .fds-search__input {
116
- --f-search-button-clear-size: var(--fds-sizing-4);
116
+ --dsc-search-button-clear-size: var(--ds-sizing-4);
117
117
 
118
- height: var(--fds-sizing-10);
119
- padding: 0 var(--fds-spacing-3);
118
+ height: var(--ds-sizing-10);
119
+ padding: 0 var(--ds-spacing-3);
120
120
  padding-right: 2.5em;
121
121
  }
122
122
 
123
123
  .fds-search--sm .fds-search__icon {
124
- left: var(--fds-spacing-3);
124
+ left: var(--ds-spacing-3);
125
125
  }
126
126
 
127
127
  .fds-search--md .fds-search__input {
128
- --f-search-button-clear-size: var(--fds-sizing-6);
128
+ --dsc-search-button-clear-size: var(--ds-sizing-6);
129
129
 
130
- height: var(--fds-sizing-12);
131
- padding: 0 var(--fds-spacing-4);
130
+ height: var(--ds-sizing-12);
131
+ padding: 0 var(--ds-spacing-4);
132
132
  padding-right: 2.2em;
133
133
  }
134
134
 
135
135
  .fds-search--md .fds-search__icon {
136
- left: var(--fds-spacing-4);
136
+ left: var(--ds-spacing-4);
137
137
  }
138
138
 
139
139
  .fds-search--lg .fds-search__input {
140
- --f-search-button-clear-size: var(--fds-sizing-12);
140
+ --dsc-search-button-clear-size: var(--ds-sizing-12);
141
141
 
142
- height: var(--fds-sizing-14);
143
- padding: 0 var(--fds-spacing-5);
142
+ height: var(--ds-sizing-14);
143
+ padding: 0 var(--ds-spacing-5);
144
144
  padding-right: 2em;
145
145
  }
146
146
 
147
147
  .fds-search--lg .fds-search__icon {
148
- left: var(--fds-spacing-5);
148
+ left: var(--ds-spacing-5);
149
149
  }
150
150
 
151
151
  .fds-search__input.fds-search__input--simple {
@@ -153,18 +153,18 @@
153
153
  }
154
154
 
155
155
  .fds-search__error-message > .input:not(:focus-visible) {
156
- border-color: var(--fds-semantic-border-danger-default);
157
- box-shadow: inset 0 0 0 1px var(--fds-semantic-border-danger-default);
156
+ border-color: var(--ds-color-danger-border-default);
157
+ box-shadow: inset 0 0 0 1px var(--ds-color-danger-border-default);
158
158
  }
159
159
 
160
160
  @media (hover: hover) and (pointer: fine) {
161
161
  .fds-search__input:not(:focus-visible, :disabled, [aria-disabled]):hover {
162
- border-color: var(--fds-semantic-border-input-hover);
163
- box-shadow: inset 0 0 0 1px var(--fds-semantic-border-input-hover);
162
+ border-color: var(--ds-color-accent-border-strong);
163
+ box-shadow: inset 0 0 0 1px var(--ds-color-accent-border-strong);
164
164
  }
165
165
 
166
166
  .fds-search__clear-button:not(:focus-visible, :disabled, [aria-disabled]):hover {
167
- background: var(--fds-semantic-surface-action-subtle-hover);
167
+ background: var(--ds-color-accent-surface-hover);
168
168
  }
169
169
  }
170
170
  }
package/skeleton.css CHANGED
@@ -1,12 +1,12 @@
1
1
  @layer fds.skeleton {
2
2
  .fds-skeleton {
3
- --fds-skeleton-animation-duration: 0.8s;
3
+ --dsc-skeleton-animation-duration: 0.8s;
4
4
 
5
5
  height: 1.3em;
6
6
  pointer-events: none;
7
7
  user-select: none;
8
- background-color: var(--fds-semantic-surface-neutral-subtle-hover);
9
- animation: fds-skeleton-opacity-fade var(--fds-skeleton-animation-duration) linear infinite alternate;
8
+ background-color: var(--ds-color-neutral-surface-default);
9
+ animation: fds-skeleton-opacity-fade var(--dsc-skeleton-animation-duration) linear infinite alternate;
10
10
  }
11
11
 
12
12
  .fds-skeleton--circle {
@@ -43,7 +43,7 @@
43
43
 
44
44
  @media (prefers-reduced-motion: reduce) {
45
45
  .fds-skeleton {
46
- --fds-skeleton-animation-duration: 1.6s;
46
+ --dsc-skeleton-animation-duration: 1.6s;
47
47
  }
48
48
  }
49
49
 
package/skiplink.css CHANGED
@@ -13,8 +13,8 @@
13
13
  text-decoration: underline;
14
14
  text-decoration-thickness: 3px;
15
15
  text-underline-offset: 0.3em;
16
- padding: var(--fds-spacing-3) var(--fds-spacing-4) var(--fds-spacing-3) var(--fds-spacing-6);
17
- color: var(--fds-semantic-text-neutral-default);
18
- background: var(--fds-semantic-border-focus-outline);
16
+ padding: var(--ds-spacing-3) var(--ds-spacing-4) var(--ds-spacing-3) var(--ds-spacing-6);
17
+ color: var(--ds-color-neutral-text-default);
18
+ background: var(--ds-color-neutral-text-default);
19
19
  }
20
20
  }
package/spinner.css CHANGED
@@ -25,23 +25,23 @@
25
25
  }
26
26
 
27
27
  .fds-spinner--default .fds-spinner__circle {
28
- stroke: var(--fds-semantic-border-neutral-default);
28
+ stroke: var(--ds-color-neutral-border-strong);
29
29
  }
30
30
 
31
31
  .fds-spinner--interaction .fds-spinner__circle {
32
- stroke: var(--fds-semantic-border-action-first-default);
32
+ stroke: var(--ds-color-accent-base-default);
33
33
  }
34
34
 
35
35
  .fds-spinner--inverted .fds-spinner__circle {
36
- stroke: var(--fds-semantic-surface-neutral-default);
36
+ stroke: var(--ds-color-neutral-background-default);
37
37
  }
38
38
 
39
39
  .fds-spinner__background {
40
- stroke: var(--fds-semantic-border-neutral-subtle);
40
+ stroke: var(--ds-color-neutral-border-subtle);
41
41
  }
42
42
 
43
43
  .fds-spinner__background--inverted {
44
- stroke: var(--fds-semantic-surface-neutral-dark);
44
+ stroke: var([delete]);
45
45
  }
46
46
 
47
47
  @keyframes fds-spinner-rotate-animation {
package/switch.css CHANGED
@@ -1,24 +1,25 @@
1
1
  @layer fds.switch {
2
2
  .fds-switch {
3
- --fds-switch--transition: 200ms;
4
- --fds-switch-height: 1.75rem;
5
- --fds-switch-focus-border-width: 3px;
3
+ --dsc-switch--transition: 200ms;
4
+ --dsc-switch-height: 1.75rem;
5
+ --dsc-switch-focus-border-width: 3px;
6
+ --dsc-switch-check_color: transparent;
6
7
 
7
8
  position: relative;
8
9
  }
9
10
 
10
11
  @media (prefers-reduced-motion) {
11
12
  .switch {
12
- --fds-switch--transition: 0;
13
+ --dsc-switch--transition: 0;
13
14
  }
14
15
  }
15
16
 
16
17
  .fds-switch__label {
17
- min-height: var(--fds-sizing-10);
18
+ min-height: var(--ds-sizing-10);
18
19
  min-width: min-content;
19
20
  display: grid;
20
21
  grid-template-columns: auto 1fr;
21
- gap: var(--fds-spacing-1);
22
+ gap: var(--ds-spacing-1);
22
23
  align-items: center;
23
24
  cursor: pointer;
24
25
  }
@@ -27,20 +28,21 @@
27
28
  position: relative;
28
29
  display: inline-block;
29
30
  pointer-events: none;
30
- width: var(--fds-switch-width);
31
- height: var(--fds-switch-height);
31
+ width: var(--dsc-switch-width);
32
+ height: var(--dsc-switch-height);
32
33
  margin: auto;
33
34
  overflow: visible;
34
- border-radius: var(--fds-border_radius-full);
35
- background-color: var(--fds-semantic-surface-neutral-dark);
36
- transition: background-color var(--fds-switch--transition) ease;
37
- margin-right: var(--fds-spacing-1);
35
+ border-radius: var(--ds-border-radius-full);
36
+ background-color: var(--ds-color-neutral-border-default);
37
+ transition: background-color var(--dsc-switch--transition) ease;
38
+ margin-right: var(--ds-spacing-1);
38
39
  }
39
40
 
40
41
  .fds-switch__description {
41
- padding-left: calc(var(--fds-switch-width) + var(--fds-spacing-2));
42
- margin-top: calc(var(--fds-spacing-2) * -1);
43
- color: var(--fds-semantic-text-neutral-subtle);
42
+ padding-left: calc(var(--dsc-switch-width) + var(--ds-spacing-2));
43
+ margin-top: var(--ds-spacing-1);
44
+ color: var(--ds-color-neutral-text-subtle);
45
+ width: fit-content;
44
46
  }
45
47
 
46
48
  .fds-switch__readonly__icon {
@@ -94,31 +96,31 @@
94
96
  .fds-switch--disabled > .fds-switch__label,
95
97
  .fds-switch--disabled > .fds-switch__track,
96
98
  .fds-switch--disabled > .fds-switch__description {
97
- opacity: var(--fds-opacity-disabled);
99
+ opacity: var(--ds-opacity-disabled);
98
100
  }
99
101
 
100
102
  .fds-switch--readonly > .fds-switch__description {
101
- margin-left: var(--fds-spacing-1);
103
+ margin-left: var(--ds-spacing-1);
102
104
  }
103
105
 
104
106
  .fds-switch--sm,
105
107
  .fds-switch--sm .fds-switch__label {
106
- min-height: var(--fds-sizing-6);
108
+ min-height: var(--ds-sizing-6);
107
109
  }
108
110
 
109
111
  .fds-switch--md,
110
112
  .fds-switch--md .fds-switch__label {
111
- min-height: var(--fds-sizing-7);
113
+ min-height: var(--ds-sizing-7);
112
114
  }
113
115
 
114
116
  .fds-switch--lg,
115
117
  .fds-switch--lg .fds-switch__label {
116
- min-height: var(--fds-sizing-8);
118
+ min-height: var(--ds-sizing-8);
117
119
  }
118
120
 
119
121
  .fds-switch--sm {
120
- --fds-switch-height: var(--fds-sizing-6);
121
- --fds-switch-width: var(--fds-sizing-11);
122
+ --dsc-switch-height: var(--ds-sizing-6);
123
+ --dsc-switch-width: var(--ds-sizing-11);
122
124
  }
123
125
 
124
126
  .fds-switch--sm .fds-switch__input {
@@ -127,8 +129,8 @@
127
129
  }
128
130
 
129
131
  .fds-switch--md {
130
- --fds-switch-height: var(--fds-sizing-7);
131
- --fds-switch-width: var(--fds-sizing-13);
132
+ --dsc-switch-height: var(--ds-sizing-7);
133
+ --dsc-switch-width: var(--ds-sizing-13);
132
134
  }
133
135
 
134
136
  .fds-switch--md .fds-switch__input {
@@ -137,8 +139,8 @@
137
139
  }
138
140
 
139
141
  .fds-switch--lg {
140
- --fds-switch-height: var(--fds-sizing-8);
141
- --fds-switch-width: var(--fds-sizing-15);
142
+ --dsc-switch-height: var(--ds-sizing-8);
143
+ --dsc-switch-width: var(--ds-sizing-15);
142
144
  }
143
145
 
144
146
  .fds-switch--lg .fds-switch__input {
@@ -155,62 +157,76 @@
155
157
  }
156
158
 
157
159
  .fds-switch__input:focus-visible + .fds-switch__label .fds-switch__track {
158
- outline: var(--fds-switch-focus-border-width) solid var(--fds-semantic-border-focus-outline);
159
- box-shadow: inset 0 0 0 var(--fds-switch-focus-border-width) var(--fds-semantic-border-focus-boxshadow);
160
+ outline: var(--dsc-switch-focus-border-width) solid var(--ds-color-neutral-text-default);
161
+ outline-offset: 3px;
162
+ box-shadow: 0 0 0 var(--dsc-switch-focus-border-width) var(--ds-color-neutral-background-default);
160
163
  }
161
164
 
162
165
  .fds-switch__input:not([readonly]):checked + .fds-switch__label .fds-switch__track {
163
- background-color: var(--fds-semantic-surface-success-default);
166
+ background-color: var(--ds-color-accent-base-default);
164
167
  }
165
168
 
166
169
  .fds-switch__thumb {
167
170
  scale: 0.8;
168
171
  position: absolute;
169
- height: var(--fds-switch-height);
170
- width: var(--fds-switch-height);
171
- border-radius: var(--fds-border_radius-full);
172
- background-color: var(--fds-semantic-background-default);
173
- transition: transform var(--fds-switch--transition) ease;
172
+ height: var(--dsc-switch-height);
173
+ width: var(--dsc-switch-height);
174
+ border-radius: var(--ds-border-radius-full);
175
+ background-color: var(--ds-color-neutral-background-default);
176
+ transition: transform var(--dsc-switch--transition) ease;
174
177
  }
175
178
 
176
179
  .fds-switch__input:checked + .fds-switch__label .fds-switch__track .fds-switch__thumb {
177
- transform: translateX(calc((var(--fds-switch-width) - var(--fds-switch-height)) * 1.2));
178
- background-image: url("data:image/svg+xml,%3Csvg viewBox='-3 -3 17 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10.1339 2.86612C10.622 3.35427 10.622 4.14573 10.1339 4.63388L5.88388 8.88388C5.39573 9.37204 4.60427 9.37204 4.11612 8.88388L1.86612 6.63388C1.37796 6.14573 1.37796 5.35427 1.86612 4.86612C2.35427 4.37796 3.14573 4.37796 3.63388 4.86612L5 6.23223L8.36612 2.86612C8.85427 2.37796 9.64573 2.37796 10.1339 2.86612Z' fill='%23118849' /%3E%3C/svg%3E");
180
+ --dsc-switch-check_color: var(--ds-color-accent-base-default);
181
+
182
+ transform: translateX(calc((var(--dsc-switch-width) - var(--dsc-switch-height)) * 1.2));
183
+ }
184
+
185
+ .fds-switch__thumb::after {
186
+ content: '';
187
+ width: 100%;
188
+ height: 100%;
189
+ position: absolute;
190
+ top: 50%;
191
+ left: 50%;
192
+ transform: translate(-50%, -50%);
193
+ background-color: var(--dsc-switch-check_color);
194
+ mask-image: url("data:image/svg+xml,%3Csvg viewBox='-3 -3 17 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10.1339 2.86612C10.622 3.35427 10.622 4.14573 10.1339 4.63388L5.88388 8.88388C5.39573 9.37204 4.60427 9.37204 4.11612 8.88388L1.86612 6.63388C1.37796 6.14573 1.37796 5.35427 1.86612 4.86612C2.35427 4.37796 3.14573 4.37796 3.63388 4.86612L5 6.23223L8.36612 2.86612C8.85427 2.37796 9.64573 2.37796 10.1339 2.86612Z' fill='%23118849' /%3E%3C/svg%3E");
195
+ transition: background-color var(--dsc-switch--transition) ease;
179
196
  }
180
197
 
181
198
  .fds-switch--readonly .fds-switch__input[readonly] + .fds-switch__label .fds-switch__track {
182
- box-shadow: inset 0 0 0 2px var(--fds-semantic-border-neutral-subtle);
183
- background-color: var(--fds-semantic-background-subtle);
199
+ box-shadow: inset 0 0 0 2px var(--ds-color-neutral-border-subtle);
200
+ background-color: var(--ds-color-neutral-background-subtle);
184
201
  }
185
202
 
186
203
  .fds-switch--readonly .fds-switch__input[readonly] + .fds-switch__label .fds-switch__track > .fds-switch__thumb {
187
- background-color: var(--fds-semantic-border-neutral-default);
188
- }
204
+ --dsc-switch-check_color: var(--ds-color-neutral-background-subtle);
189
205
 
190
- .fds-switch--readonly .fds-switch__input[readonly]:checked + .fds-switch__label .fds-switch__track .fds-switch__thumb {
191
- background-image: url("data:image/svg+xml,%3Csvg viewBox='-3 -3 17 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10.1339 2.86612C10.622 3.35427 10.622 4.14573 10.1339 4.63388L5.88388 8.88388C5.39573 9.37204 4.60427 9.37204 4.11612 8.88388L1.86612 6.63388C1.37796 6.14573 1.37796 5.35427 1.86612 4.86612C2.35427 4.37796 3.14573 4.37796 3.63388 4.86612L5 6.23223L8.36612 2.86612C8.85427 2.37796 9.64573 2.37796 10.1339 2.86612Z' fill='%23f4f5f6' /%3E%3C/svg%3E");
206
+ background-color: var(--ds-color-neutral-border-strong);
192
207
  }
193
208
 
194
209
  @media (hover: hover) and (pointer: fine) {
195
210
  .fds-switch__input:not([readonly], :disabled):hover + .fds-switch__label .fds-switch__track > .fds-switch__thumb {
196
- transform: translateX(calc((var(--fds-switch-width) - var(--fds-switch-height)) * 0.2));
211
+ transform: translateX(calc((var(--dsc-switch-width) - var(--dsc-switch-height)) * 0.2));
197
212
  }
198
213
 
199
214
  .fds-switch__input:not([readonly], :disabled):hover + .fds-switch__label {
200
- color: var(--fds-semantic-border-input-hover);
215
+ color: var(--ds-color-accent-border-strong);
201
216
  }
202
217
 
203
218
  .fds-switch__input:not(:disabled, [readonly]):checked:hover + .fds-switch__label .fds-switch__track > .fds-switch__thumb {
204
- transform: translateX(calc((var(--fds-switch-width) - var(--fds-switch-height))));
205
- background-image: url("data:image/svg+xml,%3Csvg viewBox='-3 -3 17 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10.1339 2.86612C10.622 3.35427 10.622 4.14573 10.1339 4.63388L5.88388 8.88388C5.39573 9.37204 4.60427 9.37204 4.11612 8.88388L1.86612 6.63388C1.37796 6.14573 1.37796 5.35427 1.86612 4.86612C2.35427 4.37796 3.14573 4.37796 3.63388 4.86612L5 6.23223L8.36612 2.86612C8.85427 2.37796 9.64573 2.37796 10.1339 2.86612Z' fill='%230c6536' /%3E%3C/svg%3E");
219
+ --dsc-switch-check_color: var(--ds-color-accent-base-hover);
220
+
221
+ transform: translateX(calc((var(--dsc-switch-width) - var(--dsc-switch-height))));
206
222
  }
207
223
 
208
- .fds-switch__input:not(:checked, :disabled, [readonly]):hover + .fds-switch__label .fds-switch__track {
209
- background-color: var(--fds-semantic-surface-neutral-dark-hover);
224
+ .input:not(:checked, :disabled, [readonly]):hover + .label .track {
225
+ background-color: var([delete]);
210
226
  }
211
227
 
212
228
  .fds-switch__input:not(:disabled, [readonly]):checked:hover + .fds-switch__label .fds-switch__track {
213
- background-color: var(--fds-semantic-surface-success-hover);
229
+ background-color: var(--ds-color-accent-base-hover);
214
230
  }
215
231
  }
216
232
  }