@navikt/ds-css 5.15.1 → 5.17.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 (94) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/accordion.css +16 -1
  3. package/alert.css +10 -2
  4. package/button.css +53 -1
  5. package/chat.css +13 -0
  6. package/chips.css +41 -0
  7. package/copybutton.css +22 -0
  8. package/dist/component/accordion.css +16 -1
  9. package/dist/component/accordion.min.css +1 -1
  10. package/dist/component/alert.css +10 -2
  11. package/dist/component/alert.min.css +1 -1
  12. package/dist/component/button.css +56 -1
  13. package/dist/component/button.min.css +2 -2
  14. package/dist/component/chat.css +13 -0
  15. package/dist/component/chat.min.css +1 -1
  16. package/dist/component/chips.css +41 -0
  17. package/dist/component/chips.min.css +1 -1
  18. package/dist/component/copybutton.css +22 -0
  19. package/dist/component/copybutton.min.css +1 -1
  20. package/dist/component/dropdown.css +15 -2
  21. package/dist/component/dropdown.min.css +1 -1
  22. package/dist/component/expansioncard.css +10 -2
  23. package/dist/component/expansioncard.min.css +1 -1
  24. package/dist/component/form.css +316 -24
  25. package/dist/component/form.min.css +1 -1
  26. package/dist/component/helptext.css +16 -2
  27. package/dist/component/helptext.min.css +1 -1
  28. package/dist/component/index.css +783 -46
  29. package/dist/component/index.min.css +3 -3
  30. package/dist/component/internalheader.css +21 -0
  31. package/dist/component/internalheader.min.css +1 -1
  32. package/dist/component/link.css +3 -3
  33. package/dist/component/link.min.css +1 -1
  34. package/dist/component/linkpanel.css +4 -2
  35. package/dist/component/linkpanel.min.css +1 -1
  36. package/dist/component/loader.css +6 -0
  37. package/dist/component/loader.min.css +1 -1
  38. package/dist/component/modal.css +6 -0
  39. package/dist/component/modal.min.css +1 -1
  40. package/dist/component/popover.css +23 -0
  41. package/dist/component/popover.min.css +1 -1
  42. package/dist/component/readmore.css +15 -0
  43. package/dist/component/readmore.min.css +1 -1
  44. package/dist/component/skeleton.css +8 -0
  45. package/dist/component/skeleton.min.css +1 -1
  46. package/dist/component/stepper.css +35 -0
  47. package/dist/component/stepper.min.css +1 -1
  48. package/dist/component/table.css +26 -0
  49. package/dist/component/table.min.css +1 -1
  50. package/dist/component/tabs.css +21 -4
  51. package/dist/component/tabs.min.css +1 -1
  52. package/dist/component/tag.css +12 -0
  53. package/dist/component/tag.min.css +1 -1
  54. package/dist/component/timeline.css +54 -0
  55. package/dist/component/timeline.min.css +1 -1
  56. package/dist/component/togglegroup.css +33 -2
  57. package/dist/component/togglegroup.min.css +1 -1
  58. package/dist/component/tooltip.css +28 -0
  59. package/dist/component/tooltip.min.css +1 -1
  60. package/dist/components.css +825 -45
  61. package/dist/components.min.css +3 -3
  62. package/dist/global/tokens.css +1 -1
  63. package/dist/index.css +783 -46
  64. package/dist/index.min.css +3 -3
  65. package/dropdown.css +15 -2
  66. package/expansioncard.css +10 -2
  67. package/form/combobox.css +112 -19
  68. package/form/confirmation-panel.css +24 -0
  69. package/form/fieldset.css +7 -0
  70. package/form/form.css +6 -0
  71. package/form/radio-checkbox.css +82 -0
  72. package/form/search.css +12 -2
  73. package/form/select.css +21 -0
  74. package/form/switch.css +49 -0
  75. package/form/text-field.css +9 -1
  76. package/form/textarea.css +11 -2
  77. package/help-text.css +16 -2
  78. package/internalheader.css +21 -0
  79. package/link-panel.css +4 -2
  80. package/link.css +3 -3
  81. package/loader.css +6 -0
  82. package/modal.css +6 -0
  83. package/package.json +2 -2
  84. package/popover.css +23 -0
  85. package/read-more.css +15 -0
  86. package/skeleton.css +8 -0
  87. package/stepper.css +35 -0
  88. package/table.css +26 -0
  89. package/tabs.css +21 -4
  90. package/tag.css +12 -0
  91. package/timeline.css +54 -0
  92. package/toggle-group.css +33 -2
  93. package/tokens.json +2 -0
  94. package/tooltip.css +28 -0
