@oscarpalmer/oui 0.36.0 → 0.38.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 (104) hide show
  1. package/dist/css/a11y.css +1 -0
  2. package/dist/css/badge.css +19 -15
  3. package/dist/css/button.css +40 -31
  4. package/dist/css/color-picker.css +377 -0
  5. package/dist/css/color.css +20 -21
  6. package/dist/css/combobox.css +140 -34
  7. package/dist/css/content.css +30 -10
  8. package/dist/css/floatable.css +12 -10
  9. package/dist/css/form.css +400 -129
  10. package/dist/css/listbox.css +43 -17
  11. package/dist/css/message.css +15 -10
  12. package/dist/css/mixins/badge.mixins.css +2 -0
  13. package/dist/css/mixins/button.mixins.css +2 -0
  14. package/dist/css/mixins/message.mixins.css +1 -0
  15. package/dist/css/mixins/misc.mixins.css +2 -0
  16. package/dist/css/mixins/shadow.mixins.css +1 -0
  17. package/dist/css/reset.css +31 -90
  18. package/dist/css/splitter.css +3 -3
  19. package/dist/css/tabs.css +103 -0
  20. package/dist/js/color-picker.d.mts +213 -0
  21. package/dist/js/color-picker.mjs +924 -0
  22. package/dist/js/combobox/dom.combobox.mjs +8 -4
  23. package/dist/js/combobox/event.combobox.mjs +1 -1
  24. package/dist/js/combobox/index.d.mts +1 -1
  25. package/dist/js/combobox/index.mjs +56 -2
  26. package/dist/js/combobox/misc.combobox.d.mts +1 -1
  27. package/dist/js/combobox/misc.combobox.mjs +1 -1
  28. package/dist/js/combobox/state.combobox.d.mts +1 -1
  29. package/dist/js/combobox/state.combobox.mjs +1 -1
  30. package/dist/js/dialog.mjs +2 -2
  31. package/dist/js/floatable/floatable.embedded.mjs +13 -10
  32. package/dist/js/focus-trap/focus-trap.embedded.mjs +9 -13
  33. package/dist/js/{index-EfkUSals.d.mts → index-DJdFlTLm.d.mts} +39 -1
  34. package/dist/js/index.d.mts +4 -2
  35. package/dist/js/index.mjs +5 -3
  36. package/dist/js/internal/draggable.mjs +20 -26
  37. package/dist/js/internal/listbox/listbox.data.mjs +1 -1
  38. package/dist/js/internal/listbox/listbox.dom.mjs +1 -1
  39. package/dist/js/internal/listbox/listbox.event.mjs +1 -1
  40. package/dist/js/internal/listbox/listbox.form.mjs +17 -16
  41. package/dist/js/internal/listbox/listbox.misc.mjs +1 -1
  42. package/dist/js/internal/listbox/listbox.state.mjs +4 -4
  43. package/dist/js/internal/navigable.d.mts +11 -5
  44. package/dist/js/internal/navigable.mjs +46 -19
  45. package/dist/js/listbox/event.listbox.mjs +1 -1
  46. package/dist/js/listbox/index.d.mts +38 -0
  47. package/dist/js/listbox/index.mjs +56 -2
  48. package/dist/js/listbox/misc.listbox.mjs +1 -1
  49. package/dist/js/listbox/state.listbox.mjs +1 -1
  50. package/dist/js/{listbox.data-BWd0PCy7.mjs → listbox.data-C7CRa5Ya.mjs} +5 -4
  51. package/dist/js/menu.mjs +1 -1
  52. package/dist/js/{misc.listbox-BI-XsTOf.mjs → misc.listbox-Cyz2CRDy.mjs} +2 -3
  53. package/dist/js/movable/movable.embedded.mjs +5 -8
  54. package/dist/js/popover.mjs +2 -2
  55. package/dist/js/resizable/resizable.embedded.mjs +21 -31
  56. package/dist/js/sortable/sortable.embedded.mjs +4 -4
  57. package/dist/js/splitter.mjs +20 -17
  58. package/dist/js/{state.combobox-4xq0FPCF.mjs → state.combobox-Qm3FWzYW.mjs} +3 -3
  59. package/dist/js/tabs.d.mts +25 -0
  60. package/dist/js/tabs.mjs +237 -0
  61. package/dist/js/tooltip.mjs +16 -15
  62. package/package.json +7 -5
  63. package/src/css/a11y.scss +2 -2
  64. package/src/css/badge.scss +8 -20
  65. package/src/css/button.scss +8 -47
  66. package/src/css/color-picker.scss +344 -0
  67. package/src/css/color.scss +20 -22
  68. package/src/css/combobox.scss +29 -57
  69. package/src/css/content.scss +34 -6
  70. package/src/css/floatable.scss +22 -19
  71. package/src/css/form.scss +94 -80
  72. package/src/css/listbox.scss +6 -34
  73. package/src/css/message.scss +16 -30
  74. package/src/css/mixins/badge.mixins.scss +53 -0
  75. package/src/css/mixins/button.mixins.scss +112 -0
  76. package/src/css/mixins/input.mixins.scss +114 -0
  77. package/src/css/mixins/message.mixins.scss +41 -0
  78. package/src/css/mixins/misc.mixins.scss +48 -0
  79. package/src/css/mixins/shadow.mixins.scss +57 -0
  80. package/src/css/reset.scss +39 -88
  81. package/src/css/splitter.scss +3 -3
  82. package/src/css/tabs.scss +74 -0
  83. package/src/js/color-picker.ts +1653 -0
  84. package/src/js/combobox/dom.combobox.ts +4 -0
  85. package/src/js/combobox/index.ts +63 -1
  86. package/src/js/dialog.ts +1 -1
  87. package/src/js/floatable/floatable.embedded.ts +18 -14
  88. package/src/js/focus-trap/focus-trap.embedded.ts +11 -19
  89. package/src/js/index.ts +2 -0
  90. package/src/js/internal/draggable.ts +29 -33
  91. package/src/js/internal/listbox/listbox.dom.ts +2 -1
  92. package/src/js/internal/listbox/listbox.form.ts +32 -22
  93. package/src/js/internal/listbox/listbox.state.ts +3 -3
  94. package/src/js/internal/navigable.ts +82 -23
  95. package/src/js/listbox/index.ts +62 -0
  96. package/src/js/listbox/state.listbox.ts +0 -2
  97. package/src/js/movable/movable.embedded.ts +11 -13
  98. package/src/js/popover.ts +1 -1
  99. package/src/js/resizable/resizable.embedded.ts +25 -39
  100. package/src/js/splitter.ts +21 -18
  101. package/src/js/tabs.ts +441 -0
  102. package/src/js/tooltip.ts +20 -17
  103. package/src/css/mixins.scss +0 -194
  104. /package/dist/css/{mixins.css → mixins/input.mixins.css} +0 -0
