@navikt/ds-css 7.5.1 → 7.5.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 (37) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/darkside/button.darkside.css +8 -6
  3. package/darkside/copybutton.darkside.css +1 -1
  4. package/darkside/expansioncard.darkside.css +123 -175
  5. package/darkside/form/error-summary.darkside.css +30 -36
  6. package/darkside/form/fieldset.darkside.css +2 -10
  7. package/darkside/form/file-upload.darkside.css +106 -110
  8. package/darkside/form/form-progress.darkside.css +30 -25
  9. package/darkside/form/form-summary.darkside.css +28 -24
  10. package/darkside/form/form.darkside.css +6 -14
  11. package/darkside/form/radio-checkbox.darkside.css +73 -142
  12. package/darkside/form/text-field.darkside.css +38 -81
  13. package/darkside/help-text.darkside.css +16 -40
  14. package/darkside/index.css +1 -1
  15. package/darkside/link.darkside.css +40 -56
  16. package/darkside/list.darkside.css +36 -35
  17. package/darkside/loader.darkside.css +72 -58
  18. package/darkside/modal.darkside.css +59 -54
  19. package/darkside/pagination.darkside.css +12 -44
  20. package/darkside/popover.darkside.css +12 -75
  21. package/darkside/progress-bar.darkside.css +12 -12
  22. package/dist/component/form.css +5 -1
  23. package/dist/component/form.min.css +1 -1
  24. package/dist/component/index.css +8 -2
  25. package/dist/component/index.min.css +2 -2
  26. package/dist/component/loader.css +1 -0
  27. package/dist/component/loader.min.css +1 -1
  28. package/dist/components.css +8 -2
  29. package/dist/components.min.css +2 -2
  30. package/dist/global/tokens.css +1 -1
  31. package/dist/global/tokens.min.css +1 -1
  32. package/dist/index.css +8 -2
  33. package/dist/index.min.css +2 -2
  34. package/form/combobox.css +4 -0
  35. package/form/form-progress.css +2 -1
  36. package/loader.css +1 -0
  37. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @navikt/ds-css
2
2
 
3
+ ## 7.5.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Combobox: Fix issue where using arrow keys in list would make the entire page scroll ([#3364](https://github.com/navikt/aksel/pull/3364))
8
+
3
9
  ## 7.5.1
4
10
 
5
11
  ## 7.5.0
@@ -35,13 +35,13 @@
35
35
  }
36
36
 
37
37
  .navds-button:focus-visible {
38
- outline: 4px solid var(--ax-border-focus);
38
+ outline: 2px solid var(--ax-border-focus);
39
39
  outline-offset: 2px;
40
40
  }
41
41
 
42
42
  @supports not selector(:focus-visible) {
43
43
  .navds-button:focus {
44
- outline: 4px solid var(--ax-border-focus);
44
+ outline: 2px solid var(--ax-border-focus);
45
45
  }
46
46
  }
47
47
 
@@ -137,7 +137,7 @@
137
137
 
138
138
  .navds-button--secondary:hover {
139
139
  background-color: var(--ax-bg-accent-moderate-hoverA);
140
- color: var(--ax-bg-accent-strong-hover);
140
+ color: var(--ax-text-accent-strong);
141
141
  box-shadow: inset 0 0 0 2px var(--ax-bg-accent-strong-hover);
142
142
  }
143
143
 
@@ -159,12 +159,13 @@
159
159
 
160
160
  .navds-button--secondary-neutral {
161
161
  background-color: transparent;
162
- color: var(--ax-text-default);
162
+ color: var(--ax-text-neutral);
163
163
  box-shadow: inset 0 0 0 2px var(--ax-border-neutral);
164
164
  }
165
165
 
166
166
  .navds-button--secondary-neutral:hover {
167
167
  background-color: var(--ax-bg-neutral-moderate-hoverA);
168
+ color: var(--ax-text-neutral-strong);
168
169
  }
169
170
 
