@navikt/ds-css 3.0.0 → 3.1.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 (68) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/button.css +87 -12
  3. package/chat.css +0 -5
  4. package/chips.css +24 -0
  5. package/date.css +42 -8
  6. package/dist/component/button.css +87 -12
  7. package/dist/component/button.min.css +1 -1
  8. package/dist/component/chat.css +0 -5
  9. package/dist/component/chat.min.css +1 -1
  10. package/dist/component/chips.css +24 -0
  11. package/dist/component/chips.min.css +1 -1
  12. package/dist/component/date.css +42 -8
  13. package/dist/component/date.min.css +1 -1
  14. package/dist/component/expansioncard.css +7 -3
  15. package/dist/component/expansioncard.min.css +1 -1
  16. package/dist/component/form.css +161 -33
  17. package/dist/component/form.min.css +1 -1
  18. package/dist/component/helptext.css +20 -4
  19. package/dist/component/helptext.min.css +1 -1
  20. package/dist/component/index.css +420 -77
  21. package/dist/component/index.min.css +2 -2
  22. package/dist/component/link.css +11 -1
  23. package/dist/component/link.min.css +1 -1
  24. package/dist/component/linkpanel.css +8 -1
  25. package/dist/component/linkpanel.min.css +1 -1
  26. package/dist/component/modal.css +9 -1
  27. package/dist/component/modal.min.css +1 -1
  28. package/dist/component/pagination.css +7 -1
  29. package/dist/component/pagination.min.css +1 -1
  30. package/dist/component/popover.css +8 -1
  31. package/dist/component/popover.min.css +1 -1
  32. package/dist/component/readmore.css +8 -1
  33. package/dist/component/readmore.min.css +1 -1
  34. package/dist/component/stepper.css +9 -1
  35. package/dist/component/stepper.min.css +1 -1
  36. package/dist/component/table.css +15 -2
  37. package/dist/component/table.min.css +1 -1
  38. package/dist/component/tabs.css +16 -1
  39. package/dist/component/tabs.min.css +1 -1
  40. package/dist/component/togglegroup.css +22 -2
  41. package/dist/component/togglegroup.min.css +1 -1
  42. package/dist/components.css +419 -76
  43. package/dist/components.min.css +2 -2
  44. package/dist/global/tokens.css +1 -1
  45. package/dist/index.css +420 -77
  46. package/dist/index.min.css +2 -2
  47. package/expansioncard.css +7 -3
  48. package/form/error-summary.css +8 -1
  49. package/form/fieldset.css +1 -1
  50. package/form/form.css +5 -1
  51. package/form/radio-checkbox.css +79 -16
  52. package/form/search.css +39 -7
  53. package/form/select.css +8 -1
  54. package/form/switch.css +8 -2
  55. package/form/text-field.css +15 -2
  56. package/form/textarea.css +16 -2
  57. package/help-text.css +20 -4
  58. package/link-panel.css +8 -1
  59. package/link.css +11 -1
  60. package/modal.css +9 -1
  61. package/package.json +2 -2
  62. package/pagination.css +7 -1
  63. package/popover.css +8 -1
  64. package/read-more.css +8 -1
  65. package/stepper.css +9 -1
  66. package/table.css +15 -2
  67. package/tabs.css +16 -1
  68. package/toggle-group.css +22 -2
@@ -1,7 +1,7 @@
1
1
  @charset "UTF-8";
2
2
  /**
3
3
  * Do not edit directly
4
- * Generated on Tue, 09 May 2023 11:07:48 GMT
4
+ * Generated on Wed, 10 May 2023 11:36:34 GMT
5
5
  */
6
6
  :root, :host {
7
7
  --a-spacing-05: 0.125rem;
@@ -1362,10 +1362,16 @@ body,
1362
1362
 
1363
1363
  padding: var(--ac-button-padding-icon-only-xsmall, var(--__ac-button-padding));
1364
1364
  }