package/dropdown.css CHANGED
@@ -58,13 +58,15 @@
58
58
  }
59
59
 
60
60
  .navds-dropdown__item:focus-visible {
61
- outline: none;
61
+ outline: 2px solid transparent;
62
+ outline-offset: -2px;
62
63
  box-shadow: inset 0 0 0 2px var(--a-border-focus);
63
64
  }
64
65
 
65
66
  @supports not selector(:focus-visible) {
66
67
  .navds-dropdown__item:focus {
67
- outline: none;
68
+ outline: 2px solid transparent;
69
+ outline-offset: -2px;
68
70
  box-shadow: inset 0 0 0 2px var(--a-border-focus);
69
71
  }
70
72
  }
@@ -75,3 +77,14 @@
75
77
  background: transparent;
76
78
  cursor: not-allowed;
77
79
  }
80
+
81
+ @media (forced-colors: active) {
82
+ .navds-dropdown__item:hover {
83
+ color: highlight;
84
+ }
85
+
86
+ .navds-dropdown__item:disabled {
87
+ opacity: 1;
88
+ color: graytext;
89
+ }
90
+ }
package/expansioncard.css CHANGED
@@ -145,13 +145,13 @@
145
145
  }
146
146
 
147
147
  .navds-expansioncard__header-button:focus-visible {
148
- outline: none;
148
+ outline: 3px solid transparent;
149
149
  box-shadow: var(--a-shadow-focus);
150
150
  }
151
151
 
152
152
  @supports not selector(:focus-visible) {
153
153
  .navds-expansioncard__header-button:focus {
154
- outline: none;
154
+ outline: 3px solid transparent;
155
155
  box-shadow: var(--a-shadow-focus);
156
156
  }
157
157
  }
@@ -221,3 +221,11 @@
221
221
  transform: translateY(0);
222
222
  }
223
223
  }
224
+
225
+ @media (forced-colors: active) {
226
+ .navds-expansioncard:hover {
227
+ --__ac-expansioncard-border-color: highlight;
228
+
229
+ outline: 1px solid highlight;
230
+ }
231
+ }
package/form/combobox.css CHANGED
@@ -39,6 +39,8 @@
39
39
 
40
40
  .navds-combobox--error
41
41
  .navds-text-field__input:not(:hover):not(:disabled):not(.navds-combobox__wrapper-inner--virtually-unfocused):focus-within {
42
+ outline: 2px solid transparent;
43
+ outline-offset: 2px;
42
44
  box-shadow:
43
45
  0 0 0 1px var(--ac-combobox-error-border, var(--a-border-danger)),
44
46
  var(--a-shadow-focus);
@@ -74,7 +76,6 @@
74
76
  }
75
77
 
76
78
  .navds-combobox__input {
77
- z-index: 1;
78
79
  flex: 1;
79
80
  border: none;
80
81
  padding: 0;
@@ -95,10 +96,13 @@
95
96
  0 0 0 1px var(--a-surface-default) inset,
96
97
  var(--a-shadow-focus);
97
98
  box-shadow: var(--a-shadow-focus);
99
+ outline: 3px solid transparent;
100
+ outline-offset: 2px;
98
101
  }
99
102
 
100
103
  .navds-combobox__wrapper-inner:has(.navds-combobox__input:focus-visible).navds-combobox__wrapper-inner--virtually-unfocused {
101
104
  box-shadow: none;
105
+ outline: none;
102
106
  }
103
107
 
104
108
  @supports not selector(:focus-visible) {
@@ -113,10 +117,13 @@
113
117
  0 0 0 1px var(--a-surface-default) inset,
114
118
  var(--a-shadow-focus);
115
119
  box-shadow: var(--a-shadow-focus);
120
+ outline: 3px solid transparent;
121
+ outline-offset: 2px;
116
122
  }
