@teseor/css 1.0.0 → 1.2.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 (73) hide show
  1. package/dist/compiled.css +212 -107
  2. package/dist/index.css +276 -171
  3. package/package.json +1 -1
  4. package/src/00-config/tokens/_variables.scss +39 -25
  5. package/src/00-config/tokens/colors/index.scss +22 -21
  6. package/src/02-base/typography/typography.scss +16 -0
  7. package/src/03-layout/cluster/cluster-visual.png +0 -0
  8. package/src/03-layout/cluster/cluster.visual.spec.ts +15 -0
  9. package/src/03-layout/sidebar/sidebar-visual.png +0 -0
  10. package/src/03-layout/sidebar/sidebar.docs.json +62 -0
  11. package/src/03-layout/sidebar/sidebar.visual.spec.ts +14 -0
  12. package/src/03-layout/sidebar-nav/sidebar-nav.api.json +29 -80
  13. package/src/04-components/accordion/accordion.api.json +5 -1
  14. package/src/04-components/alert/alert.api.json +6 -0
  15. package/src/04-components/alert/index.scss +10 -15
  16. package/src/04-components/avatar/avatar.api.json +5 -0
  17. package/src/04-components/badge/index.scss +12 -9
  18. package/src/04-components/breadcrumb/breadcrumb.api.json +5 -0
  19. package/src/04-components/button/button-visual.png +0 -0
  20. package/src/04-components/button/button.api.json +30 -56
  21. package/src/04-components/button/button.docs.json +75 -0
  22. package/src/04-components/button/index.scss +27 -17
  23. package/src/04-components/button-group/button-group-visual.png +0 -0
  24. package/src/04-components/button-group/button-group.api.json +5 -1
  25. package/src/04-components/button-group/button-group.visual.spec.ts +2 -1
  26. package/src/04-components/checkbox/checkbox-visual.png +0 -0
  27. package/src/04-components/checkbox/checkbox.api.json +1 -1
  28. package/src/04-components/code/code.api.json +6 -1
  29. package/src/04-components/data-list/data-list-visual.png +0 -0
  30. package/src/04-components/data-list/data-list.api.json +16 -1
  31. package/src/04-components/data-list/data-list.visual.spec.ts +2 -1
  32. package/src/04-components/data-list/index.scss +3 -2
  33. package/src/04-components/dialog/dialog.api.json +12 -1
  34. package/src/04-components/disclosure/disclosure.api.json +13 -1
  35. package/src/04-components/divider/divider.api.json +3 -0
  36. package/src/04-components/drawer/drawer.api.json +17 -1
  37. package/src/04-components/field/field.api.json +9 -1
  38. package/src/04-components/form-error/form-error-visual.png +0 -0
  39. package/src/04-components/form-error/form-error.api.json +3 -0
  40. package/src/04-components/icon/icon-visual.png +0 -0
  41. package/src/04-components/icon/icon.api.json +7 -6
  42. package/src/04-components/icon/icon.docs.json +86 -22
  43. package/src/04-components/icon/index.scss +6 -19
  44. package/src/04-components/index.scss +1 -0
  45. package/src/04-components/input/input-visual.png +0 -0
  46. package/src/04-components/input/input.api.json +31 -0
  47. package/src/04-components/label/label.api.json +4 -0
  48. package/src/04-components/link/link-visual.png +0 -0
  49. package/src/04-components/link/link.api.json +6 -0
  50. package/src/04-components/menu/menu.api.json +24 -0
  51. package/src/04-components/modal/modal.api.json +12 -1
  52. package/src/04-components/nav/index.scss +142 -0
  53. package/src/04-components/nav/nav-visual.png +0 -0
  54. package/src/04-components/nav/nav.api.json +55 -0
  55. package/src/04-components/nav/nav.docs.json +242 -0
  56. package/src/04-components/nav/nav.visual.spec.ts +14 -0
  57. package/src/04-components/overlay/overlay.api.json +14 -1
  58. package/src/04-components/pagination/pagination.api.json +22 -1
  59. package/src/04-components/popover/popover.api.json +9 -1
  60. package/src/04-components/progress/progress.api.json +20 -1
  61. package/src/04-components/radio/radio-visual.png +0 -0
  62. package/src/04-components/radio/radio.api.json +1 -1
  63. package/src/04-components/select/select.api.json +3 -0
  64. package/src/04-components/skeleton/skeleton.api.json +8 -1
  65. package/src/04-components/status/status.api.json +14 -1
  66. package/src/04-components/table/table.api.json +8 -1
  67. package/src/04-components/tabs/tabs.api.json +17 -0
  68. package/src/04-components/tag/tag.api.json +4 -0
  69. package/src/04-components/textarea/textarea.api.json +3 -0
  70. package/src/04-components/toast/toast.api.json +22 -1
  71. package/src/04-components/toggle/toggle.api.json +5 -0
  72. package/src/04-components/tooltip/tooltip.api.json +11 -1
  73. package/src/testing/page-setup.ts +25 -9
package/dist/compiled.css CHANGED
@@ -9,26 +9,25 @@
9
9
  @import "https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;500;700&family=Noto+Sans+Mono:wght@400;500&display=swap";
10
10
  @layer reset, tokens, base, primitives, components.styles, components.tokens, utilities, themes;
