@digdir/designsystemet-css 0.10.0-alpha.1 → 0.11.0-alpha.2

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 +79 -84
  2. package/alert.css +11 -11
  3. package/box.css +18 -18
  4. package/button.css +112 -131
  5. package/card.css +74 -58
  6. package/checkbox.css +64 -41
  7. package/chip.css +28 -28
  8. package/combobox.css +59 -59
  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 +4 -4
  49. package/dropdownmenu.css +9 -8
  50. package/error-message.css +8 -8
  51. package/error-summary.css +4 -4
  52. package/fieldset.css +9 -9
  53. package/heading.css +9 -9
  54. package/helptext.css +10 -10
  55. package/ingress.css +6 -6
  56. package/label.css +9 -9
  57. package/link.css +40 -12
  58. package/list.css +5 -5
  59. package/modal.css +15 -13
  60. package/native-select.css +17 -17
  61. package/package.json +2 -2
  62. package/pagination.css +13 -13
  63. package/paragraph.css +14 -14
  64. package/popover.css +14 -14
  65. package/radio.css +49 -36
  66. package/search.css +27 -27
  67. package/skeleton.css +10 -10
  68. package/skiplink.css +4 -4
  69. package/spinner.css +11 -11
  70. package/switch.css +56 -44
  71. package/table.css +25 -25
  72. package/tabs.css +20 -19
  73. package/tag.css +12 -12
  74. package/textarea.css +16 -14
  75. package/textfield.css +28 -28
  76. package/togglegroup.css +4 -4
  77. package/tooltip.css +2 -2
  78. package/utils.css +6 -6