117
123
 
118
124
  .navds-combobox__wrapper-inner:has(.navds-combobox__input:focus).navds-combobox__wrapper-inner--virtually-unfocused {
119
125
  box-shadow: none;
126
+ outline: none;
120
127
  }
121
128
  }
122
129
 
@@ -126,10 +133,13 @@
126
133
  0 0 0 1px var(--a-surface-default) inset,
127
134
  var(--a-shadow-focus);
128
135
  box-shadow: var(--a-shadow-focus);
136
+ outline: 3px solid transparent;
137
+ outline-offset: 2px;
129
138
  }
130
139
 
131
140
  .navds-combobox--focused .navds-combobox__wrapper-inner.navds-combobox__wrapper-inner--virtually-unfocused {
132
141
  box-shadow: none;
142
+ outline: none;
133
143
  }
134
144
  }
135
145
 
@@ -208,7 +218,7 @@
208
218
  height: 1.25rem;
209
219
  }
210
220
 
211
- /* dropdown list */
221
+ /* dropdown & non selectable dropdown items */
212
222
 
213
223
  .navds-combobox__list {
214
224
  max-height: 290px;
@@ -216,20 +226,16 @@
216
226
  position: absolute;
217
227
  left: 0;
218
228
  right: 0;
219
- z-index: 9999;
229
+ z-index: var(--a-z-index-popover);
220
230
  top: calc(100% + var(--a-spacing-2));
221
- list-style: none;
222
- margin: 0;
223
231
  border: 1px solid var(--ac-combobox-list-border-color, var(--a-border-divider));
224
232
  display: flex;
225
233
  flex-direction: column;
226
- align-items: flex-start;
227
- padding: 0;
228
234
  box-shadow: var(--a-shadow-small);
229
235
  border-radius: var(--a-border-radius-medium);
230
- gap: var(--a-spacing-1) 0;
231
236
  background-color: var(--ac-combobox-list-bg, var(--a-surface-default));
232
237
  color: var(--ac-combobox-list-text, var(--a-text-default));
238
+ gap: var(--a-spacing-1) 0;
233
239
  }
234
240
 
235
241
  .navds-combobox__list--closed {
@@ -241,34 +247,70 @@
241
247
  width: 1.5rem;
242
248
  }
243
249
 
250
+ .navds-combobox__list_non-selectables {
251
+ position: sticky;
252
+ top: 0;
253
+ left: 0;
254
+ right: 0;
255
+ z-index: 1;
256
+ }
257
+
244
258
  .navds-combobox__list-item,
