@teseor/css 1.1.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 (72) hide show
  1. package/dist/compiled.css +201 -107
  2. package/dist/index.css +265 -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/03-layout/cluster/cluster-visual.png +0 -0
  7. package/src/03-layout/cluster/cluster.visual.spec.ts +15 -0
  8. package/src/03-layout/sidebar/sidebar-visual.png +0 -0
  9. package/src/03-layout/sidebar/sidebar.docs.json +62 -0
  10. package/src/03-layout/sidebar/sidebar.visual.spec.ts +14 -0
  11. package/src/03-layout/sidebar-nav/sidebar-nav.api.json +29 -80
  12. package/src/04-components/accordion/accordion.api.json +5 -1
  13. package/src/04-components/alert/alert.api.json +6 -0
  14. package/src/04-components/alert/index.scss +10 -15
  15. package/src/04-components/avatar/avatar.api.json +5 -0
  16. package/src/04-components/badge/index.scss +12 -9
  17. package/src/04-components/breadcrumb/breadcrumb.api.json +5 -0
  18. package/src/04-components/button/button-visual.png +0 -0
  19. package/src/04-components/button/button.api.json +30 -56
  20. package/src/04-components/button/button.docs.json +75 -0
  21. package/src/04-components/button/index.scss +27 -17
  22. package/src/04-components/button-group/button-group-visual.png +0 -0
  23. package/src/04-components/button-group/button-group.api.json +5 -1
  24. package/src/04-components/button-group/button-group.visual.spec.ts +2 -1
  25. package/src/04-components/checkbox/checkbox-visual.png +0 -0
  26. package/src/04-components/checkbox/checkbox.api.json +1 -1
  27. package/src/04-components/code/code.api.json +6 -1
  28. package/src/04-components/data-list/data-list-visual.png +0 -0
  29. package/src/04-components/data-list/data-list.api.json +16 -1
  30. package/src/04-components/data-list/data-list.visual.spec.ts +2 -1
  31. package/src/04-components/data-list/index.scss +3 -2
  32. package/src/04-components/dialog/dialog.api.json +12 -1
  33. package/src/04-components/disclosure/disclosure.api.json +13 -1
  34. package/src/04-components/divider/divider.api.json +3 -0
  35. package/src/04-components/drawer/drawer.api.json +17 -1
  36. package/src/04-components/field/field.api.json +9 -1
  37. package/src/04-components/form-error/form-error-visual.png +0 -0
  38. package/src/04-components/form-error/form-error.api.json +3 -0
  39. package/src/04-components/icon/icon-visual.png +0 -0
  40. package/src/04-components/icon/icon.api.json +7 -6
  41. package/src/04-components/icon/icon.docs.json +86 -22
  42. package/src/04-components/icon/index.scss +6 -19
  43. package/src/04-components/index.scss +1 -0
  44. package/src/04-components/input/input-visual.png +0 -0
  45. package/src/04-components/input/input.api.json +31 -0
  46. package/src/04-components/label/label.api.json +4 -0
  47. package/src/04-components/link/link-visual.png +0 -0
  48. package/src/04-components/link/link.api.json +6 -0
  49. package/src/04-components/menu/menu.api.json +24 -0
  50. package/src/04-components/modal/modal.api.json +12 -1
  51. package/src/04-components/nav/index.scss +142 -0
  52. package/src/04-components/nav/nav-visual.png +0 -0
  53. package/src/04-components/nav/nav.api.json +55 -0
  54. package/src/04-components/nav/nav.docs.json +242 -0
  55. package/src/04-components/nav/nav.visual.spec.ts +14 -0
  56. package/src/04-components/overlay/overlay.api.json +14 -1
  57. package/src/04-components/pagination/pagination.api.json +22 -1
  58. package/src/04-components/popover/popover.api.json +9 -1
  59. package/src/04-components/progress/progress.api.json +20 -1
  60. package/src/04-components/radio/radio-visual.png +0 -0
  61. package/src/04-components/radio/radio.api.json +1 -1
  62. package/src/04-components/select/select.api.json +3 -0
  63. package/src/04-components/skeleton/skeleton.api.json +8 -1
  64. package/src/04-components/status/status.api.json +14 -1
  65. package/src/04-components/table/table.api.json +8 -1
  66. package/src/04-components/tabs/tabs.api.json +17 -0
  67. package/src/04-components/tag/tag.api.json +4 -0
  68. package/src/04-components/textarea/textarea.api.json +3 -0
  69. package/src/04-components/toast/toast.api.json +22 -1
  70. package/src/04-components/toggle/toggle.api.json +5 -0
  71. package/src/04-components/tooltip/tooltip.api.json +11 -1
  72. package/src/testing/page-setup.ts +25 -9
package/dist/index.css CHANGED
@@ -9,26 +9,25 @@
9
9
  /* 00. Config: Layer definitions + Design tokens */