package/dist/css/a11y.css CHANGED
@@ -1,5 +1,6 @@
1
1
  /*! https://github.com/oscarpalmer/oui */
2
2
 
3
+
3
4
  :where(.oui-vh) {
4
5
  position: absolute !important;
5
6
  }
@@ -1,13 +1,17 @@
1
1
  /*! https://github.com/oscarpalmer/oui */
2
2
 
3
+
3
4
  :where(.oui-pill, .oui-tag) {
4
- --oui-shadow-mixed: color-mix(in oklab, var(--oui-shadow, var(--oui-gray-6)), transparent 92.5%);
5
- box-shadow: inset 0 1px 0 0 transparent, 0 0 0 1px var(--oui-shadow-mixed), 0 1px 2px -0.5px var(--oui-shadow-mixed), 0 2px 4px -1px var(--oui-shadow-mixed);
5
+ --oui-shadow-inset: color-mix(in oklab, var(--oui-absolute), transparent 50%);
6
+ --oui-shadow-value: var(--oui-gray-6);
7
+ --oui-shadow-mixed: color-mix(in oklab, var(--oui-shadow-value), transparent 87.5%);
8
+ box-shadow: inset 0 1px 0 0 var(--oui-shadow-inset), 0 0 0 1px var(--oui-shadow-mixed), 0 1px 2px -0.5px var(--oui-shadow-mixed), 0 2px 4px -1px var(--oui-shadow-mixed);
6
9
  display: inline-flex;
7
10
  flex-flow: row nowrap;
8
11
  gap: 0.5em;
9
- background-color: color-mix(in oklab, var(--oui-background, var(--oui-gray-0)), transparent 25%);
12
+ background-color: color-mix(in oklab, var(--oui-background, var(--oui-gray-1)), transparent 25%);
10
13
  color: var(--oui-foreground, var(--oui-gray-8));
14
+ text-shadow: 0 1px 0 var(--oui-absolute);
11
15
  line-height: 1.25;
12
16
  }
13
17
  :where(.oui-pill) {
@@ -35,34 +39,34 @@
35
39
  /* Colors*/
36
40
  }
37
41
  :where(.oui-pill--blue, .oui-tag--blue) {
38
- --oui-background: var(--oui-blue-0);
42
+ --oui-background: var(--oui-blue-1);
39
43
  --oui-foreground: var(--oui-blue-8);
40
- --oui-shadow: var(--oui-blue-6);
44
+ --oui-shadow-value: var(--oui-blue-6);
41
45
  }
42
46
  :where(.oui-pill--green, .oui-tag--green) {
43
- --oui-background: var(--oui-green-0);
47
+ --oui-background: var(--oui-green-1);
44
48
  --oui-foreground: var(--oui-green-8);
45
- --oui-shadow: var(--oui-green-6);
49
+ --oui-shadow-value: var(--oui-green-6);
46
50
  }
47
51
  :where(.oui-pill--orange, .oui-tag--orange) {
48
- --oui-background: var(--oui-orange-0);
52
+ --oui-background: var(--oui-orange-1);
49
53
  --oui-foreground: var(--oui-orange-8);
50
- --oui-shadow: var(--oui-orange-6);
54
+ --oui-shadow-value: var(--oui-orange-6);
51
55
  }
52
56
  :where(.oui-pill--purple, .oui-tag--purple) {
53
- --oui-background: var(--oui-purple-0);
57
+ --oui-background: var(--oui-purple-1);
54
58
  --oui-foreground: var(--oui-purple-8);
55
- --oui-shadow: var(--oui-purple-6);
59
+ --oui-shadow-value: var(--oui-purple-6);
56
60
  }
57
61
  :where(.oui-pill--red, .oui-tag--red) {
58
- --oui-background: var(--oui-red-0);
62
+ --oui-background: var(--oui-red-1);
59
63
  --oui-foreground: var(--oui-red-8);
60
- --oui-shadow: var(--oui-red-6);
64
+ --oui-shadow-value: var(--oui-red-6);
61
65
  }
62
66
  :where(.oui-pill--yellow, .oui-tag--yellow) {
63
- --oui-background: var(--oui-yellow-0);
67
+ --oui-background: var(--oui-yellow-1);
64
68
  --oui-foreground: var(--oui-yellow-8);
65
- --oui-shadow: var(--oui-yellow-6);
69
+ --oui-shadow-value: var(--oui-yellow-6);
66
70
  }
67
71
 
68
72
 
@@ -1,57 +1,85 @@
1
1
  /*! https://github.com/oscarpalmer/oui */
2
2
 
