@equinor/eds-core-react 2.4.1 → 2.5.0-beta.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 (36) hide show
  1. package/build/index.css +871 -103
  2. package/build/index.min.css +1 -1
  3. package/dist/eds-core-react.cjs +19 -9
  4. package/dist/esm/components/Autocomplete/MultipleInput.js +17 -3
  5. package/dist/esm/components/Autocomplete/useAutocomplete.js +2 -1
  6. package/dist/esm/components/Banner/Banner.tokens.js +0 -1
  7. package/dist/esm/components/Icon/Icon.js +0 -2
  8. package/dist/esm/components/Pagination/Pagination.js +0 -1
  9. package/dist/esm/components/Tabs/Tabs.js +0 -1
  10. package/dist/esm-next/components/next/Button/Button.js +52 -25
  11. package/dist/esm-next/components/next/Chip/Chip.js +77 -0
  12. package/dist/esm-next/components/next/Link/Link.js +19 -7
  13. package/dist/esm-next/components/next/Slot/Slot.js +47 -0
  14. package/dist/esm-next/index.next.js +2 -0
  15. package/dist/index.next.cjs +244 -90
  16. package/dist/types/components/Autocomplete/Autocomplete.d.ts +16 -2
  17. package/dist/types/components/Autocomplete/AutocompleteContext.d.ts +6 -2
  18. package/dist/types/components/Autocomplete/Option.d.ts +5 -3
  19. package/dist/types/components/Autocomplete/useAutocomplete.d.ts +4 -2
  20. package/dist/types/components/Chip/Icon.d.ts +18 -2
  21. package/dist/types/components/Datepicker/calendars/CalendarWrapper.d.ts +1 -1
  22. package/dist/types/components/Switch/Switch.styles.d.ts +3 -3
  23. package/dist/types/components/Typography/Typography.stories.shared.d.ts +18 -16
  24. package/dist/types/components/next/Button/Button.d.ts +4 -1
  25. package/dist/types/components/next/Button/Button.types.d.ts +13 -2
  26. package/dist/types/components/next/Chip/Chip.d.ts +8 -0
  27. package/dist/types/components/next/Chip/Chip.figma.d.ts +1 -0
  28. package/dist/types/components/next/Chip/Chip.types.d.ts +68 -0
  29. package/dist/types/components/next/Chip/index.d.ts +2 -0
  30. package/dist/types/components/next/Link/Link.d.ts +2 -2
  31. package/dist/types/components/next/Link/Link.types.d.ts +5 -3
  32. package/dist/types/components/next/Slot/Slot.d.ts +3 -0
  33. package/dist/types/components/next/Slot/Slot.types.d.ts +4 -0
  34. package/dist/types/components/next/Slot/index.d.ts +2 -0
  35. package/dist/types/components/next/index.d.ts +4 -0
  36. package/package.json +23 -15
package/build/index.css CHANGED
@@ -1,9 +1,9 @@
1
1
 
2
- @layer eds-components;
2
+ @layer eds-elements, eds-components;
3
3
  /* EDS 2.0 Next Components - CSS */
4
4
  /* Define layer order - eds-components has lowest priority for easy user overrides */
5
5
  /*
6
- * Font loading:
6
+ * Font import:
7
7
  * Next components use two font families:
8
8
  * - "Inter" for UI text (buttons, inputs, labels, etc.)
9
9
  * - "Equinor" for headings
@@ -16,7 +16,7 @@
16
16
  */
17
17
  :root,[data-color-scheme=light]{color-scheme:light}
18
18
  [data-color-scheme=dark]{color-scheme:dark}