11
11
  :root {
12
- --ui-hue-primary: 220;
13
- --ui-hue-success: 142;
14
- --ui-hue-warning: 38;
15
- --ui-hue-danger: 0;
16
- --ui-color-neutral-50: hsl(var(--ui-hue-primary) 10% 98%);
17
- --ui-color-neutral-100: hsl(var(--ui-hue-primary) 10% 96%);
18
- --ui-color-neutral-200: hsl(var(--ui-hue-primary) 10% 90%);
19
- --ui-color-neutral-300: hsl(var(--ui-hue-primary) 10% 80%);
20
- --ui-color-neutral-400: hsl(var(--ui-hue-primary) 10% 60%);
21
- --ui-color-neutral-500: hsl(var(--ui-hue-primary) 10% 45%);
22
- --ui-color-neutral-600: hsl(var(--ui-hue-primary) 10% 35%);
23
- --ui-color-neutral-700: hsl(var(--ui-hue-primary) 10% 25%);
24
- --ui-color-neutral-800: hsl(var(--ui-hue-primary) 10% 15%);
25
- --ui-color-neutral-900: hsl(var(--ui-hue-primary) 10% 10%);
26
- --ui-color-primary-light: hsl(var(--ui-hue-primary) 85% 65%);
27
- --ui-color-primary: hsl(var(--ui-hue-primary) 85% 50%);
28
- --ui-color-primary-dark: hsl(var(--ui-hue-primary) 85% 40%);
29
- --ui-color-success: hsl(var(--ui-hue-success) 70% 45%);
30
- --ui-color-warning: hsl(var(--ui-hue-warning) 90% 50%);
31
- --ui-color-danger: hsl(var(--ui-hue-danger) 70% 50%);
12
+ --ui-color-primary: oklch(55% 0.22 250);
13
+ --ui-color-success: oklch(60% 0.18 145);
14
+ --ui-color-warning: oklch(75% 0.18 70);
15
+ --ui-color-danger: oklch(60% 0.22 25);
16
+ --ui-color-neutral: oklch(50% 0.02 250);
17
+ --ui-color-primary-light: color-mix(in oklch, var(--ui-color-primary) 50%, white);
18
+ --ui-color-primary-dark: color-mix(in oklch, var(--ui-color-primary) 75%, black);
19
+ --ui-color-primary-subtle: color-mix(in oklch, var(--ui-color-primary) 12%, white);
20
+ --ui-color-primary-hover: color-mix(in oklch, var(--ui-color-primary) 85%, black);
21
+ --ui-color-neutral-50: color-mix(in oklch, var(--ui-color-neutral) 3%, white);
22
+ --ui-color-neutral-100: color-mix(in oklch, var(--ui-color-neutral) 6%, white);
23
+ --ui-color-neutral-200: color-mix(in oklch, var(--ui-color-neutral) 12%, white);
24
+ --ui-color-neutral-300: color-mix(in oklch, var(--ui-color-neutral) 25%, white);
25
+ --ui-color-neutral-400: color-mix(in oklch, var(--ui-color-neutral) 50%, white);
26
+ --ui-color-neutral-500: var(--ui-color-neutral);
27
+ --ui-color-neutral-600: color-mix(in oklch, var(--ui-color-neutral) 85%, black);
28
+ --ui-color-neutral-700: color-mix(in oklch, var(--ui-color-neutral) 70%, black);
29
+ --ui-color-neutral-800: color-mix(in oklch, var(--ui-color-neutral) 50%, black);
30
+ --ui-color-neutral-900: color-mix(in oklch, var(--ui-color-neutral) 35%, black);
32
31
  }
33
32
 
34
33
  :root {
@@ -326,6 +325,17 @@
326
325
  padding: 0;
327
326
  background: none;
328
327
  }