3
+
3
4
  :where(.oui-button) {
4
5
  --oui-background-percentage: 25%;
6
+ --oui-background-value: var(--oui-gray-2);
5
7
  --oui-foreground-percentage: 0%;
8
+ --oui-foreground-value: var(--oui-gray-8);
6
9
  --oui-outline-percentage: 100%;
7
- --oui-shadow-inset: color-mix(in oklab, white, transparent 75%);
10
+ --oui-outline-value: var(--oui-gray-6);
11
+ --oui-shadow-inset: color-mix(in oklab, var(--oui-absolute), transparent 75%);
8
12
  --oui-shadow-percentage: 82.5%;
9
13
  --oui-shadow-value: color-mix(
10
14
  in oklab,
11
- var(--oui-outline-value, var(--oui-gray-6)),
15
+ var(--oui-outline-value),
12
16
  transparent var(--oui-shadow-percentage)
13
17
  );
14
- box-shadow: inset 0 1px 0 0 var(--oui-shadow-inset), 0 0 0 1px var(--oui-shadow-value), 0 1px 2px -0.5px var(--oui-shadow-value), 0 2px 4px -1px var(--oui-shadow-value);
18
+ box-shadow: inset 0 1px 0 0 var(--oui-shadow-inset), 0 0 0 1px var(--oui-shadow-value), 0 1px 2px -0.5px var(--oui-shadow-value), 0 2px 4px -1px var(--oui-shadow-value), 0 4px 8px -2px var(--oui-shadow-value);
15
19
  padding: 0.5em 0.75em;
16
20
  display: inline-flex;
17
21
  flex-flow: row wrap;
18
22
  gap: 0.75em;
19
23
  align-items: center;
20
24
  border-radius: 0.25em;
21
- background-color: color-mix(in oklab, var(--oui-background-value, var(--oui-gray-2)), transparent var(--oui-background-percentage));
22
- outline: 4px solid color-mix(in oklab, var(--oui-outline-value, var(--oui-gray-6)), transparent var(--oui-outline-percentage));
25
+ background-color: color-mix(in oklab, var(--oui-background-value), transparent var(--oui-background-percentage));
26
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
23
27
  border: none;
24
- color: color-mix(in oklab, var(--oui-foreground-value, var(--oui-gray-8)), transparent var(--oui-foreground-percentage));
28
+ color: color-mix(in oklab, var(--oui-foreground-value), transparent var(--oui-foreground-percentage));
25
29
  line-height: 1.25;
26
30
  transition: 0.125s ease-in-out;
31
+ transition-property: background, outline, box-shadow, color;
32
+ }
33
+ :where(.oui-button):focus-visible {
34
+ --oui-outline-percentage: 75%;
35
+ }
36
+ @media (hover: hover) {
37
+ :where(.oui-button):not([disabled], [aria-disabled=true i]):hover {
38
+ --oui-background-percentage: 50%;
39
+ --oui-foreground-percentage: 25%;
40
+ --oui-shadow-percentage: 90%;
41
+ }
42
+ }
43
+ :where(.oui-button):not([disabled], [aria-disabled=true i]):active {
44
+ box-shadow: 0 0 0 1px var(--oui-shadow-value), inset 0 1px 2px 0 var(--oui-shadow-value), inset 0 2px 4px 0 var(--oui-shadow-value);
45
+ scale: 0.95;
46
+ }
47
+ :where(.oui-button):not([disabled], [aria-disabled=true i]):active[aria-pressed=true i], :where(.oui-button):not([disabled], [aria-disabled=true i]):active[aria-selected=true i] {
48
+ scale: 1;
49
+ }
50
+ :where(.oui-button)[disabled], :where(.oui-button)[aria-disabled=true i] {
51
+ --oui-background-percentage: 80%;
52
+ --oui-foreground-percentage: 25%;
53
+ --oui-shadow-percentage: 92.5%;
54
+ font-style: italic;
27
55
  }
28
56
  :where(.oui-button--blue) {
29
- --oui-background-value: var(--oui-blue-2);
57
+ --oui-background-value: var(--oui-blue-3);
30
58
  --oui-foreground-value: var(--oui-blue-8);
31
59
  --oui-outline-value: var(--oui-blue-6);
32
60
  }
33
61
  :where(.oui-button--green) {
34
- --oui-background-value: var(--oui-green-2);
62
+ --oui-background-value: var(--oui-green-3);
35
63
  --oui-foreground-value: var(--oui-green-8);
36
64
  --oui-outline-value: var(--oui-green-6);
37
65
  }
38
66
  :where(.oui-button--orange) {
39
- --oui-background-value: var(--oui-orange-2);
67
+ --oui-background-value: var(--oui-orange-3);
40
68
  --oui-foreground-value: var(--oui-orange-8);
41
69
  --oui-outline-value: var(--oui-orange-6);
42
70
  }
43
71
  :where(.oui-button--purple) {
44
- --oui-background-value: var(--oui-purple-2);
72
+ --oui-background-value: var(--oui-purple-3);
45
73
  --oui-foreground-value: var(--oui-purple-8);
46
74
  --oui-outline-value: var(--oui-purple-6);
47
75
  }
48
76
  :where(.oui-button--red) {
49
- --oui-background-value: var(--oui-red-2);
77
+ --oui-background-value: var(--oui-red-3);
50
78
  --oui-foreground-value: var(--oui-red-8);
51
79
  --oui-outline-value: var(--oui-red-6);
52
80
  }
53
81
  :where(.oui-button--yellow) {
54
- --oui-background-value: var(--oui-yellow-2);
82
+ --oui-background-value: var(--oui-yellow-3);
55
83
  --oui-foreground-value: var(--oui-yellow-8);
56
84
  --oui-outline-value: var(--oui-yellow-6);
57
85
  }
@@ -68,24 +96,5 @@
68
96
  --oui-foreground-percentage: 12.5%;
69
97
  font-size: 0.75em;
70
98
  }
71
- :where(.oui-button:focus-visible) {
72
- --oui-outline-percentage: 75%;
73
- }
74
- @media (hover: hover) {
75
- :where(.oui-button:not([disabled], [aria-disabled=true i]):hover) {
76
- --oui-background-percentage: 50%;
77
- --oui-foreground-percentage: 25%;
78
- --oui-shadow-percentage: 90%;
79
- }
80
- }
81
- :where(.oui-button:not([disabled], [aria-disabled=true i]):active) {
82
- box-shadow: 0 0 0 1px var(--oui-shadow-value), inset 0 1px 2px 0 var(--oui-shadow-value), inset 0 2px 4px 0 var(--oui-shadow-value);
83
- }
84
- :where(.oui-button[disabled], .oui-button[aria-disabled=true i]) {
85
- --oui-background-percentage: 80%;
86
- --oui-foreground-percentage: 20%;
87
- --oui-shadow-percentage: 95%;
88
- font-style: italic;
89
- }
90
99
 
91
100
 