245
- .navds-combobox__list-item__no-options,
246
- .navds-combobox__list-item__new-option {
259
+ .navds-combobox__list-item--loading,
260
+ .navds-combobox__list-item--no-options,
261
+ .navds-combobox__list-item--new-option,
262
+ .navds-combobox__list-item--max-selected {
247
263
  display: flex;
248
264
  flex-direction: row;
249
265
  justify-content: space-between;
250
- align-items: center;
251
266
  padding: var(--a-spacing-3);
252
267
  width: 100%;
253
268
  background-color: var(--ac-combobox-list-item-bg, var(--a-surface-default));
269
+ scroll-margin-top: 50px;
254
270
  }
255
271
 
256
272
  .navds-form-field--small .navds-combobox__list-item,
257
- .navds-form-field--small .navds-combobox__list-item__no-options,
258
- .navds-form-field--small .navds-combobox__list-item__new-option {
273
+ .navds-form-field--small .navds-combobox__list-item--loading,
274
+ .navds-form-field--small .navds-combobox__list-item--no-options,
275
+ .navds-form-field--small .navds-combobox__list-item--new-option,
276
+ .navds-form-field--small .navds-combobox__list-item--max-selected {
259
277
  padding: calc(var(--a-spacing-3) / 2) var(--a-spacing-2);
260
278
  }
261
279
 
262
280
  .navds-combobox__list-item--loading {
263
- display: flex;
264
281
  justify-content: center;
265
- padding: var(--a-spacing-3);
266
282
  background-color: var(--ac-combobox-list-item-loading-bg, var(--a-surface-default));
283
+ }
284
+
285
+ .navds-combobox__list-item--max-selected {
286
+ background: var(--ac-combobox-list-item-max-selected-bg, var(--a-surface-info-subtle));
287
+ border-start-start-radius: calc(var(--a-border-radius-medium) - 1px);
288
+ border-start-end-radius: calc(var(--a-border-radius-medium) - 1px);
289
+ border: 1px solid var(--ac-combobox-list-item-max-selected-border, var(--a-border-info));
290
+ margin-bottom: calc(var(--a-spacing-1) * -1);
291
+ }
292
+
293
+ .navds-combobox__list_non-selectables:hover {
294
+ cursor: default;
295
+ }
296
+
297
+ /* ul-list and selectable li-items */
298
+
299
+ .navds-combobox__list-options {
300
+ list-style: none;
301
+ margin: 0;
302
+ padding: 0;
267
303
  width: 100%;
304
+ display: inherit;
305
+ flex-direction: inherit;
306
+ gap: inherit;
307
+ background-color: inherit;
308
+ align-items: flex-start;
268
309
  }
269
310
 
270
311
  .navds-combobox__list-item--focus,
271
- .navds-combobox__list--with-hover .navds-combobox__list-item:hover {
312
+ .navds-combobox__list--with-hover
313
+ .navds-combobox__list-item:not([data-no-focus="true"], .navds-combobox__list-item--new-option):hover {
272
314
  background-color: var(--ac-combobox-list-item-hover-bg, var(--a-surface-hover));
273
315
  cursor: pointer;
274
316
  border-left: 4px solid var(--ac-combobox-list-item-hover-border-left, var(--a-border-strong));
@@ -280,6 +322,11 @@
280
322
  padding-left: calc(var(--a-spacing-2) - 4px);
281
323
  }
282
324
 
325
+ .navds-combobox__list-item[data-no-focus="true"] {
326
+ cursor: not-allowed;
327
+ opacity: 0.4;
328
+ }
329
+
283
330
  .navds-combobox__list-item--selected {
284
331
  background-color: var(--ac-combobox-list-item-selected-bg, var(--a-surface-selected));
285
332
  }
@@ -295,7 +342,7 @@
295
342
  padding-left: calc(var(--a-spacing-3) - 4px);
296
343
  }
297
344
 
298
- .navds-combobox__list-item__new-option {
345
+ .navds-combobox__list-item--new-option {
299
346
  border-bottom: 1px solid var(--a-border-divider);
300
347
  background: var(--a-surface-neutral-subtle);
301
348
  cursor: pointer;
@@ -303,12 +350,12 @@
303
350
  gap: 0.25rem;
304
351
  }
305
352
 
306
- .navds-combobox__list--with-hover .navds-combobox__list-item__new-option:hover {
353
+ .navds-combobox__list--with-hover .navds-combobox__list-item--new-option:hover {
307
354
  border-bottom: 1px solid var(--a-border-divider);
308
355
  background: var(--a-surface-neutral-subtle-hover);
309
356
  }
310
357
 
311
- .navds-combobox__list-item__new-option--focus {
358
+ .navds-combobox__list-item--new-option--focus {
312
359
  box-shadow:
313
360
  var(--a-shadow-focus) inset,
314
361
  var(--a-border-action) 0 0 0 5px inset;
@@ -332,3 +379,49 @@
332
379
  gap: var(--a-spacing-1);
333
380
  }
334
381
  }
382
+
383
+ @media (forced-colors: active) {
384
+ .navds-combobox__button-clear:hover {
385
+ color: highlight;
386
+ }
387
+
388
+ .navds-combobox__wrapper-inner:has(.navds-combobox__input:focus-visible) {
389
+ outline-color: highlight;
390
+ }
391
+
392
+ .navds-combobox__list-item--focus,
393
+ .navds-combobox__list--with-hover
394
+ .navds-combobox__list-item:not([data-no-focus="true"], .navds-combobox__list-item--new-option):hover {
395
+ border-left-color: highlight;
396
+ color: highlight;
397
+ }
398
+
399
+ .navds-combobox__list-item[data-no-focus="true"] {
400
+ opacity: 1;
401
+ color: graytext;
402
+ }
403
+
404
+ .navds-combobox__list-item--selected {
405
+ background-color: selecteditem;
406
+ color: selecteditemtext;
407
+ }
408
+
409
+ .navds-combobox__list-item--selected > * {
410
+ forced-color-adjust: none;
411
+ }
412
+
413
+ .navds-combobox__list-item--selected.navds-combobox__list-item--focus,
414
+ .navds-combobox__list--with-hover .navds-combobox__list-item--selected:hover {
415
+ border-left-color: highlight;
416
+ color: highlight;
417
+ }
418
+
419
+ .navds-combobox__list--with-hover .navds-combobox__list-item--new-option:hover {
420
+ color: highlight;
421
+ }
422
+
423
+ .navds-combobox__list-item--new-option--focus {
424
+ outline: 2px solid highlight;
425
+ outline-offset: -3px;
426
+ }
427
+ }
@@ -8,6 +8,7 @@
8
8
  background-color: var(--ac-confirmation-panel-bg, var(--a-surface-warning-subtle));
9
9
  transition: background-color linear 100ms;
10
10
  justify-self: stretch;
11
+ position: relative;
11
12
  }
12
13
 
13
14
  .navds-confirmation-panel__content {
@@ -23,3 +24,26 @@
23
24
  border-color: var(--ac-confirmation-panel-error-border, var(--a-border-danger));
24
25
  background-color: var(--ac-confirmation-panel-error-bg, var(--a-surface-danger-subtle));
25
26
  }
27
+
28
+ @media (forced-colors: active) {
29
+ .navds-confirmation-panel__inner::before {
30
+ content: "";
31
+ position: absolute;
32
+ left: 0;
33
+ top: 0;
34
+ height: 100%;
35
+ border-left: 8px solid;
36
+ border-color: orange;
37
+ forced-color-adjust: none;
38
+ border-start-start-radius: calc(var(--a-border-radius-medium) - 1px);
39
+ border-end-start-radius: calc(var(--a-border-radius-medium) - 1px);
40
+ }
41
+
42
+ .navds-confirmation-panel--checked .navds-confirmation-panel__inner::before {
43
+ border-color: green;
44
+ }
45
+
46
+ .navds-confirmation-panel--error .navds-confirmation-panel__inner::before {
47
+ border-color: red;
48
+ }
49
+ }
package/form/fieldset.css CHANGED
@@ -42,3 +42,10 @@
42
42
  .navds-fieldset:disabled > .navds-fieldset__description {
43
43
  opacity: 0.3;
44
44
  }
45
+
46
+ @media (forced-colors: active) {
47
+ .navds-fieldset:disabled > .navds-fieldset__legend,
48
+ .navds-fieldset:disabled > .navds-fieldset__description {
49
+ opacity: 1;
50
+ }
51
+ }
package/form/form.css CHANGED
@@ -51,3 +51,9 @@
51
51
  flex-shrink: 0;
52
52
  align-self: flex-start;
53
53
  }
54
+
55
+ @media (forced-colors: active) {
56
+ .navds-form-field--disabled {
57
+ opacity: 1;
58
+ }
59
+ }
@@ -72,6 +72,8 @@
72
72
 
73
73
  .navds-checkbox__input:focus-visible + .navds-checkbox__label::before,
74
74
  .navds-radio__input:focus-visible + .navds-radio__label::before {
75
+ outline: 2px solid transparent;
76
+ outline-offset: 2px;
75
77
  box-shadow:
76
78
  0 0 0 2px var(--ac-radio-checkbox-border, var(--a-border-default)),
77
79
  0 0 0 2px var(--ac-radio-checkbox-bg, var(--a-surface-default)),
@@ -81,6 +83,8 @@
81
83
  @supports not selector(:focus-visible) {
82
84
  .navds-checkbox__input:focus + .navds-checkbox__label::before,
83
85
  .navds-radio__input:focus + .navds-radio__label::before {
86
+ outline: 2px solid transparent;
87
+ outline-offset: 2px;
84
88
  box-shadow:
85
89
  0 0 0 2px var(--ac-radio-checkbox-border, var(--a-border-default)),
86
90
  0 0 0 4px var(--a-border-focus);
@@ -352,3 +356,81 @@
352
356
  .navds-checkbox--readonly > .navds-checkbox__input:indeterminate + .navds-checkbox__label::after {
353
357
  background-color: var(--a-icon-subtle);
354
358
  }
359
+
360
+ @media (forced-colors: active) {
361
+ .navds-checkbox__input:focus-visible + .navds-checkbox__label::before,
362
+ .navds-radio__input:focus-visible + .navds-radio__label::before {
363
+ outline-color: highlight;
364
+ }
365
+
366
+ .navds-checkbox,
367
+ .navds-radio {
368
+ --__ac-radio-checkbox-high-contrast-bg: field;
369
+ --__ac-radio-checkbox-high-contrast-text: fieldtext;
370
+ --__ac-radio-checkbox-high-contrast-highlight: highlight;
371
+ }
372
+
373
+ .navds-checkbox__label::before,
374
+ .navds-radio__label::before {
375
+ border: 1px solid var(--__ac-radio-checkbox-high-contrast-text);
376
+ background-color: var(--__ac-radio-checkbox-high-contrast-bg);
377
+ }
378
+
379
+ .navds-checkbox__input:checked + .navds-checkbox__label > .navds-checkbox__icon {
380
+ color: var(--__ac-radio-checkbox-high-contrast-text);
381
+ }
382
+
383
+ .navds-checkbox__input:indeterminate + .navds-checkbox__label::after {
384
+ background-color: var(--__ac-radio-checkbox-high-contrast-text);
385
+ }
386
+
387
+ .navds-radio__input:checked + .navds-radio__label::before {
388
+ border: 1px solid var(--__ac-radio-checkbox-high-contrast-text);
389
+ outline: 3px solid var(--__ac-radio-checkbox-high-contrast-bg);
390
+ outline-offset: -4px;
391
+ background-color: var(--__ac-radio-checkbox-high-contrast-text);
392
+ }
393
+
394
+ .navds-radio__input:checked:focus-visible + .navds-radio__label::before {
395
+ border: 1px solid var(--__ac-radio-checkbox-high-contrast-bg);
396
+ outline: 2px solid highlight;
397
+ outline-offset: 2px;
398
+ }
399
+
400
+ :not(.navds-checkbox--readonly) > .navds-checkbox__input:hover:not(:disabled) + .navds-checkbox__label,
401
+ :not(.navds-radio--readonly) > .navds-radio__input:hover:not(:disabled) + .navds-radio__label {
402
+ color: highlight;
403
+ }
404
+
405
+ .navds-checkbox__input:focus-visible + .navds-checkbox__label::before {
406
+ outline: 2px solid var(--__ac-radio-checkbox-high-contrast-highlight);
407
+ }
408
+
409
+ .navds-checkbox--readonly > .navds-checkbox__input:checked + .navds-checkbox__label::before {
410
+ border: 1px solid var(--__ac-radio-checkbox-high-contrast-text);
411
+ background-color: var(--__ac-radio-checkbox-high-contrast-bg);
412
+ }
413
+
414
+ .navds-checkbox--readonly > .navds-checkbox__input:indeterminate + .navds-checkbox__label::after {
415
+ background-color: var(--__ac-radio-checkbox-high-contrast-text);
416
+ }
417
+
418
+ .navds-radio--readonly > .navds-radio__input:checked + .navds-radio__label::before {
419
+ border: 1px solid var(--__ac-radio-checkbox-high-contrast-text);
420
+ outline: 3px solid var(--__ac-radio-checkbox-high-contrast-bg);
421
+ outline-offset: -4px;
422
+ background-color: var(--__ac-radio-checkbox-high-contrast-text);
423
+ }
424
+
425
+ .navds-checkbox--disabled,
426
+ .navds-radio--disabled {
427
+ opacity: 1;
428
+
429
+ --__ac-radio-checkbox-high-contrast-bg: field;
430
+ --__ac-radio-checkbox-high-contrast-text: graytext;
431
+ }
432
+
433
+ :is(.navds-checkbox--disabled, .navds-radio--disabled) :is(.navds-checkbox__label, .navds-radio__label) {
434
+ color: graytext;
435
+ }
436
+ }
package/form/search.css CHANGED
@@ -99,14 +99,14 @@
99
99
  }
100
100
 
101
101
  .navds-search__button-clear:focus-visible {
102
+ outline: 2px solid transparent;
102
103
  box-shadow: var(--a-shadow-focus);
103
- outline: none;
104
104
  }
105
105
 
106
106
  @supports not selector(:focus-visible) {
107
107
  .navds-search__button-clear:focus {
108
+ outline: 2px solid transparent;
108
109
  box-shadow: var(--a-shadow-focus);
109
- outline: none;
110
110
  }
111
111
  }
112
112
 
@@ -216,3 +216,13 @@
216
216
  z-index: 1;
217
217
  }
218
218
  }
219
+
220
+ @media (forced-colors: active) {
221
+ .navds-modal {
222
+ outline: 2px solid transparent;
223
+ }
224
+
225
+ .navds-search__button-clear:hover {
226
+ color: highlight;
227
+ }
228
+ }
package/form/select.css CHANGED
@@ -13,6 +13,21 @@
13
13
  padding-right: 2rem;
14
14
  }
15
15
 
16
+ @media (forced-colors: active) {
17
+ .navds-select__input.navds-select__input.navds-select__input {
18
+ background-color: ButtonFace;
19
+ border-color: ButtonText;
20
+ color: ButtonText;
21
+ forced-color-adjust: none;
22
+ box-shadow: none;
23
+ }
24
+
25
+ .navds-select__input.navds-select__input.navds-select__input:focus-visible {
26
+ outline: 2px solid highlight;
27
+ outline-offset: 2px;
28
+ }
29
+ }
30
+
16
31
  .navds-select__input:hover {
17
32
  border-color: var(--ac-select-hover-bg, var(--a-border-action));
18
33
  cursor: pointer;
@@ -46,6 +61,12 @@
46
61
  color: var(--ac-select-text, var(--a-text-default));
47
62
  }
48
63
 
64
+ @media (forced-colors: active) {
65
+ .navds-select__chevron {
66
+ color: ButtonText;
67
+ }
68
+ }
69
+
49
70
  .navds-form-field--small .navds-select__input {
50
71
  min-height: 2rem;
51
72
  padding: 0 var(--a-spacing-8) 0 var(--a-spacing-2);
package/form/switch.css CHANGED
@@ -111,6 +111,8 @@
111
111
  }
112
112
 
113
113
  .navds-switch__input:focus-visible ~ .navds-switch__track {
114
+ outline: 2px solid transparent;
115
+ outline-offset: 2px;
114
116
  box-shadow:
115
117
  0 0 0 1px var(--a-surface-default),
116
118
  var(--a-shadow-focus);
@@ -118,6 +120,7 @@
118
120
 
119
121
  @supports not selector(:focus-visible) {
120
122
  .navds-switch__input:focus ~ .navds-switch__track {
123
+ outline: 2px solid transparent;
121
124
  box-shadow:
122
125
  0 0 0 1px var(--a-surface-default),
123
126
  var(--a-shadow-focus);
@@ -218,3 +221,49 @@
218
221
  transform: translateX(1.25rem);
219
222
  }
220
223
  }
224
+
225
+ @media (forced-colors: active) {
226
+ .navds-switch__input:hover ~ .navds-switch__label-wrapper,
227
+ .navds-switch__label-wrapper:hover {
228
+ color: highlight;
229
+ }
230
+
231
+ .navds-switch__thumb,
232
+ .navds-switch--readonly .navds-switch__thumb {
233
+ background-color: fieldtext;
234
+ }
235
+
236
+ .navds-switch__input:checked ~ .navds-switch__track > .navds-switch__thumb,
237
+ .navds-switch--readonly .navds-switch__input:checked ~ .navds-switch__track > .navds-switch__thumb {
238
+ color: field;
239
+ }
240
+
241
+ .navds-switch__track {
242
+ width: calc(2.75rem + 4px);
243
+ height: calc(1.5rem + 4px);
244
+ top: var(--a-spacing-3);
245
+ border: 2px solid fieldtext;
246
+ }
247
+
248
+ .navds-switch__input:focus-visible ~ .navds-switch__track {
249
+ outline: 2px solid highlight;
250
+ outline-offset: 2px;
251
+ }
252
+
253
+ .navds-switch--disabled:not(.navds-switch--loading) {
254
+ opacity: 1;
255
+ }
256
+
257
+ .navds-switch--disabled:not(.navds-switch--loading) .navds-switch__thumb {
258
+ background-color: graytext;
259
+ }
260
+
261
+ .navds-switch--disabled:not(.navds-switch--loading) .navds-switch__track {
262
+ border-color: graytext;
263
+ }
264
+
265
+ .navds-switch--disabled:not(.navds-switch--loading) .navds-switch__label-wrapper,
266
+ .navds-switch--disabled:not(.navds-switch--loading) .navds-switch__label-wrapper:hover {
267
+ color: graytext !important;
268
+ }
269
+ }
@@ -45,7 +45,8 @@
45
45
  }
46
46
 
47
47
  .navds-text-field__input:focus-visible {
48
- outline: none;
48
+ outline: 2px solid transparent;
49
+ outline-offset: 2px;
49
50
  box-shadow: var(--a-shadow-focus);
50
51
  }
51
52
 
@@ -101,3 +102,10 @@
101
102
  .navds-text-field__input[type="search"]::-webkit-search-results-decoration {
102
103
  -webkit-appearance: none;
103
104
  }
105
+
106
+ @media (forced-colors: active) {
107
+ .navds-text-field__input {
108
+ background-color: field;
109
+ color: fieldtext;
110
+ }
111
+ }
package/form/textarea.css CHANGED
@@ -52,13 +52,15 @@
52
52
  }
