@digdir/designsystemet-css 0.8.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 (79) hide show
  1. package/accordion.css +40 -43
  2. package/alert.css +39 -35
  3. package/box.css +30 -30
  4. package/button.css +107 -107
  5. package/card.css +41 -49
  6. package/checkbox.css +70 -58
  7. package/chip.css +76 -76
  8. package/combobox.css +86 -87
  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 +13 -13
  50. package/error-message.css +15 -15
  51. package/error-summary.css +4 -4
  52. package/fieldset.css +3 -3
  53. package/heading.css +24 -31
  54. package/helptext.css +13 -13
  55. package/index.css +1 -1
  56. package/ingress.css +15 -15
  57. package/label.css +11 -11
  58. package/link.css +13 -13
  59. package/list.css +7 -7
  60. package/modal.css +19 -19
  61. package/native-select.css +28 -28
  62. package/package.json +2 -2
  63. package/pagination.css +24 -24
  64. package/paragraph.css +34 -34
  65. package/popover.css +29 -29
  66. package/radio.css +51 -54
  67. package/search.css +42 -42
  68. package/skeleton.css +4 -4
  69. package/skiplink.css +3 -3
  70. package/spinner.css +5 -5
  71. package/switch.css +77 -61
  72. package/table.css +33 -29
  73. package/tabs.css +35 -43
  74. package/tag.css +35 -35
  75. package/textarea.css +20 -20
  76. package/textfield.css +42 -42
  77. package/togglegroup.css +5 -5
  78. package/tooltip.css +11 -9
  79. 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
- .fds-radio--small {
149
- --fds-radio-size: var(--fds-sizing-5);
144
+ .fds-radio--sm {
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
- .fds-radio--medium {
155
- --fds-radio-size: var(--fds-sizing-6);
150
+ .fds-radio--md {
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
- .fds-radio--large {
161
- --fds-radio-size: var(--fds-sizing-7);
157
+ .fds-radio--lg {
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-2);
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
- .fds-search--small {
9
- --f-search-button-clear-size: var(--fds-sizing-5);
8
+ .fds-search--sm {
9
+ --dsc-search-button-clear-size: var(--ds-sizing-5);
10
10
  }
11
11
 
12
- .fds-search--medium {
13
- --f-search-button-clear-size: var(--fds-sizing-6);
12
+ .fds-search--md {
13
+ --dsc-search-button-clear-size: var(--ds-sizing-6);
14
14
  }
15
15
 
16
- .fds-search--large {
17
- --f-search-button-clear-size: var(--fds-sizing-8);
16
+ .fds-search--lg {
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
- .fds-search--small .fds-search__input {
116
- --f-search-button-clear-size: var(--fds-sizing-4);
115
+ .fds-search--sm .fds-search__input {
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
- .fds-search--small .fds-search__icon {
124
- left: var(--fds-spacing-3);
123
+ .fds-search--sm .fds-search__icon {
124
+ left: var(--ds-spacing-3);
125
125
  }
126
126
 
127
- .fds-search--medium .fds-search__input {
128
- --f-search-button-clear-size: var(--fds-sizing-6);
127
+ .fds-search--md .fds-search__input {
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
- .fds-search--medium .fds-search__icon {
136
- left: var(--fds-spacing-4);
135
+ .fds-search--md .fds-search__icon {
136
+ left: var(--ds-spacing-4);
137
137
  }
138
138
 
139
- .fds-search--large .fds-search__input {
140
- --f-search-button-clear-size: var(--fds-sizing-12);
139
+ .fds-search--lg .fds-search__input {
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
- .fds-search--large .fds-search__icon {
148
- left: var(--fds-spacing-5);
147
+ .fds-search--lg .fds-search__icon {
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 {