10
10
  /* Fonts (Google Fonts CDN) */
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
  :root {
34
33
  --ui-space-px: calc(var(--ui-unit) * 0.125);
@@ -715,13 +714,13 @@
715
714
  .ui-sidebar-nav--collapsed {
716
715
  --ui-_width: var(--ui-sidebar-nav-width-collapsed, var(--ui-row-3));
717
716
  }
718
- .ui-sidebar-nav--collapsed .sidebar-nav__label,
719
- .ui-sidebar-nav--collapsed .sidebar-nav__badge,
720
- .ui-sidebar-nav--collapsed .sidebar-nav__group-label,
721
- .ui-sidebar-nav--collapsed .sidebar-nav__subgroup-label {
717
+ .ui-sidebar-nav--collapsed .ui-sidebar-nav__label,
718
+ .ui-sidebar-nav--collapsed .ui-sidebar-nav__badge,
719
+ .ui-sidebar-nav--collapsed .ui-sidebar-nav__group-label,
720
+ .ui-sidebar-nav--collapsed .ui-sidebar-nav__subgroup-label {
722
721
  display: none;
723
722
  }
724
- .ui-sidebar-nav--collapsed .sidebar-nav__item {
723
+ .ui-sidebar-nav--collapsed .ui-sidebar-nav__item {
725
724
  justify-content: center;
726
725
  padding-inline: var(--ui-space-1);
727
726
  }
@@ -780,30 +779,30 @@
780
779
  outline: var(--ui-_border-width) solid var(--ui-_border-color);
781
780
  outline-offset: calc(var(--ui-_border-width) * -1);
782
781
  }
783
- .ui-accordion > .disclosure {
782
+ .ui-accordion > .ui-disclosure {
784
783
  --ui-_border-width: 0;
785
784
  border: none;
786
785
  border-radius: 0;
787
786
  }
788
- .ui-accordion > .disclosure + .disclosure {
787
+ .ui-accordion > .ui-disclosure + .ui-disclosure {
789
788
  border-block-start: 1px solid var(--ui-_border-color);
790
789
  }
791
- .ui-accordion > .disclosure:first-child .disclosure__trigger {
790
+ .ui-accordion > .ui-disclosure:first-child .ui-disclosure__trigger {
792
791
  border-start-start-radius: var(--ui-_radius);
793
792
  border-start-end-radius: var(--ui-_radius);
794
793
  }
795
- .ui-accordion > .disclosure:last-child .disclosure__trigger {
794
+ .ui-accordion > .ui-disclosure:last-child .ui-disclosure__trigger {
796
795
  border-end-start-radius: var(--ui-_radius);
797
796
  border-end-end-radius: var(--ui-_radius);
798
797
  }
799
- .ui-accordion > .disclosure:last-child .disclosure__content {
798
+ .ui-accordion > .ui-disclosure:last-child .ui-disclosure__content {
800
799
  border-end-start-radius: var(--ui-_radius);
801
800
  border-end-end-radius: var(--ui-_radius);
802
801
  }
803
802
  .ui-accordion--borderless {
804
803
  border: none;
805
804
  }
806
- .ui-accordion--borderless > .disclosure + .disclosure {
805
+ .ui-accordion--borderless > .ui-disclosure + .ui-disclosure {
807
806
  border-block-start: none;
808
807
  }
809
808
  .ui-accordion--separated {
@@ -812,44 +811,37 @@
812
811
  gap: calc(0.5rem * 1);
813
812
  border: none;
814
813
  }
815
- .ui-accordion--separated > .disclosure {
814
+ .ui-accordion--separated > .ui-disclosure {
816
815
  border: 1px solid var(--ui-_border-color);
817
816
  border-radius: var(--ui-_radius);
818
817
  }
819
- .ui-accordion--separated > .disclosure + .disclosure {
818
+ .ui-accordion--separated > .ui-disclosure + .ui-disclosure {
820
819
  border-block-start: 1px solid var(--ui-_border-color);
821
820
  }
822
821
  }
823
822
  @layer components.tokens {
824
823
  .ui-alert {
824
+ --ui-_accent: var(--ui-alert-accent, var(--ui-color-border, hsl(220, 10%, 90%)));
825
825
  --ui-_padding: var(--ui-alert-padding, var(--ui-space-2, 1rem));
826
826
  --ui-_border-width: var(--ui-alert-border-width, var(--ui-border-width-sm, 0.0625rem));
827
827
  --ui-_gap: var(--ui-alert-gap, var(--ui-space-1, 0.5rem));
828
828
  --ui-_radius: var(--ui-alert-radius, var(--ui-radius-md, 0.5rem));
829
- --ui-_bg: var(--ui-alert-bg, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
830
- --ui-_border-color: var(--ui-alert-border-color, var(--ui-color-border, hsl(220, 10%, 90%)));
829
+ --ui-_bg: color-mix(in oklch, var(--ui-_accent) 8%, white);
830
+ --ui-_border-color: var(--ui-_accent);
831
831
  --ui-_color: var(--ui-alert-color, var(--ui-color-text, hsl(220, 10%, 10%)));
832
- --ui-_icon-color: var(--ui-alert-icon-color, currentcolor);
832
+ --ui-_icon-color: var(--ui-_accent);
833
833
  }
834
834
  .ui-alert--info {
835
- --ui-_bg: var(--ui-alert-info-bg, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
836
- --ui-_border-color: var(--ui-alert-info-border, var(--ui-color-primary, hsl(220, 85%, 50%)));
837
- --ui-_icon-color: var(--ui-alert-info-icon, var(--ui-color-primary, hsl(220, 85%, 50%)));
835
+ --ui-_accent: var(--ui-color-primary, oklch(55% 0.22 250deg));
838
836
  }
839
837
  .ui-alert--success {
840
- --ui-_bg: var(--ui-alert-success-bg, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
841
- --ui-_border-color: var(--ui-alert-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
842
- --ui-_icon-color: var(--ui-alert-success-icon, var(--ui-color-success, hsl(142, 70%, 45%)));
838
+ --ui-_accent: var(--ui-color-success, oklch(60% 0.18 145deg));
843
839
  }
844
840
  .ui-alert--warning {
845
- --ui-_bg: var(--ui-alert-warning-bg, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
846
- --ui-_border-color: var(--ui-alert-warning-border, var(--ui-color-warning, hsl(38, 90%, 50%)));
847
- --ui-_icon-color: var(--ui-alert-warning-icon, var(--ui-color-warning, hsl(38, 90%, 50%)));
841
+ --ui-_accent: var(--ui-color-warning, oklch(75% 0.18 70deg));
848
842
  }
849
843
  .ui-alert--danger {
850
- --ui-_bg: var(--ui-alert-danger-bg, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
851
- --ui-_border-color: var(--ui-alert-danger-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
852
- --ui-_icon-color: var(--ui-alert-danger-icon, var(--ui-color-danger, hsl(0, 70%, 50%)));
844
+ --ui-_accent: var(--ui-color-danger, oklch(60% 0.22 25deg));
853
845
  }
854
846
  }
855
847
  @layer components.styles {
@@ -965,22 +957,23 @@
965
957
  flex-direction: row-reverse;
966
958
  justify-content: flex-end;
967
959
  }
968
- .ui-avatar-group > .avatar {
960
+ .ui-avatar-group > .ui-avatar {
969
961
  margin-inline-start: calc(var(--ui-_size) * -0.25);
970
962
  border: var(--ui-border-width-sm, 0.0625rem) solid var(--ui-color-bg, hsl(220, 10%, 98%));
971
963
  }
972
- .ui-avatar-group > .avatar:last-child {
964
+ .ui-avatar-group > .ui-avatar:last-child {
973
965
  margin-inline-start: 0;
974
966
  }
975
967
  }
976
968
  @layer components.tokens {
977
969
  .ui-badge {
970
+ --ui-_accent: var(--ui-badge-accent, var(--ui-color-bg-muted, hsl(220, 10%, 90%)));
978
971
  --ui-_height: var(--ui-badge-height, calc(var(--ui-row, 1rem) * 1.25));
979
972
  --ui-_padding-x: var(--ui-badge-padding-x, var(--ui-space-1, 0.5rem));
980
973
  --ui-_font-size: var(--ui-badge-font-size, var(--ui-font-size-xs, 0.75rem));
981
974
  --ui-_font-weight: var(--ui-badge-font-weight, var(--ui-weight-medium, 500));
982
975
  --ui-_radius: var(--ui-badge-radius, var(--ui-radius-full, 9999px));
983
- --ui-_bg: var(--ui-badge-bg, var(--ui-color-bg-muted, hsl(220, 10%, 90%)));
976
+ --ui-_bg: var(--ui-_accent);
984
977
  --ui-_text: var(--ui-badge-text, var(--ui-color-text, hsl(220, 10%, 10%)));
985
978
  }
986
979
  .ui-badge--sm {
@@ -989,20 +982,20 @@
989
982
  --ui-_font-size: var(--ui-badge-font-size-sm, calc(var(--ui-font-size-xs, 0.75rem) * 0.85));
990
983
  }
991
984
  .ui-badge--primary {
992
- --ui-_bg: var(--ui-badge-primary-bg, var(--ui-color-primary, hsl(220, 85%, 50%)));
993
- --ui-_text: var(--ui-badge-primary-text, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
985
+ --ui-_accent: var(--ui-color-primary, oklch(55% 0.22 250deg));
986
+ --ui-_text: var(--ui-color-text-inverse, hsl(220, 10%, 98%));
994
987
  }
995
988
  .ui-badge--success {
996
- --ui-_bg: var(--ui-badge-success-bg, var(--ui-color-success, hsl(142, 70%, 45%)));
997
- --ui-_text: var(--ui-badge-success-text, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
989
+ --ui-_accent: var(--ui-color-success, oklch(60% 0.18 145deg));
990
+ --ui-_text: var(--ui-color-text-inverse, hsl(220, 10%, 98%));
998
991
  }
999
992
  .ui-badge--warning {
1000
- --ui-_bg: var(--ui-badge-warning-bg, var(--ui-color-warning, hsl(38, 90%, 50%)));
1001
- --ui-_text: var(--ui-badge-warning-text, var(--ui-color-text, hsl(220, 10%, 10%)));
993
+ --ui-_accent: var(--ui-color-warning, oklch(75% 0.18 70deg));
994
+ --ui-_text: var(--ui-color-text, hsl(220, 10%, 10%));
1002
995
  }
1003
996
  .ui-badge--danger {
1004
- --ui-_bg: var(--ui-badge-danger-bg, var(--ui-color-danger, hsl(0, 70%, 50%)));
1005
- --ui-_text: var(--ui-badge-danger-text, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
997
+ --ui-_accent: var(--ui-color-danger, oklch(60% 0.22 25deg));
998
+ --ui-_text: var(--ui-color-text-inverse, hsl(220, 10%, 98%));
1006
999
  }
1007
1000
  }
1008
1001
  @layer components.styles {
@@ -1062,7 +1055,7 @@
1062
1055
  text-decoration: underline;
1063
1056
  color: var(--ui-color-primary);
1064
1057
  }
1065
- .ui-breadcrumb__item:last-child .breadcrumb__link,
1058
+ .ui-breadcrumb__item:last-child .ui-breadcrumb__link,
1066
1059
  .ui-breadcrumb__current {
1067
1060
  color: var(--ui-_current-color);
1068
1061
  pointer-events: none;
@@ -1076,50 +1069,57 @@
1076
1069
  }
1077
1070
  @layer components.tokens {
1078
1071
  .ui-button {
1072
+ --ui-_accent: var(--ui-button-accent, var(--ui-color-primary, oklch(55% 0.22 250deg)));
1079
1073
  --ui-_height: var(--ui-button-height, var(--ui-row-2, 2rem));
1080
1074
  --ui-_padding-x: var(--ui-button-padding-x, var(--ui-space-2, 1rem));
1081
1075
  --ui-_font-size: var(--ui-button-font-size, var(--ui-font-size-sm, 0.875rem));
1082
1076
  --ui-_font-weight: var(--ui-button-font-weight, var(--ui-weight-medium, 500));
1083
1077
  --ui-_radius: var(--ui-button-radius, var(--ui-radius-md, 0.5rem));
1084
- --ui-_bg: var(--ui-button-bg, var(--ui-color-primary, hsl(220, 85%, 50%)));
1085
- --ui-_bg-hover: var(--ui-button-bg-hover, var(--ui-color-primary-dark, hsl(220, 85%, 40%)));
1078
+ --ui-_bg: var(--ui-_accent);
1079
+ --ui-_bg-hover: color-mix(in oklch, var(--ui-_accent) 80%, black);
1086
1080
  --ui-_text: var(--ui-button-text, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
1087
1081
  }
1088
1082
  .ui-button--sm {
1083
+ --ui-ctx-size: var(--ui-size-sm, 0.75rem);
1089
1084
  --ui-_height: var(--ui-button-height-sm, calc(var(--ui-row, 1rem) * 1.5));
1090
1085
  --ui-_font-size: var(--ui-button-font-size-sm, var(--ui-font-size-xs, 0.75rem));
1091
1086
  }
1087
+ .ui-button--md {
1088
+ --ui-ctx-size: var(--ui-size-md, 1rem);
1089
+ --ui-_height: var(--ui-button-height-md, var(--ui-row-2, 2rem));
1090
+ --ui-_font-size: var(--ui-button-font-size-md, var(--ui-font-size-sm, 0.875rem));
1091
+ }
1092
1092
  .ui-button--lg {
1093
+ --ui-ctx-size: var(--ui-size-lg, 1.25rem);
1093
1094
  --ui-_height: var(--ui-button-height-lg, calc(var(--ui-row, 1rem) * 2.5));
1094
1095
  --ui-_padding-x: var(--ui-button-padding-x-lg, var(--ui-space-3, 1.5rem));
1095
1096
  --ui-_font-size: var(--ui-button-font-size-lg, var(--ui-font-size-md, 1rem));
1096
1097
  }
1097
1098
  .ui-button--secondary {
1098
- --ui-_bg: var(--ui-button-secondary-bg, var(--ui-color-bg-muted, hsl(220, 10%, 90%)));
1099
- --ui-_bg-hover: var(--ui-button-secondary-bg-hover, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
1100
- --ui-_text: var(--ui-button-secondary-text, var(--ui-color-text, hsl(220, 10%, 10%)));
1099
+ --ui-_bg: var(--ui-color-bg-muted, hsl(220, 10%, 90%));
1100
+ --ui-_bg-hover: var(--ui-color-border-strong, hsl(220, 10%, 80%));
1101
+ --ui-_text: var(--ui-color-text, hsl(220, 10%, 10%));
1101
1102
  }
1102
1103
  .ui-button--ghost {
1103
- --ui-_bg: var(--ui-button-ghost-bg, transparent);
1104
- --ui-_bg-hover: var(--ui-button-ghost-bg-hover, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
1105
- --ui-_text: var(--ui-button-ghost-text, var(--ui-color-primary, hsl(220, 85%, 50%)));
1104
+ --ui-_bg: transparent;
1105
+ --ui-_bg-hover: color-mix(in oklch, var(--ui-_accent) 10%, transparent);
1106
+ --ui-_text: var(--ui-_accent);
1106
1107
  }
1107
1108
  .ui-button--outline {
1108
- --ui-_bg: var(--ui-button-outline-bg, transparent);
1109
- --ui-_bg-hover: var(--ui-button-outline-bg-hover, var(--ui-color-primary, hsl(220, 85%, 50%)));
1110
- --ui-_text: var(--ui-button-outline-text, var(--ui-color-primary, hsl(220, 85%, 50%)));
1111
- --ui-_text-hover: var(--ui-button-outline-text-hover, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
1112
- --ui-_border: var(--ui-button-outline-border, var(--ui-border-width-sm, 0.0625rem) solid currentColor);
1109
+ --ui-_bg: transparent;
1110
+ --ui-_bg-hover: var(--ui-_accent);
1111
+ --ui-_text: var(--ui-_accent);
1112
+ --ui-_text-hover: var(--ui-color-text-inverse, hsl(220, 10%, 98%));
1113
+ --ui-_border: var(--ui-border-width-sm, 0.0625rem) solid currentColor;
1113
1114
  }
1114
1115
  .ui-button--danger {
1115
- --ui-_bg: var(--ui-button-danger-bg, var(--ui-color-danger, hsl(0, 70%, 50%)));
1116
- --ui-_bg-hover: var(--ui-button-danger-bg-hover, hsl(0, 70%, 40%));
1116
+ --ui-_accent: var(--ui-color-danger, oklch(60% 0.22 25deg));
1117
1117
  }
1118
1118
  .ui-button--link {
1119
1119
  --ui-_bg: transparent;
1120
1120
  --ui-_bg-hover: transparent;
1121
- --ui-_text: var(--ui-button-link-text, var(--ui-color-primary, hsl(220, 85%, 50%)));
1122
- --ui-_text-hover: var(--ui-button-link-text-hover, var(--ui-color-primary-dark, hsl(220, 85%, 40%)));
1121
+ --ui-_text: var(--ui-_accent);
1122
+ --ui-_text-hover: color-mix(in oklch, var(--ui-_accent) 70%, black);
1123
1123
  --ui-_height: auto;
1124
1124
  --ui-_padding-x: 0;
1125
1125
  --ui-_radius: 0;
@@ -1167,7 +1167,7 @@
1167
1167
  background: var(--ui-_bg-hover);
1168
1168
  }
1169
1169
  .ui-button:focus-visible, .ui-button--focus {
1170
- outline: var(--ui-border-width-md, 0.125rem) solid var(--ui-color-focus, hsl(220, 85%, 65%));
1170
+ outline: var(--ui-border-width-md, 0.125rem) solid var(--ui-color-focus, oklch(75% 0.15 250deg));
1171
1171
  outline-offset: var(--ui-border-width-md, 0.125rem);
1172
1172
  }
1173
1173
  .ui-button:active, .ui-button--active {
@@ -1235,48 +1235,48 @@
1235
1235
  .ui-button-group {
1236
1236
  display: inline-flex;
1237
1237
  }
1238
- .ui-button-group > .button:not(:first-child, :last-child) {
1238
+ .ui-button-group > .ui-button:not(:first-child, :last-child) {
1239
1239
  border-radius: 0;
1240
1240
  }
1241
- .ui-button-group > .button:first-child:not(:last-child) {
1241
+ .ui-button-group > .ui-button:first-child:not(:last-child) {
1242
1242
  border-start-end-radius: 0;
1243
1243
  border-end-end-radius: 0;
1244
1244
  }
1245
- .ui-button-group > .button:last-child:not(:first-child) {
1245
+ .ui-button-group > .ui-button:last-child:not(:first-child) {
1246
1246
  border-start-start-radius: 0;
1247
1247
  border-end-start-radius: 0;
1248
1248
  }
1249
- .ui-button-group > .button + .button {
1249
+ .ui-button-group > .ui-button + .ui-button {
1250
1250
  margin-inline-start: calc(0.5rem / -8);
1251
1251
  }
1252
- .ui-button-group > .button:focus-visible {
1252
+ .ui-button-group > .ui-button:focus-visible {
1253
1253
  z-index: 1;
1254
1254
  }
1255
1255
  .ui-button-group--vertical {
1256
1256
  flex-direction: column;
1257
1257
  }
1258
- .ui-button-group--vertical > .button:not(:first-child, :last-child) {
1258
+ .ui-button-group--vertical > .ui-button:not(:first-child, :last-child) {
1259
1259
  border-radius: 0;
1260
1260
  }
1261
- .ui-button-group--vertical > .button:first-child:not(:last-child) {
1261
+ .ui-button-group--vertical > .ui-button:first-child:not(:last-child) {
1262
1262
  border-end-start-radius: 0;
1263
1263
  border-end-end-radius: 0;
1264
1264
  }
1265
- .ui-button-group--vertical > .button:last-child:not(:first-child) {
1265
+ .ui-button-group--vertical > .ui-button:last-child:not(:first-child) {
1266
1266
  border-start-start-radius: 0;
1267
1267
  border-start-end-radius: 0;
1268
1268
  }
1269
- .ui-button-group--vertical > .button + .button {
1269
+ .ui-button-group--vertical > .ui-button + .ui-button {
1270
1270
  margin-block-start: calc(0.5rem / -8);
1271
1271
  margin-inline-start: 0;
1272
1272
  }
1273
- .ui-button-group--attached > .button {
1273
+ .ui-button-group--attached > .ui-button {
1274
1274
  border-inline-end-width: 0;
1275
1275
  }
1276
- .ui-button-group--attached > .button:last-child {
1276
+ .ui-button-group--attached > .ui-button:last-child {
1277
1277
  border-inline-end-width: 1px;
1278
1278
  }
1279
- .ui-button-group--attached > .button + .button {
1279
+ .ui-button-group--attached > .ui-button + .ui-button {
1280
1280
  margin-inline-start: 0;
1281
1281
  }
1282
1282
  }
@@ -1319,17 +1319,17 @@
1319
1319
  --ui-_size: var(--ui-checkbox-size, calc(0.5rem * 2));
1320
1320
  --ui-_radius: var(--ui-checkbox-radius, var(--ui-radius-sm, 0.25rem));
1321
1321
  --ui-_bg: var(--ui-checkbox-bg, var(--ui-color-bg, hsl(220, 10%, 98%)));
1322
- --ui-_bg-checked: var(--ui-checkbox-bg-checked, var(--ui-color-primary, hsl(220, 85%, 50%)));
1322
+ --ui-_bg-checked: var(--ui-checkbox-bg-checked, var(--ui-color-primary, oklch(55% 0.22 250deg)));
1323
1323
  --ui-_border-color: var(--ui-checkbox-border-color, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
1324
- --ui-_border-color-focus: var(--ui-checkbox-border-color-focus, var(--ui-color-primary, hsl(220, 85%, 50%)));
1324
+ --ui-_border-color-focus: var(--ui-checkbox-border-color-focus, var(--ui-color-primary, oklch(55% 0.22 250deg)));
1325
1325
  --ui-_check-color: var(--ui-checkbox-check-color, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
1326
1326
  }
1327
1327
  .ui-checkbox--lg {
1328
1328
  --ui-_size: var(--ui-checkbox-size-lg, calc(0.5rem * 3));
1329
1329
  }
1330
1330
  .ui-checkbox--error {
1331
- --ui-_border-color: var(--ui-checkbox-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
1332
- --ui-_border-color-focus: var(--ui-checkbox-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
1331
+ --ui-_border-color: var(--ui-checkbox-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
1332
+ --ui-_border-color-focus: var(--ui-checkbox-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
1333
1333
  }
1334
1334
  }
1335
1335
  @layer components.styles {
@@ -1364,7 +1364,7 @@
1364
1364
  .ui-checkbox:focus-visible {
1365
1365
  border-color: var(--ui-_border-color-focus);
1366
1366
  outline: none;
1367
- box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, hsl(220, 85%, 65%));
1367
+ box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, oklch(75% 0.15 250deg));
1368
1368
  }
1369
1369
  .ui-checkbox:checked {
1370
1370
  background: var(--ui-_bg-checked);
@@ -1464,27 +1464,27 @@
1464
1464
  line-height: var(--ui-row-1, 1rem);
1465
1465
  color: var(--ui-_value-color);
1466
1466
  }
1467
- .ui-data-list--horizontal .data-list__item {
1467
+ .ui-data-list--horizontal .ui-data-list__item {
1468
1468
  flex-direction: row;
1469
1469
  align-items: baseline;
1470
1470
  justify-content: space-between;
1471
1471
  gap: calc(0.5rem * 2);
1472
1472
  }
1473
- .ui-data-list--horizontal .data-list__label {
1473
+ .ui-data-list--horizontal .ui-data-list__label {
1474
1474
  flex-shrink: 0;
1475
1475
  }
1476
- .ui-data-list--horizontal .data-list__value {
1476
+ .ui-data-list--horizontal .ui-data-list__value {
1477
1477
  text-align: end;
1478
1478
  }
1479
- .ui-data-list--divided .data-list__item {
1480
- padding-block-end: var(--ui-_gap);
1481
- border-block-end: 1px solid var(--ui-color-border, hsl(220, 10%, 90%));
1479
+ .ui-data-list--divided .ui-data-list__item {
1480
+ padding-block-end: calc(var(--ui-_gap) - var(--ui-border-width-sm, 0.0625rem));
1481
+ border-block-end: var(--ui-border-width-sm, 0.0625rem) solid var(--ui-color-border, hsl(220, 10%, 90%));
1482
1482
  }
1483
- .ui-data-list--divided .data-list__item:last-child {
1483
+ .ui-data-list--divided .ui-data-list__item:last-child {
1484
1484
  padding-block-end: 0;
1485
1485
  border-block-end: none;
1486
1486
  }
1487
- .ui-data-list--striped .data-list__item:nth-child(odd) {
1487
+ .ui-data-list--striped .ui-data-list__item:nth-child(odd) {
1488
1488
  padding: calc(0.5rem * 1);
1489
1489
  background: var(--ui-color-bg-subtle, hsl(220, 10%, 96%));
1490
1490
  border-radius: var(--ui-radius-sm, 0.25rem);
@@ -1509,7 +1509,7 @@
1509
1509
  }
1510
1510
  }
1511
1511
  @layer components.styles {
1512
- .ui-dialog .modal__content {
1512
+ .ui-dialog .ui-modal__content {
1513
1513
  padding: 0;
1514
1514
  }
1515
1515
  .ui-dialog__header {
@@ -1545,10 +1545,10 @@
1545
1545
  padding: var(--ui-_footer-padding);
1546
1546
  border-block-start: 1px solid var(--ui-_border-color);
1547
1547
  }
1548
- .ui-dialog--borderless .dialog__header {
1548
+ .ui-dialog--borderless .ui-dialog__header {
1549
1549
  border-block-end: none;
1550
1550
  }
1551
- .ui-dialog--borderless .dialog__footer {
1551
+ .ui-dialog--borderless .ui-dialog__footer {
1552
1552
  border-block-start: none;
1553
1553
  }
1554
1554
  }
@@ -1599,13 +1599,13 @@
1599
1599
  flex-shrink: 0;
1600
1600
  transition: transform var(--ui-duration-fast, 100ms) var(--ui-ease-default, ease);
1601
1601
  }
1602
- .ui-disclosure[open] .disclosure__icon {
1602
+ .ui-disclosure[open] .ui-disclosure__icon {
1603
1603
  transform: rotate(180deg);
1604
1604
  }
1605
1605
  .ui-disclosure__content {
1606
1606
  padding: 0 var(--ui-_padding-x) var(--ui-_padding-y);
1607
1607
  }
1608
- .ui-disclosure--animate .disclosure__content {
1608
+ .ui-disclosure--animate .ui-disclosure__content {
1609
1609
  animation: disclosure-open var(--ui-duration-normal, 200ms) var(--ui-ease-default, ease);
1610
1610
  }
1611
1611
  @keyframes disclosure-open {
@@ -1623,10 +1623,10 @@
1623
1623
  border: none;
1624
1624
  border-radius: 0;
1625
1625
  }
1626
- .ui-disclosure--flush .disclosure__trigger {
1626
+ .ui-disclosure--flush .ui-disclosure__trigger {
1627
1627
  padding-inline: 0;
1628
1628
  }
1629
- .ui-disclosure--flush .disclosure__content {
1629
+ .ui-disclosure--flush .ui-disclosure__content {
1630
1630
  padding-inline: 0;
1631
1631
  }
1632
1632
  }
@@ -1695,8 +1695,8 @@
1695
1695
  .ui-divider--dashed::after {
1696
1696
  background: repeating-linear-gradient(90deg, var(--ui-_color) 0, var(--ui-_color) calc(0.5rem / 2), transparent calc(0.5rem / 2), transparent 0.5rem);
1697
1697
  }
1698
- .ui-divider--vertical.divider--dashed::before,
1699
- .ui-divider--vertical.divider--dashed::after {
1698
+ .ui-divider--vertical.ui-divider--dashed::before,
1699
+ .ui-divider--vertical.ui-divider--dashed::after {
1700
1700
  background: repeating-linear-gradient(180deg, var(--ui-_color) 0, var(--ui-_color) calc(0.5rem / 2), transparent calc(0.5rem / 2), transparent 0.5rem);
1701
1701
  }
1702
1702
  }
@@ -1906,12 +1906,12 @@
1906
1906
  flex-wrap: wrap;
1907
1907
  align-items: flex-start;
1908
1908
  }
1909
- .ui-field--horizontal > .field__label {
1909
+ .ui-field--horizontal > .ui-field__label {
1910
1910
  flex: 0 0 auto;
1911
1911
  min-inline-size: calc(0.5rem * 15);
1912
1912
  padding-block-start: calc(0.5rem * 1);
1913
1913
  }
1914
- .ui-field--horizontal > .field__control {
1914
+ .ui-field--horizontal > .ui-field__control {
1915
1915
  flex: 1 1 0;
1916
1916
  min-inline-size: calc(0.5rem * 20);
1917
1917
  }
@@ -2000,23 +2000,23 @@
2000
2000
  }
2001
2001
  @layer components.tokens {
2002
2002
  .ui-icon {
2003
- --ui-_size: var(--ui-icon-size, 1em);
2003
+ --ui-_size: var(--ui-icon-size, var(--ui-ctx-size, 1rem));
2004
2004
  --ui-_stroke: var(--ui-icon-stroke, 2);
2005
2005
  }
2006
2006
  .ui-icon--xs {
2007
- --ui-_size: var(--ui-icon-size-xs, calc(0.5rem * 2));
2007
+ --ui-_size: var(--ui-icon-size-xs, var(--ui-size-xs, 0.5rem));
2008
2008
  }
2009
2009
  .ui-icon--sm {
2010
- --ui-_size: var(--ui-icon-size-sm, calc(0.5rem * 3));
2010
+ --ui-_size: var(--ui-icon-size-sm, var(--ui-size-sm, 0.75rem));
2011
2011
  }
2012
2012
  .ui-icon--md {
2013
- --ui-_size: var(--ui-icon-size-md, calc(0.5rem * 4));
2013
+ --ui-_size: var(--ui-icon-size-md, var(--ui-size-md, 1rem));
2014
2014
  }
2015
2015
  .ui-icon--lg {
2016
- --ui-_size: var(--ui-icon-size-lg, calc(0.5rem * 5));
2016
+ --ui-_size: var(--ui-icon-size-lg, var(--ui-size-lg, 1.25rem));
2017
2017
  }
2018
2018
  .ui-icon--xl {
2019
- --ui-_size: var(--ui-icon-size-xl, calc(0.5rem * 6));
2019
+ --ui-_size: var(--ui-icon-size-xl, var(--ui-size-xl, 1.5rem));
2020
2020
  }
2021
2021
  .ui-icon--stroke-thin {
2022
2022
  --ui-_stroke: var(--ui-icon-stroke-thin, 1);
@@ -2060,7 +2060,7 @@
2060
2060
  --ui-_radius: var(--ui-input-radius, var(--ui-radius-md, 0.5rem));
2061
2061
  --ui-_bg: var(--ui-input-bg, var(--ui-color-bg, hsl(220, 10%, 98%)));
2062
2062
  --ui-_border-color: var(--ui-input-border-color, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
2063
- --ui-_border-color-focus: var(--ui-input-border-color-focus, var(--ui-color-primary, hsl(220, 85%, 50%)));
2063
+ --ui-_border-color-focus: var(--ui-input-border-color-focus, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2064
2064
  --ui-_text: var(--ui-input-text, var(--ui-color-text, hsl(220, 10%, 10%)));
2065
2065
  --ui-_placeholder: var(--ui-input-placeholder, var(--ui-color-text-muted, hsl(220, 10%, 45%)));
2066
2066
  }
@@ -2082,12 +2082,12 @@
2082
2082
  --ui-_border-color: transparent;
2083
2083
  }
2084
2084
  .ui-input--error {
2085
- --ui-_border-color: var(--ui-input-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2086
- --ui-_border-color-focus: var(--ui-input-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2085
+ --ui-_border-color: var(--ui-input-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2086
+ --ui-_border-color-focus: var(--ui-input-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2087
2087
  }
2088
2088
  .ui-input--success {
2089
- --ui-_border-color: var(--ui-input-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
2090
- --ui-_border-color-focus: var(--ui-input-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
2089
+ --ui-_border-color: var(--ui-input-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
2090
+ --ui-_border-color-focus: var(--ui-input-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
2091
2091
  }
2092
2092
  }
2093
2093
  @layer components.styles {
@@ -2114,7 +2114,7 @@
2114
2114
  .ui-input:focus, .ui-input--focus {
2115
2115
  border-color: var(--ui-_border-color-focus);
2116
2116
  outline: none;
2117
- box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, hsl(220, 85%, 65%));
2117
+ box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, oklch(75% 0.15 250deg));
2118
2118
  }
2119
2119
  .ui-input:disabled, .ui-input--disabled {
2120
2120
  opacity: 0.5;
@@ -2131,13 +2131,13 @@
2131
2131
  align-items: stretch;
2132
2132
  position: relative;
2133
2133
  }
2134
- .ui-input-group .input {
2134
+ .ui-input-group .ui-input {
2135
2135
  flex: 1;
2136
2136
  }
2137
- .ui-input-group--has-prefix .input {
2137
+ .ui-input-group--has-prefix .ui-input {
2138
2138
  padding-inline-start: calc(var(--ui-_height) + var(--ui-space-half, 0.25rem));
2139
2139
  }
2140
- .ui-input-group--has-suffix .input {
2140
+ .ui-input-group--has-suffix .ui-input {
2141
2141
  padding-inline-end: calc(var(--ui-_height) + var(--ui-space-half, 0.25rem));
2142
2142
  }
2143
2143
  .ui-input-group__addon {
@@ -2165,7 +2165,7 @@
2165
2165
  .ui-label {
2166
2166
  --ui-_font-size: var(--ui-label-font-size, var(--ui-font-size-sm, 0.875rem));
2167
2167
  --ui-_color: var(--ui-label-color, var(--ui-color-text, hsl(220, 10%, 10%)));
2168
- --ui-_required-color: var(--ui-label-required-color, var(--ui-color-danger, hsl(0, 70%, 50%)));
2168
+ --ui-_required-color: var(--ui-label-required-color, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2169
2169
  }
2170
2170
  .ui-label--lg {
2171
2171
  --ui-_font-size: var(--ui-label-font-size-lg, var(--ui-font-size-md, 1rem));
@@ -2305,10 +2305,10 @@
2305
2305
  outline: none;
2306
2306
  }
2307
2307
  .ui-menu__item--danger {
2308
- color: var(--ui-color-danger, hsl(0, 70%, 50%));
2308
+ color: var(--ui-color-danger, oklch(60% 0.22 25deg));
2309
2309
  }
2310
2310
  .ui-menu__item--danger:hover, .ui-menu__item--danger:focus-visible {
2311
- color: var(--ui-color-danger, hsl(0, 70%, 50%));
2311
+ color: var(--ui-color-danger, oklch(60% 0.22 25deg));
2312
2312
  }
2313
2313
  .ui-menu__item--disabled,
2314
2314
  .ui-menu__item[aria-disabled=true] {
@@ -2401,17 +2401,17 @@
2401
2401
  flex: 1 1 auto;
2402
2402
  overflow-y: auto;
2403
2403
  }
2404
- .ui-modal--entering .modal__content,
2405
- .ui-modal--visible .modal__content {
2404
+ .ui-modal--entering .ui-modal__content,
2405
+ .ui-modal--visible .ui-modal__content {
2406
2406
  opacity: 1;
2407
2407
  transform: scale(1);
2408
2408
  }
2409
- .ui-modal--exiting .modal__content,
2410
- .ui-modal--hidden .modal__content {
2409
+ .ui-modal--exiting .ui-modal__content,
2410
+ .ui-modal--hidden .ui-modal__content {
2411
2411
  opacity: 0;
2412
2412
  transform: scale(0.95);
2413
2413
  }
2414
- .ui-modal--animate .modal__content {
2414
+ .ui-modal--animate .ui-modal__content {
2415
2415
  transition: opacity var(--ui-duration-normal, 200ms) var(--ui-ease-default, ease), transform var(--ui-duration-normal, 200ms) var(--ui-ease-default, ease);
2416
2416
  }
2417
2417
  .ui-modal--hidden {
@@ -2419,6 +2419,100 @@
2419
2419
  pointer-events: none;
2420
2420
  }
2421
2421
  }
2422
+ @layer components.tokens {
2423
+ .ui-nav {
2424
+ --ui-_gap: var(--ui-nav-gap, var(--ui-space-1, 0.5rem));
2425
+ --ui-_item-height: var(--ui-nav-item-height, var(--ui-row-2, 2rem));
2426
+ --ui-_item-padding-x: var(--ui-nav-item-padding-x, var(--ui-space-2, 1rem));
2427
+ --ui-_item-font-size: var(--ui-nav-item-font-size, var(--ui-font-size-sm, 0.875rem));
2428
+ --ui-_item-font-weight: var(--ui-nav-item-font-weight, var(--ui-weight-medium, 500));
2429
+ --ui-_item-color: var(--ui-nav-item-color, var(--ui-color-text-muted, hsl(220, 10%, 45%)));
2430
+ --ui-_item-color-hover: var(--ui-nav-item-color-hover, var(--ui-color-text, hsl(220, 10%, 10%)));
2431
+ --ui-_item-color-active: var(--ui-nav-item-color-active, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2432
+ --ui-_item-radius: var(--ui-nav-item-radius, var(--ui-radius-sm, 0.25rem));
2433
+ --ui-_border-color: var(--ui-nav-border-color, var(--ui-color-border, hsl(220, 10%, 90%)));
2434
+ }
2435
+ .ui-nav--pills {
2436
+ --ui-_item-bg-hover: var(--ui-nav-item-bg-hover, var(--ui-color-bg-muted, hsl(220, 10%, 90%)));
2437
+ --ui-_item-bg-active: var(--ui-nav-item-bg-active, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2438
+ --ui-_item-color-active: var(--ui-nav-item-color-active, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
2439
+ }
2440
+ }
2441
+ @layer components.styles {
2442
+ .ui-nav__list {
2443
+ display: flex;
2444
+ align-items: stretch;
2445
+ gap: var(--ui-_gap);
2446
+ box-sizing: border-box;
2447
+ block-size: var(--ui-_item-height);
2448
+ padding: 0;
2449
+ margin: 0;
2450
+ list-style: none;
2451
+ box-shadow: inset 0 calc(var(--ui-border-width-sm, 0.0625rem) * -1) 0 var(--ui-_border-color);
2452
+ }
2453
+ .ui-nav__item {
2454
+ display: inline-flex;
2455
+ align-items: center;
2456
+ box-sizing: border-box;
2457
+ block-size: var(--ui-_item-height);
2458
+ padding-inline: var(--ui-_item-padding-x);
2459
+ font-family: var(--ui-font-sans, Noto Sans, system-ui, -apple-system, sans-serif);
2460
+ font-size: var(--ui-_item-font-size);
2461
+ font-weight: var(--ui-_item-font-weight);
2462
+ line-height: 1;
2463
+ text-decoration: none;
2464
+ white-space: nowrap;
2465
+ color: var(--ui-_item-color);
2466
+ background: transparent;
2467
+ border: none;
2468
+ box-shadow: inset 0 calc(var(--ui-border-width-md, 0.125rem) * -1) 0 transparent;
2469
+ cursor: pointer;
2470
+ 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);
2471
+ }
2472
+ .ui-nav__item:hover {
2473
+ color: var(--ui-_item-color-hover);
2474
+ }
2475
+ .ui-nav__item--active {
2476
+ color: var(--ui-_item-color-active);
2477
+ box-shadow: inset 0 calc(var(--ui-border-width-md, 0.125rem) * -1) 0 var(--ui-_item-color-active);
2478
+ }
2479
+ .ui-nav__item--disabled {
2480
+ opacity: 0.5;
2481
+ pointer-events: none;
2482
+ }
2483
+ .ui-nav--pills .ui-nav__list {
2484
+ box-shadow: none;
2485
+ }
2486
+ .ui-nav--pills .ui-nav__item {
2487
+ border-radius: var(--ui-_item-radius);
2488
+ box-shadow: none;
2489
+ }
2490
+ .ui-nav--pills .ui-nav__item:hover {
2491
+ background: var(--ui-_item-bg-hover);
2492
+ }
2493
+ .ui-nav--pills .ui-nav__item--active {
2494
+ color: var(--ui-_item-color-active);
2495
+ background: var(--ui-_item-bg-active);
2496
+ }
2497
+ .ui-nav--vertical .ui-nav__list {
2498
+ flex-direction: column;
2499
+ align-items: stretch;
2500
+ block-size: auto;
2501
+ box-shadow: inset calc(var(--ui-border-width-sm, 0.0625rem) * -1) 0 0 var(--ui-_border-color);
2502
+ }
2503
+ .ui-nav--vertical .ui-nav__item {
2504
+ box-shadow: inset calc(var(--ui-border-width-md, 0.125rem) * -1) 0 0 transparent;
2505
+ }
2506
+ .ui-nav--vertical .ui-nav__item--active {
2507
+ box-shadow: inset calc(var(--ui-border-width-md, 0.125rem) * -1) 0 0 var(--ui-_item-color-active);
2508
+ }
2509
+ .ui-nav--vertical.ui-nav--pills .ui-nav__list {
2510
+ box-shadow: none;
2511
+ }
2512
+ .ui-nav--vertical.ui-nav--pills .ui-nav__item {
2513
+ box-shadow: none;
2514
+ }
2515
+ }
2422
2516
  @layer components.tokens {
2423
2517
  .ui-overlay {
2424
2518
  --ui-_bg: var(--ui-overlay-bg, rgb(0 0 0 / 0.5));
@@ -2645,7 +2739,7 @@
2645
2739
  border-radius: var(--ui-_radius);
2646
2740
  transition: inline-size var(--ui-duration-normal, 200ms) var(--ui-ease-default, ease);
2647
2741
  }
2648
- .ui-progress--indeterminate .progress__bar {
2742
+ .ui-progress--indeterminate .ui-progress__bar {
2649
2743
  inline-size: 30%;
2650
2744
  animation: progress-indeterminate 1.5s infinite ease-in-out;
2651
2745
  }
@@ -2657,11 +2751,11 @@
2657
2751
  transform: translateX(400%);
2658
2752
  }
2659
2753
  }
2660
- .ui-progress--striped .progress__bar {
2754
+ .ui-progress--striped .ui-progress__bar {
2661
2755
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
2662
2756
  background-size: 0.5rem 0.5rem;
2663
2757
  }
2664
- .ui-progress--animated .progress__bar {
2758
+ .ui-progress--animated .ui-progress__bar {
2665
2759
  animation: progress-stripes 1s linear infinite;
2666
2760
  }
2667
2761
  @keyframes progress-stripes {
@@ -2686,17 +2780,17 @@
2686
2780
  .ui-radio {
2687
2781
  --ui-_size: var(--ui-radio-size, calc(0.5rem * 2));
2688
2782
  --ui-_bg: var(--ui-radio-bg, var(--ui-color-bg, hsl(220, 10%, 98%)));
2689
- --ui-_bg-checked: var(--ui-radio-bg-checked, var(--ui-color-primary, hsl(220, 85%, 50%)));
2783
+ --ui-_bg-checked: var(--ui-radio-bg-checked, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2690
2784
  --ui-_border-color: var(--ui-radio-border-color, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
2691
- --ui-_border-color-focus: var(--ui-radio-border-color-focus, var(--ui-color-primary, hsl(220, 85%, 50%)));
2785
+ --ui-_border-color-focus: var(--ui-radio-border-color-focus, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2692
2786
  --ui-_dot-color: var(--ui-radio-dot-color, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
2693
2787
  }
2694
2788
  .ui-radio--lg {
2695
2789
  --ui-_size: var(--ui-radio-size-lg, calc(0.5rem * 3));
2696
2790
  }
2697
2791
  .ui-radio--error {
2698
- --ui-_border-color: var(--ui-radio-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2699
- --ui-_border-color-focus: var(--ui-radio-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2792
+ --ui-_border-color: var(--ui-radio-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2793
+ --ui-_border-color-focus: var(--ui-radio-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2700
2794
  }
2701
2795
  }
2702
2796
  @layer components.styles {
@@ -2732,7 +2826,7 @@
2732
2826
  .ui-radio:focus-visible {
2733
2827
  border-color: var(--ui-_border-color-focus);
2734
2828
  outline: none;
2735
- box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, hsl(220, 85%, 65%));
2829
+ box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, oklch(75% 0.15 250deg));
2736
2830
  }
2737
2831
  .ui-radio:checked {
2738
2832
  background: var(--ui-_bg-checked);
@@ -2755,7 +2849,7 @@
2755
2849
  --ui-_radius: var(--ui-select-radius, var(--ui-radius-md, 0.5rem));
2756
2850
  --ui-_bg: var(--ui-select-bg, var(--ui-color-bg, hsl(220, 10%, 98%)));
2757
2851
  --ui-_border-color: var(--ui-select-border-color, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
2758
- --ui-_border-color-focus: var(--ui-select-border-color-focus, var(--ui-color-primary, hsl(220, 85%, 50%)));
2852
+ --ui-_border-color-focus: var(--ui-select-border-color-focus, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2759
2853
  --ui-_text: var(--ui-select-text, var(--ui-color-text, hsl(220, 10%, 10%)));
2760
2854
  --ui-_icon-color: var(--ui-select-icon-color, var(--ui-color-text-muted, hsl(220, 10%, 45%)));
2761
2855
  }
@@ -2777,12 +2871,12 @@
2777
2871
  --ui-_border-color: transparent;
2778
2872
  }
2779
2873
  .ui-select--error {
2780
- --ui-_border-color: var(--ui-select-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2781
- --ui-_border-color-focus: var(--ui-select-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2874
+ --ui-_border-color: var(--ui-select-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2875
+ --ui-_border-color-focus: var(--ui-select-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2782
2876
  }
2783
2877
  .ui-select--success {
2784
- --ui-_border-color: var(--ui-select-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
2785
- --ui-_border-color-focus: var(--ui-select-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
2878
+ --ui-_border-color: var(--ui-select-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
2879
+ --ui-_border-color-focus: var(--ui-select-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
2786
2880
  }
2787
2881
  }
2788
2882
  @layer components.styles {
@@ -2812,7 +2906,7 @@
2812
2906
  .ui-select:focus, .ui-select--focus {
2813
2907
  border-color: var(--ui-_border-color-focus);
2814
2908
  outline: none;
2815
- box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, hsl(220, 85%, 65%));
2909
+ box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, oklch(75% 0.15 250deg));
2816
2910
  }
2817
2911
  .ui-select:disabled, .ui-select--disabled {
2818
2912
  opacity: 0.5;
@@ -2964,10 +3058,10 @@
2964
3058
  background: var(--ui-_color);
2965
3059
  border-radius: 50%;
2966
3060
  }
2967
- .ui-status--pulse .status__dot {
3061
+ .ui-status--pulse .ui-status__dot {
2968
3062
  position: relative;
2969
3063
  }
2970
- .ui-status--pulse .status__dot::before {
3064
+ .ui-status--pulse .ui-status__dot::before {
2971
3065
  content: "";
2972
3066
  position: absolute;
2973
3067
  inset: 0;
@@ -3076,9 +3170,9 @@
3076
3170
  color: var(--ui-color-text, hsl(220, 10%, 10%));
3077
3171
  }
3078
3172
  .ui-tabs__tab--active {
3079
- color: var(--ui-color-primary, hsl(220, 85%, 50%));
3173
+ color: var(--ui-color-primary, oklch(55% 0.22 250deg));
3080
3174
  background: var(--ui-_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%));
3175
+ box-shadow: inset 0 calc(var(--ui-border-width-md, 0.125rem) * -1) 0 var(--ui-color-primary, oklch(55% 0.22 250deg));
3082
3176
  }
3083
3177
  .ui-tabs__panel {
3084
3178
  display: none;
@@ -3105,19 +3199,19 @@
3105
3199
  --ui-_font-size: var(--ui-tag-font-size-sm, var(--ui-font-size-xs, 0.75rem));
3106
3200
  }
3107
3201
  .ui-tag--primary {
3108
- --ui-_bg: var(--ui-tag-primary-bg, var(--ui-color-primary, hsl(220, 85%, 50%)));
3202
+ --ui-_bg: var(--ui-tag-primary-bg, var(--ui-color-primary, oklch(55% 0.22 250deg)));
3109
3203
  --ui-_color: var(--ui-tag-primary-color, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
3110
3204
  }
3111
3205
  .ui-tag--success {
3112
- --ui-_bg: var(--ui-tag-success-bg, var(--ui-color-success, hsl(142, 70%, 45%)));
3206
+ --ui-_bg: var(--ui-tag-success-bg, var(--ui-color-success, oklch(60% 0.18 145deg)));
3113
3207
  --ui-_color: var(--ui-tag-success-color, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
3114
3208
  }
3115
3209
  .ui-tag--warning {
3116
- --ui-_bg: var(--ui-tag-warning-bg, var(--ui-color-warning, hsl(38, 90%, 50%)));
3210
+ --ui-_bg: var(--ui-tag-warning-bg, var(--ui-color-warning, oklch(75% 0.18 70deg)));
3117
3211
  --ui-_color: var(--ui-tag-warning-color, var(--ui-color-text, hsl(220, 10%, 10%)));
3118
3212
  }
3119
3213
  .ui-tag--danger {
3120
- --ui-_bg: var(--ui-tag-danger-bg, var(--ui-color-danger, hsl(0, 70%, 50%)));
3214
+ --ui-_bg: var(--ui-tag-danger-bg, var(--ui-color-danger, oklch(60% 0.22 25deg)));
3121
3215
  --ui-_color: var(--ui-tag-danger-color, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
3122
3216
  }
3123
3217
  }
@@ -3171,7 +3265,7 @@
3171
3265
  --ui-_radius: var(--ui-textarea-radius, var(--ui-radius-md, 0.5rem));
3172
3266
  --ui-_bg: var(--ui-textarea-bg, var(--ui-color-bg, hsl(220, 10%, 98%)));
3173
3267
  --ui-_border-color: var(--ui-textarea-border-color, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
3174
- --ui-_border-color-focus: var(--ui-textarea-border-color-focus, var(--ui-color-primary, hsl(220, 85%, 50%)));
3268
+ --ui-_border-color-focus: var(--ui-textarea-border-color-focus, var(--ui-color-primary, oklch(55% 0.22 250deg)));
3175
3269
  --ui-_text: var(--ui-textarea-text, var(--ui-color-text, hsl(220, 10%, 10%)));
3176
3270
  --ui-_placeholder: var(--ui-textarea-placeholder, var(--ui-color-text-muted, hsl(220, 10%, 45%)));
3177
3271
  }
@@ -3194,12 +3288,12 @@
3194
3288
  --ui-_border-color: transparent;
3195
3289
  }
3196
3290
  .ui-textarea--error {
3197
- --ui-_border-color: var(--ui-textarea-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
3198
- --ui-_border-color-focus: var(--ui-textarea-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
3291
+ --ui-_border-color: var(--ui-textarea-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
3292
+ --ui-_border-color-focus: var(--ui-textarea-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
3199
3293
  }
3200
3294
  .ui-textarea--success {
3201
- --ui-_border-color: var(--ui-textarea-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
3202
- --ui-_border-color-focus: var(--ui-textarea-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
3295
+ --ui-_border-color: var(--ui-textarea-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
3296
+ --ui-_border-color-focus: var(--ui-textarea-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
3203
3297
  }
3204
3298
  }
3205
3299
  @layer components.styles {
@@ -3230,7 +3324,7 @@
3230
3324
  }
3231
3325
  .ui-textarea:focus, .ui-textarea--focus {
3232
3326
  outline-color: var(--ui-_border-color-focus);
3233
- box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, hsl(220, 85%, 65%));
3327
+ box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, oklch(75% 0.15 250deg));
3234
3328
  }
3235
3329
  .ui-textarea:disabled, .ui-textarea--disabled {
3236
3330
  opacity: 0.5;
@@ -3448,22 +3542,22 @@
3448
3542
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
3449
3543
  transition: transform var(--ui-duration-fast, 100ms) var(--ui-ease-default, ease);
3450
3544
  }
3451
- .ui-toggle__input:checked ~ .toggle__track {
3545
+ .ui-toggle__input:checked ~ .ui-toggle__track {
3452
3546
  background: var(--ui-_track-bg-checked);
3453
3547
  }
3454
- .ui-toggle__input:checked ~ .toggle__thumb {
3548
+ .ui-toggle__input:checked ~ .ui-toggle__thumb {
3455
3549
  transform: translateX(calc(var(--ui-_track-width) - var(--ui-_thumb-size) - var(--ui-_thumb-offset) * 2));
3456
3550
  }
3457
- .ui-toggle__input:focus-visible ~ .toggle__track {
3551
+ .ui-toggle__input:focus-visible ~ .ui-toggle__track {
3458
3552
  outline: 2px solid var(--ui-color-focus, var(--ui-color-primary));
3459
3553
  outline-offset: calc(0.5rem / 4);
3460
3554
  }
3461
- .ui-toggle__input:disabled ~ .toggle__track,
3462
- .ui-toggle__input:disabled ~ .toggle__thumb {
3555
+ .ui-toggle__input:disabled ~ .ui-toggle__track,
3556
+ .ui-toggle__input:disabled ~ .ui-toggle__thumb {
3463
3557
  opacity: 0.5;
3464
3558
  cursor: not-allowed;
3465
3559
  }
3466
- .ui-toggle:has(.toggle__input:disabled) {
3560
+ .ui-toggle:has(.ui-toggle__input:disabled) {
3467
3561
  cursor: not-allowed;
3468
3562
  }
3469
3563
  }