328
+ a {
329
+ text-decoration: underline;
330
+ color: var(--ui-color-primary);
331
+ transition: color var(--ui-duration-fast) var(--ui-ease-default);
332
+ }
333
+ a:hover {
334
+ color: var(--ui-color-primary-hover);
335
+ }
336
+ a:visited {
337
+ color: var(--ui-color-primary);
338
+ }
329
339
  @media (width < 45.625rem) {
330
340
  h1 {
331
341
  font-size: var(--ui-font-size-2xl);
@@ -822,34 +832,27 @@
822
832
  }
823
833
  @layer components.tokens {
824
834
  .alert {
835
+ --_accent: var(--ui-alert-accent, var(--ui-color-border, hsl(220, 10%, 90%)));
825
836
  --_padding: var(--ui-alert-padding, var(--ui-space-2, 1rem));
826
837
  --_border-width: var(--ui-alert-border-width, var(--ui-border-width-sm, 0.0625rem));
827
838
  --_gap: var(--ui-alert-gap, var(--ui-space-1, 0.5rem));
828
839
  --_radius: var(--ui-alert-radius, var(--ui-radius-md, 0.5rem));
829
- --_bg: var(--ui-alert-bg, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
830
- --_border-color: var(--ui-alert-border-color, var(--ui-color-border, hsl(220, 10%, 90%)));
840
+ --_bg: color-mix(in oklch, var(--_accent) 8%, white);
841
+ --_border-color: var(--_accent);
831
842
  --_color: var(--ui-alert-color, var(--ui-color-text, hsl(220, 10%, 10%)));
832
- --_icon-color: var(--ui-alert-icon-color, currentcolor);
843
+ --_icon-color: var(--_accent);
833
844
  }
834
845
  .alert--info {
835
- --_bg: var(--ui-alert-info-bg, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
836
- --_border-color: var(--ui-alert-info-border, var(--ui-color-primary, hsl(220, 85%, 50%)));
837
- --_icon-color: var(--ui-alert-info-icon, var(--ui-color-primary, hsl(220, 85%, 50%)));
846
+ --_accent: var(--ui-color-primary, oklch(55% 0.22 250deg));
838
847
  }
839
848
  .alert--success {
840
- --_bg: var(--ui-alert-success-bg, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
841
- --_border-color: var(--ui-alert-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
842
- --_icon-color: var(--ui-alert-success-icon, var(--ui-color-success, hsl(142, 70%, 45%)));
849
+ --_accent: var(--ui-color-success, oklch(60% 0.18 145deg));
843
850
  }
844
851
  .alert--warning {
845
- --_bg: var(--ui-alert-warning-bg, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
846
- --_border-color: var(--ui-alert-warning-border, var(--ui-color-warning, hsl(38, 90%, 50%)));
847
- --_icon-color: var(--ui-alert-warning-icon, var(--ui-color-warning, hsl(38, 90%, 50%)));
852
+ --_accent: var(--ui-color-warning, oklch(75% 0.18 70deg));
848
853
  }
849
854
  .alert--danger {
850
- --_bg: var(--ui-alert-danger-bg, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
851
- --_border-color: var(--ui-alert-danger-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
852
- --_icon-color: var(--ui-alert-danger-icon, var(--ui-color-danger, hsl(0, 70%, 50%)));
855
+ --_accent: var(--ui-color-danger, oklch(60% 0.22 25deg));
853
856
  }
854
857
  }
855
858
  @layer components.styles {
@@ -975,12 +978,13 @@
975
978
  }
976
979
  @layer components.tokens {
977
980
  .badge {
981
+ --_accent: var(--ui-badge-accent, var(--ui-color-bg-muted, hsl(220, 10%, 90%)));
978
982
  --_height: var(--ui-badge-height, calc(var(--ui-row, 1rem) * 1.25));
979
983
  --_padding-x: var(--ui-badge-padding-x, var(--ui-space-1, 0.5rem));
980
984
  --_font-size: var(--ui-badge-font-size, var(--ui-font-size-xs, 0.75rem));
981
985
  --_font-weight: var(--ui-badge-font-weight, var(--ui-weight-medium, 500));
982
986
  --_radius: var(--ui-badge-radius, var(--ui-radius-full, 9999px));
983
- --_bg: var(--ui-badge-bg, var(--ui-color-bg-muted, hsl(220, 10%, 90%)));
987
+ --_bg: var(--_accent);
984
988
  --_text: var(--ui-badge-text, var(--ui-color-text, hsl(220, 10%, 10%)));
985
989
  }
986
990
  .badge--sm {
@@ -989,20 +993,20 @@
989
993
  --_font-size: var(--ui-badge-font-size-sm, calc(var(--ui-font-size-xs, 0.75rem) * 0.85));
990
994
  }
991
995
  .badge--primary {
992
- --_bg: var(--ui-badge-primary-bg, var(--ui-color-primary, hsl(220, 85%, 50%)));
993
- --_text: var(--ui-badge-primary-text, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
996
+ --_accent: var(--ui-color-primary, oklch(55% 0.22 250deg));
997
+ --_text: var(--ui-color-text-inverse, hsl(220, 10%, 98%));
994
998
  }
995
999
  .badge--success {
996
- --_bg: var(--ui-badge-success-bg, var(--ui-color-success, hsl(142, 70%, 45%)));
997
- --_text: var(--ui-badge-success-text, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
1000
+ --_accent: var(--ui-color-success, oklch(60% 0.18 145deg));
1001
+ --_text: var(--ui-color-text-inverse, hsl(220, 10%, 98%));
998
1002
  }
999
1003
  .badge--warning {
1000
- --_bg: var(--ui-badge-warning-bg, var(--ui-color-warning, hsl(38, 90%, 50%)));
1001
- --_text: var(--ui-badge-warning-text, var(--ui-color-text, hsl(220, 10%, 10%)));
1004
+ --_accent: var(--ui-color-warning, oklch(75% 0.18 70deg));
1005
+ --_text: var(--ui-color-text, hsl(220, 10%, 10%));
1002
1006
  }
1003
1007
  .badge--danger {
1004
- --_bg: var(--ui-badge-danger-bg, var(--ui-color-danger, hsl(0, 70%, 50%)));
1005
- --_text: var(--ui-badge-danger-text, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
1008
+ --_accent: var(--ui-color-danger, oklch(60% 0.22 25deg));
1009
+ --_text: var(--ui-color-text-inverse, hsl(220, 10%, 98%));
1006
1010
  }
1007
1011
  }
1008
1012
  @layer components.styles {
@@ -1076,50 +1080,57 @@
1076
1080
  }
1077
1081
  @layer components.tokens {
1078
1082
  .button {
1083
+ --_accent: var(--ui-button-accent, var(--ui-color-primary, oklch(55% 0.22 250deg)));
1079
1084
  --_height: var(--ui-button-height, var(--ui-row-2, 2rem));
1080
1085
  --_padding-x: var(--ui-button-padding-x, var(--ui-space-2, 1rem));
1081
1086
  --_font-size: var(--ui-button-font-size, var(--ui-font-size-sm, 0.875rem));
1082
1087
  --_font-weight: var(--ui-button-font-weight, var(--ui-weight-medium, 500));
1083
1088
  --_radius: var(--ui-button-radius, var(--ui-radius-md, 0.5rem));
1084
- --_bg: var(--ui-button-bg, var(--ui-color-primary, hsl(220, 85%, 50%)));
1085
- --_bg-hover: var(--ui-button-bg-hover, var(--ui-color-primary-dark, hsl(220, 85%, 40%)));
1089
+ --_bg: var(--_accent);
1090
+ --_bg-hover: color-mix(in oklch, var(--_accent) 80%, black);
1086
1091
  --_text: var(--ui-button-text, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
1087
1092
  }
1088
1093
  .button--sm {
1094
+ --ui-ctx-size: var(--ui-size-sm, 0.75rem);
1089
1095
  --_height: var(--ui-button-height-sm, calc(var(--row, 1rem) * 1.5));
1090
1096
  --_font-size: var(--ui-button-font-size-sm, var(--ui-font-size-xs, 0.75rem));
1091
1097
  }
1098
+ .button--md {
1099
+ --ui-ctx-size: var(--ui-size-md, 1rem);
1100
+ --_height: var(--ui-button-height-md, var(--ui-row-2, 2rem));
1101
+ --_font-size: var(--ui-button-font-size-md, var(--ui-font-size-sm, 0.875rem));
1102
+ }
1092
1103
  .button--lg {
1104
+ --ui-ctx-size: var(--ui-size-lg, 1.25rem);
1093
1105
  --_height: var(--ui-button-height-lg, calc(var(--row, 1rem) * 2.5));
1094
1106
  --_padding-x: var(--ui-button-padding-x-lg, var(--ui-space-3, 1.5rem));
1095
1107
  --_font-size: var(--ui-button-font-size-lg, var(--ui-font-size-md, 1rem));
1096
1108
  }
1097
1109
  .button--secondary {
1098
- --_bg: var(--ui-button-secondary-bg, var(--ui-color-bg-muted, hsl(220, 10%, 90%)));
1099
- --_bg-hover: var(--ui-button-secondary-bg-hover, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
1100
- --_text: var(--ui-button-secondary-text, var(--ui-color-text, hsl(220, 10%, 10%)));
1110
+ --_bg: var(--ui-color-bg-muted, hsl(220, 10%, 90%));
1111
+ --_bg-hover: var(--ui-color-border-strong, hsl(220, 10%, 80%));
1112
+ --_text: var(--ui-color-text, hsl(220, 10%, 10%));
1101
1113
  }
1102
1114
  .button--ghost {
1103
- --_bg: var(--ui-button-ghost-bg, transparent);
1104
- --_bg-hover: var(--ui-button-ghost-bg-hover, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
1105
- --_text: var(--ui-button-ghost-text, var(--ui-color-primary, hsl(220, 85%, 50%)));
1115
+ --_bg: transparent;
1116
+ --_bg-hover: color-mix(in oklch, var(--_accent) 10%, transparent);
1117
+ --_text: var(--_accent);
1106
1118
  }
1107
1119
  .button--outline {
1108
- --_bg: var(--ui-button-outline-bg, transparent);
1109
- --_bg-hover: var(--ui-button-outline-bg-hover, var(--ui-color-primary, hsl(220, 85%, 50%)));
1110
- --_text: var(--ui-button-outline-text, var(--ui-color-primary, hsl(220, 85%, 50%)));
1111
- --_text-hover: var(--ui-button-outline-text-hover, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
1112
- --_border: var(--ui-button-outline-border, var(--ui-border-width-sm, 0.0625rem) solid currentColor);
1120
+ --_bg: transparent;
1121
+ --_bg-hover: var(--_accent);
1122
+ --_text: var(--_accent);
1123
+ --_text-hover: var(--ui-color-text-inverse, hsl(220, 10%, 98%));
1124
+ --_border: var(--ui-border-width-sm, 0.0625rem) solid currentColor;
1113
1125
  }
1114
1126
  .button--danger {
1115
- --_bg: var(--ui-button-danger-bg, var(--ui-color-danger, hsl(0, 70%, 50%)));
1116
- --_bg-hover: var(--ui-button-danger-bg-hover, hsl(0, 70%, 40%));
1127
+ --_accent: var(--ui-color-danger, oklch(60% 0.22 25deg));
1117
1128
  }
1118
1129
  .button--link {
1119
1130
  --_bg: transparent;
1120
1131
  --_bg-hover: transparent;
1121
- --_text: var(--ui-button-link-text, var(--ui-color-primary, hsl(220, 85%, 50%)));
1122
- --_text-hover: var(--ui-button-link-text-hover, var(--ui-color-primary-dark, hsl(220, 85%, 40%)));
1132
+ --_text: var(--_accent);
1133
+ --_text-hover: color-mix(in oklch, var(--_accent) 70%, black);
1123
1134
  --_height: auto;
1124
1135
  --_padding-x: 0;
1125
1136
  --_radius: 0;
@@ -1167,7 +1178,7 @@
1167
1178
  background: var(--_bg-hover);
1168
1179
  }
1169
1180
  .button:focus-visible, .button--focus {
1170
- outline: var(--ui-border-width-md, 0.125rem) solid var(--ui-color-focus, hsl(220, 85%, 65%));
1181
+ outline: var(--ui-border-width-md, 0.125rem) solid var(--ui-color-focus, oklch(75% 0.15 250deg));
1171
1182
  outline-offset: var(--ui-border-width-md, 0.125rem);
1172
1183
  }
1173
1184
  .button:active, .button--active {
@@ -1319,17 +1330,17 @@
1319
1330
  --_size: var(--ui-checkbox-size, calc(0.5rem * 2));
1320
1331
  --_radius: var(--ui-checkbox-radius, var(--ui-radius-sm, 0.25rem));
1321
1332
  --_bg: var(--ui-checkbox-bg, var(--ui-color-bg, hsl(220, 10%, 98%)));
1322
- --_bg-checked: var(--ui-checkbox-bg-checked, var(--ui-color-primary, hsl(220, 85%, 50%)));
1333
+ --_bg-checked: var(--ui-checkbox-bg-checked, var(--ui-color-primary, oklch(55% 0.22 250deg)));
1323
1334
  --_border-color: var(--ui-checkbox-border-color, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
1324
- --_border-color-focus: var(--ui-checkbox-border-color-focus, var(--ui-color-primary, hsl(220, 85%, 50%)));
1335
+ --_border-color-focus: var(--ui-checkbox-border-color-focus, var(--ui-color-primary, oklch(55% 0.22 250deg)));
1325
1336
  --_check-color: var(--ui-checkbox-check-color, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
1326
1337
  }
1327
1338
  .checkbox--lg {
1328
1339
  --_size: var(--ui-checkbox-size-lg, calc(0.5rem * 3));
1329
1340
  }
1330
1341
  .checkbox--error {
1331
- --_border-color: var(--ui-checkbox-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
1332
- --_border-color-focus: var(--ui-checkbox-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
1342
+ --_border-color: var(--ui-checkbox-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
1343
+ --_border-color-focus: var(--ui-checkbox-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
1333
1344
  }
1334
1345
  }
1335
1346
  @layer components.styles {
@@ -1364,7 +1375,7 @@
1364
1375
  .checkbox:focus-visible {
1365
1376
  border-color: var(--_border-color-focus);
1366
1377
  outline: none;
1367
- box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, hsl(220, 85%, 65%));
1378
+ box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, oklch(75% 0.15 250deg));
1368
1379
  }
1369
1380
  .checkbox:checked {
1370
1381
  background: var(--_bg-checked);
@@ -1477,8 +1488,8 @@
1477
1488
  text-align: end;
1478
1489
  }
1479
1490
  .data-list--divided .data-list__item {
1480
- padding-block-end: var(--_gap);
1481
- border-block-end: 1px solid var(--ui-color-border, hsl(220, 10%, 90%));
1491
+ padding-block-end: calc(var(--_gap) - var(--ui-border-width-sm, 0.0625rem));
1492
+ border-block-end: var(--ui-border-width-sm, 0.0625rem) solid var(--ui-color-border, hsl(220, 10%, 90%));
1482
1493
  }
1483
1494
  .data-list--divided .data-list__item:last-child {
1484
1495
  padding-block-end: 0;
@@ -2000,23 +2011,23 @@
2000
2011
  }
2001
2012
  @layer components.tokens {
2002
2013
  .icon {
2003
- --_size: var(--ui-icon-size, 1em);
2014
+ --_size: var(--ui-icon-size, var(--ui-ctx-size, 1rem));
2004
2015
  --_stroke: var(--ui-icon-stroke, 2);
2005
2016
  }
2006
2017
  .icon--xs {
2007
- --_size: var(--ui-icon-size-xs, calc(0.5rem * 2));
2018
+ --_size: var(--ui-icon-size-xs, var(--ui-size-xs, 0.5rem));
2008
2019
  }
2009
2020
  .icon--sm {
2010
- --_size: var(--ui-icon-size-sm, calc(0.5rem * 3));
2021
+ --_size: var(--ui-icon-size-sm, var(--ui-size-sm, 0.75rem));
2011
2022
  }
2012
2023
  .icon--md {
2013
- --_size: var(--ui-icon-size-md, calc(0.5rem * 4));
2024
+ --_size: var(--ui-icon-size-md, var(--ui-size-md, 1rem));
2014
2025
  }
2015
2026
  .icon--lg {
2016
- --_size: var(--ui-icon-size-lg, calc(0.5rem * 5));
2027
+ --_size: var(--ui-icon-size-lg, var(--ui-size-lg, 1.25rem));
2017
2028
  }
2018
2029
  .icon--xl {
2019
- --_size: var(--ui-icon-size-xl, calc(0.5rem * 6));
2030
+ --_size: var(--ui-icon-size-xl, var(--ui-size-xl, 1.5rem));
2020
2031
  }
2021
2032
  .icon--stroke-thin {
2022
2033
  --_stroke: var(--ui-icon-stroke-thin, 1);
@@ -2060,7 +2071,7 @@
2060
2071
  --_radius: var(--ui-input-radius, var(--ui-radius-md, 0.5rem));
2061
2072
  --_bg: var(--ui-input-bg, var(--ui-color-bg, hsl(220, 10%, 98%)));
2062
2073
  --_border-color: var(--ui-input-border-color, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
2063
- --_border-color-focus: var(--ui-input-border-color-focus, var(--ui-color-primary, hsl(220, 85%, 50%)));
2074
+ --_border-color-focus: var(--ui-input-border-color-focus, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2064
2075
  --_text: var(--ui-input-text, var(--ui-color-text, hsl(220, 10%, 10%)));
2065
2076
  --_placeholder: var(--ui-input-placeholder, var(--ui-color-text-muted, hsl(220, 10%, 45%)));
2066
2077
  }
@@ -2082,12 +2093,12 @@
2082
2093
  --_border-color: transparent;
2083
2094
  }
2084
2095
  .input--error {
2085
- --_border-color: var(--ui-input-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2086
- --_border-color-focus: var(--ui-input-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2096
+ --_border-color: var(--ui-input-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2097
+ --_border-color-focus: var(--ui-input-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2087
2098
  }
2088
2099
  .input--success {
2089
- --_border-color: var(--ui-input-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
2090
- --_border-color-focus: var(--ui-input-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
2100
+ --_border-color: var(--ui-input-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
2101
+ --_border-color-focus: var(--ui-input-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
2091
2102
  }
2092
2103
  }
2093
2104
  @layer components.styles {
@@ -2114,7 +2125,7 @@
2114
2125
  .input:focus, .input--focus {
2115
2126
  border-color: var(--_border-color-focus);
2116
2127
  outline: none;
2117
- box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, hsl(220, 85%, 65%));
2128
+ box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, oklch(75% 0.15 250deg));
2118
2129
  }
2119
2130
  .input:disabled, .input--disabled {
2120
2131
  opacity: 0.5;
@@ -2165,7 +2176,7 @@
2165
2176
  .label {
2166
2177
  --_font-size: var(--ui-label-font-size, var(--ui-font-size-sm, 0.875rem));
2167
2178
  --_color: var(--ui-label-color, var(--ui-color-text, hsl(220, 10%, 10%)));
2168
- --_required-color: var(--ui-label-required-color, var(--ui-color-danger, hsl(0, 70%, 50%)));
2179
+ --_required-color: var(--ui-label-required-color, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2169
2180
  }
2170
2181
  .label--lg {
2171
2182
  --_font-size: var(--ui-label-font-size-lg, var(--ui-font-size-md, 1rem));
@@ -2305,10 +2316,10 @@
2305
2316
  outline: none;
2306
2317
  }
2307
2318
  .menu__item--danger {
2308
- color: var(--ui-color-danger, hsl(0, 70%, 50%));
2319
+ color: var(--ui-color-danger, oklch(60% 0.22 25deg));
2309
2320
  }
2310
2321
  .menu__item--danger:hover, .menu__item--danger:focus-visible {
2311
- color: var(--ui-color-danger, hsl(0, 70%, 50%));
2322
+ color: var(--ui-color-danger, oklch(60% 0.22 25deg));
2312
2323
  }
2313
2324
  .menu__item--disabled,
2314
2325
  .menu__item[aria-disabled=true] {
@@ -2419,6 +2430,100 @@
2419
2430
  pointer-events: none;
2420
2431
  }
2421
2432
  }
2433
+ @layer components.tokens {
2434
+ .nav {
2435
+ --_gap: var(--ui-nav-gap, var(--ui-space-1, 0.5rem));
2436
+ --_item-height: var(--ui-nav-item-height, var(--ui-row-2, 2rem));
2437
+ --_item-padding-x: var(--ui-nav-item-padding-x, var(--ui-space-2, 1rem));
2438
+ --_item-font-size: var(--ui-nav-item-font-size, var(--ui-font-size-sm, 0.875rem));
2439
+ --_item-font-weight: var(--ui-nav-item-font-weight, var(--ui-weight-medium, 500));
2440
+ --_item-color: var(--ui-nav-item-color, var(--ui-color-text-muted, hsl(220, 10%, 45%)));
2441
+ --_item-color-hover: var(--ui-nav-item-color-hover, var(--ui-color-text, hsl(220, 10%, 10%)));
2442
+ --_item-color-active: var(--ui-nav-item-color-active, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2443
+ --_item-radius: var(--ui-nav-item-radius, var(--ui-radius-sm, 0.25rem));
2444
+ --_border-color: var(--ui-nav-border-color, var(--ui-color-border, hsl(220, 10%, 90%)));
2445
+ }
2446
+ .nav--pills {
2447
+ --_item-bg-hover: var(--ui-nav-item-bg-hover, var(--ui-color-bg-muted, hsl(220, 10%, 90%)));
2448
+ --_item-bg-active: var(--ui-nav-item-bg-active, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2449
+ --_item-color-active: var(--ui-nav-item-color-active, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
2450
+ }
2451
+ }
2452
+ @layer components.styles {
2453
+ .nav__list {
2454
+ display: flex;
2455
+ align-items: stretch;
2456
+ gap: var(--_gap);
2457
+ box-sizing: border-box;
2458
+ block-size: var(--_item-height);
2459
+ padding: 0;
2460
+ margin: 0;
2461
+ list-style: none;
2462
+ box-shadow: inset 0 calc(var(--ui-border-width-sm, 0.0625rem) * -1) 0 var(--_border-color);
2463
+ }
2464
+ .nav__item {
2465
+ display: inline-flex;
2466
+ align-items: center;
2467
+ box-sizing: border-box;
2468
+ block-size: var(--_item-height);
2469
+ padding-inline: var(--_item-padding-x);
2470
+ font-family: var(--ui-font-sans, Noto Sans, system-ui, -apple-system, sans-serif);
2471
+ font-size: var(--_item-font-size);
2472
+ font-weight: var(--_item-font-weight);
2473
+ line-height: 1;
2474
+ text-decoration: none;
2475
+ white-space: nowrap;
2476
+ color: var(--_item-color);
2477
+ background: transparent;
2478
+ border: none;
2479
+ box-shadow: inset 0 calc(var(--ui-border-width-md, 0.125rem) * -1) 0 transparent;
2480
+ cursor: pointer;
2481
+ transition: color var(--ui-duration-base) var(--ui-ease-default), background var(--ui-duration-base) var(--ui-ease-default), box-shadow var(--ui-duration-base) var(--ui-ease-default);
2482
+ }
2483
+ .nav__item:hover {
2484
+ color: var(--_item-color-hover);
2485
+ }
2486
+ .nav__item--active {
2487
+ color: var(--_item-color-active);
2488
+ box-shadow: inset 0 calc(var(--ui-border-width-md, 0.125rem) * -1) 0 var(--_item-color-active);
2489
+ }
2490
+ .nav__item--disabled {
2491
+ opacity: 0.5;
2492
+ pointer-events: none;
2493
+ }
2494
+ .nav--pills .nav__list {
2495
+ box-shadow: none;
2496
+ }
2497
+ .nav--pills .nav__item {
2498
+ border-radius: var(--_item-radius);
2499
+ box-shadow: none;
2500
+ }
2501
+ .nav--pills .nav__item:hover {
2502
+ background: var(--_item-bg-hover);
2503
+ }
2504
+ .nav--pills .nav__item--active {
2505
+ color: var(--_item-color-active);
2506
+ background: var(--_item-bg-active);
2507
+ }
2508
+ .nav--vertical .nav__list {
2509
+ flex-direction: column;
2510
+ align-items: stretch;
2511
+ block-size: auto;
2512
+ box-shadow: inset calc(var(--ui-border-width-sm, 0.0625rem) * -1) 0 0 var(--_border-color);
2513
+ }
2514
+ .nav--vertical .nav__item {
2515
+ box-shadow: inset calc(var(--ui-border-width-md, 0.125rem) * -1) 0 0 transparent;
2516
+ }
2517
+ .nav--vertical .nav__item--active {
2518
+ box-shadow: inset calc(var(--ui-border-width-md, 0.125rem) * -1) 0 0 var(--_item-color-active);
2519
+ }
2520
+ .nav--vertical.nav--pills .nav__list {
2521
+ box-shadow: none;
2522
+ }
2523
+ .nav--vertical.nav--pills .nav__item {
2524
+ box-shadow: none;
2525
+ }
2526
+ }
2422
2527
  @layer components.tokens {
2423
2528
  .overlay {
2424
2529
  --_bg: var(--ui-overlay-bg, rgb(0 0 0 / 0.5));
@@ -2686,17 +2791,17 @@
2686
2791
  .radio {
2687
2792
  --_size: var(--ui-radio-size, calc(0.5rem * 2));
2688
2793
  --_bg: var(--ui-radio-bg, var(--ui-color-bg, hsl(220, 10%, 98%)));
2689
- --_bg-checked: var(--ui-radio-bg-checked, var(--ui-color-primary, hsl(220, 85%, 50%)));
2794
+ --_bg-checked: var(--ui-radio-bg-checked, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2690
2795
  --_border-color: var(--ui-radio-border-color, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
2691
- --_border-color-focus: var(--ui-radio-border-color-focus, var(--ui-color-primary, hsl(220, 85%, 50%)));
2796
+ --_border-color-focus: var(--ui-radio-border-color-focus, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2692
2797
  --_dot-color: var(--ui-radio-dot-color, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
2693
2798
  }
2694
2799
  .radio--lg {
2695
2800
  --_size: var(--ui-radio-size-lg, calc(0.5rem * 3));
2696
2801
  }
2697
2802
  .radio--error {
2698
- --_border-color: var(--ui-radio-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2699
- --_border-color-focus: var(--ui-radio-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2803
+ --_border-color: var(--ui-radio-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2804
+ --_border-color-focus: var(--ui-radio-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2700
2805
  }
2701
2806
  }
2702
2807
  @layer components.styles {
@@ -2732,7 +2837,7 @@
2732
2837
  .radio:focus-visible {
2733
2838
  border-color: var(--_border-color-focus);
2734
2839
  outline: none;
2735
- box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, hsl(220, 85%, 65%));
2840
+ box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, oklch(75% 0.15 250deg));
2736
2841
  }
2737
2842
  .radio:checked {
2738
2843
  background: var(--_bg-checked);
@@ -2755,7 +2860,7 @@
2755
2860
  --_radius: var(--ui-select-radius, var(--ui-radius-md, 0.5rem));
2756
2861
  --_bg: var(--ui-select-bg, var(--ui-color-bg, hsl(220, 10%, 98%)));
2757
2862
  --_border-color: var(--ui-select-border-color, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
2758
- --_border-color-focus: var(--ui-select-border-color-focus, var(--ui-color-primary, hsl(220, 85%, 50%)));
2863
+ --_border-color-focus: var(--ui-select-border-color-focus, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2759
2864
  --_text: var(--ui-select-text, var(--ui-color-text, hsl(220, 10%, 10%)));
2760
2865
  --_icon-color: var(--ui-select-icon-color, var(--ui-color-text-muted, hsl(220, 10%, 45%)));
2761
2866
  }
@@ -2777,12 +2882,12 @@
2777
2882
  --_border-color: transparent;
2778
2883
  }
2779
2884
  .select--error {
2780
- --_border-color: var(--ui-select-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2781
- --_border-color-focus: var(--ui-select-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2885
+ --_border-color: var(--ui-select-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2886
+ --_border-color-focus: var(--ui-select-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2782
2887
  }
2783
2888
  .select--success {
2784
- --_border-color: var(--ui-select-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
2785
- --_border-color-focus: var(--ui-select-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
2889
+ --_border-color: var(--ui-select-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
2890
+ --_border-color-focus: var(--ui-select-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
2786
2891
  }
2787
2892
  }
2788
2893
  @layer components.styles {
@@ -2812,7 +2917,7 @@
2812
2917
  .select:focus, .select--focus {
2813
2918
  border-color: var(--_border-color-focus);
2814
2919
  outline: none;
2815
- box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, hsl(220, 85%, 65%));
2920
+ box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, oklch(75% 0.15 250deg));
2816
2921
  }
2817
2922
  .select:disabled, .select--disabled {
2818
2923
  opacity: 0.5;
@@ -3076,9 +3181,9 @@
3076
3181
  color: var(--ui-color-text, hsl(220, 10%, 10%));
3077
3182
  }
3078
3183
  .tabs__tab--active {
3079
- color: var(--ui-color-primary, hsl(220, 85%, 50%));
3184
+ color: var(--ui-color-primary, oklch(55% 0.22 250deg));
3080
3185
  background: var(--_tab-bg-active);
3081
- box-shadow: inset 0 calc(var(--ui-border-width-md, 0.125rem) * -1) 0 var(--ui-color-primary, hsl(220, 85%, 50%));
3186
+ box-shadow: inset 0 calc(var(--ui-border-width-md, 0.125rem) * -1) 0 var(--ui-color-primary, oklch(55% 0.22 250deg));
3082
3187
  }
3083
3188
  .tabs__panel {
3084
3189
  display: none;
@@ -3105,19 +3210,19 @@
3105
3210
  --_font-size: var(--ui-tag-font-size-sm, var(--ui-font-size-xs, 0.75rem));
3106
3211
  }
3107
3212
  .tag--primary {
3108
- --_bg: var(--ui-tag-primary-bg, var(--ui-color-primary, hsl(220, 85%, 50%)));
3213
+ --_bg: var(--ui-tag-primary-bg, var(--ui-color-primary, oklch(55% 0.22 250deg)));
3109
3214
  --_color: var(--ui-tag-primary-color, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
3110
3215
  }
3111
3216
  .tag--success {
3112
- --_bg: var(--ui-tag-success-bg, var(--ui-color-success, hsl(142, 70%, 45%)));
3217
+ --_bg: var(--ui-tag-success-bg, var(--ui-color-success, oklch(60% 0.18 145deg)));
3113
3218
  --_color: var(--ui-tag-success-color, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
3114
3219
  }
3115
3220
  .tag--warning {
3116
- --_bg: var(--ui-tag-warning-bg, var(--ui-color-warning, hsl(38, 90%, 50%)));
3221
+ --_bg: var(--ui-tag-warning-bg, var(--ui-color-warning, oklch(75% 0.18 70deg)));
3117
3222
  --_color: var(--ui-tag-warning-color, var(--ui-color-text, hsl(220, 10%, 10%)));
3118
3223
  }
3119
3224
  .tag--danger {
3120
- --_bg: var(--ui-tag-danger-bg, var(--ui-color-danger, hsl(0, 70%, 50%)));
3225
+ --_bg: var(--ui-tag-danger-bg, var(--ui-color-danger, oklch(60% 0.22 25deg)));
3121
3226
  --_color: var(--ui-tag-danger-color, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
3122
3227
  }
3123
3228
  }
@@ -3171,7 +3276,7 @@
3171
3276
  --_radius: var(--ui-textarea-radius, var(--ui-radius-md, 0.5rem));
3172
3277
  --_bg: var(--ui-textarea-bg, var(--ui-color-bg, hsl(220, 10%, 98%)));
3173
3278
  --_border-color: var(--ui-textarea-border-color, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
3174
- --_border-color-focus: var(--ui-textarea-border-color-focus, var(--ui-color-primary, hsl(220, 85%, 50%)));
3279
+ --_border-color-focus: var(--ui-textarea-border-color-focus, var(--ui-color-primary, oklch(55% 0.22 250deg)));
3175
3280
  --_text: var(--ui-textarea-text, var(--ui-color-text, hsl(220, 10%, 10%)));
3176
3281
  --_placeholder: var(--ui-textarea-placeholder, var(--ui-color-text-muted, hsl(220, 10%, 45%)));
3177
3282
  }
@@ -3194,12 +3299,12 @@
3194
3299
  --_border-color: transparent;
3195
3300
  }
3196
3301
  .textarea--error {
3197
- --_border-color: var(--ui-textarea-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
3198
- --_border-color-focus: var(--ui-textarea-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
3302
+ --_border-color: var(--ui-textarea-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
3303
+ --_border-color-focus: var(--ui-textarea-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
3199
3304
  }
3200
3305
  .textarea--success {
3201
- --_border-color: var(--ui-textarea-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
3202
- --_border-color-focus: var(--ui-textarea-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
3306
+ --_border-color: var(--ui-textarea-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
3307
+ --_border-color-focus: var(--ui-textarea-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
3203
3308
  }
3204
3309
  }
3205
3310
  @layer components.styles {
@@ -3230,7 +3335,7 @@
3230
3335
  }
3231
3336
  .textarea:focus, .textarea--focus {
3232
3337
  outline-color: var(--_border-color-focus);
3233
- box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, hsl(220, 85%, 65%));
3338
+ box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, oklch(75% 0.15 250deg));
3234
3339
  }
3235
3340
  .textarea:disabled, .textarea--disabled {
3236
3341
  opacity: 0.5;