1365
- .navds-button:focus {
1365
+ .navds-button:focus-visible {
1366
1366
  outline: none;
1367
1367
  box-shadow: var(--a-shadow-focus);
1368
1368
  }
1369
+ @supports not selector(:focus-visible) {
1370
+ .navds-button:focus {
1371
+ outline: none;
1372
+ box-shadow: var(--a-shadow-focus);
1373
+ }
1374
+ }
1369
1375
  .navds-button__icon {
1370
1376
  --ac-button-icon-margin: -4px;
1371
1377
 
@@ -1402,9 +1408,14 @@ body,
1402
1408
  .navds-button--primary:active {
1403
1409
  background-color: var(--ac-button-primary-active-bg, var(--a-surface-action-active));
1404
1410
  }
1405
- .navds-button--primary:focus {
1411
+ .navds-button--primary:focus-visible {
1406
1412
  box-shadow: inset 0 0 0 1px var(--ac-button-primary-focus-border, var(--a-surface-default)), var(--a-shadow-focus);
1407
1413
  }
1414
+ @supports not selector(:focus-visible) {
1415
+ .navds-button--primary:focus {
1416
+ box-shadow: inset 0 0 0 1px var(--ac-button-primary-focus-border, var(--a-surface-default)), var(--a-shadow-focus);
1417
+ }
1418
+ }
1408
1419
  .navds-button--primary:hover:where(:disabled, .navds-button--disabled),
1409
1420
  .navds-button--primary:active:where(:disabled, .navds-button--disabled) {
1410
1421
  background-color: var(--ac-button-primary-bg, var(--a-surface-action));
@@ -1422,9 +1433,14 @@ body,
1422
1433
  .navds-button--primary-neutral:active {
1423
1434
  background-color: var(--ac-button-primary-neutral-active-bg, var(--a-surface-neutral-active));
1424
1435
  }
1425
- .navds-button--primary-neutral:focus {
1436
+ .navds-button--primary-neutral:focus-visible {
1426
1437
  box-shadow: inset 0 0 0 1px var(--ac-button-primary-neutral-focus-border, var(--a-surface-default)), var(--a-shadow-focus);
1427
1438
  }
1439
+ @supports not selector(:focus-visible) {
1440
+ .navds-button--primary-neutral:focus {
1441
+ box-shadow: inset 0 0 0 1px var(--ac-button-primary-neutral-focus-border, var(--a-surface-default)), var(--a-shadow-focus);
1442
+ }
1443
+ }
1428
1444
  .navds-button--primary-neutral:hover:where(:disabled, .navds-button--disabled),
1429
1445
  .navds-button--primary-neutral:active:where(:disabled, .navds-button--disabled) {
1430
1446
  background-color: var(--ac-button-primary-neutral-bg, var(--a-surface-neutral));
@@ -1441,17 +1457,27 @@ body,
1441
1457
  color: var(--ac-button-secondary-hover-text, var(--a-text-action-on-action-subtle));
1442
1458
  background-color: var(--ac-button-secondary-hover-bg, var(--a-surface-action-subtle-hover));
1443
1459
  }
1444
- .navds-button--secondary:focus {
1460
+ .navds-button--secondary:focus-visible {
1445
1461
  box-shadow: inset 0 0 0 2px var(--ac-button-secondary-focus-border, var(--a-border-action)), var(--a-shadow-focus);
1446
1462
  }
1463
+ @supports not selector(:focus-visible) {
1464
+ .navds-button--secondary:focus {
1465
+ box-shadow: inset 0 0 0 2px var(--ac-button-secondary-focus-border, var(--a-border-action)), var(--a-shadow-focus);
1466
+ }
1467
+ }
1447
1468
  .navds-button--secondary:active {
1448
1469
  color: var(--ac-button-secondary-active-text, var(--a-text-on-action));
1449
1470
  background-color: var(--ac-button-secondary-active-bg, var(--a-surface-action-active));
1450
1471
  box-shadow: none;
1451
1472
  }
1452
- .navds-button--secondary:focus:active {
1473
+ .navds-button--secondary:focus-visible:active {
1453
1474
  box-shadow: inset 0 0 0 1px var(--ac-button-secondary-active-focus-border, var(--a-surface-default)), var(--a-shadow-focus);
1454
1475
  }
1476
+ @supports not selector(:focus-visible) {
1477
+ .navds-button--secondary:focus:active {
1478
+ box-shadow: inset 0 0 0 1px var(--ac-button-secondary-active-focus-border, var(--a-surface-default)), var(--a-shadow-focus);
1479
+ }
1480
+ }
1455
1481
  .navds-button--secondary:where(:disabled, .navds-button--disabled),
1456
1482
  .navds-button--secondary:hover:where(:disabled, .navds-button--disabled) {
1457
1483
  color: var(--ac-button-secondary-text, var(--a-text-action));
@@ -1469,19 +1495,31 @@ body,
1469
1495
  .navds-button--secondary-neutral:hover {
1470
1496
  background-color: var(--ac-button-secondary-neutral-hover-bg, var(--a-surface-neutral-subtle-hover));
1471
1497
  }
1472
- .navds-button--secondary-neutral:focus {
1498
+ .navds-button--secondary-neutral:focus-visible {
1473
1499
  color: var(--ac-button-secondary-neutral-text, var(--a-text-default));
1474
1500
  box-shadow: inset 0 0 0 2px var(--ac-button-secondary-neutral-focus-border, var(--a-border-strong)), var(--a-shadow-focus);
1475
1501
  }
1502
+ @supports not selector(:focus-visible) {
1503
+ .navds-button--secondary-neutral:focus {
1504
+ color: var(--ac-button-secondary-neutral-text, var(--a-text-default));
1505
+ box-shadow: inset 0 0 0 2px var(--ac-button-secondary-neutral-focus-border, var(--a-border-strong)), var(--a-shadow-focus);
1506
+ }
1507
+ }
1476
1508
  .navds-button--secondary-neutral:active {
1477
1509
  color: var(--ac-button-secondary-neutral-active-text, var(--a-text-on-neutral));
1478
1510
  background-color: var(--ac-button-secondary-neutral-active-bg, var(--a-surface-neutral-active));
1479
1511
  box-shadow: none;
1480
1512
  }
1481
- .navds-button--secondary-neutral:focus:active {
1513
+ .navds-button--secondary-neutral:focus-visible:active {
1482
1514
  box-shadow: inset 0 0 0 1px var(--ac-button-secondary-neutral-active-focus-border, var(--a-surface-default)),
1483
1515
  var(--a-shadow-focus);
1484
1516
  }
1517
+ @supports not selector(:focus-visible) {
1518
+ .navds-button--secondary-neutral:focus:active {
1519
+ box-shadow: inset 0 0 0 1px var(--ac-button-secondary-neutral-active-focus-border, var(--a-surface-default)),
1520
+ var(--a-shadow-focus);
1521
+ }
1522
+ }
1485
1523
  .navds-button--secondary-neutral:where(:disabled, .navds-button--disabled),
1486
1524
  .navds-button--secondary-neutral:hover:where(:disabled, .navds-button--disabled) {
1487
1525
  color: var(--ac-button-secondary-neutral-text, var(--a-text-default));
@@ -1499,9 +1537,14 @@ body,
1499
1537
  color: var(--ac-button-tertiary-hover-text, var(--a-text-action-on-action-subtle));
1500
1538
  background-color: var(--ac-button-tertiary-hover-bg, var(--a-surface-action-subtle-hover));
1501
1539
  }
1502
- .navds-button--tertiary:focus {
1540
+ .navds-button--tertiary:focus-visible {
1503
1541
  box-shadow: inset 0 0 0 2px var(--ac-button-tertiary-focus-border, var(--a-border-action)), var(--a-shadow-focus);
1504
1542
  }
1543
+ @supports not selector(:focus-visible) {
1544
+ .navds-button--tertiary:focus {
1545
+ box-shadow: inset 0 0 0 2px var(--ac-button-tertiary-focus-border, var(--a-border-action)), var(--a-shadow-focus);
1546
+ }
1547
+ }
1505
1548
  .navds-button--tertiary:active {
1506
1549
  color: var(--ac-button-tertiary-active-text, var(--a-text-on-action));
1507
1550
  background-color: var(--ac-button-tertiary-active-bg, var(--a-surface-action-active));
@@ -1510,9 +1553,14 @@ body,
1510
1553
  .navds-button--tertiary:active:hover {
1511
1554
  background-color: var(--ac-button-tertiary-active-hover-bg, var(--a-surface-action-active));
1512
1555
  }
1513
- .navds-button--tertiary:active:focus {
1556
+ .navds-button--tertiary:focus-visible:active {
1514
1557
  box-shadow: inset 0 0 0 1px var(--a-surface-default), var(--a-shadow-focus);
1515
1558
  }
1559
+ @supports not selector(:focus-visible) {
1560
+ .navds-button--tertiary:focus:active {
1561
+ box-shadow: inset 0 0 0 1px var(--a-surface-default), var(--a-shadow-focus);
1562
+ }
1563
+ }
1516
1564
  .navds-button--tertiary:where(:disabled, .navds-button--disabled),
1517
1565
  .navds-button--tertiary:hover:where(:disabled, .navds-button--disabled),
1518
1566
  .navds-button--tertiary:active:where(:disabled, .navds-button--disabled),
@@ -1531,9 +1579,14 @@ body,
1531
1579
  color: var(--ac-button-tertiary-neutral-hover-text, var(--a-text-default));
1532
1580
  background-color: var(--ac-button-tertiary-neutral-hover-bg, var(--a-surface-neutral-subtle-hover));
1533
1581
  }
1534
- .navds-button--tertiary-neutral:focus {
1582
+ .navds-button--tertiary-neutral:focus-visible {
1535
1583
  box-shadow: inset 0 0 0 2px var(--ac-button-tertiary-neutral-focus-border, var(--a-border-strong)), var(--a-shadow-focus);
1536
1584
  }
1585
+ @supports not selector(:focus-visible) {
1586
+ .navds-button--tertiary-neutral:focus {
1587
+ box-shadow: inset 0 0 0 2px var(--ac-button-tertiary-neutral-focus-border, var(--a-border-strong)), var(--a-shadow-focus);
1588
+ }
1589
+ }
1537
1590
  .navds-button--tertiary-neutral:active {
1538
1591
  color: var(--ac-button-tertiary-neutral-active-text, var(--a-text-on-neutral));
1539
1592
  background-color: var(--ac-button-tertiary-neutral-active-bg, var(--a-surface-neutral-active));
@@ -1542,9 +1595,14 @@ body,
1542
1595
  .navds-button--tertiary-neutral:active:hover {
1543
1596
  background-color: var(--ac-button-tertiary-neutral-active-hover-bg, var(--a-surface-neutral-active));
1544
1597
  }
1545
- .navds-button--tertiary-neutral:active:focus {
1598
+ .navds-button--tertiary-neutral:focus-visible:active {
1546
1599
  box-shadow: inset 0 0 0 1px var(--a-surface-default), var(--a-shadow-focus);
1547
1600
  }
1601
+ @supports not selector(:focus-visible) {
1602
+ .navds-button--tertiary-neutral:focus:active {
1603
+ box-shadow: inset 0 0 0 1px var(--a-surface-default), var(--a-shadow-focus);
1604
+ }
1605
+ }
1548
1606
  .navds-button--tertiary-neutral:where(:disabled, .navds-button--disabled),
1549
1607
  .navds-button--tertiary-neutral:hover:where(:disabled, .navds-button--disabled),
1550
1608
  .navds-button--tertiary-neutral:active:where(:disabled, .navds-button--disabled),
@@ -1566,9 +1624,14 @@ body,
1566
1624
  .navds-button--danger:active {
1567
1625
  background-color: var(--ac-button-danger-active-bg, var(--a-surface-danger-active));
1568
1626
  }
1569
- .navds-button--danger:focus {
1627
+ .navds-button--danger:focus-visible {
1570
1628
  box-shadow: inset 0 0 0 1px var(--a-surface-default), var(--a-shadow-focus);
1571
1629
  }
1630
+ @supports not selector(:focus-visible) {
1631
+ .navds-button--danger:focus {
1632
+ box-shadow: inset 0 0 0 1px var(--a-surface-default), var(--a-shadow-focus);
1633
+ }
1634
+ }
1572
1635
  .navds-button--danger:active:where(:disabled, .navds-button--disabled),
1573
1636
  .navds-button--danger:hover:where(:disabled, .navds-button--disabled) {
1574
1637
  background-color: var(--ac-button-danger-bg, var(--a-surface-danger));
@@ -1651,10 +1714,6 @@ body,
1651
1714
  flex-direction: column;
1652
1715
  gap: var(--a-spacing-2);
1653
1716
  }
1654
- .navds-chat__bubble:focus {
1655
- box-shadow: var(--a-shadow-focus);
1656
- outline: none;
1657
- }
1658
1717
  .navds-chat--right .navds-chat__bubble {
1659
1718
  border-radius: var(--a-border-radius-xlarge);
1660
1719
  border-bottom-right-radius: 2px;
@@ -1738,6 +1797,17 @@ body,
1738
1797
  .navds-chips__toggle:active:focus-visible {
1739
1798
  box-shadow: inset 0 0 0 1px var(--a-surface-default), 0 0 0 2px var(--ac-chip-toggle-focus, var(--a-border-focus));
1740
1799
  }
1800
+ @supports not selector(:focus-visible) {
1801
+ .navds-chips__toggle:focus {
1802
+ outline: none;
1803
+ box-shadow: 0 0 0 2px var(--ac-chip-toggle-focus, var(--a-border-focus));
1804
+ }
1805
+
1806
+ .navds-chips__toggle[aria-pressed="true"]:focus,
1807
+ .navds-chips__toggle:active:focus {
1808
+ box-shadow: inset 0 0 0 1px var(--a-surface-default), 0 0 0 2px var(--ac-chip-toggle-focus, var(--a-border-focus));
1809
+ }
1810
+ }
1741
1811
  .navds-chips__removable {
1742
1812
  gap: 0;
1743
1813
  }
@@ -1782,6 +1852,17 @@ body,
1782
1852
  .navds-chips__removable--neutral:focus-visible {
1783
1853
  box-shadow: 0 0 0 2px var(--a-border-focus);
1784
1854
  }
1855
+ @supports not selector(:focus-visible) {
1856
+ .navds-chips__removable--action:focus {
1857
+ outline: none;
1858
+ box-shadow: inset 0 0 0 1px var(--a-surface-default), 0 0 0 2px var(--a-border-focus);
1859
+ }
1860
+
1861
+ .navds-chips__removable--neutral:focus {
1862
+ outline: none;
1863
+ box-shadow: 0 0 0 2px var(--a-border-focus);
1864
+ }
1865
+ }
1785
1866
  .navds-chips__removable--action:hover {
1786
1867
  background-color: var(--ac-chip-removable-action-hover-bg, var(--a-surface-action-selected-hover));
1787
1868
  }
@@ -1905,12 +1986,16 @@ body,
1905
1986
  .navds-expansioncard__header-button:hover > :where(.navds-expansioncard__header-chevron) {
1906
1987
  transform: translateY(1px);
1907
1988
  }
1908
- .navds-expansioncard__header-button:focus {
1909
- outline: none;
1910
- }
1911
1989
  .navds-expansioncard__header-button:focus-visible {
1990
+ outline: none;
1912
1991
  box-shadow: var(--a-shadow-focus);
1913
1992
  }
1993
+ @supports not selector(:focus-visible) {
1994
+ .navds-expansioncard__header-button:focus {
1995
+ outline: none;
1996
+ box-shadow: var(--a-shadow-focus);
1997
+ }
1998
+ }
1914
1999
  .navds-expansioncard--open :where(.navds-expansioncard__header-button):hover :where(.navds-expansioncard__header-chevron) {
1915
2000
  transform: translateY(-1px) rotate(180deg);
1916
2001
  }
@@ -2039,7 +2124,7 @@ body,
2039
2124
  margin-top: var(--a-spacing-2);
2040
2125
  }
2041
2126
  .navds-fieldset > .navds-fieldset__description:not(:empty) {
2042
- margin-top: var(--a-spacing-1);
2127
+ margin-top: 0.125rem;
2043
2128
  }
2044
2129
  /* Applied when hideLegend is applied to fieldset */
2045
2130
  .navds-fieldset > .navds-sr-only + :not(:first-child):not(:empty) {
@@ -2058,7 +2143,7 @@ body,
2058
2143
  gap: var(--a-spacing-2);
2059
2144
  }
2060
2145
  .navds-form-field__description {
2061
- margin-top: -4px;
2146
+ margin-top: -6px;
2062
2147
  }
2063
2148
  .navds-form-field .navds-error-message,
2064
2149
  .navds-fieldset .navds-error-message {
@@ -2076,6 +2161,9 @@ body,
2076
2161
  .navds-form-field__error:empty {
2077
2162
  display: none;
2078
2163
  }
2164
+ .navds-form-field__subdescription {
2165
+ color: var(--ac-form-subdescription, var(--a-text-subtle));
2166
+ }
2079
2167
  .navds-error-summary {
2080
2168
  background-color: var(--ac-error-summary-bg, var(--a-surface-default));
2081
2169
  padding: var(--a-spacing-5);
@@ -2084,10 +2172,16 @@ body,
2084
2172
  .navds-error-summary--small {
2085
2173
  padding: var(--a-spacing-3);
2086
2174
  }
2087
- .navds-error-summary:focus {
2175
+ .navds-error-summary:focus-visible {
2088
2176
  box-shadow: var(--a-shadow-focus);
2089
2177
  outline: none;
2090
2178
  }
2179
+ @supports not selector(:focus-visible) {
2180
+ .navds-error-summary:focus {
2181
+ box-shadow: var(--a-shadow-focus);
2182
+ outline: none;
2183
+ }
2184
+ }
2091
2185
  .navds-error-summary__list {
2092
2186
  margin: var(--a-spacing-3) 0;
2093
2187
  display: flex;
@@ -2166,7 +2260,7 @@ body,
2166
2260
  .navds-radio__content {
2167
2261
  display: flex;
2168
2262
  flex-direction: column;
2169
- gap: var(--a-spacing-1);
2263
+ gap: 0.125rem;
2170
2264
  }
2171
2265
  .navds-checkbox--small > .navds-checkbox__input,
2172
2266
  .navds-radio--small > .navds-radio__input {
@@ -2184,14 +2278,26 @@ body,
2184
2278
  width: 1.25rem;
2185
2279
  height: 1.25rem;
2186
2280
  }
2187
- .navds-checkbox__input:focus + .navds-checkbox__label::before,
2188
- .navds-radio__input:focus + .navds-radio__label::before {
2281
+ .navds-checkbox__input:focus-visible + .navds-checkbox__label::before,
2282
+ .navds-radio__input:focus-visible + .navds-radio__label::before {
2189
2283
  box-shadow: inset 0 0 0 2px var(--ac-radio-checkbox-border, var(--a-border-default)), var(--a-shadow-focus);
2190
2284
  }
2191
- .navds-checkbox__input:hover:focus + .navds-checkbox__label::before,
2192
- .navds-radio__input:hover:focus + .navds-radio__label::before {
2285
+ @supports not selector(:focus-visible) {
2286
+ .navds-checkbox__input:focus + .navds-checkbox__label::before,
2287
+ .navds-radio__input:focus + .navds-radio__label::before {
2288
+ box-shadow: inset 0 0 0 2px var(--ac-radio-checkbox-border, var(--a-border-default)), var(--a-shadow-focus);
2289
+ }
2290
+ }
2291
+ .navds-checkbox__input:hover:focus-visible + .navds-checkbox__label::before,
2292
+ .navds-radio__input:hover:focus-visible + .navds-radio__label::before {
2193
2293
  box-shadow: inset 0 0 0 2px var(--ac-radio-checkbox-action, var(--a-surface-action)), var(--a-shadow-focus);
2194
2294
  }
2295
+ @supports not selector(:focus-visible) {
2296
+ .navds-checkbox__input:hover:focus + .navds-checkbox__label::before,
2297
+ .navds-radio__input:hover:focus + .navds-radio__label::before {
2298
+ box-shadow: inset 0 0 0 2px var(--ac-radio-checkbox-action, var(--a-surface-action)), var(--a-shadow-focus);
2299
+ }
2300
+ }
2195
2301
  .navds-checkbox__input:indeterminate + .navds-checkbox__label::before {
2196
2302
  box-shadow: none;
2197
2303
  background-color: var(--ac-radio-checkbox-action, var(--a-surface-action));
@@ -2221,27 +2327,46 @@ body,
2221
2327
  .navds-checkbox--small > .navds-checkbox__input:checked + .navds-checkbox__label::before {
2222
2328
  background-position: 4px center;
2223
2329
  }
2224
- .navds-checkbox__input:indeterminate:focus + .navds-checkbox__label::before,
2225
- .navds-checkbox__input:checked:focus + .navds-checkbox__label::before {
2330
+ .navds-checkbox__input:indeterminate:focus-visible + .navds-checkbox__label::before,
2331
+ .navds-checkbox__input:checked:focus-visible + .navds-checkbox__label::before {
2226
2332
  box-shadow: inset 0 0 0 1px var(--ac-radio-checkbox-bg, var(--a-surface-default)), var(--a-shadow-focus);
2227
2333
  }
2334
+ @supports not selector(:focus-visible) {
2335
+ .navds-checkbox__input:indeterminate:focus + .navds-checkbox__label::before,
2336
+ .navds-checkbox__input:checked:focus + .navds-checkbox__label::before {
2337
+ box-shadow: inset 0 0 0 1px var(--ac-radio-checkbox-bg, var(--a-surface-default)), var(--a-shadow-focus);
2338
+ }
2339
+ }
2228
2340
  .navds-radio__input:checked + .navds-radio__label::before {
2229
2341
  box-shadow: inset 0 0 0 2px var(--ac-radio-checkbox-action, var(--a-surface-action)),
2230
2342
  inset 0 0 0 4px var(--ac-radio-checkbox-bg, var(--a-surface-default));
2231
2343
  background-color: var(--ac-radio-checkbox-action, var(--a-surface-action));
2232
2344
  }
2233
- .navds-radio__input:checked:focus + .navds-radio__label::before {
2345
+ .navds-radio__input:checked:focus-visible + .navds-radio__label::before {
2234
2346
  box-shadow: inset 0 0 0 2px var(--ac-radio-checkbox-action, var(--a-surface-action)),
2235
2347
  inset 0 0 0 4px var(--ac-radio-checkbox-bg, var(--a-surface-default)), var(--a-shadow-focus);
2236
2348
  }
2349
+ @supports not selector(:focus-visible) {
2350
+ .navds-radio__input:checked:focus + .navds-radio__label::before {
2351
+ box-shadow: inset 0 0 0 2px var(--ac-radio-checkbox-action, var(--a-surface-action)),
2352
+ inset 0 0 0 4px var(--ac-radio-checkbox-bg, var(--a-surface-default)), var(--a-shadow-focus);
2353
+ }
2354
+ }
2237
2355
  .navds-checkbox__input:hover:not(:disabled) + .navds-checkbox__label,
2238
2356
  .navds-radio__input:hover:not(:disabled) + .navds-radio__label {
2239
2357
  color: var(--ac-radio-checkbox-action, var(--a-surface-action));
2240
2358
  }
2241
- .navds-checkbox__input:hover:not(:disabled):not(:checked):not(:indeterminate):not(:focus) + .navds-checkbox__label::before,
2242
- .navds-radio__input:hover:not(:disabled):not(:checked):not(:focus) + .navds-radio__label::before {
2359
+ .navds-checkbox__input:hover:not(:disabled):not(:checked):not(:indeterminate):not(:focus-visible)
2360
+ + .navds-checkbox__label::before,
2361
+ .navds-radio__input:hover:not(:disabled):not(:checked):not(:focus-visible) + .navds-radio__label::before {
2243
2362
  box-shadow: inset 0 0 0 2px var(--ac-radio-checkbox-action, var(--a-surface-action));
2244
2363
  }
2364
+ @supports not selector(:focus-visible) {
2365
+ .navds-checkbox__input:hover:not(:disabled):not(:checked):not(:indeterminate):not(:focus) + .navds-checkbox__label::before,
2366
+ .navds-radio__input:hover:not(:disabled):not(:checked):not(:focus) + .navds-radio__label::before {
2367
+ box-shadow: inset 0 0 0 2px var(--ac-radio-checkbox-action, var(--a-surface-action));
2368
+ }
2369
+ }
2245
2370
  .navds-checkbox__input:hover:not(:disabled):not(:checked):not(:indeterminate) + .navds-checkbox__label::before,
2246
2371
  .navds-radio__input:hover:not(:disabled):not(:checked) + .navds-radio__label::before {
2247
2372
  background-color: var(--ac-radio-checkbox-action-hover-bg, var(--a-surface-action-subtle));
@@ -2253,25 +2378,50 @@ body,
2253
2378
  box-shadow: inset 0 0 0 2px var(--ac-radio-checkbox-error-border, var(--a-border-danger));
2254
2379
  }
2255
2380
  .navds-checkbox--error
2256
- > .navds-checkbox__input:focus:not(:hover):not(:disabled):not(:checked):not(:indeterminate)
2381
+ > .navds-checkbox__input:focus-visible:not(:hover):not(:disabled):not(:checked):not(:indeterminate)
2257
2382
  + .navds-checkbox__label::before,
2258
- .navds-radio--error > .navds-radio__input:focus:not(:hover):not(:disabled):not(:checked) + .navds-radio__label::before {
2383
+ .navds-radio--error > .navds-radio__input:focus-visible:not(:hover):not(:disabled):not(:checked) + .navds-radio__label::before {
2259
2384
  box-shadow: inset 0 0 0 2px var(--ac-radio-checkbox-error-border, var(--a-border-danger)), var(--a-shadow-focus);
2260
2385
  }
2386
+ @supports not selector(:focus-visible) {
2387
+ .navds-checkbox--error
2388
+ > .navds-checkbox__input:focus:not(:hover):not(:disabled):not(:checked):not(:indeterminate)
2389
+ + .navds-checkbox__label::before,
2390
+ .navds-radio--error > .navds-radio__input:focus:not(:hover):not(:disabled):not(:checked) + .navds-radio__label::before {
2391
+ box-shadow: inset 0 0 0 2px var(--ac-radio-checkbox-error-border, var(--a-border-danger)), var(--a-shadow-focus);
2392
+ }
2393
+ }
2261
2394
  .navds-checkbox--error
2262
- > .navds-checkbox__input:hover:not(:disabled):not(:checked):not(:indeterminate):not(:focus)
2395
+ > .navds-checkbox__input:hover:not(:disabled):not(:checked):not(:indeterminate):not(:focus-visible)
2263
2396
  + .navds-checkbox__label::before,
2264
- .navds-radio--error > .navds-radio__input:hover:not(:disabled):not(:checked):not(:focus) + .navds-radio__label::before {
2397
+ .navds-radio--error > .navds-radio__input:hover:not(:disabled):not(:checked):not(:focus-visible) + .navds-radio__label::before {
2265
2398
  background-color: var(--ac-radio-checkbox-error-hover-bg, var(--a-surface-danger-subtle));
2266
2399
  box-shadow: inset 0 0 0 2px var(--ac-radio-checkbox-error-border, var(--a-border-danger));
2267
2400
  }
2268
2401
  .navds-checkbox--error
2269
- > .navds-checkbox__input:focus:hover:not(:disabled):not(:checked):not(:indeterminate)
2402
+ > .navds-checkbox__input:focus-visible:hover:not(:disabled):not(:checked):not(:indeterminate)
2270
2403
  + .navds-checkbox__label::before,
2271
- .navds-radio--error > .navds-radio__input:focus:hover:not(:disabled):not(:checked) + .navds-radio__label::before {
2404
+ .navds-radio--error > .navds-radio__input:focus-visible:hover:not(:disabled):not(:checked) + .navds-radio__label::before {
2272
2405
  background-color: var(--ac-radio-checkbox-error-hover-bg, var(--a-surface-danger-subtle));
2273
2406
  box-shadow: inset 0 0 0 2px var(--ac-radio-checkbox-error-border, var(--a-border-danger)), var(--a-shadow-focus);
2274
2407
  }
2408
+ @supports not selector(:focus-visible) {
2409
+ .navds-checkbox--error
2410
+ > .navds-checkbox__input:hover:not(:disabled):not(:checked):not(:indeterminate):not(:focus)
2411
+ + .navds-checkbox__label::before,
2412
+ .navds-radio--error > .navds-radio__input:hover:not(:disabled):not(:checked):not(:focus) + .navds-radio__label::before {
2413
+ background-color: var(--ac-radio-checkbox-error-hover-bg, var(--a-surface-danger-subtle));
2414
+ box-shadow: inset 0 0 0 2px var(--ac-radio-checkbox-error-border, var(--a-border-danger));
2415
+ }
2416
+
2417
+ .navds-checkbox--error
2418
+ > .navds-checkbox__input:focus:hover:not(:disabled):not(:checked):not(:indeterminate)
2419
+ + .navds-checkbox__label::before,
2420
+ .navds-radio--error > .navds-radio__input:focus:hover:not(:disabled):not(:checked) + .navds-radio__label::before {
2421
+ background-color: var(--ac-radio-checkbox-error-hover-bg, var(--a-surface-danger-subtle));
2422
+ box-shadow: inset 0 0 0 2px var(--ac-radio-checkbox-error-border, var(--a-border-danger)), var(--a-shadow-focus);
2423
+ }
2424
+ }
2275
2425
  .navds-checkbox--disabled,
2276
2426
  .navds-radio--disabled {
2277
2427
  opacity: 0.3;
@@ -2299,10 +2449,16 @@ body,
2299
2449
  .navds-select__input:hover {
2300
2450
  border-color: var(--ac-select-hover-bg, var(--a-border-action));
2301
2451
  }
2302
- .navds-select__input:focus {
2452
+ .navds-select__input:focus-visible {
2303
2453
  outline: none;
2304
2454
  box-shadow: var(--a-shadow-focus);
2305
2455
  }
2456
+ @supports not selector(:focus-visible) {
2457
+ .navds-select__input:focus {
2458
+ outline: none;
2459
+ box-shadow: var(--a-shadow-focus);
2460
+ }
2461
+ }
2306
2462
  .navds-select__container {
2307
2463
  position: relative;
2308
2464
  display: flex;
@@ -2381,7 +2537,7 @@ body,
2381
2537
  .navds-switch__content {
2382
2538
  display: flex;
2383
2539
  flex-direction: column;
2384
- gap: var(--a-spacing-1);
2540
+ gap: 0.125rem;
2385
2541
  padding: 0.75rem 0 0.75rem 3.25rem;
2386
2542
  }
2387
2543
  .navds-switch--right > .navds-switch__label-wrapper > .navds-switch__content {
@@ -2438,9 +2594,14 @@ body,
2438
2594
  .navds-switch__input:checked:disabled ~ .navds-switch__track {
2439
2595
  background-color: var(--ac-switch-checked-bg, var(--a-border-success));
2440
2596
  }
2441
- .navds-switch__input:focus ~ .navds-switch__track {
2597
+ .navds-switch__input:focus-visible ~ .navds-switch__track {
2442
2598
  box-shadow: 0 0 0 1px var(--a-surface-default), var(--a-shadow-focus);
2443
2599
  }
2600
+ @supports not selector(:focus-visible) {
2601
+ .navds-switch__input:focus ~ .navds-switch__track {
2602
+ box-shadow: 0 0 0 1px var(--a-surface-default), var(--a-shadow-focus);
2603
+ }
2604
+ }
2444
2605
  /* Thumb */
2445
2606
  .navds-switch__thumb {
2446
2607
  background-color: var(--ac-switch-thumb-bg, var(--a-surface-default));
@@ -2514,10 +2675,16 @@ body,
2514
2675
  .navds-text-field__input:hover {
2515
2676
  border-color: var(--ac-textfield-hover-border, var(--a-border-action));
2516
2677
  }
2517
- .navds-text-field__input:focus {
2678
+ .navds-text-field__input:focus-visible {
2518
2679
  outline: none;
2519
2680
  box-shadow: var(--a-shadow-focus);
2520
2681
  }
2682
+ @supports not selector(:focus-visible) {
2683
+ .navds-text-field__input:focus {
2684
+ outline: none;
2685
+ box-shadow: var(--a-shadow-focus);
2686
+ }
2687
+ }
2521
2688
  /**
2522
2689
  Error handling
2523
2690
  */
@@ -2525,9 +2692,14 @@ body,
2525
2692
  border-color: var(--ac-textfield-error-border, var(--a-border-danger));
2526
2693
  box-shadow: 0 0 0 1px var(--ac-textfield-error-border, var(--a-border-danger));
2527
2694
  }
2528
- .navds-text-field--error > .navds-text-field__input:focus:not(:hover):not(:disabled) {
2695
+ .navds-text-field--error > .navds-text-field__input:focus-visible:not(:hover):not(:disabled) {
2529
2696
  box-shadow: 0 0 0 1px var(--a-border-danger), var(--a-shadow-focus);
2530
2697
  }
2698
+ @supports not selector(:focus-visible) {
2699
+ .navds-text-field--error > .navds-text-field__input:focus:not(:hover):not(:disabled) {
2700
+ box-shadow: 0 0 0 1px var(--a-border-danger), var(--a-shadow-focus);
2701
+ }
2702
+ }
2531
2703
  /* Disabled handling */
2532
2704
  .navds-text-field__input:disabled {
2533
2705
  background-color: var(--ac-textfield-bg, var(--a-surface-default));
@@ -2574,10 +2746,16 @@ body,
2574
2746
  .navds-textarea__input:hover {
2575
2747
  border-color: var(--ac-textarea-hover-border, var(--a-border-action));
2576
2748
  }
2577
- .navds-textarea__input:focus {
2749
+ .navds-textarea__input:focus-visible {
2578
2750
  outline: none;
2579
2751
  box-shadow: var(--a-shadow-focus);
2580
2752
  }
2753
+ @supports not selector(:focus-visible) {
2754
+ .navds-textarea__input:focus {
2755
+ outline: none;
2756
+ box-shadow: var(--a-shadow-focus);
2757
+ }
2758
+ }
2581
2759
  .navds-form-field--small .navds-textarea__input {
2582
2760
  padding: 6px;
2583
2761
  }
@@ -2603,10 +2781,16 @@ body,
2603
2781
  /**
2604
2782
  Error handling
2605
2783
  */
2606
- .navds-textarea--error .navds-textarea__input:not(:hover):not(:focus):not(:disabled) {
2784
+ .navds-textarea--error .navds-textarea__input:not(:hover):not(:focus-visible):not(:disabled) {
2607
2785
  box-shadow: 0 0 0 1px var(--ac-textarea-error-border, var(--a-border-danger));
2608
2786
  border-color: var(--ac-textarea-error-border, var(--a-border-danger));
2609
2787
  }
2788
+ @supports not selector(:focus-visible) {
2789
+ .navds-textarea--error .navds-textarea__input:not(:hover):not(:focus):not(:disabled) {
2790
+ box-shadow: 0 0 0 1px var(--ac-textarea-error-border, var(--a-border-danger));
2791
+ border-color: var(--ac-textarea-error-border, var(--a-border-danger));
2792
+ }
2793
+ }
2610
2794
  .navds-textarea__input:disabled {
2611
2795
  background-color: var(--ac-textarea-bg, var(--a-surface-default));
2612
2796
  border-color: var(--ac-textarea-border, var(--a-border-default));
@@ -2686,10 +2870,16 @@ body,
2686
2870
  .navds-search__button-clear:hover {
2687
2871
  color: var(--ac-search-clear-icon-hover, var(--a-text-action));
2688
2872
  }
2689
- .navds-search__button-clear:focus {
2873
+ .navds-search__button-clear:focus-visible {
2690
2874
  box-shadow: var(--a-shadow-focus);
2691
2875
  outline: none;
2692
2876
  }
2877
+ @supports not selector(:focus-visible) {
2878
+ .navds-search__button-clear:focus {
2879
+ box-shadow: var(--a-shadow-focus);
2880
+ outline: none;
2881
+ }
2882
+ }
2693
2883
  .navds-search__button-search {
2694
2884
  flex-shrink: 0;
2695
2885
  min-width: 64px;
@@ -2719,29 +2909,52 @@ body,
2719
2909
  .navds-search__wrapper-inner:focus-within + .navds-search__button-search.navds-button--secondary:hover {
2720
2910
  z-index: auto;
2721
2911
  }
2722
- .navds-search__button-search.navds-button--secondary:focus {
2912
+ .navds-search__button-search.navds-button--secondary:focus-visible {
2723
2913
  box-shadow: 0 0 0 1px var(--ac-search-button-border, var(--a-border-default)) inset, var(--a-shadow-focus);
2724
2914
  }
2725
- .navds-search__button-search.navds-button--secondary:focus:hover {
2915
+ .navds-search__button-search.navds-button--secondary:focus-visible:hover {
2726
2916
  box-shadow: 0 0 0 1px var(--ac-search-button-border-hover, var(--a-border-action)) inset, var(--a-shadow-focus);
2727
2917
  }
2728
- .navds-search__button-search.navds-button--secondary:focus:active {
2918
+ .navds-search__button-search.navds-button--secondary:focus-visible:active {
2729
2919
  box-shadow: 0 0 0 1px var(--ac-search-button-focus-active-border, var(--a-surface-default)) inset, var(--a-shadow-focus);
2730
2920
  }
2921
+ @supports not selector(:focus-visible) {
2922
+ .navds-search__button-search.navds-button--secondary:focus {
2923
+ box-shadow: 0 0 0 1px var(--ac-search-button-border, var(--a-border-default)) inset, var(--a-shadow-focus);
2924
+ }
2925
+
2926
+ .navds-search__button-search.navds-button--secondary:focus:hover {
2927
+ box-shadow: 0 0 0 1px var(--ac-search-button-border-hover, var(--a-border-action)) inset, var(--a-shadow-focus);
2928
+ }
2929
+
2930
+ .navds-search__button-search.navds-button--secondary:focus:active {
2931
+ box-shadow: 0 0 0 1px var(--ac-search-button-focus-active-border, var(--a-surface-default)) inset, var(--a-shadow-focus);
2932
+ }
2933
+ }
2731
2934
  /* Error-handling */
2732
2935
  .navds-search--error .navds-search__input:not(:hover):not(:disabled) {
2733
2936
  border-color: var(--ac-search-error-border, var(--a-border-danger));
2734
2937
  box-shadow: inset 0 0 0 1px var(--ac-search-error-border, var(--a-border-danger));
2735
2938
  }
2736
- .navds-search--error .navds-search__input:focus:not(:hover):not(:disabled) {
2939
+ .navds-search--error .navds-search__input:focus-visible:not(:hover):not(:disabled) {
2737
2940
  box-shadow: inset 0 0 0 1px var(--ac-search-error-border, var(--a-border-danger)), var(--a-shadow-focus);
2738
2941
  }
2739
2942
  /* Focus layering */
2740
- .navds-search__input:focus,
2943
+ .navds-search__input:focus-visible,
2741
2944
  .navds-search__button-clear,
2742
- .navds-search__button-search:focus {
2945
+ .navds-search__button-search:focus-visible {
2743
2946
  z-index: 1;
2744
2947
  }
2948
+ @supports not selector(:focus-visible) {
2949
+ .navds-search--error .navds-search__input:focus:not(:hover):not(:disabled) {
2950
+ box-shadow: inset 0 0 0 1px var(--ac-search-error-border, var(--a-border-danger)), var(--a-shadow-focus);
2951
+ }
2952
+
2953
+ .navds-search__input:focus,
2954
+ .navds-search__button-search:focus {
2955
+ z-index: 1;
2956
+ }
2957
+ }
2745
2958
  .navds-help-text__button {
2746
2959
  margin: 0;
2747
2960
  padding: 0;
@@ -2755,10 +2968,15 @@ body,
2755
2968
  color: var(--ac-help-text-button-color, var(--a-surface-action));
2756
2969
  font-size: 1.5rem;
2757
2970
  }
2758
- .navds-help-text__button:focus {
2759
- outline: none;
2971
+ .navds-help-text__button:focus-visible {
2760
2972
  box-shadow: 0 0 0 1px var(--a-surface-default), 0 0 0 4px var(--a-border-focus);
2761
2973
  }
2974
+ @supports not selector(:focus-visible) {
2975
+ .navds-help-text__button:focus {
2976
+ outline: none;
2977
+ box-shadow: 0 0 0 1px var(--a-surface-default), 0 0 0 4px var(--a-border-focus);
2978
+ }
2979
+ }
2762
2980
  .navds-help-text__icon {
2763
2981
  border-radius: var(--a-border-radius-full);
2764
2982
  }
@@ -2774,12 +2992,21 @@ body,
2774
2992
  .navds-help-text__icon--filled {
2775
2993
  display: none;
2776
2994
  }
2777
- .navds-help-text__button:where(:hover, :focus, [aria-expanded="true"]) > .navds-help-text__icon {
2995
+ .navds-help-text__button:where(:hover, :focus-visible, [aria-expanded="true"]) > .navds-help-text__icon {
2778
2996
  display: none;
2779
2997
  }
2780
- .navds-help-text__button:where(:hover, :focus, [aria-expanded="true"]) > .navds-help-text__icon--filled {
2998
+ .navds-help-text__button:where(:hover, :focus-visible, [aria-expanded="true"]) > .navds-help-text__icon--filled {
2781
2999
  display: inherit;
2782
3000
  }
3001
+ @supports not selector(:focus-visible) {
3002
+ .navds-help-text__button:where(:focus) > .navds-help-text__icon {
3003
+ display: none;
3004
+ }
3005
+
3006
+ .navds-help-text__button:where(:focus) > .navds-help-text__icon--filled {
3007
+ display: inherit;
3008
+ }
3009
+ }
2783
3010
  .navds-link {
2784
3011
  color: var(--ac-link-text, var(--a-text-action));
2785
3012
  text-decoration: underline;
@@ -2794,13 +3021,22 @@ body,
2794
3021
  .navds-link:hover {
2795
3022
  text-decoration: none;
2796
3023
  }
2797
- .navds-link:focus {
3024
+ .navds-link:focus-visible {
2798
3025
  outline: none;
2799
3026
  color: var(--ac-link-focus-text, var(--a-text-on-action));
2800
3027
  text-decoration: none;
2801
3028
  background-color: var(--ac-link-focus-bg, var(--a-border-focus));
2802
3029
  box-shadow: 0 0 0 2px var(--ac-link-focus-border, var(--a-border-focus));
2803
3030
  }
3031
+ @supports not selector(:focus-visible) {
3032
+ .navds-link:focus {
3033
+ outline: none;
3034
+ color: var(--ac-link-focus-text, var(--a-text-on-action));
3035
+ text-decoration: none;
3036
+ background-color: var(--ac-link-focus-bg, var(--a-border-focus));
3037
+ box-shadow: 0 0 0 2px var(--ac-link-focus-border, var(--a-border-focus));
3038
+ }
3039
+ }
2804
3040
  .navds-link:active {
2805
3041
  outline: none;
2806
3042
  color: var(--ac-link-active-text, var(--a-text-on-action));
@@ -2923,11 +3159,18 @@ body,
2923
3159
  .navds-modal__content {
2924
3160
  padding: var(--a-spacing-4);
2925
3161
  }
2926
- .navds-modal:focus,
3162
+ .navds-modal:focus-visible,
2927
3163
  .navds-modal--focus {
2928
3164
  box-shadow: var(--a-shadow-focus);
2929
3165
  outline: none;
2930
3166
  }
3167
+ @supports not selector(:focus-visible) {
3168
+ .navds-modal:focus,
3169
+ .navds-modal--focus {
3170
+ box-shadow: var(--a-shadow-focus);
3171
+ outline: none;
3172
+ }
3173
+ }
2931
3174
  .navds-modal__overlay {
2932
3175
  position: fixed;
2933
3176
  z-index: var(--a-z-index-modal);
@@ -2991,9 +3234,14 @@ body,
2991
3234
  background-color: var(--ac-pagination-selected-bg, var(--a-surface-action-selected));
2992
3235
  color: var(--ac-pagination-selected-text, var(--a-text-on-action));
2993
3236
  }
2994
- .navds-pagination__item[aria-current="true"]:focus {
3237
+ .navds-pagination__item[aria-current="true"]:focus-visible {
2995
3238
  box-shadow: inset 0 0 0 1px var(--a-surface-default), var(--a-shadow-focus);
2996
3239
  }
3240
+ @supports not selector(:focus-visible) {
3241
+ .navds-pagination__item[aria-current="true"]:focus {
3242
+ box-shadow: inset 0 0 0 1px var(--a-surface-default), var(--a-shadow-focus);
3243
+ }
3244
+ }
2997
3245
  .navds-pagination__prev-next {
2998
3246
  display: flex;
2999
3247
  align-items: center;
@@ -3024,10 +3272,16 @@ body,
3024
3272
  .navds-popover--hidden {
3025
3273
  display: none;
3026
3274
  }
3027
- .navds-popover:focus {
3275
+ .navds-popover:focus-visible {
3028
3276
  outline: none;
3029
3277
  box-shadow: var(--a-shadow-focus);
3030
3278
  }
3279
+ @supports not selector(:focus-visible) {
3280
+ .navds-popover:focus {
3281
+ outline: none;
3282
+ box-shadow: var(--a-shadow-focus);
3283
+ }
3284
+ }
3031
3285
  .navds-popover__arrow {
3032
3286
  position: absolute;
3033
3287
  z-index: -1;
@@ -3117,14 +3371,26 @@ body,
3117
3371
  .navds-date .rdp-day_range_start.rdp-day_range_end {
3118
3372
  border-radius: var(--a-border-radius-xlarge);
3119
3373
  }
3120
- .navds-date .rdp-button:not(.rdp-day_selected):not([disabled]):focus,
3121
- .navds-date .navds-date__month-button:not(.rdp-day_selected):not([disabled]):focus {
3374
+ .navds-date .rdp-button:not(.rdp-day_selected):not([disabled]):focus-visible,
3375
+ .navds-date .navds-date__month-button:not(.rdp-day_selected):not([disabled]):focus-visible {
3122
3376
  box-shadow: var(--a-shadow-focus);
3123
3377
  }
3124
- .navds-date .rdp-button.rdp-day_selected:not([disabled]):focus,
3125
- .navds-date .navds-date__month-button.rdp-day_selected:not([disabled]):focus {
3378
+ @supports not selector(:focus-visible) {
3379
+ .navds-date .rdp-button:not(.rdp-day_selected):not([disabled]):focus,
3380
+ .navds-date .navds-date__month-button:not(.rdp-day_selected):not([disabled]):focus {
3381
+ box-shadow: var(--a-shadow-focus);
3382
+ }
3383
+ }
3384
+ .navds-date .rdp-button.rdp-day_selected:not([disabled]):focus-visible,
3385
+ .navds-date .navds-date__month-button.rdp-day_selected:not([disabled]):focus-visible {
3126
3386
  box-shadow: inset 0 0 0 1px var(--a-surface-default), var(--a-shadow-focus);
3127
3387
  }
3388
+ @supports not selector(:focus-visible) {
3389
+ .navds-date .rdp-button.rdp-day_selected:not([disabled]):focus,
3390
+ .navds-date .navds-date__month-button.rdp-day_selected:not([disabled]):focus {
3391
+ box-shadow: inset 0 0 0 1px var(--a-surface-default), var(--a-shadow-focus);
3392
+ }
3393
+ }
3128
3394
  /* Monthpicker */
3129
3395
  .navds-date__month-button {
3130
3396
  all: unset;
@@ -3135,11 +3401,18 @@ body,
3135
3401
  border-radius: var(--a-border-radius-medium);
3136
3402
  cursor: pointer;
3137
3403
  }
3138
- .navds-date__month-button:focus,
3139
- .navds-monthpicker__caption-button:focus {
3404
+ .navds-date__month-button:focus-visible,
3405
+ .navds-monthpicker__caption-button:focus-visible {
3140
3406
  box-shadow: var(--a-shadow-focus);
3141
3407
  z-index: 1;
3142
3408
  }
3409
+ @supports not selector(:focus-visible) {
3410
+ .navds-date__month-button:focus,
3411
+ .navds-monthpicker__caption-button:focus {
3412
+ box-shadow: var(--a-shadow-focus);
3413
+ z-index: 1;
3414
+ }
3415
+ }
3143
3416
  .navds-date__year-label {
3144
3417
  display: flex;
3145
3418
  align-items: center;
@@ -3162,10 +3435,15 @@ body,
3162
3435
  width: fit-content;
3163
3436
  }
3164
3437
  /* Focus layering */
3165
- .navds-date__field-input:focus,
3438
+ .navds-date__field-input:focus-visible,
3166
3439
  .navds-date__field-button {
3167
3440
  z-index: 1;
3168
3441
  }
3442
+ @supports not selector(:focus-visible) {
3443
+ .navds-date__field-input:focus {
3444
+ z-index: 1;
3445
+ }
3446
+ }
3169
3447
  .navds-date .rdp-day_selected,
3170
3448
  .navds-monthpicker__month--selected {
3171
3449
  color: var(--ac-date-selected-text, var(--a-text-on-action));
@@ -3209,9 +3487,14 @@ body,
3209
3487
  border-color: var(--ac-date-input-error-border, var(--a-border-danger));
3210
3488
  box-shadow: inset 0 0 0 1px var(--ac-date-input-error-border, var(--a-border-danger));
3211
3489
  }
3212
- .navds-date__field--error .navds-date__field-input:focus:not(:hover):not(:disabled) {
3490
+ .navds-date__field--error .navds-date__field-input:focus-visible:not(:hover):not(:disabled) {
3213
3491
  box-shadow: inset 0 0 0 1px var(--ac-date-input-error-border, var(--a-border-danger)), var(--a-shadow-focus);
3214
3492
  }
3493
+ @supports not selector(:focus-visible) {
3494
+ .navds-date__field--error .navds-date__field-input:focus:not(:hover):not(:disabled) {
3495
+ box-shadow: inset 0 0 0 1px var(--ac-date-input-error-border, var(--a-border-danger)), var(--a-shadow-focus);
3496
+ }
3497
+ }
3215
3498
  .navds-date__field-button {
3216
3499
  position: absolute;
3217
3500
  right: var(--a-spacing-2);
@@ -3428,17 +3711,34 @@ body,
3428
3711
  background-color: var(--ac-toggle-group-button-neutral-hover-bg, var(--a-surface-neutral-subtle-hover));
3429
3712
  color: var(--ac-toggle-group-button-neutral-hover-text, var(--a-text-default));
3430
3713
  }
3431
- .navds-toggle-group__button:focus {
3714
+ .navds-toggle-group__button:focus-visible {
3432
3715
  outline: none;
3433
3716
  box-shadow: 0 0 0 1px var(--a-surface-default), 0 0 0 4px var(--a-border-focus);
3434
3717
  }
3435
- .navds-toggle-group__button:focus:hover[aria-pressed="false"] {
3718
+ @supports not selector(:focus-visible) {
3719
+ .navds-toggle-group__button:focus {
3720
+ outline: none;
3721
+ box-shadow: 0 0 0 1px var(--a-surface-default), 0 0 0 4px var(--a-border-focus);
3722
+ }
3723
+ }
3724
+ .navds-toggle-group__button:focus-visible:hover[aria-pressed="false"] {
3436
3725
  box-shadow: 0 0 0 1px var(--ac-toggle-group-button-hover-bg, var(--a-surface-action-subtle)), 0 0 0 4px var(--a-border-focus);
3437
3726
  }
3727
+ @supports not selector(:focus-visible) {
3728
+ .navds-toggle-group__button:focus:hover[aria-pressed="false"] {
3729
+ box-shadow: 0 0 0 1px var(--ac-toggle-group-button-hover-bg, var(--a-surface-action-subtle)), 0 0 0 4px var(--a-border-focus);
3730
+ }
3731
+ }
3438
3732
  .navds-toggle-group--neutral > .navds-toggle-group__button:focus:hover[aria-pressed="false"] {
3439
3733
  box-shadow: 0 0 0 1px var(--ac-toggle-group-button-neutral-hover-bg, var(--a-surface-neutral-subtle-hover)),
3440
3734
  0 0 0 4px var(--a-border-focus);
3441
3735
  }
3736
+ @supports not selector(:focus-visible) {
3737
+ .navds-toggle-group--neutral > .navds-toggle-group__button:focus-visible:hover[aria-pressed="false"] {
3738
+ box-shadow: 0 0 0 1px var(--ac-toggle-group-button-neutral-hover-bg, var(--a-surface-neutral-subtle-hover)),
3739
+ 0 0 0 4px var(--a-border-focus);
3740
+ }
3741
+ }
3442
3742
  .navds-toggle-group__button-inner {
3443
3743
  display: flex;
3444
3744
  align-items: center;
@@ -3493,10 +3793,16 @@ body,
3493
3793
  box-shadow: var(--a-shadow-medium);
3494
3794
  border-color: var(--ac-link-panel-hover-border, var(--a-border-action));
3495
3795
  }
3496
- .navds-link-panel:focus {
3796
+ .navds-link-panel:focus-visible {
3497
3797
  box-shadow: var(--a-shadow-focus);
3498
3798
  outline: none;
3499
3799
  }
3800
+ @supports not selector(:focus-visible) {
3801
+ .navds-link-panel:focus {
3802
+ box-shadow: var(--a-shadow-focus);
3803
+ outline: none;
3804
+ }
3805
+ }
3500
3806
  .navds-link-panel__chevron {
3501
3807
  flex-shrink: 0;
3502
3808
  font-size: 1.5rem;
@@ -3531,10 +3837,16 @@ body,
3531
3837
  .navds-read-more__button:active {
3532
3838
  background-color: var(--ac-read-more-active-bg, var(--a-surface-active));
3533
3839
  }
3534
- .navds-read-more__button:focus {
3840
+ .navds-read-more__button:focus-visible {
3535
3841
  outline: none;
3536
3842
  box-shadow: var(--a-shadow-focus);
3537
3843
  }
3844
+ @supports not selector(:focus-visible) {
3845
+ .navds-read-more__button:focus {
3846
+ outline: none;
3847
+ box-shadow: var(--a-shadow-focus);
3848
+ }
3849
+ }
3538
3850
  .navds-read-more__content {
3539
3851
  margin-top: var(--a-spacing-1);
3540
3852
  border-left: 2px solid var(--ac-read-more-line, var(--a-border-divider));
@@ -3635,11 +3947,18 @@ button.navds-stepper__step {
3635
3947
  color: var(--ac-stepper-non-interactive, var(--a-text-subtle));
3636
3948
  cursor: default;
3637
3949
  }
3638
- :where(.navds-stepper__step):focus {
3950
+ :where(.navds-stepper__step):focus-visible {
3639
3951
  outline: none;
3640
3952
  box-shadow: var(--a-shadow-focus);
3641
3953
  isolation: isolate;
3642
3954
  }
3955
+ @supports not selector(:focus-visible) {
3956
+ .navds-stepper__step:focus {
3957
+ outline: none;
3958
+ box-shadow: var(--a-shadow-focus);
3959
+ isolation: isolate;
3960
+ }
3961
+ }
3643
3962
  .navds-stepper__circle {
3644
3963
  grid-column: circle;
3645
3964
  display: inline-grid;
@@ -3871,10 +4190,16 @@ button.navds-stepper__step {
3871
4190
  .navds-table__sort-button:hover {
3872
4191
  background-color: var(--ac-table-sort-button-hover-bg, var(--a-bg-subtle));
3873
4192
  }
3874
- .navds-table__sort-button:focus {
4193
+ .navds-table__sort-button:focus-visible {
3875
4194
  outline: none;
3876
4195
  box-shadow: inset 0 0 0 2px var(--a-border-focus);
3877
4196
  }
4197
+ @supports not selector(:focus-visible) {
4198
+ .navds-table__sort-button:focus {
4199
+ outline: none;
4200
+ box-shadow: inset 0 0 0 2px var(--a-border-focus);
4201
+ }
4202
+ }
3878
4203
  .navds-table__header-cell[aria-sort="ascending"] .navds-table__sort-button,
3879
4204
  .navds-table__header-cell[aria-sort="descending"] .navds-table__sort-button {
3880
4205
  background-color: var(--ac-table-sort-button-sorted-bg, var(--a-surface-selected));
@@ -3920,9 +4245,14 @@ button.navds-stepper__step {
3920
4245
  .navds-table--small .navds-table__toggle-expand-button {
3921
4246
  padding: var(--a-spacing-2);
3922
4247
  }
3923
- .navds-table__toggle-expand-button:focus {
4248
+ .navds-table__toggle-expand-button:focus-visible {
3924
4249
  box-shadow: inset var(--a-shadow-focus);
3925
4250
  }
4251
+ @supports not selector(:focus-visible) {
4252
+ .navds-table__toggle-expand-button:focus {
4253
+ box-shadow: inset var(--a-shadow-focus);
4254
+ }
4255
+ }
3926
4256
  .navds-table__expandable-icon {
3927
4257
  font-size: 1.5rem;
3928
4258
  }
@@ -4007,11 +4337,18 @@ button.navds-stepper__step {
4007
4337
  box-shadow: inset 0 -3px 0 0 var(--ac-tabs-selected-border, var(--a-border-action));
4008
4338
  color: var(--ac-tabs-selected-text, var(--a-text-default));
4009
4339
  }
4010
- .navds-tabs__tab:focus {
4340
+ .navds-tabs__tab:focus-visible {
4011
4341
  outline: none;
4012
4342
  box-shadow: inset var(--a-shadow-focus);
4013
4343
  color: var(--ac-tabs-focus-text, var(--a-text-default));
4014
4344
  }
4345
+ @supports not selector(:focus-visible) {
4346
+ .navds-tabs__tab:focus {
4347
+ outline: none;
4348
+ box-shadow: inset var(--a-shadow-focus);
4349
+ color: var(--ac-tabs-focus-text, var(--a-text-default));
4350
+ }
4351
+ }
4015
4352
  .navds-tabs__tab-inner {
4016
4353
  display: flex;
4017
4354
  align-items: center;
@@ -4048,6 +4385,12 @@ button.navds-stepper__step {
4048
4385
  outline: none;
4049
4386
  box-shadow: inset 0 0 0 2px var(--a-border-focus);
4050
4387
  }
4388
+ @supports not selector(:focus-visible) {
4389
+ .navds-tabs__tabpanel:focus {
4390
+ outline: none;
4391
+ box-shadow: inset 0 0 0 2px var(--a-border-focus);
4392
+ }
4393
+ }
4051
4394
  .navds-list ul,
4052
4395
  .navds-list ol {
4053
4396
  padding: 0;