53
53
 
54
54
  .navds-textarea__input:focus-visible {
55
- outline: none;
55
+ outline: 2px solid transparent;
56
+ outline-offset: 2px;
56
57
  box-shadow: var(--a-shadow-focus);
57
58
  }
58
59
 
59
60
  @supports not selector(:focus-visible) {
60
61
  .navds-textarea__input:focus {
61
- outline: none;
62
+ outline: 2px solid transparent;
63
+ outline-offset: 2px;
62
64
  box-shadow: var(--a-shadow-focus);
63
65
  }
64
66
  }
@@ -141,3 +143,10 @@
141
143
  border-color: var(--a-border-subtle);
142
144
  cursor: default;
143
145
  }
146
+
147
+ @media (forced-colors: active) {
148
+ .navds-textarea__input {
149
+ background-color: field;
150
+ color: fieldtext;
151
+ }
152
+ }
package/help-text.css CHANGED
@@ -13,7 +13,7 @@
13
13
  }
14
14
 
15
15
  .navds-help-text__button:focus-visible {
16
- outline: none;
16
+ outline: 2px solid transparent;
17
17
  box-shadow:
18
18
  0 0 0 1px var(--a-border-focus),
19
19
  inset 0 0 0 1px var(--a-border-focus);
@@ -21,7 +21,7 @@
21
21
 
22
22
  @supports not selector(:focus-visible) {
23
23
  .navds-help-text__button:focus {
24
- outline: none;
24
+ outline: 2px solid transparent;
25
25
  box-shadow:
26
26
  0 0 0 1px var(--a-border-focus),
27
27
  inset 0 0 0 1px var(--a-border-focus);
@@ -64,3 +64,17 @@
64
64
  display: inherit;
65
65
  }
66
66
  }
67
+
68
+ @media (forced-colors: active) {
69
+ .navds-help-text__button:where(:hover, :focus-visible, [aria-expanded="true"]) > .navds-help-text__icon {
70
+ display: inherit;
71
+ }
72
+
73
+ .navds-help-text__button:hover > .navds-help-text__icon {
74
+ color: highlight;
75
+ }
76
+
77
+ .navds-help-text__button:where(:hover, :focus-visible, [aria-expanded="true"]) > .navds-help-text__icon--filled {
78
+ display: none;
79
+ }
80
+ }