package/checkbox.css CHANGED
@@ -1,9 +1,9 @@
1
1
  @layer ds.checkbox {
2
- .fds-checkbox {
2
+ .ds-checkbox {
3
3
  --dsc-checkbox-size: 1.75rem;
4
4
  --dsc-checkbox-focus-border-width: 3px;
5
5
  --dsc-checkbox-background: var(--ds-color-neutral-background-default);
6
- --dsc-checkbox-border-color: var(--ds-color-neutral-border-strong);
6
+ --dsc-checkbox-border-color: var(--ds-color-neutral-border-default);
7
7
  --dsc-checkbox-border__hover--size: calc(var(--ds-spacing-3) / 2);
8
8
  --dsc-checkbox-border__hover: 0 0 0 var(--dsc-checkbox-border__hover--size) var(--ds-color-accent-surface-hover);
9
9
  --dsc-checkbox-check_color: transparent;
@@ -11,13 +11,13 @@
11
11
  display: grid;
12
12
  }
13
13
 
14
- .fds-checkbox:has(.fds-checkbox__label) {
14
+ .ds-checkbox:has(.ds-checkbox__label) {
15
15
  grid-template-columns: var(--dsc-checkbox-size) auto;
16
16
  gap: var(--ds-spacing-2);
17
17
  }
18
18
 
19
19
  /* Checkbox */
20
- .fds-checkbox__input {
20
+ .ds-checkbox__input {
21
21
  position: relative;
22
22
  width: var(--dsc-checkbox-size);
23
23
  height: var(--dsc-checkbox-size);
@@ -32,7 +32,7 @@
32
32
  border-radius: var(--ds-border-radius-md);
33
33
  }
34
34
 
35
- .fds-checkbox__input::before {
35
+ .ds-checkbox__input::before {
36
36
  position: absolute;
37
37
  content: '';
38
38
  display: block;
@@ -45,8 +45,8 @@
45
45
  border-radius: var(--ds-border-radius-md);
46
46
  }
47
47
 
48
- .fds-checkbox__label {
49
- min-height: var(--ds-sizing-10);
48
+ .ds-checkbox__label {
49
+ /* min-height: var(--ds-sizing-10); */
50
50
  min-width: min-content;
51
51
  display: inline-flex;
52
52
  flex-direction: row;
@@ -55,33 +55,33 @@
55
55
  cursor: pointer;
56
56
  }
57
57
 
58
- .fds-checkbox__description {
58
+ .ds-checkbox__description {
59
59
  margin-top: calc(var(--ds-spacing-3) * -1);
60
60
  color: var(--ds-color-neutral-text-subtle);
61
61
  grid-column: 2;
62
62
  }
63
63
 
64
- .fds-checkbox--readonly > .fds-checkbox__label,
65
- .fds-checkbox--readonly > .fds-checkbox__input,
66
- .fds-checkbox--readonly > .fds-checkbox__input::before {
64
+ .ds-checkbox--readonly > .ds-checkbox__label,
65
+ .ds-checkbox--readonly > .ds-checkbox__input,
66
+ .ds-checkbox--readonly > .ds-checkbox__input::before {
67
67
  cursor: default;
68
68
  }
69
69
 
70
- .fds-checkbox__input:disabled,
71
- .fds-checkbox__input:disabled ~ .fds-checkbox__label,
72
- .fds-checkbox__input:disabled::before {
70
+ .ds-checkbox__input:disabled,
71
+ .ds-checkbox__input:disabled ~ .ds-checkbox__label,
72
+ .ds-checkbox__input:disabled::before {
73
73
  cursor: not-allowed;
74
74
  }
75
75
 
76
- .fds-checkbox__input:focus-visible {
76
+ /* .ds-checkbox__input:focus-visible {
77
77
  outline-offset: 3px;
78
78
  outline: var(--dsc-checkbox-focus-border-width) solid var(--ds-focus-outer);
79
79
  box-shadow:
80
80
  0 0 0 var(--dsc-checkbox-focus-border-width) var(--ds-focus-inner),
81
81
  inset 0 0 0 2px var(--dsc-checkbox-border-color);
82
- }
82
+ } */
83
83
 
84
- .fds-checkbox__input::after {
84
+ .ds-checkbox__input::after {
85
85
  content: '';
86
86
  width: 100%;
87
87
  height: 100%;
@@ -93,7 +93,7 @@
93
93
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 23 23' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M18.5509 6.32414C18.9414 6.71467 18.9414 7.34783 18.5509 7.73836L10.5821 15.7071C10.1916 16.0976 9.55842 16.0976 9.16789 15.7071L4.94914 11.4884C4.55862 11.0978 4.55862 10.4647 4.94914 10.0741C5.33967 9.68362 5.97283 9.68362 6.36336 10.0741L9.875 13.5858L17.1366 6.32414C17.5272 5.93362 18.1603 5.93362 18.5509 6.32414Z' fill='white'/%3E%3C/svg%3E%0A");
94
94
  }
95
95
 
96
- .fds-checkbox__input:checked {
96
+ .ds-checkbox__input:checked {
97
97
  --dsc-checkbox-border-color: var(--ds-color-accent-base-default);
98
98
  --dsc-checkbox-background: var(--ds-color-accent-base-default);
99
99
  --dsc-checkbox-check_color: white;
@@ -101,55 +101,65 @@
101
101
  background: var(--dsc-checkbox-background);
102
102
  }
103
103
 
104
- .fds-checkbox__input:indeterminate {
105
- --dsc-checkbox-border-color: var(--ds-color-accent-border-strong);
106
- --dsc-checkbox-background: var(--ds-color-accent-border-strong);
104
+ .ds-checkbox__input:indeterminate {
105
+ --dsc-checkbox-border-color: var(--ds-color-accent-base-default);
106
+ --dsc-checkbox-background: var(--ds-color-accent-base-default);
107
107
  --dsc-checkbox-check_color: white;
108
+ }
108
109
 
109
- background-color: var(--dsc-checkbox-background);
110
- background-repeat: no-repeat;
110
+ .ds-checkbox__input:indeterminate::after {
111
+ mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 23 23' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.25 11.25C4.25 10.4216 4.92157 9.75 5.75 9.75H16.75C17.5784 9.75 18.25 10.4216 18.25 11.25C18.25 12.0784 17.5784 12.75 16.75 12.75H5.75C4.92157 12.75 4.25 12.0784 4.25 11.25Z' fill='white' /%3E%3C/svg%3E%0A");
111
112
  }
112
113
 
113
- .fds-checkbox--readonly > .fds-checkbox__input {
114
+ .ds-checkbox--readonly > .ds-checkbox__input {
114
115
  --dsc-checkbox-border-color: var(--ds-color-neutral-border-subtle);
115
116
  --dsc-checkbox-background: var(--ds-color-neutral-background-subtle);
116
117
  }
117
118
 
118
- .fds-checkbox__input:disabled,
119
- .fds-checkbox__input:disabled ~ .fds-checkbox__label,
120
- .fds-checkbox__input:disabled ~ .fds-checkbox__description {
119
+ .ds-checkbox__input:disabled,
120
+ .ds-checkbox__input:disabled ~ .ds-checkbox__label,
121
+ .ds-checkbox__input:disabled ~ .ds-checkbox__description {
121
122
  opacity: var(--ds-disabled-opacity);
122
123
  }
123
124
 
124
- .fds-checkbox__input:checked:not(:focus-visible) {
125
+ /* .ds-checkbox__input:checked:not(:focus-visible) {
125
126
  box-shadow: inset 0 0 0 2px var(--dsc-checkbox-border-color);
127
+ } */
128
+
129
+ .ds-checkbox:has(.ds-checkbox__input:focus-visible) {
130
+ --dsc-focus-border-width: 3px;
131
+
132
+ outline: var(--dsc-focus-border-width) solid var(--ds-focus-outer);
133
+ outline-offset: var(--dsc-focus-border-width);
134
+ box-shadow: 0 0 0 var(--dsc-focus-border-width) var(--ds-focus-inner);
135
+ border-radius: var(--ds-border-radius-md);
126
136
  }
127
137
 
128
- .fds-checkbox--readonly > .fds-checkbox__input:checked {
138
+ .ds-checkbox--readonly > .ds-checkbox__input:checked {
129
139
  --dsc-checkbox-check_color: var(--ds-color-neutral-text-subtle);
130
140
 
131
141
  background: var(--dsc-checkbox-background);
132
142
  }
133
143
 
134
- .fds-checkbox--readonly > .fds-checkbox__input:indeterminate {
144
+ .ds-checkbox--readonly > .ds-checkbox__input:indeterminate {
135
145
  --dsc-checkbox-check_color: var(--ds-color-neutral-text-subtle);
136
146
 
137
147
  background: var(--dsc-checkbox-background);
138
148
  }
139
149
 
140
- .fds-checkbox--error > .fds-checkbox__input:not(:disabled, :focus-visible) {
150
+ .ds-checkbox--error > .ds-checkbox__input:not(:disabled, :focus-visible) {
141
151
  --dsc-checkbox-border-color: var(--ds-color-danger-border-default);
142
152
  }
143
153
 
144
154
  /* Only use hover for non-touch devices to prevent sticky-hovering
145
155
  "input:not(:read-only)" does not work so using ".container:not(.readonly) >" instead */
146
156
  @media (hover: hover) and (pointer: fine) {
147
- .fds-checkbox:not(.fds-checkbox--readonly) .fds-checkbox__input:not(:disabled) ~ .fds-checkbox__label:hover,
148
- .fds-checkbox:not(.fds-checkbox--readonly) .fds-checkbox__input:hover:not(:disabled) ~ .fds-checkbox__label {
157
+ .ds-checkbox:not(.ds-checkbox--readonly) .ds-checkbox__input:not(:disabled) ~ .ds-checkbox__label:hover,
158
+ .ds-checkbox:not(.ds-checkbox--readonly) .ds-checkbox__input:hover:not(:disabled) ~ .ds-checkbox__label {
149
159
  color: var(--ds-color-accent-text-subtle);
150
160
  }
151
161
 
152
- .fds-checkbox:not(.fds-checkbox--readonly) .fds-checkbox__input:hover:not(:checked, :disabled) {
162
+ .ds-checkbox:not(.ds-checkbox--readonly) .ds-checkbox__input:hover:not(:checked, :disabled, :focus-visible) {
153
163
  --dsc-checkbox-border-color: var(--ds-color-accent-border-strong);
154
164
 
155
165
  box-shadow:
@@ -157,28 +167,41 @@
157
167
  inset 0 0 0 2px var(--dsc-checkbox-border-color);
158
168
  }
159
169
 
160
- .fds-checkbox:not(.fds-checkbox--readonly) .fds-checkbox__input:hover:checked:focus-visible:not(:disabled) {
170
+ .ds-checkbox:not(.ds-checkbox--readonly) .ds-checkbox__input:indeterminate:hover:not(:focus-visible) {
171
+ --dsc-checkbox-border-color: var(--ds-color-accent-border-strong);
172
+
173
+ box-shadow: var(--dsc-checkbox-border__hover);
174
+ }
175
+
176
+ .ds-checkbox:not(.ds-checkbox--readonly) .ds-checkbox__input:hover:checked:not(:disabled, :focus-visible) {
161
177
  box-shadow: var(--dsc-checkbox-border__hover);
162
178
  }
163
179
  }
164
180
 
165
181
  /** Sizing */
166
182
 
167
- .fds-checkbox--sm {
183
+ .ds-checkbox--sm {
168
184
  --dsc-checkbox-size: var(--ds-sizing-5);
169
185
 
170
- min-height: var(--ds-sizing-10);
186
+ /* min-height: var(--ds-sizing-10); */
171
187
  }
172
188
 
173
- .fds-checkbox--md {
189
+ .ds-checkbox--md {
174
190
  --dsc-checkbox-size: var(--ds-sizing-6);
175
191
 
176
- min-height: var(--ds-sizing-11);
192
+ /* min-height: var(--ds-sizing-11); */
177
193
  }
178
194
 
179
- .fds-checkbox--lg {
195
+ .ds-checkbox--lg {
180
196
  --dsc-checkbox-size: var(--ds-sizing-7);
181
197
 
182
- min-height: var(--ds-sizing-12);
198
+ /* min-height: var(--ds-sizing-12); */
199
+ }
200
+
201
+ .ds-checkbox__group {
202
+ display: flex;
203
+ flex-direction: column;
204
+ gap: var(--ds-spacing-5);
205
+ width: fit-content;
183
206
  }
184
207
  }
package/chip.css CHANGED
@@ -6,7 +6,7 @@
6
6
  }
7
7
  */
8
8
 
9
- .fds-chip--button {
9
+ .ds-chip--button {
10
10
  --dsc-chip-height: var(--ds-sizing-7);
11
11
  --dsc-chip-padding: var(--ds-spacing-3);
12
12
  --dsc-chip-background: var(--ds-color-accent-surface-default);
@@ -26,13 +26,13 @@
26
26
  align-items: center;
27
27
  }
28
28
 
29
- .fds-chip--button:disabled,
30
- .fds-chip--button[aria-disabled='true'] {
29
+ .ds-chip--button:disabled,
30
+ .ds-chip--button[aria-disabled='true'] {
31
31
  cursor: not-allowed;
32
32
  opacity: var(--ds-disabled-opacity);
33
33
  }
34
34
 
35
- .fds-chip--button .fds-chip__label {
35
+ .ds-chip--button .ds-chip__label {
36
36
  color: inherit;
37
37
  line-height: normal;
38
38
  display: flex;
@@ -41,7 +41,7 @@
41
41
  gap: var(--ds-spacing-2);
42
42
  }
43
43
 
44
- .fds-chip--removable {
44
+ .ds-chip--removable {
45
45
  --dsc-removable-background: var(--ds-color-accent-base-default);
46
46
  --dsc-removable-text-color: var(--ds-color-neutral-contrast-default);
47
47
  --dsc-removable-chip-size: var(--ds-sizing-7);
@@ -57,45 +57,45 @@
57
57
  min-height: var(--dsc-chip-height);
58
58
  }
59
59
 
60
- .fds-chip--removable.fds-chip--sm {
60
+ .ds-chip--removable.ds-chip--sm {
61
61
  padding-right: var(--ds-spacing-1);
62
62
  }
63
63
 
64
- .fds-chip--removable.fds-chip--lg {
64
+ .ds-chip--removable.ds-chip--lg {
65
65
  padding-right: var(--ds-spacing-2);
66
66
  }
67
67
 
68
- .fds-chip__x-mark {
68
+ .ds-chip__x-mark {
69
69
  color: var(--dsc-removable-chip-xmark-color);
70
70
  height: var(--dsc-removable-chip-xmark-size);
71
71
  width: var(--dsc-removable-chip-xmark-size);
72
72
  }
73
73
 
74
- .fds-chip__x-mark .fds-chip__icon {
74
+ .ds-chip__x-mark .ds-chip__icon {
75
75
  height: var(--dsc-removable-chip-xmark-size);
76
76
  width: var(--dsc-removable-chip-xmark-size);
77
77
  }
78
78
 
79
- .fds-chip--spacing {
79
+ .ds-chip--spacing {
80
80
  padding-left: var(--ds-spacing-2) !important;
81
81
  }
82
82
 
83
- .fds-chip--sm .fds-chip__checkmark-icon {
83
+ .ds-chip--sm .ds-chip__checkmark-icon {
84
84
  height: var(--ds-sizing-5);
85
85
  width: auto;
86
86
  }
87
87
 
88
- .fds-chip--md .fds-chip__checkmark-icon {
88
+ .ds-chip--md .ds-chip__checkmark-icon {
89
89
  height: 24px;
90
90
  width: auto;
91
91
  }
92
92
 
93
- .fds-chip--lg .fds-chip__checkmark-icon {
93
+ .ds-chip--lg .ds-chip__checkmark-icon {
94
94
  height: 26px;
95
95
  width: auto;
96
96
  }
97
97
 
98
- .fds-chip--group-container {
98
+ .ds-chip--group-container {
99
99
  --dsc-chip-group-gap: var(--ds-spacing-2);
100
100
 
101
101
  display: flex;
@@ -105,21 +105,21 @@
105
105
  margin: 0;
106
106
  }
107
107
 
108
- .fds-chip--group-container.fds-chip--sm {
108
+ .ds-chip--group-container.ds-chip--sm {
109
109
  --dsc-chip-group-gap: var(--ds-spacing-2);
110
110
  }
111
111
 
112
- .fds-chip--group-container.fds-chip--md {
112
+ .ds-chip--group-container.ds-chip--md {
113
113
  --dsc-chip-group-gap: var(--ds-spacing-2);
114
114
  }
115
115
 
116
- .fds-chip--group-container.fds-chip--lg {
116
+ .ds-chip--group-container.ds-chip--lg {
117
117
  --dsc-chip-group-gap: var(--ds-spacing-2);
118
118
  }
119
119
 
120
120
  /* Only use hover for non-touch devices to prevent sticky-hovering */
121
121
  @media (hover: hover) and (pointer: fine) {
122
- .fds-chip--button:not(:disabled, [aria-disabled='true']):hover {
122
+ .ds-chip--button:not(:disabled, [aria-disabled='true']):hover {
123
123
  --dsc-chip-background: var(--ds-color-accent-surface-hover);
124
124
  --dsc-chip-text-color: var(--ds-color-neutral-text-default);
125
125
  --dsc-chip-border: var(--ds-color-accent-border-default);
@@ -127,22 +127,22 @@
127
127
  cursor: pointer;
128
128
  }
129
129
 
130
- .fds-chip--button:not(:disabled, [aria-disabled='true']):is([aria-pressed='true']):hover {
130
+ .ds-chip--button:not(:disabled, [aria-disabled='true']):is([aria-pressed='true']):hover {
131
131
  --dsc-chip-background: var(--ds-color-accent-surface-hover);
132
132
  --dsc-chip-text-color: var(--ds-color-neutral-text-default);
133
133
  }
134
134
 
135
- .fds-chip--removable:not(:disabled, [aria-disabled='true']):hover,
136
- .fds-chip--removable:not(:disabled, [aria-disabled='true']):focus {
135
+ .ds-chip--removable:not(:disabled, [aria-disabled='true']):hover,
136
+ .ds-chip--removable:not(:disabled, [aria-disabled='true']):focus {
137
137
  --dsc-removable-background: var(--ds-color-accent-base-hover);
138
138
  --dsc-removable-chip-xmark-color: var(--ds-color-neutral-contrast-default);
139
139
  }
140
140
  }
141
141
 
142
- .fds-chip--button:is([aria-pressed='true']),
143
- .fds-chip--button:not(:disabled, [aria-disabled='true']):active,
144
- .fds-chip--removable:is([aria-pressed='true']),
145
- .fds-chip--removable:not(:disabled, [aria-disabled='true']):active {
142
+ .ds-chip--button:is([aria-pressed='true']),
143
+ .ds-chip--button:not(:disabled, [aria-disabled='true']):active,
144
+ .ds-chip--removable:is([aria-pressed='true']),
145
+ .ds-chip--removable:not(:disabled, [aria-disabled='true']):active {
146
146
  --dsc-chip-background: var(--ds-color-accent-base-active);
147
147
  --dsc-chip-text-color: var(--ds-color-neutral-contrast-default);
148
148
  --dsc-chip-border: var(--ds-color-accent-base-active);
@@ -150,21 +150,21 @@
150
150
  --dsc-removable-text-color: var(--ds-color-neutral-contrast-default);
151
151
  }
152
152
 
153
- .fds-chip--sm {
153
+ .ds-chip--sm {
154
154
  --dsc-chip-height: var(--ds-sizing-7);
155
155
  --dsc-chip-padding: var(--ds-spacing-3);
156
156
  --dsc-removable-chip-xmark-size: var(--ds-sizing-5);
157
157
  --dsc-removable-chip-xmark-padding_right: var(--ds-spacing-1);
158
158
  }
159
159
 
160
- .fds-chip--md {
160
+ .ds-chip--md {
161
161
  --dsc-chip-height: var(--ds-sizing-8);
162
162
  --dsc-chip-padding: var(--ds-spacing-3);
163
163
  --dsc-removable-chip-xmark-size: var(--ds-sizing-6);
164
164
  --dsc-removable-chip-xmark-padding_right: var(--ds-spacing-2);
165
165
  }
166
166
 
167
- .fds-chip--lg {
167
+ .ds-chip--lg {
168
168
  --dsc-chip-height: var(--ds-sizing-9);
169
169
  --dsc-chip-padding: var(--ds-spacing-4);
170
170
  --dsc-removable-chip-xmark-size: var(--ds-sizing-7);