170
171
  .navds-button--secondary-neutral:active {
@@ -191,7 +192,7 @@
191
192
 
192
193
  .navds-button--tertiary:hover {
193
194
  background-color: var(--ax-bg-accent-hoverA);
194
- color: var(--ax-text-accent);
195
+ color: var(--ax-text-accent-strong);
195
196
  }
196
197
 
197
198
  .navds-button--tertiary:active {
@@ -217,11 +218,12 @@
217
218
  ****************************/
218
219
 
219
220
  .navds-button--tertiary-neutral {
220
- color: var(--ax-text-default);
221
+ color: var(--ax-text-neutral);
221
222
  }
222
223
 
223
224
  .navds-button--tertiary-neutral:hover {
224
225
  background-color: var(--ax-bg-neutral-hoverA);
226
+ color: var(--ax-text-neutral-strong);
225
227
  }
226
228
 
227
229
  .navds-button--tertiary-neutral:active {
@@ -21,7 +21,7 @@
21
21
  }
22
22
 
23
23
  &:hover {
24
- background-color: var(--ax-bg-neutral-moderate-hover);
24
+ background-color: var(--ax-bg-neutral-moderate-hoverA);
25
25
  }
26
26
 
27
27
  &:focus-visible {
@@ -1,114 +1,93 @@
1
1
  .navds-expansioncard {
2
- --__ac-expansioncard-border-color: var(--ac-expansioncard-border-color, var(--a-border-default));
3
- --__ac-expansioncard-border-radius: var(--ac-expansioncard-border-radius, var(--a-border-radius-large));
4
- --__ac-expansioncard-border-width: 1px;
5
- --__ac-expansioncard-padding-block: var(--a-spacing-4);
6
- --__ac-expansioncard-padding-inline: var(--a-spacing-6);
7
-
8
- border-radius: var(--__ac-expansioncard-border-radius);
9
- background-color: var(--ac-expansioncard-bg, var(--a-surface-default));
2
+ --__axc-expansioncard-border-radius: calc(var(--ax-border-radius-xlarge) - 1px);
3
+ --__axc-expansioncard-padding-block: var(--ax-spacing-4);
4
+ --__axc-expansioncard-padding-inline: var(--ax-spacing-6);
5
+
6
+ border-radius: var(--ax-border-radius-xlarge);
7
+ background-color: var(--ax-bg-raised);
10
8
  height: fit-content;
11
- }
9
+ border: 1px solid var(--ax-border-default);
12
10
 
13
- .navds-expansioncard--open {
14
- --__ac-expansioncard-border-color: var(
15
- --ac-expansioncard-border-open-color,
16
- var(--ac-expansioncard-border-color, var(--a-border-default))
17
- );
11
+ &:has(.navds-expansioncard__header:hover) {
12
+ box-shadow: 0 0 0 1px var(--ax-border-strong);
13
+ border-color: var(--ax-border-strong);
14
+ }
18
15
  }
19
16
 
20
- .navds-expansioncard:hover {
21
- --__ac-expansioncard-border-color: var(--ac-expansioncard-border-hover-color, var(--a-border-strong));
22
- }
17
+ /* ------------------------ ExpansionCard Small-size ------------------------ */
18
+ .navds-expansioncard--small {
19
+ --__axc-expansioncard-padding-block: var(--ax-spacing-3);
20
+ --__axc-expansioncard-padding-inline: var(--ax-spacing-4);
21
+
22
+ & > .navds-expansioncard__header .navds-expansioncard__title--small {
23
+ margin-top: var(--ax-spacing-05);
24
+ }
25
+
26
+ & :is(.navds-expansioncard__title--medium, .navds-expansioncard__title--large) {
27
+ margin-top: 0;
28
+ }
29
+
30
+ & > .navds-expansioncard__header > .navds-expansioncard__header-button {
31
+ min-height: 2rem;
32
+ min-width: 2rem;
33
+ }
23
34
 
24
- :where(.navds-expansioncard.navds-expansioncard--open):hover {
25
- --__ac-expansioncard-border-color: var(--ac-expansioncard-border-hover-color, var(--a-border-strong));
35
+ & .navds-expansioncard__content {
36
+ --__axc-expansioncard-padding-block: var(--ax-spacing-4);
37
+ }
26
38
  }
27
39
 
28
- /*************************
29
- * Header *
30
- *************************/
40
+ /* -------------------------- ExpansionCard Header -------------------------- */
31
41
  .navds-expansioncard__header {
32
42
  width: 100%;
33
43
  display: flex;
34
- gap: var(--a-spacing-4);
35
- padding: var(--__ac-expansioncard-padding-block) var(--__ac-expansioncard-padding-inline);
36
- border-radius: var(--__ac-expansioncard-border-radius);
37
- background-color: var(--ac-expansioncard-header-bg, var(--a-surface-transparent));
44
+ gap: var(--ax-spacing-4);
45
+ padding: var(--__axc-expansioncard-padding-block) var(--__axc-expansioncard-padding-inline);
46
+ border-radius: var(--__axc-expansioncard-border-radius);
47
+ background-color: transparent;
38
48
  position: relative;
39
- border: var(--__ac-expansioncard-border-width) solid var(--__ac-expansioncard-border-color);
40
49
  justify-content: space-between;
41
- }
42
-
43
- .navds-expansioncard--small {
44
- --__ac-expansioncard-padding-block: var(--a-spacing-3);
45
- --__ac-expansioncard-padding-inline: var(--a-spacing-4);
46
- }
47
50
 
48
- .navds-expansioncard__header:hover {
49
- background-color: var(--ac-expansioncard-header-bg-hover, var(--a-surface-hover));
50
- box-shadow: 0 0 0 1px var(--__ac-expansioncard-border-color);
51
- }
52
-
53
- .navds-expansioncard--open > :where(.navds-expansioncard__header) {
54
- border-bottom-left-radius: 0;
55
- border-bottom-right-radius: 0;
56
- border: var(--__ac-expansioncard-border-width) solid var(--__ac-expansioncard-border-color);
57
- border-bottom: none;
58
- background-color: var(--ac-expansioncard-header-open-bg, var(--a-surface-transparent));
59
- }
60
-
61
- .navds-expansioncard--open > :where(.navds-expansioncard__header):hover {
62
- background-color: var(--ac-expansioncard-header-bg-hover, var(--a-surface-hover));
63
- box-shadow:
64
- 1px 0 0 0 var(--__ac-expansioncard-border-color),
65
- -1px 0 0 0 var(--__ac-expansioncard-border-color),
66
- 0 -1px 0 0 var(--__ac-expansioncard-border-color);
67
- }
68
-
69
- .navds-expansioncard--open > :where(.navds-expansioncard__header)::after {
70
- content: "";
71
- background-color: var(--a-border-divider);
72
- bottom: 0;
73
- left: var(--__ac-expansioncard-padding-inline);
74
- height: 1px;
75
- width: calc(100% - 2 * var(--__ac-expansioncard-padding-inline));
76
- position: absolute;
77
- opacity: 1;
78
- transition: opacity 0.1s cubic-bezier(0.175, 0.885, 0.32, 1.275);
79
- }
51
+ &:hover {
52
+ background-color: var(--ax-bg-neutral-raised-hover);
53
+ }
80
54
 
81
- .navds-expansioncard--open > :where(.navds-expansioncard__header:hover)::after {
82
- opacity: 0;
55
+ &[data-open="true"] {
56
+ border-bottom-left-radius: 0;
57
+ border-bottom-right-radius: 0;
58
+
59
+ /* Divider between header and content */
60
+ &::after {
61
+ content: "";
62
+ background-color: var(--ax-border-subtle);
63
+ bottom: 0;
64
+ left: var(--__axc-expansioncard-padding-inline);
65
+ height: 1px;
66
+ width: calc(100% - 2 * var(--__axc-expansioncard-padding-inline));
67
+ position: absolute;
68
+ opacity: 1;
69
+ }
70
+
71
+ &:hover::after {
72
+ opacity: 0;
73
+ }
74
+ }
83
75
  }
84
76
 
85
- /*************************
86
- * Header/Typography *
87
- *************************/
88
-
77
+ /* --------------------- ExpansionCard Header typography -------------------- */
89
78
  .navds-expansioncard__title--small {
90
79
  margin-top: 0.625rem;
91
80
  }
92
81
 
93
82
  .navds-expansioncard__title--medium {
94
- margin-top: var(--a-spacing-2);
83
+ margin-top: var(--ax-spacing-2);
95
84
  }
96
85
 
97
86
  .navds-expansioncard__title--large {
98
- margin-top: var(--a-spacing-1);
99
- }
100
-
101
- .navds-expansioncard--small > :where(.navds-expansioncard__header) :where(.navds-expansioncard__title--small) {
102
- margin-top: var(--a-spacing-05);
103
- }
104
-
105
- .navds-expansioncard--small :where(.navds-expansioncard__title--medium, .navds-expansioncard__title--large) {
106
- margin-top: 0;
87
+ margin-top: var(--ax-spacing-1);
107
88
  }
108
89
 
109
- /*************************
110
- * Header/Button *
111
- *************************/
90
+ /* ----------------------- ExpansionCard Header Button ---------------------- */
112
91
  .navds-expansioncard__header-button {
113
92
  display: grid;
114
93
  place-content: center;
@@ -116,120 +95,89 @@
116
95
  margin: 0;
117
96
  background: transparent;
118
97
  border: none;
119
- border-radius: var(--ac-expansioncard-button-border-radius, var(--a-border-radius-medium));
98
+ border-radius: var(--ax-border-radius-large);
120
99
  min-height: 3rem;
121
100
  min-width: 3rem;
122
101
  font-size: 1.5rem;
123
102
  align-self: flex-start;
124
- }
125
103
 
126
- .navds-expansioncard--small > :where(.navds-expansioncard__header) > :where(.navds-expansioncard__header-button) {
127
- min-height: 2rem;
128
- min-width: 2rem;
129
- }
130
-
131
- :where(.navds-expansioncard__header):hover > :where(.navds-expansioncard__header-button) {
132
- background-color: var(--a-surface-hover);
133
- }
134
-
135
- .navds-expansioncard__header-chevron {
136
- transition: transform 150ms ease-in-out;
137
- }
138
-
139
- .navds-expansioncard--open > :where(.navds-expansioncard__header) :where(.navds-expansioncard__header-chevron) {
140
- transform: translateY(0) rotate(180deg);
141
- }
142
-
143
- .navds-expansioncard__header-button:hover > :where(.navds-expansioncard__header-chevron) {
144
- transform: translateY(1px);
145
- }
104
+ &:focus-visible {
105
+ outline: 2px solid var(--ax-border-focus);
106
+ outline-offset: 2px;
107
+ }
146
108
 
147
- .navds-expansioncard__header-button:focus-visible {
148
- outline: 3px solid transparent;
149
- box-shadow: var(--a-shadow-focus);
150
- }
109
+ @supports not selector(:focus-visible) {
110
+ &:focus {
111
+ outline: 2px solid var(--ax-border-focus);
112
+ outline-offset: 2px;
113
+ }
114
+ }
151
115
 
152
- @supports not selector(:focus-visible) {
153
- .navds-expansioncard__header-button:focus {
154
- outline: 3px solid transparent;
155
- box-shadow: var(--a-shadow-focus);
116
+ /* Makes the whole header clickable */
117
+ &::after {
118
+ inset: 0;
119
+ z-index: 1;
120
+ position: absolute;
121
+ content: "";
122
+ height: 100%;
123
+ width: 100%;
124
+ cursor: pointer;
156
125
  }
157
126
  }
158
127
 
159
- .navds-expansioncard--open
160
- > :where(.navds-expansioncard__header)
161
- > :where(.navds-expansioncard__header-button):hover
162
- :where(.navds-expansioncard__header-chevron) {
163
- transform: translateY(-1px) rotate(180deg);
128
+ .navds-expansioncard__header:hover > .navds-expansioncard__header-button {
129
+ background-color: var(--ax-bg-neutral-moderate-hoverA);
164
130
  }
165
131
 
166
- .navds-expansioncard__header-button::after {
167
- inset: 0;
168
- z-index: 1;
169
- position: absolute;
170
- content: "";
171
- height: 100%;
172
- width: 100%;
173
- cursor: pointer;
132
+ .navds-expansioncard__header-chevron {
133
+ transition: transform 250ms cubic-bezier(0.2, 0, 0, 1);
174
134
  }
175
135
 
176
- /*************************
177
- * Content *
178
- *************************/
179
- .navds-expansioncard__content {
180
- --__ac-expansioncard-padding-block: var(--a-spacing-5);
181
-
182
- border-end-end-radius: var(--__ac-expansioncard-border-radius);
183
- border-end-start-radius: var(--__ac-expansioncard-border-radius);
184
- padding: var(--__ac-expansioncard-padding-block) var(--__ac-expansioncard-padding-inline)
185
- var(--__ac-expansioncard-padding-inline);
186
- border: var(--__ac-expansioncard-border-width) solid var(--__ac-expansioncard-border-color);
187
- border-top: none;
136
+ .navds-expansioncard__header[data-open="true"] .navds-expansioncard__header-chevron {
137
+ transform: rotateX(-180deg);
188
138
  }
189
139
 
190
- .navds-expansioncard--small .navds-expansioncard__content {
191
- --__ac-expansioncard-padding-block: var(--a-spacing-4);
140
+ /* Even if animation always takes 250ms, the perceived effect of current timing function makes the 'closing'-animation take longer */
141
+ .navds-expansioncard__header[data-open="false"] .navds-expansioncard__header-chevron {
142
+ transition-duration: 400ms;
192
143
  }
193
144
 
194
- .navds-expansioncard__content--closed {
195
- display: none;
196
- }
145
+ /* -------------------------- ExpansionCard Content ------------------------- */
146
+ .navds-expansioncard__content {
147
+ --__axc-expansioncard-padding-block: var(--ax-spacing-5);
197
148
 
198
- :where(.navds-expansioncard__header):hover + .navds-expansioncard__content {
199
- box-shadow:
200
- 1px 0 0 0 var(--__ac-expansioncard-border-color),
201
- -1px 0 0 0 var(--__ac-expansioncard-border-color),
202
- 0 1px 0 0 var(--__ac-expansioncard-border-color);
149
+ border-end-end-radius: var(--__axc-expansioncard-border-radius);
150
+ border-end-start-radius: var(--__axc-expansioncard-border-radius);
151
+ padding-inline: var(--__axc-expansioncard-padding-inline);
152
+ padding-block: 0;
153
+ display: grid;
154
+ grid-template-rows: 0fr;
155
+ visibility: hidden;
156
+ transition-duration: 250ms;
157
+ transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
158
+ transition-property: visibility, padding-block, grid-template-rows;
159
+ overflow: hidden;
160
+
161
+ &[data-open="true"] {
162
+ grid-template-rows: 1fr;
163
+ visibility: visible;
164
+ padding-block: var(--__axc-expansioncard-padding-block) var(--__axc-expansioncard-padding-inline);
165
+
166
+ & .navds-expansioncard__content-inner {
167
+ opacity: 1;
168
+ }
169
+ }
203
170
  }
204
171
 
205
172
  .navds-expansioncard__content-inner {
206
- animation: fadeExpansionCard 250ms ease;
207
- }
208
-
209
- .navds-expansioncard--no-animation :where(.navds-expansioncard__content-inner) {
210
- animation: none;
211
- }
212
-
213
- @keyframes fadeExpansionCard {
214
- 0% {
215
- opacity: 0.25;
216
- transform: translateY(-8px);
217
- }
218
-
219
- 40% {
220
- opacity: 0.7;
221
- }
222
-
223
- 100% {
224
- opacity: 1;
225
- transform: translateY(0);
226
- }
173
+ min-height: 0;
174
+ opacity: 0;
175
+ transition: opacity 250ms cubic-bezier(0.2, 0, 0, 1);
227
176
  }
228
177
 
229
- @media (forced-colors: active) {
230
- .navds-expansioncard:hover {
231
- --__ac-expansioncard-border-color: highlight;
232
-
233
- outline: 1px solid highlight;
178
+ /* ---------------- ExpansionCard No Animation (defaultOpen) ---------------- */
179
+ .navds-expansioncard--no-animation {
180
+ & :is(.navds-expansioncard__content, .navds-expansioncard__content-inner) {
181
+ transition: none;
234
182
  }
235
183
  }
@@ -1,55 +1,49 @@
1
1
  .navds-error-summary {
2
- background-color: var(--ac-error-summary-bg, var(--a-surface-default));
3
- padding: var(--a-spacing-5);
4
- border: 4px solid var(--ac-error-summary-border, var(--a-border-danger));
5
- border-radius: var(--a-border-radius-large);
2
+ background-color: var(--ax-bg-default);
3
+ padding: var(--ax-spacing-5);
4
+ border: 4px solid var(--ax-border-danger);
5
+ border-radius: var(--ax-border-radius-xlarge);
6
+ outline-offset: 2px;
7
+
8
+ &:focus-visible,
9
+ &:has(.navds-error-summary__heading:focus-visible) {
10
+ outline: 2px solid var(--ax-border-focus);
11
+ }
6
12
  }
7
13
 
8
- .navds-error-summary--small {
9
- padding: var(--a-spacing-3);
14
+ @supports not selector(:focus-visible) {
15
+ .navds-error-summary:focus {
16
+ outline: 2px solid var(--ax-border-focus);
17
+ }
10
18
  }
11
19
 
12
- .navds-error-summary__heading {
13
- scroll-margin-top: var(--a-spacing-6);
14
- }
20
+ .navds-error-summary--small {
21
+ padding: var(--ax-spacing-3);
15
22
 
16
- .navds-error-summary--small .navds-error-summary__heading {
17
- scroll-margin-top: var(--a-spacing-4);
18
- }
23
+ & .navds-error-summary__heading {
24
+ scroll-margin-top: var(--ax-spacing-4);
25
+ }
19
26
 
20
- .navds-error-summary__heading:focus {
21
- outline: none;
27
+ & > .navds-error-summary__list {
28
+ margin: var(--ax-spacing-2) 0;
29
+ gap: var(--ax-spacing-2);
30
+ padding-left: var(--ax-spacing-5);
31
+ }
22
32
  }
23
33
 
24
- .navds-error-summary:focus-visible,
25
- .navds-error-summary:has(.navds-error-summary__heading:focus-visible) {
26
- box-shadow:
27
- 0 0 0 1px var(--a-border-on-inverted),
28
- 0 0 0 4px var(--a-border-focus);
29
- }
34
+ .navds-error-summary__heading {
35
+ scroll-margin-top: var(--ax-spacing-6);
30
36
 
31
- @supports not selector(:focus-visible) {
32
- .navds-error-summary:focus {
33
- box-shadow: var(--a-shadow-focus);
37
+ &:focus {
34
38
  outline: none;
35
39
  }
36
40
  }
37
41
 
38
42
  .navds-error-summary__list {
39
- margin: var(--a-spacing-3) 0;
43
+ margin: var(--ax-spacing-3) 0;
40
44
  display: flex;
41
45
  flex-direction: column;
42
- gap: var(--a-spacing-3);
43
- padding-left: var(--a-spacing-6);
46
+ gap: var(--ax-spacing-3);
47
+ padding-left: var(--ax-spacing-6);
44
48
  list-style: inherit;
45
49
  }
46
-
47
- .navds-error-summary__list > * {
48
- color: var(--ac-error-summary-list-dot, var(--a-text-action));
49
- }
50
-
51
- .navds-error-summary--small > .navds-error-summary__list {
52
- margin: var(--a-spacing-2) 0;
53
- gap: var(--a-spacing-2);
54
- padding-left: var(--a-spacing-5);
55
- }
@@ -1,11 +1,3 @@
1
- [data-theme="dark"] {
2
- --__ac-form-description: var(--a-text-on-inverted);
3
- }
4
-
5
- [data-theme="light"] {
6
- --__ac-form-description: initial;
7
- }
8
-
9
1
  .navds-fieldset {
10
2
  margin: 0;
11
3
  padding: 0;
@@ -14,11 +6,11 @@
14
6
  }
15
7
 
16
8
  .navds-fieldset > :not(:first-child, :empty) {
17
- margin-top: var(--a-spacing-2);
9
+ margin-top: var(--ax-spacing-2);
18
10
  }
19
11
 
20
12
  .navds-fieldset__description {
21
- color: var(--ac-form-description, var(--__ac-form-description, var(--a-text-subtle)));
13
+ color: var(--ax-text-subtle);
22
14
  }
23
15
 
24
16
  .navds-fieldset > .navds-fieldset__description:not(:empty) {