19
- :root{--eds-color-bg-floating:light-dark(#fff,#202223);--eds-color-bg-backdrop:light-dark(#aeaeae,#738696);--eds-color-bg-input:light-dark(#f5f5f5,#0b0b0b);--eds-color-border-focus:light-dark(#6fb6e9,#2d8bc5);--eds-color-text-link:light-dark(#0070a9,#5abbfb);--eds-color-bg-disabled:light-dark(#e1e1e1,#525c65);--eds-color-border-disabled:light-dark(#aeaeae,#738696);--eds-color-text-disabled:light-dark(#aeaeae,#738696);--eds-color-accent-1:light-dark(#eaf8fa,#0a0b0b);--eds-color-accent-2:light-dark(#f6ffff,#1e2323);--eds-color-accent-3:light-dark(#cfe7e9,#3c6266);--eds-color-accent-4:light-dark(#bbdbdf,#3e7378);--eds-color-accent-5:light-dark(#a2cdd2,#41878e);--eds-color-accent-6:light-dark(#bbdbdf,#3c6266);--eds-color-accent-7:light-dark(#7cbac1,#439199);--eds-color-accent-8:light-dark(#21767e,#6ec0c9);--eds-color-accent-9:light-dark(#206f77,#8cd2da);--eds-color-accent-10:light-dark(#205c62,#ace3e9);--eds-color-accent-11:light-dark(#20565c,#c7f1f6);--eds-color-accent-12:light-dark(#1f6369,#bcebf1);--eds-color-accent-13:light-dark(#141f20,#e6ffff);--eds-color-accent-14:light-dark(#cae4e7,#2c3839);--eds-color-accent-15:light-dark(#fff,#030303);--eds-color-neutral-1:light-dark(#f5f5f5,#0b0b0b);--eds-color-neutral-2:light-dark(#fff,#202223);--eds-color-neutral-3:light-dark(#e1e1e1,#525c65);--eds-color-neutral-4:light-dark(#d4d4d4,#5d6b76);--eds-color-neutral-5:light-dark(#c4c4c4,#6b7d8b);--eds-color-neutral-6:light-dark(#d4d4d4,#525c65);--eds-color-neutral-7:light-dark(#aeaeae,#738696);--eds-color-neutral-8:light-dark(#696969,#9fb4c6);--eds-color-neutral-9:light-dark(#636363,#b4c7d7);--eds-color-neutral-10:light-dark(#525252,#cadae7);--eds-color-neutral-11:light-dark(#4d4d4d,#deeaf4);--eds-color-neutral-12:light-dark(#585858,#d6e3ee);--eds-color-neutral-13:light-dark(#1d1d1d,#f5fdff);--eds-color-neutral-14:light-dark(#dedede,#333639);--eds-color-neutral-15:light-dark(#fff,#030303);--eds-color-info-1:light-dark(#e7f8ff,#0a0b0c);--eds-color-info-2:light-dark(#f4ffff,#1d2226);--eds-color-info-3:light-dark(#cae6fa,#33607e);--eds-color-info-4:light-dark(#b5daf5,#316f98);--eds-color-info-5:light-dark(#99cbf0,#2e82b7);--eds-color-info-6:light-dark(#b5daf5,#33607e);--eds-color-info-7:light-dark(#6fb6e9,#2d8bc5);--eds-color-info-8:light-dark(#0070a9,#5abbfb);--eds-color-info-9:light-dark(#006aa0,#7dceff);--eds-color-info-10:light-dark(#085883,#a2e0ff);--eds-color-info-11:light-dark(#0e5279,#c4eeff);--eds-color-info-12:light-dark(#015e8d,#b7e8ff);--eds-color-info-13:light-dark(#121e27,#ecffff);--eds-color-info-14:light-dark(#c5e3f9,#2a3741);--eds-color-info-15:light-dark(#fff,#030304);--eds-color-success-1:light-dark(#eafbe8,#0a0c0a);--eds-color-success-2:light-dark(#f6fff5,#1e231e);--eds-color-success-3:light-dark(#cfeacc,#3c673a);--eds-color-success-4:light-dark(#bbe0b8,#3e793c);--eds-color-success-5:light-dark(#a2d49e,#418e3e);--eds-color-success-6:light-dark(#bbe0b8,#3c673a);--eds-color-success-7:light-dark(#7cc278,#439941);--eds-color-success-8:light-dark(#227e22,#6eca6a);--eds-color-success-9:light-dark(#207720,#8cdb87);--eds-color-success-10:light-dark(#20621f,#aceba8);--eds-color-success-11:light-dark(#215c1f,#c7f7c3);--eds-color-success-12:light-dark(#20691f,#bcf2b8);--eds-color-success-13:light-dark(#142114,#e6ffe3);--eds-color-success-14:light-dark(#cae8c7,#2c392b);--eds-color-success-15:light-dark(#fff,#030303);--eds-color-warning-1:light-dark(#fff1e2,#0c0b0a);--eds-color-warning-2:light-dark(#fffcf0,#27201b);--eds-color-warning-3:light-dark(#fbdac1,#7e4e25);--eds-color-warning-4:light-dark(#f6caaa,#97571b);--eds-color-warning-5:light-dark(#f0b689,#b46201);--eds-color-warning-6:light-dark(#f6caaa,#7e4e25);--eds-color-warning-7:light-dark(#e89959,#c36800);--eds-color-warning-8:light-dark(#a34e00,#f99539);--eds-color-warning-9:light-dark(#9b4900,#ffad63);--eds-color-warning-10:light-dark(#813e00,#ffc791);--eds-color-warning-11:light-dark(#773a00,#ffddb9);--eds-color-warning-12:light-dark(#8a4100,#ffd4aa);--eds-color-warning-13:light-dark(#27190e,#fff7e6);--eds-color-warning-14:light-dark(#fad6bc,#413226);--eds-color-warning-15:light-dark(#fff,#040303);--eds-color-danger-1:light-dark(#ffecea,#0d0a0a);--eds-color-danger-2:light-dark(#fff9f8,#2a1e1e);--eds-color-danger-3:light-dark(#ffd0ce,#923a3c);--eds-color-danger-4:light-dark(#ffbcba,#b03940);--eds-color-danger-5:light-dark(#ffa3a1,#d43745);--eds-color-danger-6:light-dark(#ffbcba,#923a3c);--eds-color-danger-7:light-dark(#ff7a7d,#e53748);--eds-color-danger-8:light-dark(#c6002d,#ff8082);--eds-color-danger-9:light-dark(#bc002a,#ffa3a1);--eds-color-danger-10:light-dark(#9a1026,#ffc1bf);--eds-color-danger-11:light-dark(#8e1525,#ffd9d7);--eds-color-danger-12:light-dark(#a50827,#ffd0ce);--eds-color-danger-13:light-dark(#2e1414,#fff5f4);--eds-color-danger-14:light-dark(#ffcbc9,#492d2c);--eds-color-danger-15:light-dark(#fff,#040303);--eds-color-bg-neutral-canvas:var(--eds-color-neutral-1);--eds-color-bg-neutral-surface:var(--eds-color-neutral-2);--eds-color-bg-neutral-fill-muted-default:var(--eds-color-neutral-3);--eds-color-bg-neutral-fill-muted-hover:var(--eds-color-neutral-4);--eds-color-bg-neutral-fill-muted-active:var(--eds-color-neutral-5);--eds-color-bg-neutral-fill-emphasis-default:var(--eds-color-neutral-9);--eds-color-bg-neutral-fill-emphasis-hover:var(--eds-color-neutral-10);--eds-color-bg-neutral-fill-emphasis-active:var(--eds-color-neutral-11);--eds-color-bg-accent-canvas:var(--eds-color-accent-1);--eds-color-bg-accent-surface:var(--eds-color-accent-2);--eds-color-bg-accent-fill-muted-default:var(--eds-color-accent-3);--eds-color-bg-accent-fill-muted-hover:var(--eds-color-accent-4);--eds-color-bg-accent-fill-muted-active:var(--eds-color-accent-5);--eds-color-bg-accent-fill-emphasis-default:var(--eds-color-accent-9);--eds-color-bg-accent-fill-emphasis-hover:var(--eds-color-accent-10);--eds-color-bg-accent-fill-emphasis-active:var(--eds-color-accent-11);--eds-color-bg-success-canvas:var(--eds-color-success-1);--eds-color-bg-success-surface:var(--eds-color-success-2);--eds-color-bg-success-fill-muted-default:var(--eds-color-success-3);--eds-color-bg-success-fill-muted-hover:var(--eds-color-success-4);--eds-color-bg-success-fill-muted-active:var(--eds-color-success-5);--eds-color-bg-success-fill-emphasis-default:var(--eds-color-success-9);--eds-color-bg-success-fill-emphasis-hover:var(--eds-color-success-10);--eds-color-bg-success-fill-emphasis-active:var(--eds-color-success-11);--eds-color-bg-info-canvas:var(--eds-color-info-1);--eds-color-bg-info-surface:var(--eds-color-info-2);--eds-color-bg-info-fill-muted-default:var(--eds-color-info-3);--eds-color-bg-info-fill-muted-hover:var(--eds-color-info-4);--eds-color-bg-info-fill-muted-active:var(--eds-color-info-5);--eds-color-bg-info-fill-emphasis-default:var(--eds-color-info-9);--eds-color-bg-info-fill-emphasis-hover:var(--eds-color-info-10);--eds-color-bg-info-fill-emphasis-active:var(--eds-color-info-11);--eds-color-bg-warning-canvas:var(--eds-color-warning-1);--eds-color-bg-warning-surface:var(--eds-color-warning-2);--eds-color-bg-warning-fill-muted-default:var(--eds-color-warning-3);--eds-color-bg-warning-fill-muted-hover:var(--eds-color-warning-4);--eds-color-bg-warning-fill-muted-active:var(--eds-color-warning-5);--eds-color-bg-warning-fill-emphasis-default:var(--eds-color-warning-9);--eds-color-bg-warning-fill-emphasis-hover:var(--eds-color-warning-10);--eds-color-bg-warning-fill-emphasis-active:var(--eds-color-warning-11);--eds-color-bg-danger-canvas:var(--eds-color-danger-1);--eds-color-bg-danger-surface:var(--eds-color-danger-2);--eds-color-bg-danger-fill-muted-default:var(--eds-color-danger-3);--eds-color-bg-danger-fill-muted-hover:var(--eds-color-danger-4);--eds-color-bg-danger-fill-muted-active:var(--eds-color-danger-5);--eds-color-bg-danger-fill-emphasis-default:var(--eds-color-danger-9);--eds-color-bg-danger-fill-emphasis-hover:var(--eds-color-danger-10);--eds-color-bg-danger-fill-emphasis-active:var(--eds-color-danger-11);--eds-color-border-neutral-subtle:var(--eds-color-neutral-6);--eds-color-border-neutral-medium:var(--eds-color-neutral-7);--eds-color-border-neutral-strong:var(--eds-color-neutral-8);--eds-color-border-accent-subtle:var(--eds-color-accent-6);--eds-color-border-accent-medium:var(--eds-color-accent-7);--eds-color-border-accent-strong:var(--eds-color-accent-8);--eds-color-border-success-subtle:var(--eds-color-success-6);--eds-color-border-success-medium:var(--eds-color-success-7);--eds-color-border-success-strong:var(--eds-color-success-8);--eds-color-border-info-subtle:var(--eds-color-info-6);--eds-color-border-info-medium:var(--eds-color-info-7);--eds-color-border-info-strong:var(--eds-color-info-8);--eds-color-border-warning-subtle:var(--eds-color-warning-6);--eds-color-border-warning-medium:var(--eds-color-warning-7);--eds-color-border-warning-strong:var(--eds-color-warning-8);--eds-color-border-danger-subtle:var(--eds-color-danger-6);--eds-color-border-danger-medium:var(--eds-color-danger-7);--eds-color-border-danger-strong:var(--eds-color-danger-8);--eds-color-text-neutral-subtle:var(--eds-color-neutral-12);--eds-color-text-neutral-strong:var(--eds-color-neutral-13);--eds-color-text-neutral-subtle-on-emphasis:var(--eds-color-neutral-14);--eds-color-text-neutral-strong-on-emphasis:var(--eds-color-neutral-15);--eds-color-text-accent-subtle:var(--eds-color-accent-12);--eds-color-text-accent-strong:var(--eds-color-accent-13);--eds-color-text-accent-subtle-on-emphasis:var(--eds-color-accent-14);--eds-color-text-accent-strong-on-emphasis:var(--eds-color-accent-15);--eds-color-text-success-subtle:var(--eds-color-success-12);--eds-color-text-success-strong:var(--eds-color-success-13);--eds-color-text-success-subtle-on-emphasis:var(--eds-color-success-14);--eds-color-text-success-strong-on-emphasis:var(--eds-color-success-15);--eds-color-text-info-subtle:var(--eds-color-info-12);--eds-color-text-info-strong:var(--eds-color-info-13);--eds-color-text-info-subtle-on-emphasis:var(--eds-color-info-14);--eds-color-text-info-strong-on-emphasis:var(--eds-color-info-15);--eds-color-text-warning-subtle:var(--eds-color-warning-12);--eds-color-text-warning-strong:var(--eds-color-warning-13);--eds-color-text-warning-subtle-on-emphasis:var(--eds-color-warning-14);--eds-color-text-warning-strong-on-emphasis:var(--eds-color-warning-15);--eds-color-text-danger-subtle:var(--eds-color-danger-12);--eds-color-text-danger-strong:var(--eds-color-danger-13);--eds-color-text-danger-subtle-on-emphasis:var(--eds-color-danger-14);--eds-color-text-danger-strong-on-emphasis:var(--eds-color-danger-15)}
19
+ :root{--eds-color-bg-floating:light-dark(#fff,#202223);--eds-color-bg-backdrop:light-dark(#aeaeae,#738696);--eds-color-bg-input:light-dark(#f5f5f5,#0b0b0b);--eds-color-border-focus:light-dark(#6fb6e9,#2d8bc5);--eds-color-text-link:light-dark(#0070a9,#5abbfb);--eds-color-bg-disabled:light-dark(#e1e1e1,#525c65);--eds-color-border-disabled:light-dark(#aeaeae,#738696);--eds-color-text-disabled:light-dark(#aeaeae,#738696);--eds-color-accent-1:light-dark(#eaf8fa,#0a0b0b);--eds-color-accent-2:light-dark(#f6ffff,#1e2323);--eds-color-accent-3:light-dark(#cfe7e9,#3c6266);--eds-color-accent-4:light-dark(#bbdbdf,#3e7378);--eds-color-accent-5:light-dark(#a2cdd2,#41878e);--eds-color-accent-6:light-dark(#bbdbdf,#3c6266);--eds-color-accent-7:light-dark(#7cbac1,#439199);--eds-color-accent-8:light-dark(#21767e,#6ec0c9);--eds-color-accent-9:light-dark(#206f77,#8cd2da);--eds-color-accent-10:light-dark(#205c62,#ace3e9);--eds-color-accent-11:light-dark(#20565c,#c7f1f6);--eds-color-accent-12:light-dark(#1f6369,#bcebf1);--eds-color-accent-13:light-dark(#141f20,#e6ffff);--eds-color-accent-14:light-dark(#cae4e7,#2c3839);--eds-color-accent-15:light-dark(#fff,#030303);--eds-color-neutral-1:light-dark(#f5f5f5,#0b0b0b);--eds-color-neutral-2:light-dark(#fff,#202223);--eds-color-neutral-3:light-dark(#e1e1e1,#525c65);--eds-color-neutral-4:light-dark(#d4d4d4,#5d6b76);--eds-color-neutral-5:light-dark(#c4c4c4,#6b7d8b);--eds-color-neutral-6:light-dark(#d4d4d4,#525c65);--eds-color-neutral-7:light-dark(#aeaeae,#738696);--eds-color-neutral-8:light-dark(#696969,#9fb4c6);--eds-color-neutral-9:light-dark(#636363,#b4c7d7);--eds-color-neutral-10:light-dark(#525252,#cadae7);--eds-color-neutral-11:light-dark(#4d4d4d,#deeaf4);--eds-color-neutral-12:light-dark(#585858,#d6e3ee);--eds-color-neutral-13:light-dark(#1d1d1d,#f5fdff);--eds-color-neutral-14:light-dark(#dedede,#333639);--eds-color-neutral-15:light-dark(#fff,#030303);--eds-color-info-1:light-dark(#e7f8ff,#0a0b0c);--eds-color-info-2:light-dark(#f4ffff,#1d2226);--eds-color-info-3:light-dark(#cae6fa,#33607e);--eds-color-info-4:light-dark(#b5daf5,#316f98);--eds-color-info-5:light-dark(#99cbf0,#2e82b7);--eds-color-info-6:light-dark(#b5daf5,#33607e);--eds-color-info-7:light-dark(#6fb6e9,#2d8bc5);--eds-color-info-8:light-dark(#0070a9,#5abbfb);--eds-color-info-9:light-dark(#006aa0,#7dceff);--eds-color-info-10:light-dark(#085883,#a2e0ff);--eds-color-info-11:light-dark(#0e5279,#c4eeff);--eds-color-info-12:light-dark(#015e8d,#b7e8ff);--eds-color-info-13:light-dark(#121e27,#ecffff);--eds-color-info-14:light-dark(#c5e3f9,#2a3741);--eds-color-info-15:light-dark(#fff,#030304);--eds-color-success-1:light-dark(#eafbe8,#0a0c0a);--eds-color-success-2:light-dark(#f6fff5,#1e231e);--eds-color-success-3:light-dark(#cfeacc,#3c673a);--eds-color-success-4:light-dark(#bbe0b8,#3e793c);--eds-color-success-5:light-dark(#a2d49e,#418e3e);--eds-color-success-6:light-dark(#bbe0b8,#3c673a);--eds-color-success-7:light-dark(#7cc278,#439941);--eds-color-success-8:light-dark(#227e22,#6eca6a);--eds-color-success-9:light-dark(#207720,#8cdb87);--eds-color-success-10:light-dark(#20621f,#aceba8);--eds-color-success-11:light-dark(#215c1f,#c7f7c3);--eds-color-success-12:light-dark(#20691f,#bcf2b8);--eds-color-success-13:light-dark(#142114,#e6ffe3);--eds-color-success-14:light-dark(#cae8c7,#2c392b);--eds-color-success-15:light-dark(#fff,#030303);--eds-color-warning-1:light-dark(#fff1e2,#0c0b0a);--eds-color-warning-2:light-dark(#fffcf0,#27201b);--eds-color-warning-3:light-dark(#fbdac1,#7e4e25);--eds-color-warning-4:light-dark(#f6caaa,#97571b);--eds-color-warning-5:light-dark(#f0b689,#b46201);--eds-color-warning-6:light-dark(#f6caaa,#7e4e25);--eds-color-warning-7:light-dark(#e89959,#c36800);--eds-color-warning-8:light-dark(#a34e00,#f99539);--eds-color-warning-9:light-dark(#9b4900,#ffad63);--eds-color-warning-10:light-dark(#813e00,#ffc791);--eds-color-warning-11:light-dark(#773a00,#ffddb9);--eds-color-warning-12:light-dark(#8a4100,#ffd4aa);--eds-color-warning-13:light-dark(#27190e,#fff7e6);--eds-color-warning-14:light-dark(#fad6bc,#413226);--eds-color-warning-15:light-dark(#fff,#040303);--eds-color-danger-1:light-dark(#ffecea,#0d0a0a);--eds-color-danger-2:light-dark(#fff9f8,#2a1e1e);--eds-color-danger-3:light-dark(#ffd0ce,#923a3c);--eds-color-danger-4:light-dark(#ffbcba,#b03940);--eds-color-danger-5:light-dark(#ffa3a1,#d43745);--eds-color-danger-6:light-dark(#ffbcba,#923a3c);--eds-color-danger-7:light-dark(#ff7a7d,#e53748);--eds-color-danger-8:light-dark(#c6002d,#ff8082);--eds-color-danger-9:light-dark(#bc002a,#ffa3a1);--eds-color-danger-10:light-dark(#9a1026,#ffc1bf);--eds-color-danger-11:light-dark(#8e1525,#ffd9d7);--eds-color-danger-12:light-dark(#a50827,#ffd0ce);--eds-color-danger-13:light-dark(#2e1414,#fff5f4);--eds-color-danger-14:light-dark(#ffcbc9,#492d2c);--eds-color-danger-15:light-dark(#fff,#040303);--eds-color-bg-neutral-canvas:var(--eds-color-neutral-1);--eds-color-bg-neutral-surface:var(--eds-color-neutral-2);--eds-color-bg-neutral-fill-muted-default:var(--eds-color-neutral-3);--eds-color-bg-neutral-fill-muted-hover:var(--eds-color-neutral-4);--eds-color-bg-neutral-fill-muted-active:var(--eds-color-neutral-5);--eds-color-bg-neutral-fill-emphasis-default:var(--eds-color-neutral-9);--eds-color-bg-neutral-fill-emphasis-hover:var(--eds-color-neutral-10);--eds-color-bg-neutral-fill-emphasis-active:var(--eds-color-neutral-11);--eds-color-bg-accent-canvas:var(--eds-color-accent-1);--eds-color-bg-accent-surface:var(--eds-color-accent-2);--eds-color-bg-accent-fill-muted-default:var(--eds-color-accent-3);--eds-color-bg-accent-fill-muted-hover:var(--eds-color-accent-4);--eds-color-bg-accent-fill-muted-active:var(--eds-color-accent-5);--eds-color-bg-accent-fill-emphasis-default:var(--eds-color-accent-9);--eds-color-bg-accent-fill-emphasis-hover:var(--eds-color-accent-10);--eds-color-bg-accent-fill-emphasis-active:var(--eds-color-accent-11);--eds-color-bg-success-canvas:var(--eds-color-success-1);--eds-color-bg-success-surface:var(--eds-color-success-2);--eds-color-bg-success-fill-muted-default:var(--eds-color-success-3);--eds-color-bg-success-fill-muted-hover:var(--eds-color-success-4);--eds-color-bg-success-fill-muted-active:var(--eds-color-success-5);--eds-color-bg-success-fill-emphasis-default:var(--eds-color-success-9);--eds-color-bg-success-fill-emphasis-hover:var(--eds-color-success-10);--eds-color-bg-success-fill-emphasis-active:var(--eds-color-success-11);--eds-color-bg-info-canvas:var(--eds-color-info-1);--eds-color-bg-info-surface:var(--eds-color-info-2);--eds-color-bg-info-fill-muted-default:var(--eds-color-info-3);--eds-color-bg-info-fill-muted-hover:var(--eds-color-info-4);--eds-color-bg-info-fill-muted-active:var(--eds-color-info-5);--eds-color-bg-info-fill-emphasis-default:var(--eds-color-info-9);--eds-color-bg-info-fill-emphasis-hover:var(--eds-color-info-10);--eds-color-bg-info-fill-emphasis-active:var(--eds-color-info-11);--eds-color-bg-warning-canvas:var(--eds-color-warning-1);--eds-color-bg-warning-surface:var(--eds-color-warning-2);--eds-color-bg-warning-fill-muted-default:var(--eds-color-warning-3);--eds-color-bg-warning-fill-muted-hover:var(--eds-color-warning-4);--eds-color-bg-warning-fill-muted-active:var(--eds-color-warning-5);--eds-color-bg-warning-fill-emphasis-default:var(--eds-color-warning-9);--eds-color-bg-warning-fill-emphasis-hover:var(--eds-color-warning-10);--eds-color-bg-warning-fill-emphasis-active:var(--eds-color-warning-11);--eds-color-bg-danger-canvas:var(--eds-color-danger-1);--eds-color-bg-danger-surface:var(--eds-color-danger-2);--eds-color-bg-danger-fill-muted-default:var(--eds-color-danger-3);--eds-color-bg-danger-fill-muted-hover:var(--eds-color-danger-4);--eds-color-bg-danger-fill-muted-active:var(--eds-color-danger-5);--eds-color-bg-danger-fill-emphasis-default:var(--eds-color-danger-9);--eds-color-bg-danger-fill-emphasis-hover:var(--eds-color-danger-10);--eds-color-bg-danger-fill-emphasis-active:var(--eds-color-danger-11);--eds-color-border-neutral-subtle:var(--eds-color-neutral-6);--eds-color-border-neutral-medium:var(--eds-color-neutral-7);--eds-color-border-neutral-strong:var(--eds-color-neutral-8);--eds-color-border-accent-subtle:var(--eds-color-accent-6);--eds-color-border-accent-medium:var(--eds-color-accent-7);--eds-color-border-accent-strong:var(--eds-color-accent-8);--eds-color-border-success-subtle:var(--eds-color-success-6);--eds-color-border-success-medium:var(--eds-color-success-7);--eds-color-border-success-strong:var(--eds-color-success-8);--eds-color-border-info-subtle:var(--eds-color-info-6);--eds-color-border-info-medium:var(--eds-color-info-7);--eds-color-border-info-strong:var(--eds-color-info-8);--eds-color-border-warning-subtle:var(--eds-color-warning-6);--eds-color-border-warning-medium:var(--eds-color-warning-7);--eds-color-border-warning-strong:var(--eds-color-warning-8);--eds-color-border-danger-subtle:var(--eds-color-danger-6);--eds-color-border-danger-medium:var(--eds-color-danger-7);--eds-color-border-danger-strong:var(--eds-color-danger-8);--eds-color-text-neutral-subtle:var(--eds-color-neutral-12);--eds-color-text-neutral-strong:var(--eds-color-neutral-13);--eds-color-text-neutral-subtle-on-emphasis:var(--eds-color-neutral-14);--eds-color-text-neutral-strong-on-emphasis:var(--eds-color-neutral-15);--eds-color-text-accent-subtle:var(--eds-color-accent-12);--eds-color-text-accent-strong:var(--eds-color-accent-13);--eds-color-text-accent-subtle-on-emphasis:var(--eds-color-accent-14);--eds-color-text-accent-strong-on-emphasis:var(--eds-color-accent-15);--eds-color-text-success-subtle:var(--eds-color-success-12);--eds-color-text-success-strong:var(--eds-color-success-13);--eds-color-text-success-subtle-on-emphasis:var(--eds-color-success-14);--eds-color-text-success-strong-on-emphasis:var(--eds-color-success-15);--eds-color-text-info-subtle:var(--eds-color-info-12);--eds-color-text-info-strong:var(--eds-color-info-13);--eds-color-text-info-subtle-on-emphasis:var(--eds-color-info-14);--eds-color-text-info-strong-on-emphasis:var(--eds-color-info-15);--eds-color-text-warning-subtle:var(--eds-color-warning-12);--eds-color-text-warning-strong:var(--eds-color-warning-13);--eds-color-text-warning-subtle-on-emphasis:var(--eds-color-warning-14);--eds-color-text-warning-strong-on-emphasis:var(--eds-color-warning-15);--eds-color-text-danger-subtle:var(--eds-color-danger-12);--eds-color-text-danger-strong:var(--eds-color-danger-13);--eds-color-text-danger-subtle-on-emphasis:var(--eds-color-danger-14);--eds-color-text-danger-strong-on-emphasis:var(--eds-color-danger-15);--eds-elevation-low:0px 1px 8px 0px #0003, 0px 4px 8px 3px #0000001f;--eds-elevation-high:0px 4px 12px 0px #0003, 0px 12px 16px 6px #0000001f}
20
20
  :root,[data-color-appearance=neutral]{--eds-color-bg-fill-muted-default:var(--eds-color-neutral-3);--eds-color-bg-fill-muted-hover:var(--eds-color-neutral-4);--eds-color-bg-fill-muted-active:var(--eds-color-neutral-5);--eds-color-bg-fill-muted-disabled:var(--eds-color-neutral-3);--eds-color-bg-fill-emphasis-default:var(--eds-color-neutral-9);--eds-color-bg-fill-emphasis-hover:var(--eds-color-neutral-10);--eds-color-bg-fill-emphasis-active:var(--eds-color-neutral-11);--eds-color-bg-fill-emphasis-disabled:var(--eds-color-neutral-3);--eds-color-bg-canvas:var(--eds-color-neutral-1);--eds-color-bg-surface:var(--eds-color-neutral-2);--eds-color-border-subtle:var(--eds-color-neutral-6);--eds-color-border-medium:var(--eds-color-neutral-7);--eds-color-border-strong:var(--eds-color-neutral-8);--eds-color-border-disabled:var(--eds-color-neutral-7);--eds-color-text-subtle:var(--eds-color-neutral-12);--eds-color-text-strong:var(--eds-color-neutral-13);--eds-color-text-disabled:var(--eds-color-neutral-7);--eds-color-text-subtle-on-emphasis:var(--eds-color-neutral-14);--eds-color-text-strong-on-emphasis:var(--eds-color-neutral-15)}
21
21
  [data-color-appearance=accent]{--eds-color-bg-fill-muted-default:var(--eds-color-accent-3);--eds-color-bg-fill-muted-hover:var(--eds-color-accent-4);--eds-color-bg-fill-muted-active:var(--eds-color-accent-5);--eds-color-bg-fill-muted-disabled:var(--eds-color-accent-3);--eds-color-bg-fill-emphasis-default:var(--eds-color-accent-9);--eds-color-bg-fill-emphasis-hover:var(--eds-color-accent-10);--eds-color-bg-fill-emphasis-active:var(--eds-color-accent-11);--eds-color-bg-fill-emphasis-disabled:var(--eds-color-accent-3);--eds-color-bg-canvas:var(--eds-color-accent-1);--eds-color-bg-surface:var(--eds-color-accent-2);--eds-color-border-subtle:var(--eds-color-accent-6);--eds-color-border-medium:var(--eds-color-accent-7);--eds-color-border-strong:var(--eds-color-accent-8);--eds-color-border-disabled:var(--eds-color-accent-7);--eds-color-text-subtle:var(--eds-color-accent-12);--eds-color-text-strong:var(--eds-color-accent-13);--eds-color-text-disabled:var(--eds-color-accent-7);--eds-color-text-subtle-on-emphasis:var(--eds-color-accent-14);--eds-color-text-strong-on-emphasis:var(--eds-color-accent-15)}
22
22
  [data-color-appearance=danger]{--eds-color-bg-fill-muted-default:var(--eds-color-danger-3);--eds-color-bg-fill-muted-hover:var(--eds-color-danger-4);--eds-color-bg-fill-muted-active:var(--eds-color-danger-5);--eds-color-bg-fill-muted-disabled:var(--eds-color-danger-3);--eds-color-bg-fill-emphasis-default:var(--eds-color-danger-9);--eds-color-bg-fill-emphasis-hover:var(--eds-color-danger-10);--eds-color-bg-fill-emphasis-active:var(--eds-color-danger-11);--eds-color-bg-fill-emphasis-disabled:var(--eds-color-danger-3);--eds-color-bg-canvas:var(--eds-color-danger-1);--eds-color-bg-surface:var(--eds-color-danger-2);--eds-color-border-subtle:var(--eds-color-danger-6);--eds-color-border-medium:var(--eds-color-danger-7);--eds-color-border-strong:var(--eds-color-danger-8);--eds-color-border-disabled:var(--eds-color-danger-7);--eds-color-text-subtle:var(--eds-color-danger-12);--eds-color-text-strong:var(--eds-color-danger-13);--eds-color-text-disabled:var(--eds-color-danger-7);--eds-color-text-subtle-on-emphasis:var(--eds-color-danger-14);--eds-color-text-strong-on-emphasis:var(--eds-color-danger-15)}
@@ -102,6 +102,629 @@
102
102
  [data-tracking=tight]{--eds-typography-tracking:var(--eds-typography-tracking-tight)}
103
103
  [data-tracking=normal]{--eds-typography-tracking:var(--eds-typography-tracking-normal)}
104
104
  [data-tracking=wide],[data-tracking=loose]{--eds-typography-tracking:var(--eds-typography-tracking-wide)}
105
+ /* Reusable registered custom properties used to resolve values */
106
+ @property --captured-size-1 {
107
+ inherits: false;
108
+ initial-value: 0;
109
+ syntax: '<length>';
110
+ }
111
+ @property --captured-size-2 {
112
+ inherits: true;
113
+ initial-value: 0;
114
+ syntax: '<length>';
115
+ }
116
+ :root,
117
+ [data-density='spacious'] {
118
+ --_base: 1rem;
119
+ --eds-typography-ui-body-xs-font-size: round(
120
+ calc(var(--_base) * pow(2, -3/5)),
121
+ 0.03125rem
122
+ );
123
+ --eds-typography-ui-body-sm-font-size: round(
124
+ calc(var(--_base) * pow(2, -2/5)),
125
+ 0.03125rem
126
+ );
127
+ --eds-typography-ui-body-md-font-size: round(
128
+ calc(var(--_base) * pow(2, -1/5)),
129
+ 0.03125rem
130
+ );
131
+ --eds-typography-ui-body-lg-font-size: var(--_base);
132
+ --eds-typography-ui-body-xl-font-size: round(
133
+ calc(var(--_base) * pow(2, 1/5)),
134
+ 0.03125rem
135
+ );
136
+ --eds-typography-ui-body-2xl-font-size: round(
137
+ calc(var(--_base) * pow(2, 2/5)),
138
+ 0.03125rem
139
+ );
140
+ --eds-typography-ui-body-3xl-font-size: round(
141
+ calc(var(--_base) * pow(2, 3/5)),
142
+ 0.03125rem
143
+ );
144
+ --eds-typography-ui-body-4xl-font-size: round(
145
+ calc(var(--_base) * pow(2, 4/5)),
146
+ 0.03125rem
147
+ );
148
+ --eds-typography-ui-body-5xl-font-size: round(
149
+ calc(var(--_base) * pow(2, 5/5)),
150
+ 0.03125rem
151
+ );
152
+ --eds-typography-ui-body-6xl-font-size: round(
153
+ calc(var(--_base) * pow(2, 6/5)),
154
+ 0.03125rem
155
+ );
156
+
157
+ /* line-height normal */
158
+ --eds-typography-ui-body-xs-line-height-default: round(
159
+ calc(
160
+ var(--eds-typography-ui-body-xs-font-size) * (1.39 - pow(0 / 9, 3) * 0.29)
161
+ ),
162
+ 4px
163
+ );
164
+ --eds-typography-ui-body-sm-line-height-default: round(
165
+ calc(
166
+ var(--eds-typography-ui-body-sm-font-size) * (1.39 - pow(1 / 9, 3) * 0.29)
167
+ ),
168
+ 4px
169
+ );
170
+ --eds-typography-ui-body-md-line-height-default: round(
171
+ calc(
172
+ var(--eds-typography-ui-body-md-font-size) * (1.39 - pow(2 / 9, 3) * 0.29)
173
+ ),
174
+ 4px
175
+ );
176
+ --eds-typography-ui-body-lg-line-height-default: round(
177
+ calc(
178
+ var(--eds-typography-ui-body-lg-font-size) * (1.39 - pow(3 / 9, 3) * 0.29)
179
+ ),
180
+ 4px
181
+ );
182
+ --eds-typography-ui-body-xl-line-height-default: round(
183
+ calc(
184
+ var(--eds-typography-ui-body-xl-font-size) * (1.39 - pow(4 / 9, 3) * 0.29)
185
+ ),
186
+ 4px
187
+ );
188
+ --eds-typography-ui-body-2xl-line-height-default: round(
189
+ calc(
190
+ var(--eds-typography-ui-body-2xl-font-size) *
191
+ (1.39 - pow(5 / 9, 3) * 0.29)
192
+ ),
193
+ 4px
194
+ );
195
+ --eds-typography-ui-body-3xl-line-height-default: round(
196
+ calc(
197
+ var(--eds-typography-ui-body-3xl-font-size) *
198
+ (1.39 - pow(6 / 9, 3) * 0.29)
199
+ ),
200
+ 4px
201
+ );
202
+ --eds-typography-ui-body-4xl-line-height-default: round(
203
+ calc(
204
+ var(--eds-typography-ui-body-4xl-font-size) *
205
+ (1.39 - pow(7 / 9, 3) * 0.29)
206
+ ),
207
+ 4px
208
+ );
209
+ --eds-typography-ui-body-5xl-line-height-default: round(
210
+ calc(
211
+ var(--eds-typography-ui-body-5xl-font-size) *
212
+ (1.39 - pow(8 / 9, 3) * 0.29)
213
+ ),
214
+ 4px
215
+ );
216
+ --eds-typography-ui-body-6xl-line-height-default: round(
217
+ calc(
218
+ var(--eds-typography-ui-body-6xl-font-size) *
219
+ (1.39 - pow(9 / 9, 3) * 0.29)
220
+ ),
221
+ 4px
222
+ );
223
+
224
+ /* line-height squished */
225
+ --eds-typography-ui-body-xs-line-height-squished: round(
226
+ calc(
227
+ var(--eds-typography-ui-body-xs-font-size) * (1.13 - pow(0 / 9, 3) * 0.13)
228
+ ),
229
+ 4px
230
+ );
231
+ --eds-typography-ui-body-sm-line-height-squished: round(
232
+ calc(
233
+ var(--eds-typography-ui-body-sm-font-size) * (1.13 - pow(1 / 9, 3) * 0.13)
234
+ ),
235
+ 4px
236
+ );
237
+ --eds-typography-ui-body-md-line-height-squished: round(
238
+ calc(
239
+ var(--eds-typography-ui-body-md-font-size) * (1.13 - pow(2 / 9, 3) * 0.13)
240
+ ),
241
+ 4px
242
+ );
243
+ --eds-typography-ui-body-lg-line-height-squished: round(
244
+ calc(
245
+ var(--eds-typography-ui-body-lg-font-size) * (1.13 - pow(3 / 9, 3) * 0.13)
246
+ ),
247
+ 4px
248
+ );
249
+ --eds-typography-ui-body-xl-line-height-squished: round(
250
+ calc(
251
+ var(--eds-typography-ui-body-xl-font-size) * (1.13 - pow(4 / 9, 3) * 0.13)
252
+ ),
253
+ 4px
254
+ );
255
+ --eds-typography-ui-body-2xl-line-height-squished: round(
256
+ calc(
257
+ var(--eds-typography-ui-body-2xl-font-size) *
258
+ (1.13 - pow(5 / 9, 3) * 0.13)
259
+ ),
260
+ 4px
261
+ );
262
+ --eds-typography-ui-body-3xl-line-height-squished: round(
263
+ calc(
264
+ var(--eds-typography-ui-body-3xl-font-size) *
265
+ (1.13 - pow(6 / 9, 3) * 0.13)
266
+ ),
267
+ 4px
268
+ );
269
+ --eds-typography-ui-body-4xl-line-height-squished: round(
270
+ calc(
271
+ var(--eds-typography-ui-body-4xl-font-size) *
272
+ (1.13 - pow(7 / 9, 3) * 0.13)
273
+ ),
274
+ 4px
275
+ );
276
+ --eds-typography-ui-body-5xl-line-height-squished: round(
277
+ calc(
278
+ var(--eds-typography-ui-body-5xl-font-size) *
279
+ (1.13 - pow(8 / 9, 3) * 0.13)
280
+ ),
281
+ 4px
282
+ );
283
+ --eds-typography-ui-body-6xl-line-height-squished: round(
284
+ calc(
285
+ var(--eds-typography-ui-body-6xl-font-size) *
286
+ (1.13 - pow(9 / 9, 3) * 0.13)
287
+ ),
288
+ 4px
289
+ );
290
+ }
291
+ /* TODO: rename densities — relaxed → spacious, spacious → comfortable, comfortable → compact */
292
+ [data-density='relaxed'] {
293
+ --_base: 1.15625rem;
294
+ --eds-typography-ui-body-xs-font-size: round(
295
+ calc(var(--_base) * pow(2, -3/5)),
296
+ 0.03125rem
297
+ );
298
+ --eds-typography-ui-body-sm-font-size: round(
299
+ calc(var(--_base) * pow(2, -2/5)),
300
+ 0.03125rem
301
+ );
302
+ --eds-typography-ui-body-md-font-size: round(
303
+ calc(var(--_base) * pow(2, -1/5)),
304
+ 0.03125rem
305
+ );
306
+ --eds-typography-ui-body-lg-font-size: var(--_base);
307
+ --eds-typography-ui-body-xl-font-size: round(
308
+ calc(var(--_base) * pow(2, 1/5)),
309
+ 0.03125rem
310
+ );
311
+ --eds-typography-ui-body-2xl-font-size: round(
312
+ calc(var(--_base) * pow(2, 2/5)),
313
+ 0.03125rem
314
+ );
315
+ --eds-typography-ui-body-3xl-font-size: round(
316
+ calc(var(--_base) * pow(2, 3/5)),
317
+ 0.03125rem
318
+ );
319
+ --eds-typography-ui-body-4xl-font-size: round(
320
+ calc(var(--_base) * pow(2, 4/5)),
321
+ 0.03125rem
322
+ );
323
+ --eds-typography-ui-body-5xl-font-size: round(
324
+ calc(var(--_base) * pow(2, 5/5)),
325
+ 0.03125rem
326
+ );
327
+ --eds-typography-ui-body-6xl-font-size: round(
328
+ calc(var(--_base) * pow(2, 6/5)),
329
+ 0.03125rem
330
+ );
331
+
332
+ /* line-height normal */
333
+ --eds-typography-ui-body-xs-line-height-default: round(
334
+ calc(
335
+ var(--eds-typography-ui-body-xs-font-size) * (1.39 - pow(0 / 9, 3) * 0.29)
336
+ ),
337
+ 4px
338
+ );
339
+ --eds-typography-ui-body-sm-line-height-default: round(
340
+ calc(
341
+ var(--eds-typography-ui-body-sm-font-size) * (1.39 - pow(1 / 9, 3) * 0.29)
342
+ ),
343
+ 4px
344
+ );
345
+ --eds-typography-ui-body-md-line-height-default: round(
346
+ calc(
347
+ var(--eds-typography-ui-body-md-font-size) * (1.39 - pow(2 / 9, 3) * 0.29)
348
+ ),
349
+ 4px
350
+ );
351
+ --eds-typography-ui-body-lg-line-height-default: round(
352
+ calc(
353
+ var(--eds-typography-ui-body-lg-font-size) * (1.39 - pow(3 / 9, 3) * 0.29)
354
+ ),
355
+ 4px
356
+ );
357
+ --eds-typography-ui-body-xl-line-height-default: round(
358
+ calc(
359
+ var(--eds-typography-ui-body-xl-font-size) * (1.39 - pow(4 / 9, 3) * 0.29)
360
+ ),
361
+ 4px
362
+ );
363
+ --eds-typography-ui-body-2xl-line-height-default: round(
364
+ calc(
365
+ var(--eds-typography-ui-body-2xl-font-size) *
366
+ (1.39 - pow(5 / 9, 3) * 0.29)
367
+ ),
368
+ 4px
369
+ );
370
+ --eds-typography-ui-body-3xl-line-height-default: round(
371
+ calc(
372
+ var(--eds-typography-ui-body-3xl-font-size) *
373
+ (1.39 - pow(6 / 9, 3) * 0.29)
374
+ ),
375
+ 4px
376
+ );
377
+ --eds-typography-ui-body-4xl-line-height-default: round(
378
+ calc(
379
+ var(--eds-typography-ui-body-4xl-font-size) *
380
+ (1.39 - pow(7 / 9, 3) * 0.29)
381
+ ),
382
+ 4px
383
+ );
384
+ --eds-typography-ui-body-5xl-line-height-default: round(
385
+ calc(
386
+ var(--eds-typography-ui-body-5xl-font-size) *
387
+ (1.39 - pow(8 / 9, 3) * 0.29)
388
+ ),
389
+ 4px
390
+ );
391
+ --eds-typography-ui-body-6xl-line-height-default: round(
392
+ calc(
393
+ var(--eds-typography-ui-body-6xl-font-size) *
394
+ (1.39 - pow(9 / 9, 3) * 0.29)
395
+ ),
396
+ 4px
397
+ );
398
+
399
+ /* line-height squished */
400
+ --eds-typography-ui-body-xs-line-height-squished: round(
401
+ calc(
402
+ var(--eds-typography-ui-body-xs-font-size) * (1.13 - pow(0 / 9, 3) * 0.13)
403
+ ),
404
+ 4px
405
+ );
406
+ --eds-typography-ui-body-sm-line-height-squished: round(
407
+ calc(
408
+ var(--eds-typography-ui-body-sm-font-size) * (1.13 - pow(1 / 9, 3) * 0.13)
409
+ ),
410
+ 4px
411
+ );
412
+ --eds-typography-ui-body-md-line-height-squished: round(
413
+ calc(
414
+ var(--eds-typography-ui-body-md-font-size) * (1.13 - pow(2 / 9, 3) * 0.13)
415
+ ),
416
+ 4px
417
+ );
418
+ --eds-typography-ui-body-lg-line-height-squished: round(
419
+ calc(
420
+ var(--eds-typography-ui-body-lg-font-size) * (1.13 - pow(3 / 9, 3) * 0.13)
421
+ ),
422
+ 4px
423
+ );
424
+ --eds-typography-ui-body-xl-line-height-squished: round(
425
+ calc(
426
+ var(--eds-typography-ui-body-xl-font-size) * (1.13 - pow(4 / 9, 3) * 0.13)
427
+ ),
428
+ 4px
429
+ );
430
+ --eds-typography-ui-body-2xl-line-height-squished: round(
431
+ calc(
432
+ var(--eds-typography-ui-body-2xl-font-size) *
433
+ (1.13 - pow(5 / 9, 3) * 0.13)
434
+ ),
435
+ 4px
436
+ );
437
+ --eds-typography-ui-body-3xl-line-height-squished: round(
438
+ calc(
439
+ var(--eds-typography-ui-body-3xl-font-size) *
440
+ (1.13 - pow(6 / 9, 3) * 0.13)
441
+ ),
442
+ 4px
443
+ );
444
+ --eds-typography-ui-body-4xl-line-height-squished: round(
445
+ calc(
446
+ var(--eds-typography-ui-body-4xl-font-size) *
447
+ (1.13 - pow(7 / 9, 3) * 0.13)
448
+ ),
449
+ 4px
450
+ );
451
+ --eds-typography-ui-body-5xl-line-height-squished: round(
452
+ calc(
453
+ var(--eds-typography-ui-body-5xl-font-size) *
454
+ (1.13 - pow(8 / 9, 3) * 0.13)
455
+ ),
456
+ 4px
457
+ );
458
+ --eds-typography-ui-body-6xl-line-height-squished: round(
459
+ calc(
460
+ var(--eds-typography-ui-body-6xl-font-size) *
461
+ (1.13 - pow(9 / 9, 3) * 0.13)
462
+ ),
463
+ 4px
464
+ );
465
+ }
466
+ [data-density='comfortable'] {
467
+ --_base: 0.875rem;
468
+ --eds-typography-ui-body-xs-font-size: round(
469
+ calc(var(--_base) * pow(2, -3/5)),
470
+ 0.03125rem
471
+ );
472
+ --eds-typography-ui-body-sm-font-size: round(
473
+ calc(var(--_base) * pow(2, -2/5)),
474
+ 0.03125rem
475
+ );
476
+ --eds-typography-ui-body-md-font-size: round(
477
+ calc(var(--_base) * pow(2, -1/5)),
478
+ 0.03125rem
479
+ );
480
+ --eds-typography-ui-body-lg-font-size: var(--_base);
481
+ --eds-typography-ui-body-xl-font-size: round(
482
+ calc(var(--_base) * pow(2, 1/5)),
483
+ 0.03125rem
484
+ );
485
+ --eds-typography-ui-body-2xl-font-size: round(
486
+ calc(var(--_base) * pow(2, 2/5)),
487
+ 0.03125rem
488
+ );
489
+ --eds-typography-ui-body-3xl-font-size: round(
490
+ calc(var(--_base) * pow(2, 3/5)),
491
+ 0.03125rem
492
+ );
493
+ --eds-typography-ui-body-4xl-font-size: round(
494
+ calc(var(--_base) * pow(2, 4/5)),
495
+ 0.03125rem
496
+ );
497
+ --eds-typography-ui-body-5xl-font-size: round(
498
+ calc(var(--_base) * pow(2, 5/5)),
499
+ 0.03125rem
500
+ );
501
+ --eds-typography-ui-body-6xl-font-size: round(
502
+ calc(var(--_base) * pow(2, 6/5)),
503
+ 0.03125rem
504
+ );
505
+
506
+ /* line-height normal */
507
+ --eds-typography-ui-body-xs-line-height-default: round(
508
+ calc(
509
+ var(--eds-typography-ui-body-xs-font-size) * (1.39 - pow(0 / 9, 3) * 0.29)
510
+ ),
511
+ 4px
512
+ );
513
+ --eds-typography-ui-body-sm-line-height-default: round(
514
+ calc(
515
+ var(--eds-typography-ui-body-sm-font-size) * (1.39 - pow(1 / 9, 3) * 0.29)
516
+ ),
517
+ 4px
518
+ );
519
+ --eds-typography-ui-body-md-line-height-default: round(
520
+ calc(
521
+ var(--eds-typography-ui-body-md-font-size) * (1.39 - pow(2 / 9, 3) * 0.29)
522
+ ),
523
+ 4px
524
+ );
525
+ --eds-typography-ui-body-lg-line-height-default: round(
526
+ calc(
527
+ var(--eds-typography-ui-body-lg-font-size) * (1.39 - pow(3 / 9, 3) * 0.29)
528
+ ),
529
+ 4px
530
+ );
531
+ --eds-typography-ui-body-xl-line-height-default: round(
532
+ calc(
533
+ var(--eds-typography-ui-body-xl-font-size) * (1.39 - pow(4 / 9, 3) * 0.29)
534
+ ),
535
+ 4px
536
+ );
537
+ --eds-typography-ui-body-2xl-line-height-default: round(
538
+ calc(
539
+ var(--eds-typography-ui-body-2xl-font-size) *
540
+ (1.39 - pow(5 / 9, 3) * 0.29)
541
+ ),
542
+ 4px
543
+ );
544
+ --eds-typography-ui-body-3xl-line-height-default: round(
545
+ calc(
546
+ var(--eds-typography-ui-body-3xl-font-size) *
547
+ (1.39 - pow(6 / 9, 3) * 0.29)
548
+ ),
549
+ 4px
550
+ );
551
+ --eds-typography-ui-body-4xl-line-height-default: round(
552
+ calc(
553
+ var(--eds-typography-ui-body-4xl-font-size) *
554
+ (1.39 - pow(7 / 9, 3) * 0.29)
555
+ ),
556
+ 4px
557
+ );
558
+ --eds-typography-ui-body-5xl-line-height-default: round(
559
+ calc(
560
+ var(--eds-typography-ui-body-5xl-font-size) *
561
+ (1.39 - pow(8 / 9, 3) * 0.29)
562
+ ),
563
+ 4px
564
+ );
565
+ --eds-typography-ui-body-6xl-line-height-default: round(
566
+ calc(
567
+ var(--eds-typography-ui-body-6xl-font-size) *
568
+ (1.39 - pow(9 / 9, 3) * 0.29)
569
+ ),
570
+ 4px
571
+ );
572
+
573
+ /* line-height squished */
574
+ --eds-typography-ui-body-xs-line-height-squished: round(
575
+ calc(
576
+ var(--eds-typography-ui-body-xs-font-size) * (1.13 - pow(0 / 9, 3) * 0.13)
577
+ ),
578
+ 4px
579
+ );
580
+ --eds-typography-ui-body-sm-line-height-squished: round(
581
+ calc(
582
+ var(--eds-typography-ui-body-sm-font-size) * (1.13 - pow(1 / 9, 3) * 0.13)
583
+ ),
584
+ 4px
585
+ );
586
+ --eds-typography-ui-body-md-line-height-squished: round(
587
+ calc(
588
+ var(--eds-typography-ui-body-md-font-size) * (1.13 - pow(2 / 9, 3) * 0.13)
589
+ ),
590
+ 4px
591
+ );
592
+ --eds-typography-ui-body-lg-line-height-squished: round(
593
+ calc(
594
+ var(--eds-typography-ui-body-lg-font-size) * (1.13 - pow(3 / 9, 3) * 0.13)
595
+ ),
596
+ 4px
597
+ );
598
+ --eds-typography-ui-body-xl-line-height-squished: round(
599
+ calc(
600
+ var(--eds-typography-ui-body-xl-font-size) * (1.13 - pow(4 / 9, 3) * 0.13)
601
+ ),
602
+ 4px
603
+ );
604
+ --eds-typography-ui-body-2xl-line-height-squished: round(
605
+ calc(
606
+ var(--eds-typography-ui-body-2xl-font-size) *
607
+ (1.13 - pow(5 / 9, 3) * 0.13)
608
+ ),
609
+ 4px
610
+ );
611
+ --eds-typography-ui-body-3xl-line-height-squished: round(
612
+ calc(
613
+ var(--eds-typography-ui-body-3xl-font-size) *
614
+ (1.13 - pow(6 / 9, 3) * 0.13)
615
+ ),
616
+ 4px
617
+ );
618
+ --eds-typography-ui-body-4xl-line-height-squished: round(
619
+ calc(
620
+ var(--eds-typography-ui-body-4xl-font-size) *
621
+ (1.13 - pow(7 / 9, 3) * 0.13)
622
+ ),
623
+ 4px
624
+ );
625
+ --eds-typography-ui-body-5xl-line-height-squished: round(
626
+ calc(
627
+ var(--eds-typography-ui-body-5xl-font-size) *
628
+ (1.13 - pow(8 / 9, 3) * 0.13)
629
+ ),
630
+ 4px
631
+ );
632
+ --eds-typography-ui-body-6xl-line-height-squished: round(
633
+ calc(
634
+ var(--eds-typography-ui-body-6xl-font-size) *
635
+ (1.13 - pow(9 / 9, 3) * 0.13)
636
+ ),
637
+ 4px
638
+ );
639
+ }
640
+ /* ===== TEXT-BOX PADDING =====
641
+ * 1cap and 1ex resolve at the element where var() is used,
642
+ * so these formulas work correctly at any font-size.
643
+ */
644
+ :root {
645
+ /* Trim leading above ex-height and below alphabetic baseline.
646
+ * Use inside @supports (text-box: trim-both ex alphabetic) in component CSS —
647
+ * var() cannot be used in @supports conditions as it always resolves to valid. */
648
+ --text-box: trim-both ex alphabetic;
649
+
650
+ /* Single-line: snap height to 4px grid, centered optically */
651
+ /* --eds-padding-top-centered: calc((round(1cap, 0.25rem) - 1ex) / 2 + (1cap - 1ex) / 2);
652
+ --eds-padding-bottom-centered: calc(
653
+ (round(1cap, 0.25rem) - 1ex) / 2 - (1cap - 1ex) / 2
654
+ ); */
655
+
656
+ /* Multi-line: align text to baseline grid */
657
+ --eds-padding-top-baseline: calc(round(1cap, 0.25rem) - 1ex);
658
+ --eds-padding-bottom-baseline: 0px;
659
+ }
660
+ /* @function progressive enhancement — Chrome/Edge 128+.
661
+ * Browsers without @function support fall back to the :root custom properties above.
662
+ * Remove the :root fallbacks once Safari supports @function. */
663
+ /* TODO: uncomment --padding-block() once Safari supports @function.
664
+ * It will replace the manual padding-block calc() in component CSS.
665
+ * Track Safari support: https://caniuse.com/css-at-function
666
+ *
667
+ * @function --padding-block(
668
+ * --padding-block <length>,
669
+ * --line-height <length>,
670
+ * --cap-rounded <length>
671
+ * )
672
+ * returns <length> {
673
+ * result: calc(
674
+ * var(--padding-block) - (var(--line-height) - var(--cap-rounded)) / 2
675
+ * );
676
+ * }
677
+ */
678
+ /* ===== FUTURE: ELIMINATE DENSITY DUPLICATION WITH @function =====
679
+ *
680
+ * Currently the font-size and line-height scales are duplicated in both the
681
+ * spacious and comfortable density blocks. This is necessary because CSS custom
682
+ * property late binding does not reliably propagate through chained math
683
+ * functions (round, pow) across inheritance boundaries in all browsers.
684
+ *
685
+ * Once @function has broad browser support (currently Chrome/Edge 128+ only,
686
+ * not yet in Safari), the duplication can be removed. @function calls stored as
687
+ * custom property values ARE lazily evaluated at the point of consumption, so
688
+ * they correctly read --_base from the local cascade:
689
+ *
690
+ * @function --font-size-step(--step: 0) returns <length> {
691
+ * result: round(calc(var(--_base) * pow(2, calc(var(--step) / 5))), 0.03125rem);
692
+ * }
693
+ *
694
+ * :root,
695
+ * [data-density='spacious'] {
696
+ * --_base: 1rem;
697
+ * --eds-typography-ui-body-xs-font-size: --font-size-step(-3);
698
+ * --eds-typography-ui-body-sm-font-size: --font-size-step(-2);
699
+ * --eds-typography-ui-body-md-font-size: --font-size-step(-1);
700
+ * --eds-typography-ui-body-lg-font-size: --font-size-step(0);
701
+ * (etc.)
702
+ * }
703
+ *
704
+ * [data-density='comfortable'] {
705
+ * --_base: 0.875rem; (that's it — no more duplication)
706
+ * }
707
+ *
708
+ * Track Safari @function support: https://caniuse.com/css-at-function
709
+ */
710
+ /* This is just a POC, the real values has to be defined in the design tokens */
711
+ /* TODO: Add values */
712
+ [data-density='relaxed'] {
713
+ [data-selectable-space='sm'] {
714
+ --eds-selectable-space-horizontal: 16px;
715
+ --eds-selectable-space-vertical: 12px;
716
+ }
717
+
718
+ [data-selectable-space='md'] {
719
+ --eds-selectable-space-horizontal: 20px;
720
+ --eds-selectable-space-vertical: 16px;
721
+ }
722
+
723
+ [data-selectable-space='lg'] {
724
+ --eds-selectable-space-horizontal: 24px;
725
+ --eds-selectable-space-vertical: 20px;
726
+ }
727
+ }
105
728
  @layer eds-components {
106
729
  /* Inline with text: uses token from parent's data-font-size, or 1.5em fallback */
107
730
  .eds-icon {
@@ -174,21 +797,45 @@
174
797
  }
175
798
  @layer eds-components {
176
799
  .eds-button {
800
+ --_label-font-size: var(--eds-typography-ui-body-md-font-size);
801
+ --_label-line-height: var(--eds-typography-ui-body-md-line-height-squished);
802
+ --_label-height: round(1cap, 4px);
803
+ --captured-size-2: var(--_label-height); /* capture cap-height before SVG overrides font-size */
804
+ --_font-family: var(--eds-typography-ui-body-font-family);
805
+ --_color: var(--eds-color-text-strong-on-emphasis);
806
+ --_bg-color: var(--eds-color-bg-fill-emphasis-default);
807
+ --_padding-block: var(--eds-selectable-space-vertical);
808
+
177
809
  cursor: pointer;
178
810
 
179
811
  /* Layout */
180
812
  display: inline-flex;
813
+ gap: round(0.618em, 1px);
181
814
  align-items: center;
182
815
  justify-content: center;
183
816
 
184
817
  box-sizing: border-box;
818
+ min-height: calc(var(--_padding-block) * 2 + var(--_label-height));
819
+ padding-block: calc(
820
+ var(--_padding-block) -
821
+ (var(--_label-line-height) - var(--_label-height)) / 2
822
+ );
823
+ padding-inline: var(--eds-selectable-space-horizontal);
185
824
 
186
825
  /* Appearance */
187
826
  border: none;
188
827
  border-radius: var(--eds-spacing-border-radius-rounded, 4px);
189
828
 
829
+ /* Typography — ensures correct font for asChild elements */
830
+ font-family: var(--eds-typography-ui-body-font-family);
831
+ font-size: var(--_label-font-size);
832
+ line-height: var(--_label-line-height);
833
+ color: var(--_color);
834
+ text-align: start;
190
835
  text-decoration: none;
836
+ white-space: pre-line;
191
837
 
838
+ background-color: var(--_bg-color);
192
839
  outline: none;
193
840
 
194
841
  /* Transitions */
@@ -196,47 +843,52 @@
196
843
  background-color 150ms ease-in-out,
197
844
  border-color 150ms ease-in-out,
198
845
  color 150ms ease-in-out;
199
- }
200
846
 
201
- /* ===== SIZE VARIANTS ===== */
202
- /*
203
- * Button height is controlled by min-height.
204
- * The span keeps its natural line-height and is centered by flexbox.
205
- *
206
- * Spacious (default): sm=24px, md=36px, lg=44px
207
- * Comfortable: sm=20px, md=24px, lg=36px
208
- */
847
+ /* ===== LABEL ===== */
848
+ & .label {
849
+ font-family: var(--_font-family);
850
+ font-size: var(--_label-font-size);
851
+ line-height: var(--_label-line-height);
852
+ color: var(--_color);
853
+ }
209
854
 
210
- .eds-button[data-selectable-space='lg'] {
211
- gap: var(--eds-typography-gap-horizontal);
212
- min-height: 2.75rem; /* 44px */
213
- padding-inline: var(--eds-selectable-space-horizontal);
214
- }
855
+ &[data-multiline] {
856
+ padding-block: var(--eds-selectable-space-vertical);
215
857
 
216
- .eds-button[data-selectable-space='md'] {
217
- gap: var(--eds-typography-gap-horizontal);
218
- min-height: 2.25rem; /* 36px */
219
- padding-inline: var(--eds-selectable-space-horizontal);
220
- }
858
+ .label {
859
+ white-space: normal;
221
860
 
222
- .eds-button[data-selectable-space='sm'] {
223
- gap: var(--eds-typography-gap-horizontal);
224
- min-height: 1.5rem; /* 24px */
225
- padding-inline: var(--eds-selectable-space-horizontal);
226
- }
861
+ @supports (text-box: trim-both ex alphabetic) {
862
+ padding-top: var(--eds-padding-top-baseline);
863
+ padding-bottom: 0;
864
+
865
+ text-box: trim-both ex alphabetic;
866
+ }
867
+ }
868
+ }
227
869
 
228
- /* Comfortable density */
870
+ & > svg {
871
+ --captured-size-1: var(--_label-font-size);
872
+ --_icon-size: calc(24px * tan(atan2(var(--captured-size-1), 1px)) / 16);
229
873
 
230
- [data-density='comfortable'] .eds-button[data-selectable-space='lg'] {
231
- min-height: 2.25rem; /* 36px */
232
- }
874
+ width: var(--_icon-size);
875
+ height: var(--_icon-size);
876
+ margin-block: calc((var(--captured-size-2) - var(--_icon-size)) / 2);
877
+ margin-inline: -0.2em;
233
878
 
234
- [data-density='comfortable'] .eds-button[data-selectable-space='md'] {
235
- min-height: 1.5rem; /* 24px */
879
+ font-size: var(--_icon-size);
880
+ }
236
881
  }
237
882
 
238
- [data-density='comfortable'] .eds-button[data-selectable-space='sm'] {
239
- min-height: 1.25rem; /* 20px */
883
+ /* ===== SIZE VARIANTS ===== */
884
+ /* Font size and line-height scale with data-selectable-space.
885
+ * Button height is derived from padding-block + line-height.
886
+ * min-height, gap, and padding-inline adapt automatically via the
887
+ * --eds-selectable-space-* tokens which are density-aware. */
888
+
889
+ .eds-button[data-selectable-space='sm'] {
890
+ --_label-font-size: var(--eds-typography-ui-body-sm-font-size);
891
+ --_label-line-height: var(--eds-typography-ui-body-sm-line-height-squished);
240
892
  }
241
893
 
242
894
  /* ===== ICON-ONLY BUTTON ===== */
@@ -256,79 +908,82 @@
256
908
  /* ===== PRIMARY VARIANT ===== */
257
909
 
258
910
  .eds-button[data-variant='primary'] {
259
- color: var(--eds-color-text-strong-on-emphasis);
260
- background-color: var(--eds-color-bg-fill-emphasis-default);
911
+ --_color: var(--eds-color-text-strong-on-emphasis);
912
+ --_bg-color: var(--eds-color-bg-fill-emphasis-default);
261
913
  }
262
914
 
263
- .eds-button[data-variant='primary']:hover:not(:disabled) {
264
- background-color: var(--eds-color-bg-fill-emphasis-hover);
915
+ .eds-button[data-variant='primary']:disabled {
916
+ --_bg-color: var(--eds-color-bg-fill-emphasis-disabled);
917
+ --_color: var(--eds-color-text-disabled);
918
+
919
+ cursor: not-allowed;
265
920
  }
266
921
 
267
- .eds-button[data-variant='primary']:active:not(:disabled) {
268
- background-color: var(--eds-color-bg-fill-emphasis-active);
922
+ .eds-button[data-variant='primary']:hover:not(:disabled) {
923
+ --_bg-color: var(--eds-color-bg-fill-emphasis-hover);
269
924
  }
270
925
 
271
- .eds-button[data-variant='primary']:disabled {
272
- cursor: not-allowed;
273
- color: var(--eds-color-text-disabled);
274
- background-color: var(--eds-color-bg-fill-emphasis-disabled);
926
+ .eds-button[data-variant='primary']:active:not(:disabled) {
927
+ --_bg-color: var(--eds-color-bg-fill-emphasis-active);
275
928
  }
276
929
 
277
930
  /* ===== SECONDARY VARIANT ===== */
278
931
 
279
932
  .eds-button[data-variant='secondary'] {
280
- color: var(--eds-color-text-subtle);
281
- background-color: transparent;
933
+ --_color: var(--eds-color-text-subtle);
934
+ --_bg-color: transparent;
935
+
282
936
  outline: var(--eds-border-width-default, 1px) solid
283
937
  var(--eds-color-border-strong);
284
938
  outline-offset: calc(-1 * var(--eds-border-width-default, 1px));
285
939
  }
286
940
 
287
- .eds-button[data-variant='secondary']:hover:not(:disabled) {
288
- background-color: var(--eds-color-bg-fill-muted-default);
289
- }
290
-
291
- .eds-button[data-variant='secondary']:active:not(:disabled) {
292
- background-color: var(--eds-color-bg-fill-muted-hover);
293
- }
294
-
295
941
  .eds-button[data-variant='secondary']:disabled {
942
+ --_color: var(--eds-color-text-disabled);
943
+
296
944
  cursor: not-allowed;
297
- color: var(--eds-color-text-disabled);
298
945
  outline: var(--eds-border-width-default, 1px) solid
299
946
  var(--eds-color-border-disabled);
300
947
  outline-offset: calc(-1 * var(--eds-border-width-default, 1px));
301
948
  }
302
949
 
303
- /* ===== GHOST VARIANT ===== */
950
+ .eds-button[data-variant='secondary']:focus-visible {
951
+ outline-offset: var(--eds-sizing-stroke-thin);
952
+ }
304
953
 
305
- .eds-button[data-variant='ghost'] {
306
- color: var(--eds-color-text-subtle);
307
- background-color: transparent;
954
+ .eds-button[data-variant='secondary']:hover:not(:disabled) {
955
+ --_bg-color: var(--eds-color-bg-fill-muted-default);
308
956
  }
309
957
 
310
- .eds-button[data-variant='ghost']:hover:not(:disabled) {
311
- background-color: var(--eds-color-bg-fill-muted-default);
958
+ .eds-button[data-variant='secondary']:active:not(:disabled) {
959
+ --_bg-color: var(--eds-color-bg-fill-muted-hover);
312
960
  }
313
961
 
314
- .eds-button[data-variant='ghost']:active:not(:disabled) {
315
- background-color: var(--eds-color-bg-fill-muted-hover);
962
+ /* ===== GHOST VARIANT ===== */
963
+
964
+ .eds-button[data-variant='ghost'] {
965
+ --_color: var(--eds-color-text-subtle);
966
+ --_bg-color: transparent;
316
967
  }
317
968
 
318
969
  .eds-button[data-variant='ghost']:disabled {
970
+ --_color: var(--eds-color-text-disabled);
971
+
319
972
  cursor: not-allowed;
320
- color: var(--eds-color-text-disabled);
321
973
  }
322
974
 
323
- /* ===== FOCUS STATE ===== */
975
+ .eds-button[data-variant='ghost']:hover:not(:disabled) {
976
+ --_bg-color: var(--eds-color-bg-fill-muted-default);
977
+ }
324
978
 
325
- .eds-button:focus-visible {
326
- outline: var(--eds-sizing-stroke-thick) solid
327
- var(--eds-color-border-focus);
328
- outline-offset: var(--eds-sizing-stroke-thin);
979
+ .eds-button[data-variant='ghost']:active:not(:disabled) {
980
+ --_bg-color: var(--eds-color-bg-fill-muted-hover);
329
981
  }
330
982
 
331
- .eds-button[data-variant='secondary']:focus-visible {
983
+ /* ===== FOCUS STATE ===== */
984
+
985
+ .eds-button:focus-visible {
986
+ outline: var(--eds-sizing-stroke-thick) solid var(--eds-color-border-focus);
332
987
  outline-offset: var(--eds-sizing-stroke-thin);
333
988
  }
334
989
 
@@ -345,23 +1000,6 @@
345
1000
  margin: 0;
346
1001
  }
347
1002
  }
348
- /*
349
- * Outside @layer to override typography.css [data-font-family] { display: block }.
350
- * The span wraps text children via TypographyNext and needs inline-flex for
351
- * icon+text gap and vertical centering.
352
- *
353
- * text-box/padding-block reset disables typography.css baseline padding —
354
- * button handles its own sizing via min-height + flexbox centering.
355
- */
356
- .eds-button__label {
357
- display: inline-flex;
358
- gap: var(--eds-typography-gap-horizontal);
359
- align-items: center;
360
-
361
- padding-block: 0;
362
-
363
- text-box: normal;
364
- }
365
1003
  @layer eds-components {
366
1004
  .eds-field {
367
1005
  /* Layout - use CSS variable for configurable width */
@@ -936,37 +1574,45 @@
936
1574
  .eds-input-container {
937
1575
  /* Temporary alias until proper input background token is available */
938
1576
  --_bg-input: var(--eds-color-bg-canvas);
1577
+
939
1578
  /* Temporary alias until proper readonly text token is available */
940
1579
  --_readonly-text-color: var(--eds-color-border-strong);
941
1580
 
942
1581
  isolation: isolate;
1582
+
943
1583
  display: flex;
944
1584
  flex-direction: row;
945
- align-items: center;
946
1585
  gap: var(--eds-typography-gap-horizontal);
1586
+ align-items: center;
1587
+
947
1588
  box-sizing: border-box;
948
1589
  inline-size: 100%;
1590
+ padding-block: var(--eds-selectable-space-vertical);
1591
+ padding-inline: var(--eds-selectable-space-horizontal);
1592
+ border-radius: var(--eds-spacing-border-radius-rounded, 4px);
1593
+
949
1594
  background: var(--_bg-input);
1595
+
950
1596
  /* Outline instead of border to not affect height calculation */
951
1597
  outline: var(--eds-sizing-stroke-thin) solid var(--eds-color-border-subtle);
952
1598
  outline-offset: calc(-1 * var(--eds-sizing-stroke-thin));
953
- border-radius: var(--eds-spacing-border-radius-none);
954
- padding-inline: var(--eds-selectable-space-horizontal);
955
- padding-block: var(--eds-selectable-space-vertical);
1599
+
956
1600
  transition:
957
1601
  background-color 150ms,
958
1602
  outline-color 150ms;
959
1603
 
960
- &:hover:not([data-disabled]):not([data-readonly]) {
1604
+ &:hover:not([data-disabled], [data-readonly]) {
961
1605
  outline-color: var(--eds-color-border-strong);
962
1606
 
963
1607
  & .eds-input {
964
1608
  color: var(--eds-color-text-strong);
1609
+
965
1610
  /* Safari autofill override */
966
1611
  -webkit-text-fill-color: var(--eds-color-text-strong);
967
1612
 
968
1613
  &::placeholder {
969
1614
  color: var(--eds-color-text-strong);
1615
+
970
1616
  /* Safari autofill override */
971
1617
  -webkit-text-fill-color: var(--eds-color-text-strong);
972
1618
  }
@@ -999,14 +1645,16 @@
999
1645
  outline-color: transparent;
1000
1646
 
1001
1647
  & .eds-input {
1002
- color: var(--eds-color-text-disabled);
1003
1648
  cursor: not-allowed;
1649
+ color: var(--eds-color-text-disabled);
1004
1650
  opacity: 1;
1651
+
1005
1652
  /* Safari autofill override */
1006
1653
  -webkit-text-fill-color: var(--eds-color-text-disabled);
1007
1654
 
1008
1655
  &::placeholder {
1009
1656
  color: var(--eds-color-text-disabled);
1657
+
1010
1658
  /* Safari autofill override */
1011
1659
  -webkit-text-fill-color: var(--eds-color-text-disabled);
1012
1660
  }
@@ -1025,6 +1673,7 @@
1025
1673
 
1026
1674
  & .eds-input {
1027
1675
  color: var(--_readonly-text-color);
1676
+
1028
1677
  /* Safari autofill override */
1029
1678
  -webkit-text-fill-color: var(--_readonly-text-color);
1030
1679
  }
@@ -1045,20 +1694,25 @@
1045
1694
  .eds-input {
1046
1695
  --_placeholder-text-color: var(--eds-color-text-subtle);
1047
1696
 
1697
+ resize: none;
1698
+
1699
+ overflow: hidden;
1048
1700
  flex: 1;
1701
+
1049
1702
  min-inline-size: 0;
1703
+ padding: 0;
1050
1704
  border: var(--eds-sizing-stroke-none);
1051
- background: transparent;
1052
- outline: none;
1705
+
1053
1706
  color: var(--eds-color-text-strong);
1054
- padding: 0;
1055
- overflow: hidden;
1056
- white-space: nowrap;
1057
1707
  text-overflow: ellipsis;
1058
- resize: none;
1708
+ white-space: nowrap;
1709
+
1710
+ background: transparent;
1711
+ outline: none;
1059
1712
 
1060
1713
  &::placeholder {
1061
1714
  color: var(--_placeholder-text-color);
1715
+
1062
1716
  /* Safari autofill override */
1063
1717
  -webkit-text-fill-color: var(--_placeholder-text-color);
1064
1718
  }
@@ -1066,16 +1720,17 @@
1066
1720
 
1067
1721
  /* Error icon */
1068
1722
  .eds-error-icon {
1069
- color: var(--eds-color-text-subtle);
1070
1723
  flex-shrink: 0;
1724
+ color: var(--eds-color-text-subtle);
1071
1725
  }
1072
1726
 
1073
1727
  /* Adornments container */
1074
1728
  .eds-adornment {
1075
1729
  display: flex;
1076
- align-items: center;
1077
- gap: var(--eds-typography-gap-horizontal);
1078
1730
  flex-shrink: 0;
1731
+ gap: var(--eds-typography-gap-horizontal);
1732
+ align-items: center;
1733
+
1079
1734
  color: var(--eds-color-text-subtle);
1080
1735
  }
1081
1736
 
@@ -1465,4 +2120,117 @@
1465
2120
  margin-inline-end: -4.8px;
1466
2121
  }
1467
2122
  }
2123
+ @layer eds-components {
2124
+ .eds-chip {
2125
+ cursor: pointer;
2126
+ user-select: none;
2127
+
2128
+ display: inline-flex;
2129
+ gap: var(--eds-typography-gap-horizontal);
2130
+ align-items: center;
2131
+
2132
+ box-sizing: border-box;
2133
+ padding-block: var(--eds-selectable-space-vertical);
2134
+ padding-inline: var(--eds-selectable-space-horizontal);
2135
+ border: none;
2136
+ border-radius: var(--eds-spacing-border-radius-pill, 100vmax);
2137
+
2138
+ font: inherit;
2139
+ color: inherit;
2140
+
2141
+ transition:
2142
+ background-color 150ms ease-in-out,
2143
+ outline-color 150ms ease-in-out,
2144
+ color 150ms ease-in-out;
2145
+
2146
+ /* ===== DEFAULT VARIANT (solid muted fill) ===== */
2147
+
2148
+ &[data-variant='default'] {
2149
+ color: var(--eds-color-text-subtle);
2150
+ background-color: var(--eds-color-bg-fill-muted-default);
2151
+ outline: none;
2152
+ }
2153
+
2154
+ &[data-variant='default']:hover {
2155
+ background-color: var(--eds-color-bg-fill-muted-hover);
2156
+ }
2157
+
2158
+ &[data-variant='default']:active {
2159
+ background-color: var(--eds-color-bg-fill-muted-active);
2160
+ }
2161
+
2162
+ /* ===== OUTLINED VARIANT (border + transparent bg) ===== */
2163
+
2164
+ &[data-variant='outlined'] {
2165
+ color: var(--eds-color-text-subtle);
2166
+ background-color: transparent;
2167
+ outline: var(--eds-border-width-default, 1px) solid
2168
+ var(--eds-color-border-strong);
2169
+ outline-offset: calc(-1 * var(--eds-border-width-default, 1px));
2170
+ }
2171
+
2172
+ &[data-variant='outlined']:hover {
2173
+ background-color: var(--eds-color-bg-fill-muted-hover);
2174
+ }
2175
+
2176
+ &[data-variant='outlined']:active {
2177
+ background-color: var(--eds-color-bg-fill-muted-active);
2178
+ }
2179
+
2180
+ /* ===== HIGH-CONTRAST VARIANT (emphasis fill + light text) ===== */
2181
+
2182
+ &[data-variant='high-contrast'] {
2183
+ color: var(--eds-color-text-strong-on-emphasis);
2184
+ background-color: var(--eds-color-bg-fill-emphasis-default);
2185
+ outline: none;
2186
+ }
2187
+
2188
+ &[data-variant='high-contrast']:hover {
2189
+ background-color: var(--eds-color-bg-fill-emphasis-hover);
2190
+ }
2191
+
2192
+ &[data-variant='high-contrast']:active {
2193
+ background-color: var(--eds-color-bg-fill-emphasis-active);
2194
+ }
2195
+
2196
+ /* ===== FOCUS STATE ===== */
2197
+
2198
+ &:focus-visible {
2199
+ box-shadow:
2200
+ 0 0 0 var(--eds-sizing-stroke-thin) var(--eds-color-bg-canvas),
2201
+ 0 0 0 calc(var(--eds-sizing-stroke-thin) * 2)
2202
+ var(--eds-color-border-focus);
2203
+ }
2204
+
2205
+ /* ===== ICONS ===== */
2206
+
2207
+ & .eds-icon {
2208
+ flex-shrink: 0;
2209
+ margin-block: calc(-1 * var(--eds-selectable-space-vertical));
2210
+ margin-inline: calc(-1 * var(--eds-selectable-space-vertical) / 2);
2211
+ }
2212
+ }
2213
+ }
2214
+ /*
2215
+ * Outside @layer to override typography.css [data-font-family] { display: block }.
2216
+ * data-font-family/data-font-size on the chip container establishes the typography
2217
+ * context for gap and icon sizing tokens.
2218
+ */
2219
+ .eds-chip {
2220
+ display: inline-flex;
2221
+ }
2222
+ /*
2223
+ * Label needs inline-flex to center custom icons with text.
2224
+ * text-box: normal disables baseline trimming — chip handles sizing via
2225
+ * padding + flexbox centering.
2226
+ */
2227
+ .eds-chip > .label {
2228
+ display: inline-flex;
2229
+ gap: var(--eds-typography-gap-horizontal);
2230
+ align-items: center;
2231
+
2232
+ padding-block: 0;
2233
+
2234
+ text-box: normal;
2235
+ }
1468
2236