@a-type/ui 2.5.0 → 2.6.1
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.
- package/dist/cjs/colors.stories.d.ts +1 -0
- package/dist/cjs/colors.stories.js +12 -6
- package/dist/cjs/colors.stories.js.map +1 -1
- package/dist/cjs/components/button/classes.js +5 -5
- package/dist/cjs/components/button/classes.js.map +1 -1
- package/dist/cjs/components/camera/Camera.js +4 -4
- package/dist/cjs/components/camera/Camera.js.map +1 -1
- package/dist/cjs/components/card/Card.js +2 -2
- package/dist/cjs/components/card/Card.js.map +1 -1
- package/dist/cjs/components/chip/Chip.js +1 -1
- package/dist/cjs/components/datePicker/DatePicker.js +2 -2
- package/dist/cjs/components/datePicker/DatePicker.js.map +1 -1
- package/dist/cjs/components/dialog/Dialog.js +1 -1
- package/dist/cjs/components/dialog/Dialog.js.map +1 -1
- package/dist/cjs/components/dropdownMenu/DropdownMenu.js +1 -1
- package/dist/cjs/components/dropdownMenu/DropdownMenu.js.map +1 -1
- package/dist/cjs/components/editableText/EditableText.js +1 -1
- package/dist/cjs/components/editableText/EditableText.js.map +1 -1
- package/dist/cjs/components/forms/CheckboxField.js +1 -1
- package/dist/cjs/components/forms/CheckboxField.js.map +1 -1
- package/dist/cjs/components/forms/NumberStepperField.js +1 -1
- package/dist/cjs/components/forms/NumberStepperField.js.map +1 -1
- package/dist/cjs/components/forms/TextField.js +1 -1
- package/dist/cjs/components/forms/TextField.js.map +1 -1
- package/dist/cjs/components/imageUploader/ImageUploader.js +1 -1
- package/dist/cjs/components/imageUploader/ImageUploader.js.map +1 -1
- package/dist/cjs/components/navBar/NavBar.js +3 -3
- package/dist/cjs/components/navBar/NavBar.js.map +1 -1
- package/dist/cjs/components/scrollArea/ScrollArea.stories.js +2 -2
- package/dist/cjs/components/scrollArea/ScrollArea.stories.js.map +1 -1
- package/dist/cjs/components/tabs/tabs.js +1 -1
- package/dist/cjs/components/tabs/tabs.js.map +1 -1
- package/dist/cjs/components/textArea/TextArea.js +1 -1
- package/dist/cjs/components/textArea/TextArea.js.map +1 -1
- package/dist/cjs/components/tooltip/Tooltip.js +3 -3
- package/dist/cjs/components/tooltip/Tooltip.js.map +1 -1
- package/dist/cjs/uno/colors.js +26 -12
- package/dist/cjs/uno/colors.js.map +1 -1
- package/dist/cjs/uno/uno.preset.js +75 -38
- package/dist/cjs/uno/uno.preset.js.map +1 -1
- package/dist/css/main.css +332 -307
- package/dist/esm/colors.stories.d.ts +1 -0
- package/dist/esm/colors.stories.js +11 -5
- package/dist/esm/colors.stories.js.map +1 -1
- package/dist/esm/components/button/classes.js +5 -5
- package/dist/esm/components/button/classes.js.map +1 -1
- package/dist/esm/components/camera/Camera.js +4 -4
- package/dist/esm/components/camera/Camera.js.map +1 -1
- package/dist/esm/components/card/Card.js +2 -2
- package/dist/esm/components/card/Card.js.map +1 -1
- package/dist/esm/components/chip/Chip.js +1 -1
- package/dist/esm/components/datePicker/DatePicker.js +2 -2
- package/dist/esm/components/datePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/dialog/Dialog.js +1 -1
- package/dist/esm/components/dialog/Dialog.js.map +1 -1
- package/dist/esm/components/dropdownMenu/DropdownMenu.js +1 -1
- package/dist/esm/components/dropdownMenu/DropdownMenu.js.map +1 -1
- package/dist/esm/components/editableText/EditableText.js +1 -1
- package/dist/esm/components/editableText/EditableText.js.map +1 -1
- package/dist/esm/components/forms/CheckboxField.js +1 -1
- package/dist/esm/components/forms/CheckboxField.js.map +1 -1
- package/dist/esm/components/forms/NumberStepperField.js +1 -1
- package/dist/esm/components/forms/NumberStepperField.js.map +1 -1
- package/dist/esm/components/forms/TextField.js +1 -1
- package/dist/esm/components/forms/TextField.js.map +1 -1
- package/dist/esm/components/imageUploader/ImageUploader.js +1 -1
- package/dist/esm/components/imageUploader/ImageUploader.js.map +1 -1
- package/dist/esm/components/navBar/NavBar.js +3 -3
- package/dist/esm/components/navBar/NavBar.js.map +1 -1
- package/dist/esm/components/scrollArea/ScrollArea.stories.js +2 -2
- package/dist/esm/components/scrollArea/ScrollArea.stories.js.map +1 -1
- package/dist/esm/components/tabs/tabs.js +1 -1
- package/dist/esm/components/tabs/tabs.js.map +1 -1
- package/dist/esm/components/textArea/TextArea.js +1 -1
- package/dist/esm/components/textArea/TextArea.js.map +1 -1
- package/dist/esm/components/tooltip/Tooltip.js +3 -3
- package/dist/esm/components/tooltip/Tooltip.js.map +1 -1
- package/dist/esm/uno/colors.js +26 -12
- package/dist/esm/uno/colors.js.map +1 -1
- package/dist/esm/uno/uno.preset.js +75 -38
- package/dist/esm/uno/uno.preset.js.map +1 -1
- package/package.json +1 -1
- package/src/colors.stories.tsx +120 -12
- package/src/components/button/classes.tsx +5 -5
- package/src/components/camera/Camera.tsx +4 -4
- package/src/components/card/Card.tsx +2 -2
- package/src/components/chip/Chip.tsx +1 -1
- package/src/components/datePicker/DatePicker.tsx +7 -7
- package/src/components/dialog/Dialog.tsx +1 -1
- package/src/components/dropdownMenu/DropdownMenu.tsx +1 -1
- package/src/components/editableText/EditableText.tsx +1 -1
- package/src/components/forms/CheckboxField.tsx +1 -1
- package/src/components/forms/NumberStepperField.tsx +1 -1
- package/src/components/forms/TextField.tsx +1 -1
- package/src/components/imageUploader/ImageUploader.tsx +1 -1
- package/src/components/navBar/NavBar.tsx +3 -3
- package/src/components/scrollArea/ScrollArea.stories.tsx +2 -2
- package/src/components/tabs/tabs.tsx +4 -4
- package/src/components/textArea/TextArea.tsx +1 -1
- package/src/components/tooltip/Tooltip.tsx +3 -3
- package/src/uno/colors.ts +27 -12
- package/src/uno/uno.preset.ts +78 -47
package/src/colors.stories.tsx
CHANGED
|
@@ -14,8 +14,8 @@ const meta = {
|
|
|
14
14
|
customRotate: {
|
|
15
15
|
control: {
|
|
16
16
|
type: 'range',
|
|
17
|
-
min: -
|
|
18
|
-
max:
|
|
17
|
+
min: -20,
|
|
18
|
+
max: 20,
|
|
19
19
|
},
|
|
20
20
|
},
|
|
21
21
|
},
|
|
@@ -41,14 +41,52 @@ export const Default: Story = {
|
|
|
41
41
|
}
|
|
42
42
|
: {};
|
|
43
43
|
return (
|
|
44
|
-
<Box
|
|
45
|
-
<
|
|
46
|
-
<
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
44
|
+
<Box col>
|
|
45
|
+
<input type="color" className="sticky top-0 z-1" />
|
|
46
|
+
<Box full>
|
|
47
|
+
<Box d="col" grow p surface="default">
|
|
48
|
+
<Range className="theme" style={style} />
|
|
49
|
+
<Range className="theme-lemon" />
|
|
50
|
+
<Range className="theme-leek" />
|
|
51
|
+
<Range className="theme-tomato" />
|
|
52
|
+
<Range className="theme-eggplant" />
|
|
53
|
+
<Range className="theme-blueberry" />
|
|
54
|
+
<Range className="theme-salt" />
|
|
55
|
+
<Box className="h-100px">
|
|
56
|
+
<Box grow className="bg-gray-wash" />
|
|
57
|
+
<Box grow className="bg-gray-light" />
|
|
58
|
+
<Box grow className="bg-gray" />
|
|
59
|
+
<Box grow className="bg-gray-dark" />
|
|
60
|
+
<Box grow className="bg-gray-ink" />
|
|
61
|
+
</Box>
|
|
62
|
+
<Box className="h-100px">
|
|
63
|
+
<Box grow className="bg-black" />
|
|
64
|
+
<Box grow className="bg-wash" />
|
|
65
|
+
<Box grow className="bg-white" />
|
|
66
|
+
</Box>
|
|
67
|
+
</Box>
|
|
68
|
+
<Box d="col" className="override-dark theme" grow p surface="default">
|
|
69
|
+
<Range className="theme" style={style} />
|
|
70
|
+
<Range className="theme-lemon" />
|
|
71
|
+
<Range className="theme-leek" />
|
|
72
|
+
<Range className="theme-tomato" />
|
|
73
|
+
<Range className="theme-eggplant" />
|
|
74
|
+
<Range className="theme-blueberry" />
|
|
75
|
+
<Range className="theme-salt" />
|
|
76
|
+
<Box className="h-100px">
|
|
77
|
+
<Box grow className="bg-gray-wash" />
|
|
78
|
+
<Box grow className="bg-gray-light" />
|
|
79
|
+
<Box grow className="bg-gray" />
|
|
80
|
+
<Box grow className="bg-gray-dark" />
|
|
81
|
+
<Box grow className="bg-gray-ink" />
|
|
82
|
+
</Box>
|
|
83
|
+
<Box className="h-100px">
|
|
84
|
+
<Box grow className="bg-black" />
|
|
85
|
+
<Box grow className="bg-wash" />
|
|
86
|
+
<Box grow className="bg-white" />
|
|
87
|
+
</Box>
|
|
88
|
+
</Box>
|
|
89
|
+
</Box>
|
|
52
90
|
</Box>
|
|
53
91
|
);
|
|
54
92
|
},
|
|
@@ -65,11 +103,11 @@ function Swatch({
|
|
|
65
103
|
<div
|
|
66
104
|
className={className}
|
|
67
105
|
style={{
|
|
68
|
-
width: '100px',
|
|
69
106
|
height: '100px',
|
|
70
107
|
display: 'flex',
|
|
71
108
|
justifyContent: 'center',
|
|
72
109
|
alignItems: 'center',
|
|
110
|
+
flex: '1',
|
|
73
111
|
}}
|
|
74
112
|
>
|
|
75
113
|
{children}
|
|
@@ -148,7 +186,7 @@ export const Inheritance: Story = {
|
|
|
148
186
|
return (
|
|
149
187
|
<Box surface="primary" p="xl" className="theme" style={style}>
|
|
150
188
|
<Box
|
|
151
|
-
className="border-
|
|
189
|
+
className="border-bg border-darken-5 color-bg color-darken-5"
|
|
152
190
|
border
|
|
153
191
|
p="xl"
|
|
154
192
|
>
|
|
@@ -158,3 +196,73 @@ export const Inheritance: Story = {
|
|
|
158
196
|
);
|
|
159
197
|
},
|
|
160
198
|
};
|
|
199
|
+
|
|
200
|
+
export const TweakOpacity: Story = {
|
|
201
|
+
render() {
|
|
202
|
+
// none of these elements have root opacity; all opacity is done through colors
|
|
203
|
+
return (
|
|
204
|
+
<Box surface="accent" className="h-32" full="width" p gap>
|
|
205
|
+
<Box
|
|
206
|
+
className="bg-primary/100 h-full color-primary-dark/100 ring ring-primary-light/100 border border-black/100"
|
|
207
|
+
grow
|
|
208
|
+
>
|
|
209
|
+
100
|
|
210
|
+
</Box>
|
|
211
|
+
<Box
|
|
212
|
+
className="bg-primary/90 h-full color-primary-dark/90 ring ring-primary-light/90 border border-black/90"
|
|
213
|
+
grow
|
|
214
|
+
>
|
|
215
|
+
90
|
|
216
|
+
</Box>
|
|
217
|
+
<Box
|
|
218
|
+
className="bg-primary/80 h-full color-primary-dark/80 ring ring-primary-light/80 border border-black/80"
|
|
219
|
+
grow
|
|
220
|
+
>
|
|
221
|
+
80
|
|
222
|
+
</Box>
|
|
223
|
+
<Box
|
|
224
|
+
className="bg-primary/70 h-full color-primary-dark/70 ring ring-primary-light/70 border border-black/70"
|
|
225
|
+
grow
|
|
226
|
+
>
|
|
227
|
+
70
|
|
228
|
+
</Box>
|
|
229
|
+
<Box
|
|
230
|
+
className="bg-primary/60 h-full color-primary-dark/60 ring ring-primary-light/60 border border-black/60"
|
|
231
|
+
grow
|
|
232
|
+
>
|
|
233
|
+
60
|
|
234
|
+
</Box>
|
|
235
|
+
<Box
|
|
236
|
+
className="bg-primary/50 h-full color-primary-dark/50 ring ring-primary-light/50 border border-black/50"
|
|
237
|
+
grow
|
|
238
|
+
>
|
|
239
|
+
50
|
|
240
|
+
</Box>
|
|
241
|
+
<Box
|
|
242
|
+
className="bg-primary/40 h-full color-primary-dark/40 ring ring-primary-light/40 border border-black/40"
|
|
243
|
+
grow
|
|
244
|
+
>
|
|
245
|
+
40
|
|
246
|
+
</Box>
|
|
247
|
+
<Box
|
|
248
|
+
className="bg-primary/30 h-full color-primary-dark/30 ring ring-primary-light/30 border border-black/30"
|
|
249
|
+
grow
|
|
250
|
+
>
|
|
251
|
+
30
|
|
252
|
+
</Box>
|
|
253
|
+
<Box
|
|
254
|
+
className="bg-primary/20 h-full color-primary-dark/20 ring ring-primary-light/20 border border-black/20"
|
|
255
|
+
grow
|
|
256
|
+
>
|
|
257
|
+
20
|
|
258
|
+
</Box>
|
|
259
|
+
<Box
|
|
260
|
+
className="bg-primary/10 h-full color-primary-dark/10 ring ring-primary-light/10 border border-black/10"
|
|
261
|
+
grow
|
|
262
|
+
>
|
|
263
|
+
10
|
|
264
|
+
</Box>
|
|
265
|
+
</Box>
|
|
266
|
+
);
|
|
267
|
+
},
|
|
268
|
+
};
|
|
@@ -13,7 +13,7 @@ export function getButtonClassName({
|
|
|
13
13
|
align?: ButtonProps['align'];
|
|
14
14
|
}) {
|
|
15
15
|
return classNames(
|
|
16
|
-
'layer-components:(px-4 py-2 bg-[var(--bg-neutral,var(--bg))] [--webkit-tap-highlight-color:transparent] [line-height:1] text-size-md font-inherit border-solid border-thin border-
|
|
16
|
+
'layer-components:(px-4 py-2 bg-[var(--bg-neutral,var(--bg))] [--webkit-tap-highlight-color:transparent] [line-height:1] text-size-md font-inherit border-solid border-thin border-transparent rounded-lg cursor-pointer font-bold flex flex-row gap-1 items-center relative overflow-visible select-none all:transition duration-200 whitespace-nowrap ring-bg)',
|
|
17
17
|
'layer-components:hover:(bg-[var(--bg)] bg-darken-1 ring-4)',
|
|
18
18
|
'layer-components:focus:outline-off',
|
|
19
19
|
'layer-components:focus-visible:(bg-[var(--bg)] outline-off bg-darken-1 ring-6)',
|
|
@@ -35,15 +35,15 @@ export function getButtonClassName({
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
const colors = {
|
|
38
|
-
primary: `layer-variants:[&.btn-color-primary]:([--bg:var(--color-primary)] shadow-sm color-black border-
|
|
38
|
+
primary: `layer-variants:[&.btn-color-primary]:([--bg:var(--color-primary)] shadow-sm color-black border-primary-dark)`,
|
|
39
39
|
accent: `layer-variants:[&.btn-color-accent]:([--bg-neutral:var(--color-accent-wash)] [--bg:var(--color-accent-light)] shadow-sm color-black border-accent-dark)`,
|
|
40
40
|
default: `layer-variants:[&.btn-color-default]:([--bg-neutral:var(--color-white)] [--bg:var(--color-gray-light)] shadow-sm color-black border-gray-dark)`,
|
|
41
41
|
ghost: `layer-variants:[&.btn-color-ghost]:([--bg-neutral:transparent] [--bg:oklch(from_var(--color-gray)_l_c_h/50%)] color-dark-blend)`,
|
|
42
|
-
destructive: `layer-variants:[&.btn-color-destructive]:([--bg:var(--color-attention)] shadow-sm border-
|
|
42
|
+
destructive: `layer-variants:[&.btn-color-destructive]:([--bg:var(--color-attention)] shadow-sm border-attention-dark color-black)`,
|
|
43
43
|
ghostDestructive: `layer-variants:[&.btn-color-ghostDestructive]:([--bg-neutral:transparent] [--bg:var(--color-attention-light)] color-attention-dark hover:(color-black) focus-visible:(color-black))`,
|
|
44
44
|
ghostAccent: `layer-variants:[&.btn-color-ghostAccent]:([--bg-neutral:transparent] [--bg:var(--color-accent-light)] color-accent-dark hover:color-black focus-visible:color-black)`,
|
|
45
|
-
contrast: `layer-variants:[&.btn-color-contrast]:([--bg:var(--color-black)] color-white border-
|
|
46
|
-
unstyled: `layer-variants:(bg-transparent hover:(bg-transparent) focus:(bg-transparent) active:(bg-transparent) color-inherit border-
|
|
45
|
+
contrast: `layer-variants:[&.btn-color-contrast]:([--bg:var(--color-black)] color-white border-black hover:bg-lighten-1 focus-visible:bg-lighten-1 active:bg-lighten-1)`,
|
|
46
|
+
unstyled: `layer-variants:(bg-transparent hover:(bg-transparent) focus:(bg-transparent) active:(bg-transparent) color-inherit border-transparent shadow-none hover:(shadow-none) focus:(shadow-none) active:(shadow-none) p-0 items-start font-inherit font-normal rounded-none text-size-inherit transition-none)`,
|
|
47
47
|
};
|
|
48
48
|
export const buttonColorClasses = colors;
|
|
49
49
|
|
|
@@ -164,7 +164,7 @@ export function CameraRoot({
|
|
|
164
164
|
ref={ref}
|
|
165
165
|
className={classNames(
|
|
166
166
|
'override-light',
|
|
167
|
-
'layer-components:([font-family:inherit]
|
|
167
|
+
'layer-components:([font-family:inherit] color-white bg-black rounded-lg overflow-hidden min-w-4 min-h-4 relative)',
|
|
168
168
|
fullscreen && 'fixed inset-0 w-full h-full z-1000 rounded-none',
|
|
169
169
|
className,
|
|
170
170
|
)}
|
|
@@ -246,7 +246,7 @@ export const CameraDeviceSelector = (props: CameraDeviceSelectorProps) => {
|
|
|
246
246
|
<Button
|
|
247
247
|
size="icon"
|
|
248
248
|
color="ghost"
|
|
249
|
-
className="absolute bottom-2 left-2
|
|
249
|
+
className="absolute bottom-2 left-2 color-white"
|
|
250
250
|
onClick={swapCamera}
|
|
251
251
|
>
|
|
252
252
|
<Icon name="refresh" />
|
|
@@ -263,7 +263,7 @@ export const CameraDeviceSelector = (props: CameraDeviceSelectorProps) => {
|
|
|
263
263
|
<Button
|
|
264
264
|
size="icon"
|
|
265
265
|
color="ghost"
|
|
266
|
-
className="absolute bottom-2 left-2
|
|
266
|
+
className="absolute bottom-2 left-2 color-white"
|
|
267
267
|
>
|
|
268
268
|
<Icon name="refresh" />
|
|
269
269
|
</Button>
|
|
@@ -286,7 +286,7 @@ export const CameraFullscreenButton = (props: ButtonProps) => {
|
|
|
286
286
|
{...props}
|
|
287
287
|
size="icon"
|
|
288
288
|
color="ghost"
|
|
289
|
-
className="absolute top-2 right-2
|
|
289
|
+
className="absolute top-2 right-2 color-white"
|
|
290
290
|
onClick={() => setFullscreen(!fullscreen)}
|
|
291
291
|
>
|
|
292
292
|
<Icon name={fullscreen ? 'x' : 'maximize'} />
|
|
@@ -8,7 +8,7 @@ import { SlotDiv } from '../utility/SlotDiv.js';
|
|
|
8
8
|
|
|
9
9
|
export const CardRoot = withClassName(
|
|
10
10
|
withProps(Box, { container: 'reset' }),
|
|
11
|
-
'layer-components:(flex flex-col border-light rounded-lg text-lg overflow-hidden h-max-content relative bg-wash bg-darken-1
|
|
11
|
+
'layer-components:(flex flex-col border-light rounded-lg text-lg overflow-hidden h-max-content relative bg-wash bg-darken-1 color-black shadow-sm)',
|
|
12
12
|
'layer-variants:[&[data-borderless=true]]:(border-none shadow-md)',
|
|
13
13
|
);
|
|
14
14
|
|
|
@@ -66,7 +66,7 @@ export const CardTitle = withClassName(
|
|
|
66
66
|
|
|
67
67
|
const CardContentRoot = withClassName(
|
|
68
68
|
'div',
|
|
69
|
-
'layer-components:(flex flex-col gap-1 px-2 py-1 bg-light-blend
|
|
69
|
+
'layer-components:(flex flex-col gap-1 px-2 py-1 bg-light-blend color-black rounded-md mx-2 my-0.5 border border-solid border-gray-dark-blend text-xs relative z-1)',
|
|
70
70
|
'layer-variants:[[data-compact=true]_&]:(py-0 px-1 my-0 text-xs)',
|
|
71
71
|
'layer-variants:[&[data-unstyled=true]]:(p-0 [background:unset] border-none)',
|
|
72
72
|
);
|
|
@@ -20,7 +20,7 @@ export function Chip({
|
|
|
20
20
|
<Component
|
|
21
21
|
ref={ref}
|
|
22
22
|
className={classNames(
|
|
23
|
-
'layer-components:(inline-flex flex-row gap-1 items-center whitespace-nowrap border-light border-solid border rounded-lg px-2 py-1
|
|
23
|
+
'layer-components:(inline-flex flex-row gap-1 items-center whitespace-nowrap border-light border-solid border rounded-lg px-2 py-1 clor-black)',
|
|
24
24
|
{
|
|
25
25
|
'layer-variants:bg-primary-wash': color === 'primary',
|
|
26
26
|
'layer-variants:bg-accent-wash': color === 'accent',
|
|
@@ -210,15 +210,15 @@ const CalendarGrid = withClassName(
|
|
|
210
210
|
|
|
211
211
|
const CalendarDay = withClassName(
|
|
212
212
|
BaseCalendarDay,
|
|
213
|
-
'border border-solid border-transparent bg-white mr--1px mb--1px relative
|
|
213
|
+
'border border-solid border-transparent bg-white mr--1px mb--1px relative color-black',
|
|
214
214
|
'flex items-center justify-center transition cursor-pointer',
|
|
215
215
|
'[&[data-highlighted]]:(z-1 outline-accent)',
|
|
216
216
|
'hover:(z-1 outline-accent)',
|
|
217
|
-
'active:(bg-accent-
|
|
218
|
-
'[&[data-selected]]:(bg-accent
|
|
219
|
-
'[&[data-in-range]]:(bg-accent-wash bg-darken-
|
|
220
|
-
'[&[data-range-start]]:(bg-accent
|
|
221
|
-
'[&[data-range-end]]:(bg-accent
|
|
217
|
+
'active:(bg-accent-light rounded)',
|
|
218
|
+
'[&[data-selected]]:(bg-accent z-2 rounded)',
|
|
219
|
+
'[&[data-in-range]]:(bg-accent-wash bg-darken-2 rounded-none z-1)',
|
|
220
|
+
'[&[data-range-start]]:(bg-accent rounded-l rounded-r-none z-1)',
|
|
221
|
+
'[&[data-range-end]]:(bg-accent rounded-r rounded-l-none z-1)',
|
|
222
222
|
'disabled:(opacity-50 cursor-default)',
|
|
223
223
|
// today dot
|
|
224
224
|
"[&[data-today]]:before:(content-[''] absolute left-[2px] top-[2px] w-[6px] h-[6px] rounded-lg bg-primary)",
|
|
@@ -238,7 +238,7 @@ const CalendarDay = withClassName(
|
|
|
238
238
|
|
|
239
239
|
const DayLabel = withClassName(
|
|
240
240
|
'div',
|
|
241
|
-
'flex items-center justify-center text-sm
|
|
241
|
+
'flex items-center justify-center text-sm color-gray-dark',
|
|
242
242
|
);
|
|
243
243
|
|
|
244
244
|
const DayLabels = () => (
|
|
@@ -325,7 +325,7 @@ export const DialogSelectList = withClassName(
|
|
|
325
325
|
export const DialogSelectItemRoot = withClassName(
|
|
326
326
|
RadioGroupPrimitive.Item,
|
|
327
327
|
'layer-components:(flex items-center gap-3 w-full py-3 px-4 text-left border-none rounded-lg font-normal bg-transparent [&:nth-child(2n+1)]:bg-gray-blend cursor-pointer transition-all)',
|
|
328
|
-
'layer-components:[&[data-state=checked]]:(bg-primary-wash
|
|
328
|
+
'layer-components:[&[data-state=checked]]:(bg-primary-wash color-primary-dark)',
|
|
329
329
|
);
|
|
330
330
|
|
|
331
331
|
export const DialogSelectItem = function DialogSelectItem({
|
|
@@ -46,7 +46,7 @@ const StyledItem = ({
|
|
|
46
46
|
{...props}
|
|
47
47
|
className={clsx(
|
|
48
48
|
color === 'destructive' &&
|
|
49
|
-
'layer-variants:(
|
|
49
|
+
'layer-variants:(color-attention-dark hover:bg-attention-wash focus-visible:bg-attention-wash)',
|
|
50
50
|
className,
|
|
51
51
|
)}
|
|
52
52
|
ref={forwardedRef}
|
|
@@ -102,7 +102,7 @@ export function EditableText({
|
|
|
102
102
|
onClick={() => setEditingFinal(true)}
|
|
103
103
|
className={clsx(
|
|
104
104
|
inputClassName,
|
|
105
|
-
'layer-variants:(border-transparent bg-transparent w-auto inline-flex items-center gap-2 font-size-inherit
|
|
105
|
+
'layer-variants:(border-transparent bg-transparent w-auto inline-flex items-center gap-2 font-size-inherit color-inherit shadow-none text-left)',
|
|
106
106
|
'layer-variants:hover:(bg-gray-blend)',
|
|
107
107
|
'layer-variants:focus-visible:(outline-none bg-gray-dark-blend)',
|
|
108
108
|
'cursor-pointer',
|
|
@@ -43,5 +43,5 @@ const FieldRoot = withClassName(
|
|
|
43
43
|
|
|
44
44
|
const FieldLabel = withClassName(
|
|
45
45
|
'label',
|
|
46
|
-
'layer-components:(inline-flex flex-col gap-1 text-md font-normal
|
|
46
|
+
'layer-components:(inline-flex flex-col gap-1 text-md font-normal color-dark-blend mt-2px)',
|
|
47
47
|
);
|
|
@@ -50,5 +50,5 @@ const FieldRoot = withClassName(
|
|
|
50
50
|
|
|
51
51
|
const FieldLabel = withClassName(
|
|
52
52
|
'label',
|
|
53
|
-
'layer-components:(block flex-col gap-1 text-md font-normal
|
|
53
|
+
'layer-components:(block flex-col gap-1 text-md font-normal color-dark-blend mt-2px)',
|
|
54
54
|
);
|
|
@@ -9,7 +9,7 @@ export const navBarItemClass = classNames(
|
|
|
9
9
|
'layer-components:active:bg-darken-2',
|
|
10
10
|
'layer-components:hover:bg-darken-1',
|
|
11
11
|
'layer-components:focus-visible:(outline-none bg-darken-2)',
|
|
12
|
-
'layer-components:[&[data-active=true]]:(bg-[var(--bg)] bg-darken-1
|
|
12
|
+
'layer-components:[&[data-active=true]]:(bg-[var(--bg)] bg-darken-1 color-black)',
|
|
13
13
|
'layer-components:([--bg:var(--color-primary-wash)] [--fill:var(--color-primary)])',
|
|
14
14
|
'layer-responsive:md:(flex-row-reverse h-auto justify-start gap-2 overflow-visible active:bg-darken-2)',
|
|
15
15
|
);
|
|
@@ -43,7 +43,7 @@ export const NavBarItem = function NavBarItem({
|
|
|
43
43
|
'layer-variants:active:bg-gray-dark-blend layer-variants:md:active:bg-gray-dark-blend',
|
|
44
44
|
'layer-variants:hover:bg-gray-dark-blend',
|
|
45
45
|
'layer-variants:focus-visible:(bg-gray-dark-blend)',
|
|
46
|
-
'layer-variants:[&[data-active=true]]:(bg-gray-dark-blend
|
|
46
|
+
'layer-variants:[&[data-active=true]]:(bg-gray-dark-blend color-black)',
|
|
47
47
|
'layer-variants:([--bg:var(--color-gray-blend)] [--fill:var(--color-gray)])',
|
|
48
48
|
],
|
|
49
49
|
className,
|
|
@@ -85,7 +85,7 @@ export const NavBarItemIcon = function NavBarItemIcon({
|
|
|
85
85
|
<Comp
|
|
86
86
|
name={name}
|
|
87
87
|
className={clsx(
|
|
88
|
-
'layer-components:(relative z-1 flex fill-none
|
|
88
|
+
'layer-components:(relative z-1 flex fill-none color-inherit)',
|
|
89
89
|
'layer-variants:[*[data-active=true]_&]:fill-[var(--fill)]',
|
|
90
90
|
className,
|
|
91
91
|
)}
|
|
@@ -23,7 +23,7 @@ export const Default: Story = {
|
|
|
23
23
|
{Array.from({ length: 100 }, (_, i) => (
|
|
24
24
|
<div
|
|
25
25
|
key={i}
|
|
26
|
-
className="h-10 w-full bg-primary-wash
|
|
26
|
+
className="h-10 w-full bg-primary-wash color-primary flex items-center justify-center"
|
|
27
27
|
>
|
|
28
28
|
Item {i + 1}
|
|
29
29
|
</div>
|
|
@@ -50,7 +50,7 @@ export const StickToBottom: Story = {
|
|
|
50
50
|
{Array.from({ length: itemCount }, (_, i) => (
|
|
51
51
|
<div
|
|
52
52
|
key={i}
|
|
53
|
-
className="h-10 w-full bg-primary-wash
|
|
53
|
+
className="h-10 w-full bg-primary-wash color-primary flex items-center justify-center"
|
|
54
54
|
>
|
|
55
55
|
Item {i + 1}
|
|
56
56
|
</div>
|
|
@@ -11,10 +11,10 @@ export const TabsList = withClassName(
|
|
|
11
11
|
|
|
12
12
|
export const TabsTriggerBase = withClassName(
|
|
13
13
|
TabsPrimitive.Trigger,
|
|
14
|
-
'layer-components:(flex flex-row items-center cursor-pointer justify-center gap-2 color-black py-1 px-5 bg-wash text-md min-w-100px rounded-lg border-default font-semibold
|
|
15
|
-
'layer-components:hover:(bg-darken-1 ring-4 ring-
|
|
16
|
-
'layer-components:focus-visible:(bg-darken-1 ring-4 ring-
|
|
17
|
-
'[&[data-state=active]]:(bg-[var(--bg)] font-semibold
|
|
14
|
+
'layer-components:(flex flex-row items-center cursor-pointer justify-center gap-2 color-black py-1 px-5 bg-wash text-md min-w-100px rounded-lg border-default font-semibold color-gray-ink border-gray-dark transition-all cursor-pointer select-none font-inherit flex-shrink-0 shadow-sm)',
|
|
15
|
+
'layer-components:hover:(bg-darken-1 ring-4 ring-bg)',
|
|
16
|
+
'layer-components:focus-visible:(bg-darken-1 ring-4 ring-bg outline-off)',
|
|
17
|
+
'[&[data-state=active]]:(bg-[var(--bg)] font-semibold color-black cursor-default hover:bg-darken-1 relative z-1)',
|
|
18
18
|
);
|
|
19
19
|
|
|
20
20
|
const colorClasses = {
|
|
@@ -96,7 +96,7 @@ export const TextArea = function TextArea({
|
|
|
96
96
|
ref={finalRef}
|
|
97
97
|
className={classNames(
|
|
98
98
|
inputClassName,
|
|
99
|
-
'layer-components:([font-family:inherit]
|
|
99
|
+
'layer-components:([font-family:inherit] color-inherit overflow-hidden resize-none)',
|
|
100
100
|
'layer-variants:(rounded-lg px-4 py-4)',
|
|
101
101
|
{
|
|
102
102
|
'layer-components:[resize:vertical]': !autoSize,
|
|
@@ -26,10 +26,10 @@ function Content({
|
|
|
26
26
|
'layer-components:transform-origin-[var(--radix-tooltip-content-transform-origin)]',
|
|
27
27
|
'layer-components:[&[data-state=delayed-open]]:animate-popover-in',
|
|
28
28
|
{
|
|
29
|
-
'layer-variants:(bg-black
|
|
30
|
-
'layer-variants:(bg-white
|
|
29
|
+
'layer-variants:(bg-black color-white)': color === 'contrast',
|
|
30
|
+
'layer-variants:(bg-white color-black)':
|
|
31
31
|
color === 'white' || color === 'neutral',
|
|
32
|
-
'layer-variants:(bg-attention-ink
|
|
32
|
+
'layer-variants:(bg-attention-ink color-white)':
|
|
33
33
|
color === 'attention',
|
|
34
34
|
},
|
|
35
35
|
className,
|
package/src/uno/colors.ts
CHANGED
|
@@ -5,19 +5,34 @@ export const colorConstants = `
|
|
|
5
5
|
--dyn-saturation-x-ink: calc(pow(var(--global-saturation, 1), 0.2));
|
|
6
6
|
`;
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
const lightness = {
|
|
9
|
+
wash: `calc(1 + 0.45 * var(--dyn-mode-mult, 1))`,
|
|
10
|
+
light: `calc(1 + 0.25 * var(--dyn-mode-mult, 1))`,
|
|
11
|
+
dark: `calc(1 - 0.25 * var(--dyn-mode-mult, 1))`,
|
|
12
|
+
ink: `calc(1 - 0.45 * var(--dyn-mode-mult, 1))`,
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const dynamicThemeComputedColors = (name: string) => {
|
|
16
|
+
const hue = {
|
|
17
|
+
wash: `calc(h - 1 * var(--dyn-${name}-hue-rotate, 0) * var(--dyn-${name}-hue-rotate-mult, 1))`,
|
|
18
|
+
light: `calc(h - 0.5 * var(--dyn-${name}-hue-rotate, 0) * var(--dyn-${name}-hue-rotate-mult, 1))`,
|
|
19
|
+
dark: `calc(h + 0.2 * var(--dyn-${name}-hue-rotate, 0) * var(--dyn-${name}-hue-rotate-mult, 1))`,
|
|
20
|
+
ink: `calc(h + 1 * var(--dyn-${name}-hue-rotate, 0) * var(--dyn-${name}-hue-rotate-mult, 1))`,
|
|
21
|
+
};
|
|
22
|
+
return `
|
|
9
23
|
--color-${name}: oklch(calc(90% - 35% * var(--dyn-source-mode-adjust, 0) - (var(--dyn-mode-sign, 1) * var(--dyn-${name}-base-dim, 0%))) calc(var(--dyn-${name}-sat-mult,1) * (35% - 2% * var(--dyn-source-mode-adjust, 0))) var(--dyn-${name}-source, 0));
|
|
10
|
-
--color-${name}-wash: oklch(from var(--color-${name}) calc(
|
|
11
|
-
--color-${name}-light: oklch(from var(--color-${name}) calc(l
|
|
12
|
-
--color-${name}-dark: oklch(from var(--color-${name}) calc(l
|
|
13
|
-
--color-${name}-ink: oklch(from var(--color-${name}) calc(l
|
|
24
|
+
--color-${name}-wash: oklch(from var(--color-${name}) calc(l * ${lightness.wash}) calc(var(--dyn-${name}-sat-mult) * (c * var(--dyn-saturation-x-wash, 1) - 0.06)) ${hue.wash});
|
|
25
|
+
--color-${name}-light: oklch(from var(--color-${name}) calc(l * ${lightness.light}) calc(var(--dyn-${name}-sat-mult) * (c * var(--dyn-saturation-x-light, 1) - 0.03)) ${hue.light});
|
|
26
|
+
--color-${name}-dark: oklch(from var(--color-${name}) calc(l * ${lightness.dark}) calc(var(--dyn-${name}-sat-mult) * (c * var(--dyn-saturation-x-dark, 1) + 0.01)) ${hue.dark});
|
|
27
|
+
--color-${name}-ink: oklch(from var(--color-${name}) calc(l * ${lightness.ink}) calc(var(--dyn-${name}-sat-mult) * (c * var(--dyn-saturation-x-ink, 1) + 0.01)) ${hue.ink});
|
|
14
28
|
|
|
15
|
-
--color-${name}-gray: oklch(from var(--color-${name})
|
|
16
|
-
--color-${name}-gray-wash: oklch(from var(--color-${name}-
|
|
17
|
-
--color-${name}-gray-light: oklch(from var(--color-${name}-
|
|
18
|
-
--color-${name}-gray-dark: oklch(from var(--color-${name}-
|
|
19
|
-
--color-${name}-gray-ink: oklch(from var(--color-${name}-
|
|
29
|
+
--color-${name}-gray: oklch(from var(--color-${name}) l calc(c * 0.1 * var(--global-saturation, 1)) h);
|
|
30
|
+
--color-${name}-gray-wash: oklch(from var(--color-${name}-gray) calc(l * ${lightness.wash}) calc(c * 0.9) ${hue.wash});
|
|
31
|
+
--color-${name}-gray-light: oklch(from var(--color-${name}-gray) calc(l * ${lightness.light}) c ${hue.light});
|
|
32
|
+
--color-${name}-gray-dark: oklch(from var(--color-${name}-gray) calc(l * ${lightness.dark}) c ${hue.dark});
|
|
33
|
+
--color-${name}-gray-ink: oklch(from var(--color-${name}-gray) calc(l * ${lightness.ink}) c ${hue.ink});
|
|
20
34
|
`;
|
|
35
|
+
};
|
|
21
36
|
|
|
22
37
|
export const dynamicComputedVars = `
|
|
23
38
|
${dynamicThemeComputedColors('primary')}
|
|
@@ -31,7 +46,7 @@ ${dynamicThemeComputedColors('accent')}
|
|
|
31
46
|
|
|
32
47
|
--color-wash: var(--color-gray-wash);
|
|
33
48
|
--palette-black: var(--color-gray-ink);
|
|
34
|
-
--palette-white: oklch(from var(--color-wash) calc(
|
|
49
|
+
--palette-white: oklch(from var(--color-wash) calc(0.999 * var(--dyn-mode-mult,1)) calc(c * var(--global-saturation, 1)) h);
|
|
35
50
|
/* A dark-mode only contrast color */
|
|
36
51
|
--color-dark-mode-contrast: oklch(from var(--color-gray-ink) l c h / calc(100% * var(--dyn-source-mode-adjust, 0)));
|
|
37
52
|
`;
|
|
@@ -131,7 +146,7 @@ function mod(base: string, level: string, sign: number) {
|
|
|
131
146
|
return (
|
|
132
147
|
`oklch(from ` +
|
|
133
148
|
base +
|
|
134
|
-
` calc(l * (1 +
|
|
149
|
+
` calc(l * (1 + ${level} / 60 * ${sign} * var(--dyn-mode-mult, 1)))` +
|
|
135
150
|
` calc(c * (1 - (${level} * 0.1 * ${sign} * (1 + (1 - var(--global-saturation, 0))))))` +
|
|
136
151
|
` h)`
|
|
137
152
|
);
|