@@ -0,0 +1,377 @@
1
+ @charset "UTF-8";
2
+ /*! https://github.com/oscarpalmer/oui */
3
+
4
+
5
+
6
+
7
+ :where(oui-color-picker) {
8
+ outline: none;
9
+ }
10
+
11
+ :where(oui-color-picker[inline] [oui-color-picker-content],
12
+ [oui-color-picker-content]:popover-open) {
13
+ display: flex !important;
14
+ flex-flow: column nowrap;
15
+ }
16
+
17
+ :where(oui-color-picker[inline] [oui-color-picker-content],
18
+ [oui-color-picker-hue],
19
+ [oui-color-picker-opacity]) {
20
+ margin: 1em 0 0;
21
+ }
22
+
23
+ :where([oui-color-picker-anchor]) {
24
+ display: flex;
25
+ flex-flow: row nowrap;
26
+ align-items: stretch;
27
+ }
28
+ :where([oui-color-picker-anchor] *) {
29
+ position: relative;
30
+ }
31
+ :where([oui-color-picker-anchor] *:focus) {
32
+ z-index: 1;
33
+ }
34
+ @media (hover: hover) {
35
+ :where([oui-color-picker-anchor] *:hover) {
36
+ z-index: 1;
37
+ }
38
+ }
39
+
40
+ :where([oui-color-picker-button]) {
41
+ --oui-background-percentage: 25%;
42
+ --oui-background-value: var(--oui-gray-2);
43
+ --oui-foreground-percentage: 0%;
44
+ --oui-foreground-value: var(--oui-gray-8);
45
+ --oui-outline-percentage: 100%;
46
+ --oui-outline-value: var(--oui-gray-6);
47
+ --oui-shadow-inset: color-mix(in oklab, var(--oui-absolute), transparent 75%);
48
+ --oui-shadow-percentage: 82.5%;
49
+ --oui-shadow-value: color-mix(
50
+ in oklab,
51
+ var(--oui-outline-value),
52
+ transparent var(--oui-shadow-percentage)
53
+ );
54
+ box-shadow: inset 0 1px 0 0 var(--oui-shadow-inset), 0 0 0 1px var(--oui-shadow-value), 0 1px 2px -0.5px var(--oui-shadow-value), 0 2px 4px -1px var(--oui-shadow-value), 0 4px 8px -2px var(--oui-shadow-value);
55
+ padding: 0.5em 0.75em;
56
+ display: inline-flex;
57
+ flex-flow: row wrap;
58
+ gap: 0.75em;
59
+ align-items: center;
60
+ border-radius: 0.25em;
61
+ background-color: color-mix(in oklab, var(--oui-background-value), transparent var(--oui-background-percentage));
62
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
63
+ border: none;
64
+ color: color-mix(in oklab, var(--oui-foreground-value), transparent var(--oui-foreground-percentage));
65
+ line-height: 1.25;
66
+ transition: 0.125s ease-in-out;
67
+ transition-property: background, outline, box-shadow, color;
68
+ }
69
+ :where([oui-color-picker-button]):focus-visible {
70
+ --oui-outline-percentage: 75%;
71
+ }
72
+ @media (hover: hover) {
73
+ :where([oui-color-picker-button]):not([disabled], [aria-disabled=true i]):hover {
74
+ --oui-background-percentage: 50%;
75
+ --oui-foreground-percentage: 25%;
76
+ --oui-shadow-percentage: 90%;
77
+ }
78
+ }
79
+ :where([oui-color-picker-button]):not([disabled], [aria-disabled=true i]):active {
80
+ box-shadow: 0 0 0 1px var(--oui-shadow-value), inset 0 1px 2px 0 var(--oui-shadow-value), inset 0 2px 4px 0 var(--oui-shadow-value);
81
+ scale: 0.95;
82
+ }
83
+ :where([oui-color-picker-button]):not([disabled], [aria-disabled=true i]):active[aria-pressed=true i], :where([oui-color-picker-button]):not([disabled], [aria-disabled=true i]):active[aria-selected=true i] {
84
+ scale: 1;
85
+ }
86
+ :where([oui-color-picker-button])[disabled], :where([oui-color-picker-button])[aria-disabled=true i] {
87
+ --oui-background-percentage: 80%;
88
+ --oui-foreground-percentage: 25%;
89
+ --oui-shadow-percentage: 92.5%;
90
+ font-style: italic;
91
+ }
92
+ :where([oui-color-picker-button]) {
93
+ box-shadow: inset 0 1px 0 0 transparent, 0 0 0 1px var(--oui-shadow-value), 0 1px 2px -0.5px var(--oui-shadow-value), 0 2px 4px -1px var(--oui-shadow-value);
94
+ --oui-background-value: var(--oui-color-picker-hex);
95
+ --oui-outline-value: var(--oui-gray-6);
96
+ width: 2.5em;
97
+ margin: 1px 0;
98
+ border: 2px solid var(--oui-absolute);
99
+ border-top-left-radius: 0;
100
+ border-bottom-left-radius: 0;
101
+ position: relative;
102
+ }
103
+ :where([oui-color-picker-button])::after {
104
+ display: none;
105
+ color: var(--oui-color-picker-foreground);
106
+ font-size: 8px;
107
+ position: absolute;
108
+ inset: 50% auto auto 50%;
109
+ transform: translate3d(-50%, -50%, 0);
110
+ }
111
+ :where([oui-color-picker-button])[aria-expanded=false i]::after {
112
+ content: "▶";
113
+ display: inline-flex;
114
+ }
115
+ :where([oui-color-picker-button])[aria-expanded=true i]::after {
116
+ content: "▼";
117
+ display: inline-flex;
118
+ }
119
+ :where([oui-color-picker-button]:active) {
120
+ scale: 1;
121
+ }
122
+
123
+ :where([oui-color-picker-content][popover]) {
124
+ --margin-bottom: 0.5em;
125
+ --margin-left: 0.5em;
126
+ --margin-right: 0.5em;
127
+ --margin-top: 0.5em;
128
+ inset-block: var(--margin-top) var(--margin-bottom);
129
+ inset-inline: var(--margin-left) var(--margin-right);
130
+ }
131
+ :where([oui-color-picker-content][popover])[oui-position$=bottom i] {
132
+ --margin-bottom: 0;
133
+ }
134
+ :where([oui-color-picker-content][popover])[oui-position$=end i] {
135
+ --margin-right: 0;
136
+ }
137
+ :where([oui-color-picker-content][popover])[oui-position$=start i] {
138
+ --margin-left: 0;
139
+ }
140
+ :where([oui-color-picker-content][popover])[oui-position$=top i] {
141
+ --margin-top: 0;
142
+ }
143
+ :where([oui-color-picker-content][popover]) {
144
+ box-shadow: inset 0 1px 0 0 transparent, 0 0 0 1px rgba(0, 0, 0, 0.05), 0 1px 2px -0.5px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.05), 0 4px 8px -2px rgba(0, 0, 0, 0.05), 0 8px 16px -4px rgba(0, 0, 0, 0.05), 0 16px 32px -8px rgba(0, 0, 0, 0.05), 0 32px 64px -16px rgba(0, 0, 0, 0.05), 0 64px 128px -32px rgba(0, 0, 0, 0.05);
145
+ min-width: anchor-size(width);
146
+ border-radius: 0.25em;
147
+ }
148
+ :where([oui-color-picker-content][popover]:not(:has(> [oui-color-picker-opacity]))) {
149
+ border-radius: 0.25em 0.25em 0.75em 0.75em;
150
+ }
151
+ [oui-color-picker-content][popover] :where([oui-color-picker-content],
152
+ [oui-color-picker-hue],
153
+ [oui-color-picker-opacity],
154
+ [oui-color-picker-well]) {
155
+ margin: 1em 1em 0;
156
+ }
157
+ :where([oui-color-picker-content][popover] > :last-child) {
158
+ margin-bottom: 1em !important;
159
+ }
160
+
161
+ :where([oui-color-picker-hue], [oui-color-picker-opacity]) {
162
+ position: relative;
163
+ }
164
+
165
+ :where([oui-color-picker-hue-input], [oui-color-picker-opacity-input]) {
166
+ opacity: 0;
167
+ position: absolute;
168
+ inset: -0.25em -0.75em;
169
+ z-index: 1;
170
+ }
171
+
172
+ :where([oui-color-picker-hue-label], [oui-color-picker-opacity-label]) {
173
+ display: none;
174
+ }
175
+
176
+ :where([oui-color-picker-hue-knob]),
177
+ :where([oui-color-picker-hue-track]),
178
+ :where([oui-color-picker-opacity-knob]),
179
+ :where([oui-color-picker-opacity-track]),
180
+ :where([oui-color-picker-well-knob]) {
181
+ --oui-outline-percentage: 100%;
182
+ --oui-outline-value: var(--oui-blue-6);
183
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
184
+ transition: outline 0.125s ease-in-out;
185
+ }
186
+
187
+ :where([oui-color-picker-hue-knob]),
188
+ :where([oui-color-picker-opacity-knob]),
189
+ :where([oui-color-picker-well-knob]) {
190
+ box-shadow: inset 0 1px 0 0 transparent, 0 0 0 1px rgba(0, 0, 0, 0.0625), 0 1px 2px -0.5px rgba(0, 0, 0, 0.0625), 0 2px 4px -1px rgba(0, 0, 0, 0.0625), 0 4px 8px -2px rgba(0, 0, 0, 0.0625), 0 8px 16px -4px rgba(0, 0, 0, 0.0625), 0 16px 32px -8px rgba(0, 0, 0, 0.0625), 0 32px 64px -16px rgba(0, 0, 0, 0.0625), 0 64px 128px -32px rgba(0, 0, 0, 0.0625);
191
+ width: 1.5em;
192
+ height: 1.5em;
193
+ border: 0.3333em solid var(--oui-absolute);
194
+ border-radius: 1.5em;
195
+ position: absolute;
196
+ z-index: 1;
197
+ }
198
+
199
+ :where([oui-color-picker-hue-knob]),
200
+ :where([oui-color-picker-well-knob]) {
201
+ background-color: var(--oui-color-picker-hex);
202
+ }
203
+
204
+ :where([oui-color-picker-hue-knob]),
205
+ :where([oui-color-picker-opacity-knob]) {
206
+ transform: translate3d(-50%, -0.25em, 0);
207
+ }
208
+
209
+ :where([oui-color-picker-hue-knob]) {
210
+ inset: 0 0 0 calc(var(--oui-color-picker-hue) / 360 * 100%);
211
+ pointer-events: none;
212
+ }
213
+
214
+ :where([oui-color-picker-hue-track]),
215
+ :where([oui-color-picker-opacity-track]),
216
+ :where([oui-color-picker-well]) {
217
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.05), inset 0 1px 2px -0.5px rgba(0, 0, 0, 0.05), inset 0 2px 4px -1px rgba(0, 0, 0, 0.05), inset 0 4px 8px -2px rgba(0, 0, 0, 0.05);
218
+ }
219
+
220
+ :where([oui-color-picker-hue-track]),
221
+ :where([oui-color-picker-opacity-track]) {
222
+ height: 1em;
223
+ border: 1px solid transparent;
224
+ border-radius: 1em;
225
+ pointer-events: none;
226
+ }
227
+
228
+ :where([oui-color-picker-hue-track]) {
229
+ background-image: linear-gradient(to right, hsl(0, 100%, 50%) 0%, hsl(60, 100%, 50%) 16.6667%, hsl(120, 100%, 50%) 33.3333%, hsl(180, 100%, 50%) 50%, hsl(240, 100%, 50%) 66.6667%, hsl(300, 100%, 50%) 83.3333%, hsl(0, 100%, 50%) 100%);
230
+ }
231
+
232
+ :where([oui-color-picker-hue-input]:focus-visible + [oui-color-picker-hue-track], [oui-color-picker-hue-input]:focus-visible + [oui-color-picker-hue-track] [oui-color-picker-hue-knob], [oui-color-picker-hue-input]:focus-visible + [oui-color-picker-hue-track] [oui-color-picker-opacity-knob],
233
+ [oui-color-picker-opacity-input]:focus-visible + [oui-color-picker-opacity-track],
234
+ [oui-color-picker-opacity-input]:focus-visible + [oui-color-picker-opacity-track] [oui-color-picker-hue-knob],
235
+ [oui-color-picker-opacity-input]:focus-visible + [oui-color-picker-opacity-track] [oui-color-picker-opacity-knob]) {
236
+ --oui-outline-percentage: 75%;
237
+ }
238
+ :where([oui-color-picker-hue-input]:focus-visible + [oui-color-picker-hue-track],
239
+ [oui-color-picker-opacity-input]:focus-visible + [oui-color-picker-opacity-track]) {
240
+ border-color: var(--oui-absolute);
241
+ }
242
+
243
+ :where([oui-color-picker-input]) {
244
+ --oui-outline-percentage: 100%;
245
+ --oui-outline-value: var(--oui-blue-6);
246
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
247
+ outline-offset: 0;
248
+ --oui-background-percentage: 0%;
249
+ --oui-foreground-percentage: 0%;
250
+ align-content: center;
251
+ background-color: color-mix(in oklab, var(--oui-background-value), transparent var(--oui-background-percentage));
252
+ border: 1px solid var(--oui-border-value, var(--oui-gray-3));
253
+ box-shadow: inset 0 2px 4px -1px var(--oui-gray-3);
254
+ color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
255
+ -webkit-text-fill-color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
256
+ transition: 0.125s ease-in-out;
257
+ transition-property: background, outline, border, box-shadow, color;
258
+ }
259
+ :where([oui-color-picker-input]).oui-validate:not([disabled],
260
+ [readonly],
261
+ [aria-disabled=true i],
262
+ [aria-readonly=true i],
263
+ :focus-visible,
264
+ :focus-within):is(:user-invalid:not([aria-invalid=false i]), [aria-invalid=true i]) {
265
+ --oui-border-value: var(--oui-red-5);
266
+ --oui-foreground-value: var(--oui-red-9);
267
+ --oui-outline-percentage: 82.5%;
268
+ --oui-outline-value: var(--oui-red-6);
269
+ }
270
+ :where([oui-color-picker-input]).oui-validate:not([disabled],
271
+ [readonly],
272
+ [aria-disabled=true i],
273
+ [aria-readonly=true i],
274
+ :focus-visible,
275
+ :focus-within):is(:user-valid:not([aria-invalid=true i]), [aria-invalid=false i]) {
276
+ --oui-border-value: var(--oui-green-5);
277
+ --oui-foreground-value: var(--oui-green-9);
278
+ --oui-outline-percentage: 82.5%;
279
+ --oui-outline-value: var(--oui-green-6);
280
+ }
281
+ :where([oui-color-picker-input]):not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, :where([oui-color-picker-input]):not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within {
282
+ --oui-border-value: var(--oui-blue-5);
283
+ --oui-foreground-value: inherit;
284
+ --oui-outline-percentage: 75%;
285
+ --oui-outline-value: var(--oui-blue-6);
286
+ }
287
+ @media (hover: hover) {
288
+ :where([oui-color-picker-input]):not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):hover {
289
+ --oui-border-value: var(--oui-blue-4);
290
+ --oui-foreground-percentage: 0%;
291
+ --oui-foreground-value: inherit;
292
+ --oui-outline-percentage: 90%;
293
+ --oui-outline-value: var(--oui-blue-6);
294
+ }
295
+ }
296
+ :where([oui-color-picker-input]):is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]) {
297
+ --oui-foreground-percentage: 25%;
298
+ font-style: italic;
299
+ }
300
+ :where([oui-color-picker-input]):is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible {
301
+ --oui-outline-percentage: 75%;
302
+ }
303
+ :where([oui-color-picker-input]):is([disabled], [aria-disabled=true i]) {
304
+ --oui-background-percentage: 50%;
305
+ }
306
+ :where([oui-color-picker-input]) {
307
+ --oui-background-value: var(--oui-absolute);
308
+ padding: 0.5em 0.75em;
309
+ border-radius: 0.25em;
310
+ font-family: monospace, monospace;
311
+ }
312
+ :where([oui-color-picker-input]:has(+ button)) {
313
+ border-radius: 0.25em 0 0 0.25em;
314
+ }
315
+ :where([oui-color-picker-input]:is([disabled], [aria-disabled=true i])) {
316
+ --oui-background-percentage: 50%;
317
+ }
318
+
319
+ :where([oui-color-picker-opacity-knob]) {
320
+ background-color: var(--oui-absolute);
321
+ background-image: linear-gradient(to right, color-mix(in oklab, var(--oui-color-picker-hex), transparent calc((100 - var(--oui-color-picker-alpha)) * 1%)) 0%, color-mix(in oklab, var(--oui-color-picker-hex), transparent calc((100 - var(--oui-color-picker-alpha)) * 1%)) 100%);
322
+ inset: 0 0 0 calc(var(--oui-color-picker-alpha) * 1%);
323
+ }
324
+
325
+ :where([oui-color-picker-opacity-track]) {
326
+ background-color: var(--oui-absolute);
327
+ background-image: linear-gradient(to right, transparent 0%, hsl(var(--oui-color-picker-hue), 100%, 50%) 100%);
328
+ position: relative;
329
+ }
330
+ :where([oui-color-picker-opacity-track])::after {
331
+ content: "";
332
+ background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%), linear-gradient(135deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(0, 0, 0, 0.1) 75%), linear-gradient(135deg, transparent 75%, rgba(0, 0, 0, 0.1) 75%);
333
+ background-size: 0.5em 0.5em;
334
+ background-position: 0 0, 0.25em 0, 0.25em -0.25em, 0 0.25em;
335
+ border-radius: 1em;
336
+ position: absolute;
337
+ inset: 0;
338
+ }
339
+
340
+ :where([oui-color-picker-well]) {
341
+ --oui-outline-percentage: 100%;
342
+ --oui-outline-value: var(--oui-blue-6);
343
+ padding: 100% 0 0;
344
+ background-color: hsl(var(--oui-color-picker-hue), 100%, 50%);
345
+ background-image: linear-gradient(to bottom, hsl(0, 0%, 100%) 0%, hsla(0, 0%, 100%, 0) 50%, hsla(0, 0%, 0%, 0) 50%, hsl(0, 0%, 0%) 100%), linear-gradient(to right, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
346
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
347
+ outline-offset: 4px;
348
+ border-radius: 0.125em;
349
+ position: relative;
350
+ transition: outline 0.125s ease-in-out;
351
+ }
352
+ :where([oui-color-picker-well]:has(:focus-visible)) {
353
+ --oui-outline-percentage: 75%;
354
+ }
355
+ @media (hover: hover) {
356
+ :where([oui-color-picker-well]:hover) {
357
+ --oui-outline-percentage: 75%;
358
+ }
359
+ }
360
+
361
+ :where([oui-color-picker-well-knob]) {
362
+ --oui-outline-value: var(--oui-absolute);
363
+ outline-offset: 2px;
364
+ inset: calc((100 - var(--oui-color-picker-lightness)) * 1%) 0 0 calc(var(--oui-color-picker-saturation) * 1%);
365
+ transform: translate3d(-50%, -50%, 0);
366
+ cursor: move;
367
+ }
368
+ :where([oui-color-picker-well-knob]:focus-visible) {
369
+ --oui-outline-percentage: 33.3333%;
370
+ }
371
+ @media (hover: hover) {
372
+ :where([oui-color-picker-well-knob]:hover) {
373
+ --oui-outline-percentage: 33.3333%;
374
+ }
375
+ }
376
+
377
+
@@ -1,5 +1,4 @@
1
1
  /*! https://github.com/oscarpalmer/oui */
2
-
3
2
  :root {
4
3
  --oui-absolute: light-dark(white, black);
5
4
  --oui-blue-0: light-dark(oklch(99% 0.01 260deg), oklch(20% 0.08 250deg));
@@ -13,8 +12,8 @@
13
12
  --oui-blue-8: light-dark(oklch(42% 0.11 252deg), oklch(85% 0.04 258deg));
14
13
  --oui-blue-9: light-dark(oklch(35% 0.1 251deg), oklch(90% 0.03 259deg));
15
14
  --oui-blue-10: light-dark(oklch(30% 0.09 250deg), oklch(95% 0.02 260deg));
16
- --oui-green-0: light-dark(oklch(99% 0.01 150deg), oklch(20% 0.08 140deg));
17
- --oui-green-1: light-dark(oklch(98% 0.02 149deg), oklch(25% 0.09 141deg));
15
+ --oui-green-0: light-dark(oklch(99.5% 0.01 150deg), oklch(20% 0.08 140deg));
16
+ --oui-green-1: light-dark(oklch(98.25% 0.02 149deg), oklch(25% 0.09 141deg));
18
17
  --oui-green-2: light-dark(oklch(95% 0.03 148deg), oklch(32% 0.1 142deg));
19
18
  --oui-green-3: light-dark(oklch(90% 0.04 147deg), oklch(40% 0.09 143deg));
20
19
  --oui-green-4: light-dark(oklch(80% 0.06 146deg), oklch(50% 0.08 144deg));
@@ -24,19 +23,19 @@
24
23
  --oui-green-8: light-dark(oklch(42% 0.11 142deg), oklch(85% 0.04 148deg));
25
24
  --oui-green-9: light-dark(oklch(35% 0.1 141deg), oklch(90% 0.03 149deg));
26
25
  --oui-green-10: light-dark(oklch(30% 0.09 140deg), oklch(95% 0.02 150deg));
27
- --oui-orange-0: light-dark(oklch(99% 0.02 60deg), oklch(20% 0.08 50deg));
28
- --oui-orange-1: light-dark(oklch(98.5% 0.035 59deg), oklch(25% 0.09 51deg));
29
- --oui-orange-2: light-dark(oklch(97% 0.05 58deg), oklch(32% 0.1 52deg));
30
- --oui-orange-3: light-dark(oklch(93% 0.07 57deg), oklch(40% 0.09 53deg));
31
- --oui-orange-4: light-dark(oklch(87% 0.1 56deg), oklch(50% 0.08 54deg));
26
+ --oui-orange-0: light-dark(oklch(99.5% 0.02 60deg), oklch(20% 0.08 50deg));
27
+ --oui-orange-1: light-dark(oklch(98.75% 0.035 59deg), oklch(25% 0.09 51deg));
28
+ --oui-orange-2: light-dark(oklch(97.5% 0.05 58deg), oklch(32% 0.1 52deg));
29
+ --oui-orange-3: light-dark(oklch(93.25% 0.07 57deg), oklch(40% 0.09 53deg));
30
+ --oui-orange-4: light-dark(oklch(87.125% 0.1 56deg), oklch(50% 0.08 54deg));
32
31
  --oui-orange-5: light-dark(oklch(76% 0.11 55deg), oklch(60% 0.07 55deg));
33
32
  --oui-orange-6: light-dark(oklch(65% 0.12 54deg), oklch(70% 0.06 56deg));
34
33
  --oui-orange-7: light-dark(oklch(55% 0.14 53deg), oklch(80% 0.05 57deg));
35
34
  --oui-orange-8: light-dark(oklch(45% 0.12 52deg), oklch(85% 0.04 58deg));
36
35
  --oui-orange-9: light-dark(oklch(37.5% 0.11 51deg), oklch(90% 0.03 59deg));
37
36
  --oui-orange-10: light-dark(oklch(30% 0.09 50deg), oklch(95% 0.02 60deg));
38
- --oui-purple-0: light-dark(oklch(99% 0.02 300deg), oklch(20% 0.08 290deg));
39
- --oui-purple-1: light-dark(oklch(98% 0.035 299deg), oklch(25% 0.09 291deg));
37
+ --oui-purple-0: light-dark(oklch(99.5% 0.02 300deg), oklch(20% 0.08 290deg));
38
+ --oui-purple-1: light-dark(oklch(98.25% 0.035 299deg), oklch(25% 0.09 291deg));
40
39
  --oui-purple-2: light-dark(oklch(95% 0.05 298deg), oklch(32% 0.1 292deg));
41
40
  --oui-purple-3: light-dark(oklch(90% 0.07 297deg), oklch(40% 0.09 293deg));
42
41
  --oui-purple-4: light-dark(oklch(80% 0.1 296deg), oklch(50% 0.08 294deg));
@@ -46,21 +45,21 @@
46
45
  --oui-purple-8: light-dark(oklch(42% 0.12 292deg), oklch(85% 0.04 298deg));
47
46
  --oui-purple-9: light-dark(oklch(35% 0.11 291deg), oklch(90% 0.03 299deg));
48
47
  --oui-purple-10: light-dark(oklch(30% 0.09 290deg), oklch(95% 0.02 300deg));
49
- --oui-red-0: light-dark(oklch(99% 0.024 25deg), oklch(20% 0.08 25deg));
50
- --oui-red-1: light-dark(oklch(98.5% 0.032 24deg), oklch(25% 0.09 24deg));
51
- --oui-red-2: light-dark(oklch(97% 0.05 23deg), oklch(32% 0.1 23deg));
52
- --oui-red-3: light-dark(oklch(93% 0.07 22deg), oklch(40% 0.09 22deg));
53
- --oui-red-4: light-dark(oklch(87% 0.1 21deg), oklch(50% 0.08 21deg));
48
+ --oui-red-0: light-dark(oklch(99.5% 0.024 25deg), oklch(20% 0.08 25deg));
49
+ --oui-red-1: light-dark(oklch(98.75% 0.032 24deg), oklch(25% 0.09 24deg));
50
+ --oui-red-2: light-dark(oklch(97.5% 0.05 23deg), oklch(32% 0.1 23deg));
51
+ --oui-red-3: light-dark(oklch(93.25% 0.07 22deg), oklch(40% 0.09 22deg));
52
+ --oui-red-4: light-dark(oklch(87.125% 0.1 21deg), oklch(50% 0.08 21deg));
54
53
  --oui-red-5: light-dark(oklch(76% 0.11 20deg), oklch(60% 0.07 20deg));
55
54
  --oui-red-6: light-dark(oklch(65% 0.12 19deg), oklch(70% 0.06 19deg));
56
55
  --oui-red-7: light-dark(oklch(55% 0.14 18deg), oklch(80% 0.05 18deg));
57
56
  --oui-red-8: light-dark(oklch(45% 0.12 17deg), oklch(85% 0.04 17deg));
58
57
  --oui-red-9: light-dark(oklch(37.5% 0.11 16deg), oklch(90% 0.03 16deg));
59
58
  --oui-red-10: light-dark(oklch(30% 0.09 15deg), oklch(95% 0.02 15deg));
60
- --oui-yellow-0: light-dark(oklch(99% 0.02 100deg), oklch(20% 0.08 90deg));
59
+ --oui-yellow-0: light-dark(oklch(99.5% 0.02 100deg), oklch(20% 0.08 90deg));
61
60
  --oui-yellow-1: light-dark(oklch(98.5% 0.035 99deg), oklch(25% 0.09 91deg));
62
- --oui-yellow-2: light-dark(oklch(97% 0.05 98deg), oklch(32% 0.1 92deg));
63
- --oui-yellow-3: light-dark(oklch(93% 0.07 97deg), oklch(40% 0.09 93deg));
61
+ --oui-yellow-2: light-dark(oklch(97.25% 0.05 98deg), oklch(32% 0.1 92deg));
62
+ --oui-yellow-3: light-dark(oklch(93.125% 0.07 97deg), oklch(40% 0.09 93deg));
64
63
  --oui-yellow-4: light-dark(oklch(87% 0.1 96deg), oklch(50% 0.08 94deg));
65
64
  --oui-yellow-5: light-dark(oklch(78% 0.11 95deg), oklch(60% 0.07 95deg));
66
65
  --oui-yellow-6: light-dark(oklch(65% 0.12 94deg), oklch(70% 0.06 96deg));
@@ -69,7 +68,7 @@
69
68
  --oui-yellow-9: light-dark(oklch(37.5% 0.11 91deg), oklch(90% 0.03 99deg));
70
69
  --oui-yellow-10: light-dark(oklch(30% 0.09 90deg), oklch(95% 0.02 100deg));
71
70
  --oui-gray-0: light-dark(oklch(98% 0 0deg), oklch(22% 0 0deg));
72
- --oui-gray-1: light-dark(oklch(98% 0 0deg), oklch(26% 0 0deg));
71
+ --oui-gray-1: light-dark(oklch(97% 0 0deg), oklch(26% 0 0deg));
73
72
  --oui-gray-2: light-dark(oklch(95% 0 0deg), oklch(32% 0 0deg));
74
73
  --oui-gray-3: light-dark(oklch(90% 0 0deg), oklch(40% 0 0deg));
75
74
  --oui-gray-4: light-dark(oklch(80% 0 0deg), oklch(50% 0 0deg));
@@ -90,8 +89,8 @@
90
89
  --oui-slate-8: light-dark(oklch(42% 0.01 255deg), oklch(85% 0.01 255deg));
91
90
  --oui-slate-9: light-dark(oklch(35% 0.0075 255deg), oklch(90% 0.0075 255deg));
92
91
  --oui-slate-10: light-dark(oklch(30% 0.005 255deg), oklch(95% 0.005 255deg));
93
- --oui-stone-0: light-dark(oklch(99% 0.0033 95deg), oklch(22% 0.005 95deg));
94
- --oui-stone-1: light-dark(oklch(98% 0.0067 95deg), oklch(26% 0.0075 95deg));
92
+ --oui-stone-0: light-dark(oklch(99.5% 0.0033 95deg), oklch(22% 0.005 95deg));
93
+ --oui-stone-1: light-dark(oklch(98.25% 0.0067 95deg), oklch(26% 0.0075 95deg));
95
94
  --oui-stone-2: light-dark(oklch(95% 0.01 95deg), oklch(32% 0.01 95deg));
96
95
  --oui-stone-3: light-dark(oklch(90% 0.0125 95deg), oklch(40% 0.0125 95deg));
97
96
  --oui-stone-4: light-dark(oklch(80% 0.015 95deg), oklch(50% 0.015 95deg));