@uselets/ui 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -12
- package/dist/cli/uselets.mjs +2 -2
- package/dist/cli/uselets.mjs.map +1 -1
- package/dist/components/card.js +1 -1
- package/dist/components/card.js.map +1 -1
- package/dist/components/combobox.d.ts +4 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/combobox.js.map +1 -1
- package/dist/components/dialog.d.ts +6 -12
- package/dist/components/dialog.js +1 -1
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/field.js.map +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/skeleton.d.ts +5 -1
- package/dist/components/skeleton.js +1 -1
- package/dist/components/skeleton.js.map +1 -1
- package/dist/components/skeleton.spec.d.ts +1 -0
- package/dist/components/skeleton.spec.js +2 -0
- package/dist/components/skeleton.spec.js.map +1 -0
- package/dist/components/tooltip.d.ts +20 -4
- package/dist/components/tooltip.js +1 -1
- package/dist/components/tooltip.js.map +1 -1
- package/dist/components/unstyled-button.d.ts +17 -0
- package/dist/components/unstyled-button.js +2 -0
- package/dist/components/unstyled-button.js.map +1 -0
- package/dist/hooks/use-breakpoint-value.spec.js +1 -1
- package/dist/hooks/use-breakpoint.spec.js +1 -1
- package/dist/hooks/use-disclosure.spec.js +1 -1
- package/dist/hooks/use-document-visibility.spec.js +1 -1
- package/dist/hooks/use-idle.spec.js +1 -1
- package/dist/hooks/use-interval.spec.js +1 -1
- package/dist/hooks/use-local-storage.spec.js +1 -1
- package/dist/hooks/use-mobile.spec.js +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +1 -1
- package/dist/{react.esm-BuxkFT_p.js → react.esm-B3a5z6DL.js} +2 -2
- package/dist/{react.esm-BuxkFT_p.js.map → react.esm-B3a5z6DL.js.map} +1 -1
- package/dist/skills/uselets-ui/SKILL.md +5 -5
- package/dist/skills/uselets-ui/references/component-catalog.md +8 -2
- package/dist/skills/uselets-ui/references/package-guide.md +23 -11
- package/dist/skills/uselets-ui/scripts/print-public-api.mjs +0 -1
- package/dist/styles/base.css +13 -0
- package/dist/styles/globals.css +8 -0
- package/dist/styles/gomax.css +202 -0
- package/dist/styles/max.css +203 -0
- package/dist/styles/theme.css +195 -0
- package/dist/themes/gomax.css +3 -2
- package/dist/themes/max.css +3 -2
- package/package.json +1 -2
- package/skills/uselets-ui/SKILL.md +5 -5
- package/skills/uselets-ui/references/component-catalog.md +8 -2
- package/skills/uselets-ui/references/package-guide.md +23 -11
- package/skills/uselets-ui/scripts/print-public-api.mjs +0 -1
- package/dist/styles.css +0 -2
|
@@ -36,7 +36,6 @@ To set up a consumer project after installing `@uselets/ui`, run `bun uselets in
|
|
|
36
36
|
- `@uselets/ui/<module>`
|
|
37
37
|
- `@uselets/ui/hooks/<hook-module>`
|
|
38
38
|
- `@uselets/ui/utils`
|
|
39
|
-
- `@uselets/ui/styles.css`
|
|
40
39
|
- `@uselets/ui/themes/max.css`
|
|
41
40
|
- `@uselets/ui/themes/gomax.css`
|
|
42
41
|
- `@uselets/ui/postcss.config`
|
|
@@ -47,12 +46,13 @@ To set up a consumer project after installing `@uselets/ui`, run `bun uselets in
|
|
|
47
46
|
- Prefer barrel imports for common app usage and readability.
|
|
48
47
|
- Use module subpaths when you want a single module or when the user asks for the exact import path.
|
|
49
48
|
- Use `@uselets/ui/hooks/<hook-module>` for dedicated hook subpaths, not legacy `@uselets/ui/use-*` paths.
|
|
50
|
-
- Recommend importing one theme stylesheet once in the app
|
|
49
|
+
- Recommend importing Tailwind, one theme stylesheet, and Inter once in the app global CSS. Use `@uselets/ui/themes/max.css` for Max apps or `@uselets/ui/themes/gomax.css` for Gomax apps.
|
|
50
|
+
- Recommend `@source '../node_modules/@uselets/ui/dist';` when Tailwind needs to generate classes used by installed `@uselets/ui` components.
|
|
51
51
|
- Treat `@uselets/ui/themes/gomax.css` as the GoMax Figma-backed palette, exposed through the same public color families as the Max theme.
|
|
52
|
-
- Treat `@uselets/ui/styles.css` as a legacy compatibility alias for the Max theme.
|
|
53
52
|
- Recommend `@fontsource-variable/inter` when matching the package typography setup.
|
|
54
53
|
- Recommend `@uselets/ui/postcss.config` when the app needs the package PostCSS preset for Tailwind v4.
|
|
55
|
-
- For tooltip-heavy apps, wrap the app with `TooltipProvider
|
|
54
|
+
- For tooltip-heavy apps, wrap the app with `TooltipProvider`; use `Tooltip label={...}` for common trigger/content usage and `TooltipRoot` only when manual composition is needed.
|
|
55
|
+
- Use `UnstyledButton` when button semantics are needed without `Button` variants; it provides reset styles, pointer cursor, focus ring, default `type="button"`, and `asChild`.
|
|
56
56
|
- For toast usage, mount `Toaster` near the app root before calling `toast(...)`.
|
|
57
57
|
- For package theme helpers, use `ThemeProvider`, `useTheme`, and `ModeToggle` from `@uselets/ui/theme` or the root barrel.
|
|
58
58
|
|
|
@@ -68,6 +68,6 @@ To set up a consumer project after installing `@uselets/ui`, run `bun uselets in
|
|
|
68
68
|
|
|
69
69
|
- "How do I install and configure `@uselets/ui` in my app?"
|
|
70
70
|
- "Which `@uselets/ui` component should I use for this form?"
|
|
71
|
-
- "Show me the correct import for `TooltipProvider` or `Sidebar`."
|
|
71
|
+
- "Show me the correct import for `TooltipProvider`, `Tooltip`, `UnstyledButton`, or `Sidebar`."
|
|
72
72
|
- "Inspect the installed version of `@uselets/ui` and tell me what `button` exports."
|
|
73
73
|
- "Build this screen only with `@uselets/ui` components."
|
|
@@ -62,7 +62,12 @@ Unless noted otherwise, each module also exports its public `*Props` types from
|
|
|
62
62
|
- Exports: `Toaster`, `toast`
|
|
63
63
|
- `tooltip`
|
|
64
64
|
- Import path: `@uselets/ui/tooltip`
|
|
65
|
-
- Exports: `TooltipProvider`, `Tooltip`, `TooltipTrigger`, `TooltipContent`
|
|
65
|
+
- Exports: `TooltipProvider`, `Tooltip`, `TooltipRoot`, `TooltipTrigger`, `TooltipContent`
|
|
66
|
+
- Notes: `Tooltip` is the ergonomic wrapper with `label`, direct content positioning props, and `disabled`; use `TooltipRoot` with `TooltipTrigger` and `TooltipContent` for manual composition
|
|
67
|
+
- `unstyled-button`
|
|
68
|
+
- Import path: `@uselets/ui/unstyled-button`
|
|
69
|
+
- Exports: `UnstyledButton`
|
|
70
|
+
- Notes: button primitive with reset styles, pointer cursor, accessible focus ring, default `type="button"`, and `asChild`
|
|
66
71
|
|
|
67
72
|
## Typography
|
|
68
73
|
|
|
@@ -103,6 +108,7 @@ Unless noted otherwise, each module also exports its public `*Props` types from
|
|
|
103
108
|
- Exports: `Progress`
|
|
104
109
|
- `skeleton`
|
|
105
110
|
- Exports: `Skeleton`
|
|
111
|
+
- Notes: generic loading placeholder; `visible?: boolean` defaults to `true` and can wrap `children` to reserve their size while the skeleton is shown
|
|
106
112
|
- `spinner`
|
|
107
113
|
- Exports: `Spinner`, `spinnerVariants`
|
|
108
114
|
|
|
@@ -144,7 +150,7 @@ Unless noted otherwise, each module also exports its public `*Props` types from
|
|
|
144
150
|
- Exports: `NativeSelect`, `NativeSelectOptGroup`, `NativeSelectOption`
|
|
145
151
|
- `combobox`
|
|
146
152
|
- Exports: `Combobox`, `ComboboxInput`, `ComboboxContent`, `ComboboxList`, `ComboboxItem`, `ComboboxGroup`, `ComboboxLabel`, `ComboboxCollection`, `ComboboxClear`, `ComboboxEmpty`, `ComboboxSeparator`, `ComboboxChips`, `ComboboxChip`, `ComboboxChipsInput`, `ComboboxTrigger`, `ComboboxValue`, `useComboboxAnchor`
|
|
147
|
-
- Notes: `ComboboxInput` supports `icon?: React.ReactNode`, `triggerIcon?: React.ReactNode`, `showTrigger?: boolean`, and `showClear?: boolean`;
|
|
153
|
+
- Notes: `ComboboxInput` supports `icon?: React.ReactNode`, `triggerIcon?: React.ReactNode`, `showTrigger?: boolean`, and `showClear?: boolean`; `ComboboxContent` supports `container` for rendering inside overlays such as dialogs
|
|
148
154
|
- `dropzone`
|
|
149
155
|
- Exports: `Dropzone`, `DropzoneArea`, `DropzoneDescription`, `DropzoneFileList`, `DropzoneFileListItem`, `DropzoneFileMessage`, `DropzoneMessage`, `DropzoneRemoveFile`, `DropzoneRetryFile`, `DropzoneTrigger`, `InfiniteProgress`, `useDropzone`
|
|
150
156
|
- Notes: upload composition with validation, retry handling, status list UI, and optional `shiftOnMaxFiles`
|
|
@@ -90,8 +90,6 @@ Use `bun uselets skill --agent codex` or `bun uselets skill --agent claude` to i
|
|
|
90
90
|
- utility helpers such as `cn` and `randomId`
|
|
91
91
|
- `@uselets/ui/lib/color`
|
|
92
92
|
- shared UI color list and type: `uiColors`, `UIColor`
|
|
93
|
-
- `@uselets/ui/styles.css`
|
|
94
|
-
- legacy compatibility stylesheet equivalent to the Max theme
|
|
95
93
|
- `@uselets/ui/themes/max.css`
|
|
96
94
|
- Max theme tokens and component styles
|
|
97
95
|
- `@uselets/ui/themes/gomax.css`
|
|
@@ -101,14 +99,15 @@ Use `bun uselets skill --agent codex` or `bun uselets skill --agent claude` to i
|
|
|
101
99
|
|
|
102
100
|
## Base setup
|
|
103
101
|
|
|
104
|
-
Import one package theme once
|
|
102
|
+
Import Tailwind, one package theme, and Inter once in the app global stylesheet:
|
|
105
103
|
|
|
106
|
-
```
|
|
107
|
-
import '
|
|
108
|
-
import '@
|
|
104
|
+
```css
|
|
105
|
+
@import 'tailwindcss';
|
|
106
|
+
@import '@uselets/ui/themes/max.css';
|
|
107
|
+
@import '@fontsource-variable/inter';
|
|
109
108
|
```
|
|
110
109
|
|
|
111
|
-
For GoMax apps, import `@uselets/ui/themes/gomax.css` instead.
|
|
110
|
+
For GoMax apps, import `@uselets/ui/themes/gomax.css` instead.
|
|
112
111
|
|
|
113
112
|
If the app needs Tailwind v4 PostCSS setup, reuse the package preset:
|
|
114
113
|
|
|
@@ -116,10 +115,10 @@ If the app needs Tailwind v4 PostCSS setup, reuse the package preset:
|
|
|
116
115
|
export { default } from '@uselets/ui/postcss.config'
|
|
117
116
|
```
|
|
118
117
|
|
|
119
|
-
|
|
118
|
+
When the app uses installed `@uselets/ui` components, add a Tailwind source directive so component classes from the package are generated:
|
|
120
119
|
|
|
121
120
|
```css
|
|
122
|
-
@
|
|
121
|
+
@source '../node_modules/@uselets/ui/dist';
|
|
123
122
|
```
|
|
124
123
|
|
|
125
124
|
## Typography scale
|
|
@@ -145,13 +144,14 @@ The Max theme uses Inter as `font-sans` and overrides Tailwind CSS text size uti
|
|
|
145
144
|
Use these patterns:
|
|
146
145
|
|
|
147
146
|
```tsx
|
|
148
|
-
import { Alert, Button, cn, randomId } from '@uselets/ui'
|
|
147
|
+
import { Alert, Button, UnstyledButton, cn, randomId } from '@uselets/ui'
|
|
149
148
|
import type { UIColor } from '@uselets/ui'
|
|
150
149
|
import { Dialog } from '@uselets/ui/dialog'
|
|
151
150
|
import { useIsMobile } from '@uselets/ui/hooks/use-mobile'
|
|
152
151
|
import { useDisclosure } from '@uselets/ui/hooks/use-disclosure'
|
|
153
152
|
import { useLocalStorage } from '@uselets/ui/hooks/use-local-storage'
|
|
154
153
|
import { Toaster, toast } from '@uselets/ui/sonner'
|
|
154
|
+
import { UnstyledButton as UnstyledButtonSubpath } from '@uselets/ui/unstyled-button'
|
|
155
155
|
```
|
|
156
156
|
|
|
157
157
|
Guidance:
|
|
@@ -184,6 +184,10 @@ Use these package-level helpers when relevant:
|
|
|
184
184
|
|
|
185
185
|
- `TooltipProvider`
|
|
186
186
|
- Wrap the app or feature root when using tooltips broadly.
|
|
187
|
+
- `Tooltip`
|
|
188
|
+
- Use `label` for common trigger/content usage; pass positioning props such as `side`, `align`, and `sideOffset` directly.
|
|
189
|
+
- `TooltipRoot`
|
|
190
|
+
- Use with `TooltipTrigger` and `TooltipContent` when manual composition or custom structure is needed.
|
|
187
191
|
- `Toaster`
|
|
188
192
|
- Mount near the app root before calling `toast(...)`.
|
|
189
193
|
- `ThemeProvider`
|
|
@@ -192,11 +196,19 @@ Use these package-level helpers when relevant:
|
|
|
192
196
|
Examples:
|
|
193
197
|
|
|
194
198
|
```tsx
|
|
195
|
-
import { TooltipProvider } from '@uselets/ui/tooltip'
|
|
199
|
+
import { Tooltip, TooltipProvider } from '@uselets/ui/tooltip'
|
|
196
200
|
|
|
197
201
|
export function AppRoot({ children }: { children: React.ReactNode }) {
|
|
198
202
|
return <TooltipProvider delayDuration={200}>{children}</TooltipProvider>
|
|
199
203
|
}
|
|
204
|
+
|
|
205
|
+
export function SaveButton() {
|
|
206
|
+
return (
|
|
207
|
+
<Tooltip label="Save changes" side="bottom">
|
|
208
|
+
<button type="button">Save</button>
|
|
209
|
+
</Tooltip>
|
|
210
|
+
)
|
|
211
|
+
}
|
|
200
212
|
```
|
|
201
213
|
|
|
202
214
|
```tsx
|
|
@@ -160,7 +160,6 @@ console.log('- barrel: `@uselets/ui`')
|
|
|
160
160
|
console.log('- component subpaths: `@uselets/ui/*`')
|
|
161
161
|
console.log('- hook subpaths: `@uselets/ui/hooks/*`')
|
|
162
162
|
console.log('- utility helpers: `@uselets/ui/utils`')
|
|
163
|
-
console.log('- styles: `@uselets/ui/styles.css` (legacy Max theme alias)')
|
|
164
163
|
console.log('- Max theme: `@uselets/ui/themes/max.css`')
|
|
165
164
|
console.log('- Gomax theme: `@uselets/ui/themes/gomax.css`')
|
|
166
165
|
console.log('- PostCSS preset: `@uselets/ui/postcss.config`')
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
/* palette tokens */
|
|
3
|
+
--primary-50: oklch(0.967 0.011 269.55); /* #F1F4FC */
|
|
4
|
+
--primary-100: oklch(0.934 0.021 268.428); /* #E3E9F8 */
|
|
5
|
+
--primary-200: oklch(0.859 0.043 270.875); /* #C6D0EE */
|
|
6
|
+
--primary-300: oklch(0.752 0.078 272.162); /* #9DACE1 */
|
|
7
|
+
--primary-400: oklch(0.647 0.104 271.342); /* #778ACE */
|
|
8
|
+
--primary-500: oklch(0.534 0.167 269.617); /* #4862CC */
|
|
9
|
+
--primary-600: oklch(0.423 0.174 269.851); /* #2C3EAB */
|
|
10
|
+
--primary-700: oklch(0.353 0.143 272.141); /* #252E84 */
|
|
11
|
+
--primary-800: oklch(0.286 0.111 274.807); /* #1D2060 */
|
|
12
|
+
--primary-900: oklch(0.23 0.08 278.141); /* #161641 */
|
|
13
|
+
--primary-950: oklch(0.192 0.053 281.835); /* #11102B */
|
|
14
|
+
|
|
15
|
+
--brand-50: oklch(0.974 0.01 9.532); /* #FDF4F5 */
|
|
16
|
+
--brand-100: oklch(0.931 0.032 29.76); /* #FDE1DC */
|
|
17
|
+
--brand-200: oklch(0.791 0.122 33.999); /* #FF9D86 */
|
|
18
|
+
--brand-300: oklch(0.734 0.166 34.994); /* #FF7D5D */
|
|
19
|
+
--brand-400: oklch(0.708 0.187 34.708); /* #FF6C49 */
|
|
20
|
+
--brand-500: oklch(0.686 0.205 34.607); /* #FF5C35 */
|
|
21
|
+
--brand-600: oklch(0.64 0.192 34.625); /* #E9532F */
|
|
22
|
+
--brand-700: oklch(0.585 0.175 34.659); /* #CE4929 */
|
|
23
|
+
--brand-800: oklch(0.537 0.163 34.517); /* #B93F22 */
|
|
24
|
+
--brand-900: oklch(0.471 0.141 34.467); /* #9A341C */
|
|
25
|
+
--brand-950: oklch(0.401 0.118 34.378); /* #7B2916 */
|
|
26
|
+
|
|
27
|
+
--gray-50: oklch(0.981 0.005 247.876); /* #F6F9FC */
|
|
28
|
+
--gray-100: oklch(0.952 0.01 247.935); /* #EAF0F6 */
|
|
29
|
+
--gray-200: oklch(0.915 0.016 247.999); /* #DBE4ED */
|
|
30
|
+
--gray-300: oklch(0.821 0.028 244.747); /* #B6C7D6 */
|
|
31
|
+
--gray-400: oklch(0.744 0.039 247.107); /* #99AFC4 */
|
|
32
|
+
--gray-500: oklch(0.646 0.052 249.575); /* #7691AD */
|
|
33
|
+
--gray-600: oklch(0.532 0.063 251.386); /* #516F90 */
|
|
34
|
+
--gray-700: oklch(0.454 0.055 249.121); /* #3E5974 */
|
|
35
|
+
--gray-800: oklch(0.313 0.037 246.164); /* #213343 */
|
|
36
|
+
--gray-900: oklch(0.266 0.03 245.1); /* #192733 */
|
|
37
|
+
--gray-950: oklch(0.216 0.021 243.075); /* #111B23 */
|
|
38
|
+
|
|
39
|
+
--zinc-50: oklch(0.979 0 0); /* #F8F8F8 */
|
|
40
|
+
--zinc-100: oklch(0.952 0 0); /* #EFEFEF */
|
|
41
|
+
--zinc-200: oklch(0.885 0 0); /* #D9D9D9 */
|
|
42
|
+
--zinc-300: oklch(0.798 0 0); /* #BDBDBD */
|
|
43
|
+
--zinc-400: oklch(0.68 0 0); /* #989898 */
|
|
44
|
+
--zinc-500: oklch(0.586 0 0); /* #7C7C7C */
|
|
45
|
+
--zinc-600: oklch(0.507 0 0); /* #656565 */
|
|
46
|
+
--zinc-700: oklch(0.394 0 0); /* #464646 */
|
|
47
|
+
--zinc-800: oklch(0.305 0.002 106.504); /* #2F2F2E */
|
|
48
|
+
--zinc-900: oklch(0.207 0.004 345.603); /* #191718 */
|
|
49
|
+
--zinc-950: oklch(0.155 0.003 67.627); /* #0D0C0B */
|
|
50
|
+
|
|
51
|
+
--red-50: oklch(0.968 0.013 5.8); /* #FDF1F3 */
|
|
52
|
+
--red-100: oklch(0.936 0.03 7.525); /* #FDE2E6 */
|
|
53
|
+
--red-200: oklch(0.862 0.071 9.896); /* #FCBFC7 */
|
|
54
|
+
--red-300: oklch(0.755 0.145 13.73); /* #FD8694 */
|
|
55
|
+
--red-400: oklch(0.673 0.211 19.364); /* #FD4D5F */
|
|
56
|
+
--red-500: oklch(0.615 0.224 22.558); /* #ED2D40 */
|
|
57
|
+
--red-600: oklch(0.538 0.21 26.258); /* #CC1420 */
|
|
58
|
+
--red-700: oklch(0.44 0.165 25.779); /* #99151B */
|
|
59
|
+
--red-800: oklch(0.349 0.122 24.328); /* #6C1317 */
|
|
60
|
+
--red-900: oklch(0.266 0.084 22.977); /* #460F11 */
|
|
61
|
+
--red-950: oklch(0.211 0.055 21.251); /* #2D0C0D */
|
|
62
|
+
|
|
63
|
+
--yellow-50: oklch(0.988 0.014 88.681); /* #FFFBF1 */
|
|
64
|
+
--yellow-100: oklch(0.974 0.029 89.569); /* #FEF6E1 */
|
|
65
|
+
--yellow-200: oklch(0.944 0.059 84.511); /* #FFEAC0 */
|
|
66
|
+
--yellow-300: oklch(0.885 0.104 78.009); /* #FFD189 */
|
|
67
|
+
--yellow-400: oklch(0.827 0.142 71.92); /* #FFB652 */
|
|
68
|
+
--yellow-500: oklch(0.798 0.158 67.669); /* #FFA736 */
|
|
69
|
+
--yellow-600: oklch(0.709 0.171 55.903); /* #EF7F0A */
|
|
70
|
+
--yellow-700: oklch(0.564 0.138 53.071); /* #B25A0E */
|
|
71
|
+
--yellow-800: oklch(0.433 0.1 52.359); /* #7A3E11 */
|
|
72
|
+
--yellow-900: oklch(0.324 0.069 50.591); /* #4F280F */
|
|
73
|
+
--yellow-950: oklch(0.249 0.046 47.281); /* #331A0D */
|
|
74
|
+
|
|
75
|
+
--green-50: oklch(0.98 0.003 145.55); /* #F7F9F7 */
|
|
76
|
+
--green-100: oklch(0.957 0.012 145.482); /* #ECF3EC */
|
|
77
|
+
--green-200: oklch(0.912 0.032 143.849); /* #D6E8D5 */
|
|
78
|
+
--green-300: oklch(0.838 0.073 143.695); /* #AED7AC */
|
|
79
|
+
--green-400: oklch(0.767 0.12 142.694); /* #85C780 */
|
|
80
|
+
--green-500: oklch(0.675 0.165 142.096); /* #52AF4A */
|
|
81
|
+
--green-600: oklch(0.567 0.13 141.644); /* #45893D */
|
|
82
|
+
--green-700: oklch(0.467 0.097 140.77); /* #396731 */
|
|
83
|
+
--green-800: oklch(0.366 0.066 140.101); /* #2B4725 */
|
|
84
|
+
--green-900: oklch(0.281 0.041 139.471); /* #1E2E1A */
|
|
85
|
+
--green-950: oklch(0.222 0.026 138.012); /* #151E12 */
|
|
86
|
+
|
|
87
|
+
--blue-50: oklch(0.976 0.002 247.839); /* #F6F7F8 */
|
|
88
|
+
--blue-100: oklch(0.948 0.006 255.476); /* #EBEEF2 */
|
|
89
|
+
--blue-200: oklch(0.891 0.018 240.018); /* #D1DDE6 */
|
|
90
|
+
--blue-300: oklch(0.8 0.044 240.87); /* #A5C2D8 */
|
|
91
|
+
--blue-400: oklch(0.715 0.077 240.176); /* #76AACF */
|
|
92
|
+
--blue-500: oklch(0.622 0.113 242.424); /* #408EC5 */
|
|
93
|
+
--blue-600: oklch(0.538 0.097 239.26); /* #2F75A0 */
|
|
94
|
+
--blue-700: oklch(0.452 0.072 234.642); /* #275C78 */
|
|
95
|
+
--blue-800: oklch(0.363 0.05 228.7); /* #1E4353 */
|
|
96
|
+
--blue-900: oklch(0.282 0.032 222.574); /* #162D35 */
|
|
97
|
+
--blue-950: oklch(0.224 0.021 217.756); /* #101E22 */
|
|
98
|
+
|
|
99
|
+
--indigo-50: oklch(0.966 0.012 301.287); /* #F5F2FB */
|
|
100
|
+
--indigo-100: oklch(0.929 0.028 299.539); /* #EAE4F8 */
|
|
101
|
+
--indigo-200: oklch(0.851 0.062 297.56); /* #D2C6F2 */
|
|
102
|
+
--indigo-300: oklch(0.743 0.087 295.69); /* #B0A1DD */
|
|
103
|
+
--indigo-400: oklch(0.611 0.153 291.363); /* #866FD7 */
|
|
104
|
+
--indigo-500: oklch(0.559 0.193 287.911); /* #7358DC */
|
|
105
|
+
--indigo-600: oklch(0.42 0.218 279.213); /* #4026BE */
|
|
106
|
+
--indigo-700: oklch(0.351 0.17 279.238); /* #30218F */
|
|
107
|
+
--indigo-800: oklch(0.286 0.122 280.262); /* #231B64 */
|
|
108
|
+
--indigo-900: oklch(0.229 0.079 281.288); /* #181540 */
|
|
109
|
+
--indigo-950: oklch(0.19 0.049 282.432); /* #111029 */
|
|
110
|
+
|
|
111
|
+
--pink-50: oklch(0.969 0.016 341.389); /* #FDF1F8 */
|
|
112
|
+
--pink-100: oklch(0.944 0.027 337.065); /* #F9E6F3 */
|
|
113
|
+
--pink-200: oklch(0.903 0.045 338.704); /* #F4D4E9 */
|
|
114
|
+
--pink-300: oklch(0.778 0.085 337.731); /* #DBA2CA */
|
|
115
|
+
--pink-400: oklch(0.68 0.145 338.806); /* #D172B6 */
|
|
116
|
+
--pink-500: oklch(0.624 0.191 340.354); /* #CE4EAA */
|
|
117
|
+
--pink-600: oklch(0.532 0.19 339.952); /* #AE2F8E */
|
|
118
|
+
--pink-700: oklch(0.436 0.148 337.368); /* #81276E */
|
|
119
|
+
--pink-800: oklch(0.345 0.103 335.104); /* #58204E */
|
|
120
|
+
--pink-900: oklch(0.266 0.065 332.23); /* #371833 */
|
|
121
|
+
--pink-950: oklch(0.211 0.036 331.312); /* #221220 */
|
|
122
|
+
|
|
123
|
+
/* gradient tokens */
|
|
124
|
+
--gradient-primary: linear-gradient(
|
|
125
|
+
87.14044870021029deg,
|
|
126
|
+
oklch(0.534 0.167 269.617) 0% /* #4862CC */,
|
|
127
|
+
oklch(0.71 0.167 13.3) 100% /* #F76F83 */
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
/* semantic tokens */
|
|
131
|
+
--background: var(--gray-50);
|
|
132
|
+
--foreground: var(--gray-900);
|
|
133
|
+
--card: oklch(1 0 0);
|
|
134
|
+
--card-foreground: var(--gray-900);
|
|
135
|
+
--popover: oklch(1 0 0);
|
|
136
|
+
--popover-foreground: var(--gray-900);
|
|
137
|
+
--primary: var(--primary-500);
|
|
138
|
+
--primary-foreground: oklch(1 0 0);
|
|
139
|
+
--brand: var(--brand-500);
|
|
140
|
+
--brand-foreground: oklch(1 0 0);
|
|
141
|
+
--secondary: var(--gray-100);
|
|
142
|
+
--secondary-foreground: var(--gray-900);
|
|
143
|
+
--muted: var(--gray-100);
|
|
144
|
+
--muted-foreground: var(--gray-600);
|
|
145
|
+
--accent: var(--gray-200);
|
|
146
|
+
--accent-foreground: var(--gray-900);
|
|
147
|
+
--destructive: var(--red-500);
|
|
148
|
+
--destructive-foreground: oklch(1 0 0);
|
|
149
|
+
--border: var(--gray-200);
|
|
150
|
+
--input: var(--gray-200);
|
|
151
|
+
--ring: var(--primary-300);
|
|
152
|
+
--chart-1: var(--primary-500);
|
|
153
|
+
--chart-2: var(--green-500);
|
|
154
|
+
--chart-3: var(--blue-500);
|
|
155
|
+
--chart-4: var(--indigo-500);
|
|
156
|
+
--chart-5: var(--pink-500);
|
|
157
|
+
--sidebar: var(--gray-100);
|
|
158
|
+
--sidebar-foreground: var(--gray-900);
|
|
159
|
+
--sidebar-primary: var(--primary-500);
|
|
160
|
+
--sidebar-primary-foreground: oklch(1 0 0);
|
|
161
|
+
--sidebar-accent: var(--gray-200);
|
|
162
|
+
--sidebar-accent-foreground: var(--gray-900);
|
|
163
|
+
--sidebar-border: var(--gray-200);
|
|
164
|
+
--sidebar-ring: var(--primary-300);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.dark {
|
|
168
|
+
--background: var(--zinc-950);
|
|
169
|
+
--foreground: var(--zinc-50);
|
|
170
|
+
--card: var(--zinc-900);
|
|
171
|
+
--card-foreground: var(--zinc-50);
|
|
172
|
+
--popover: var(--zinc-900);
|
|
173
|
+
--popover-foreground: var(--zinc-50);
|
|
174
|
+
--primary: var(--primary-400);
|
|
175
|
+
--primary-foreground: oklch(1 0 0);
|
|
176
|
+
--brand: var(--brand-400);
|
|
177
|
+
--brand-foreground: oklch(1 0 0);
|
|
178
|
+
--secondary: var(--zinc-800);
|
|
179
|
+
--secondary-foreground: var(--zinc-50);
|
|
180
|
+
--muted: var(--zinc-800);
|
|
181
|
+
--muted-foreground: var(--zinc-400);
|
|
182
|
+
--accent: var(--zinc-700);
|
|
183
|
+
--accent-foreground: var(--zinc-50);
|
|
184
|
+
--destructive: var(--red-400);
|
|
185
|
+
--destructive-foreground: oklch(1 0 0);
|
|
186
|
+
--border: var(--zinc-700);
|
|
187
|
+
--input: var(--zinc-600);
|
|
188
|
+
--ring: var(--primary-400);
|
|
189
|
+
--chart-1: var(--primary-400);
|
|
190
|
+
--chart-2: var(--green-400);
|
|
191
|
+
--chart-3: var(--blue-400);
|
|
192
|
+
--chart-4: var(--indigo-400);
|
|
193
|
+
--chart-5: var(--pink-300);
|
|
194
|
+
--sidebar: var(--zinc-900);
|
|
195
|
+
--sidebar-foreground: var(--zinc-50);
|
|
196
|
+
--sidebar-primary: var(--primary-400);
|
|
197
|
+
--sidebar-primary-foreground: oklch(1 0 0);
|
|
198
|
+
--sidebar-accent: var(--zinc-700);
|
|
199
|
+
--sidebar-accent-foreground: var(--zinc-50);
|
|
200
|
+
--sidebar-border: var(--zinc-700);
|
|
201
|
+
--sidebar-ring: var(--primary-400);
|
|
202
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
/* palette tokens */
|
|
3
|
+
--primary-50: oklch(0.969 0.015 17.418); /* #FFF1F1 */
|
|
4
|
+
--primary-100: oklch(0.932 0.034 17.784); /* #FFE0E0 */
|
|
5
|
+
--primary-200: oklch(0.857 0.078 17.808); /* #FFBCBD */
|
|
6
|
+
--primary-300: oklch(0.759 0.144 17.923); /* #FF888E */
|
|
7
|
+
--primary-400: oklch(0.678 0.201 19.93); /* #FB5562 */
|
|
8
|
+
--primary-500: oklch(0.644 0.226 23.049); /* #F93846 */
|
|
9
|
+
--primary-600: oklch(0.576 0.226 25.087); /* #E01429 */
|
|
10
|
+
--primary-700: oklch(0.507 0.2 24.989); /* #BD0E21 */
|
|
11
|
+
--primary-800: oklch(0.439 0.169 24.647); /* #9A0F1C */
|
|
12
|
+
--primary-900: oklch(0.381 0.142 23.935); /* #7D1019 */
|
|
13
|
+
--primary-950: oklch(0.248 0.092 23.922); /* #430509 */
|
|
14
|
+
|
|
15
|
+
--brand-50: oklch(0.973 0.011 39.44); /* #FDF4F1 */
|
|
16
|
+
--brand-100: oklch(0.93 0.033 38.63); /* #FDE1D8 */
|
|
17
|
+
--brand-200: oklch(0.864 0.072 39.865); /* #FDC3AF */
|
|
18
|
+
--brand-300: oklch(0.794 0.121 39); /* #FEA081 */
|
|
19
|
+
--brand-400: oklch(0.739 0.164 38.91); /* #FF8157 */
|
|
20
|
+
--brand-500: oklch(0.686 0.205 34.607); /* #FF5C35 */
|
|
21
|
+
--brand-600: oklch(0.637 0.213 35.811); /* #F0470F */
|
|
22
|
+
--brand-700: oklch(0.537 0.172 36.579); /* #BC3B10 */
|
|
23
|
+
--brand-800: oklch(0.423 0.128 37.154); /* #852C0F */
|
|
24
|
+
--brand-900: oklch(0.309 0.087 38.386); /* #531C09 */
|
|
25
|
+
--brand-950: oklch(0.216 0.051 40.042); /* #2D1006 */
|
|
26
|
+
|
|
27
|
+
--gray-50: oklch(1 0 0); /* #FFFFFF */
|
|
28
|
+
--gray-100: oklch(0.981 0.005 247.876); /* #F6F9FC */
|
|
29
|
+
--gray-200: oklch(0.952 0.01 247.935); /* #EAF0F6 */
|
|
30
|
+
--gray-300: oklch(0.915 0.016 247.999); /* #DBE4ED */
|
|
31
|
+
--gray-400: oklch(0.821 0.028 244.747); /* #B6C7D6 */
|
|
32
|
+
--gray-500: oklch(0.744 0.039 247.107); /* #99AFC4 */
|
|
33
|
+
--gray-600: oklch(0.646 0.052 249.575); /* #7691AD */
|
|
34
|
+
--gray-700: oklch(0.532 0.063 251.386); /* #516F90 */
|
|
35
|
+
--gray-800: oklch(0.454 0.055 249.121); /* #3E5974 */
|
|
36
|
+
--gray-900: oklch(0.313 0.037 246.164); /* #213343 */
|
|
37
|
+
--gray-950: oklch(0.266 0.03 245.1); /* #192733 */
|
|
38
|
+
|
|
39
|
+
--zinc-50: oklch(1 0 0); /* #FFFFFF */
|
|
40
|
+
--zinc-100: oklch(0.979 0 0); /* #F8F8F8 */
|
|
41
|
+
--zinc-200: oklch(0.952 0 0); /* #EFEFEF */
|
|
42
|
+
--zinc-300: oklch(0.885 0 0); /* #D9D9D9 */
|
|
43
|
+
--zinc-400: oklch(0.798 0 0); /* #BDBDBD */
|
|
44
|
+
--zinc-500: oklch(0.68 0 0); /* #989898 */
|
|
45
|
+
--zinc-600: oklch(0.586 0 0); /* #7C7C7C */
|
|
46
|
+
--zinc-700: oklch(0.507 0 0); /* #656565 */
|
|
47
|
+
--zinc-800: oklch(0.394 0 0); /* #464646 */
|
|
48
|
+
--zinc-900: oklch(0.305 0.002 106.504); /* #2F2F2E */
|
|
49
|
+
--zinc-950: oklch(0.207 0.004 48.535); /* #191716 */
|
|
50
|
+
|
|
51
|
+
--red-50: oklch(0.974 0.004 359.996); /* #F9F5F6 */
|
|
52
|
+
--red-100: oklch(0.928 0.016 12.798); /* #F2E3E4 */
|
|
53
|
+
--red-200: oklch(0.84 0.05 11.897); /* #E9BEC2 */
|
|
54
|
+
--red-300: oklch(0.741 0.105 13.147); /* #E58F98 */
|
|
55
|
+
--red-400: oklch(0.647 0.181 17.734); /* #E75564 */
|
|
56
|
+
--red-500: oklch(0.585 0.218 23.835); /* #E02535 */
|
|
57
|
+
--red-600: oklch(0.524 0.189 22.069); /* #BF2434 */
|
|
58
|
+
--red-700: oklch(0.45 0.161 21.978); /* #9B1C29 */
|
|
59
|
+
--red-800: oklch(0.368 0.128 20.619); /* #741520 */
|
|
60
|
+
--red-900: oklch(0.284 0.093 19.546); /* #4E0F16 */
|
|
61
|
+
--red-950: oklch(0.207 0.058 20.395); /* #2D0A0C */
|
|
62
|
+
|
|
63
|
+
--yellow-50: oklch(0.988 0.014 88.681); /* #FFFBF1 */
|
|
64
|
+
--yellow-100: oklch(0.974 0.029 89.569); /* #FEF6E1 */
|
|
65
|
+
--yellow-200: oklch(0.944 0.059 84.511); /* #FFEAC0 */
|
|
66
|
+
--yellow-300: oklch(0.885 0.104 78.009); /* #FFD189 */
|
|
67
|
+
--yellow-400: oklch(0.827 0.142 71.92); /* #FFB652 */
|
|
68
|
+
--yellow-500: oklch(0.798 0.158 67.669); /* #FFA736 */
|
|
69
|
+
--yellow-600: oklch(0.709 0.171 55.903); /* #EF7F0A */
|
|
70
|
+
--yellow-700: oklch(0.564 0.138 53.071); /* #B25A0E */
|
|
71
|
+
--yellow-800: oklch(0.433 0.1 52.359); /* #7A3E11 */
|
|
72
|
+
--yellow-900: oklch(0.324 0.069 50.591); /* #4F280F */
|
|
73
|
+
--yellow-950: oklch(0.249 0.046 47.281); /* #331A0D */
|
|
74
|
+
|
|
75
|
+
--green-50: oklch(0.98 0.003 145.55); /* #F7F9F7 */
|
|
76
|
+
--green-100: oklch(0.957 0.012 145.482); /* #ECF3EC */
|
|
77
|
+
--green-200: oklch(0.912 0.032 143.849); /* #D6E8D5 */
|
|
78
|
+
--green-300: oklch(0.838 0.073 143.695); /* #AED7AC */
|
|
79
|
+
--green-400: oklch(0.767 0.12 142.694); /* #85C780 */
|
|
80
|
+
--green-500: oklch(0.675 0.165 142.096); /* #52AF4A */
|
|
81
|
+
--green-600: oklch(0.567 0.13 141.644); /* #45893D */
|
|
82
|
+
--green-700: oklch(0.467 0.097 140.77); /* #396731 */
|
|
83
|
+
--green-800: oklch(0.366 0.066 140.101); /* #2B4725 */
|
|
84
|
+
--green-900: oklch(0.281 0.041 139.471); /* #1E2E1A */
|
|
85
|
+
--green-950: oklch(0.222 0.026 138.012); /* #151E12 */
|
|
86
|
+
|
|
87
|
+
--blue-50: oklch(0.976 0.002 247.839); /* #F6F7F8 */
|
|
88
|
+
--blue-100: oklch(0.948 0.006 255.476); /* #EBEEF2 */
|
|
89
|
+
--blue-200: oklch(0.891 0.018 240.018); /* #D1DDE6 */
|
|
90
|
+
--blue-300: oklch(0.8 0.044 240.87); /* #A5C2D8 */
|
|
91
|
+
--blue-400: oklch(0.715 0.077 240.176); /* #76AACF */
|
|
92
|
+
--blue-500: oklch(0.622 0.113 242.424); /* #408EC5 */
|
|
93
|
+
--blue-600: oklch(0.538 0.097 239.26); /* #2F75A0 */
|
|
94
|
+
--blue-700: oklch(0.452 0.072 234.642); /* #275C78 */
|
|
95
|
+
--blue-800: oklch(0.363 0.05 228.7); /* #1E4353 */
|
|
96
|
+
--blue-900: oklch(0.282 0.032 222.574); /* #162D35 */
|
|
97
|
+
--blue-950: oklch(0.224 0.021 217.756); /* #101E22 */
|
|
98
|
+
|
|
99
|
+
--indigo-50: oklch(0.969 0.009 286.225); /* #F4F4FB */
|
|
100
|
+
--indigo-100: oklch(0.924 0.026 283.478); /* #E3E4F7 */
|
|
101
|
+
--indigo-200: oklch(0.845 0.057 282.903); /* #C6C8F1 */
|
|
102
|
+
--indigo-300: oklch(0.737 0.105 281.065); /* #9EA2EB */
|
|
103
|
+
--indigo-400: oklch(0.624 0.155 278.421); /* #747AE2 */
|
|
104
|
+
--indigo-500: oklch(0.532 0.184 276.037); /* #545AD4 */
|
|
105
|
+
--indigo-600: oklch(0.46 0.163 275.857); /* #4348B0 */
|
|
106
|
+
--indigo-700: oklch(0.383 0.14 275.071); /* #31368C */
|
|
107
|
+
--indigo-800: oklch(0.3 0.109 275.563); /* #212463 */
|
|
108
|
+
--indigo-900: oklch(0.225 0.073 276.527); /* #14163D */
|
|
109
|
+
--indigo-950: oklch(0.172 0.043 278.782); /* #0C0D22 */
|
|
110
|
+
|
|
111
|
+
--pink-50: oklch(0.893 0.047 335.372);
|
|
112
|
+
--pink-100: oklch(0.839 0.076 336.368);
|
|
113
|
+
--pink-200: oklch(0.732 0.133 338.361);
|
|
114
|
+
--pink-300: oklch(0.624 0.191 340.354);
|
|
115
|
+
--pink-400: oklch(0.581 0.205 342.54);
|
|
116
|
+
--pink-500: oklch(0.538 0.22 344.727);
|
|
117
|
+
--pink-600: oklch(0.478 0.195 344.211);
|
|
118
|
+
--pink-700: oklch(0.418 0.17 343.696);
|
|
119
|
+
--pink-800: oklch(0.358 0.144 343.18);
|
|
120
|
+
--pink-900: oklch(0.298 0.119 342.664);
|
|
121
|
+
--pink-950: oklch(0.268 0.106 342.406);
|
|
122
|
+
|
|
123
|
+
/* gradient tokens */
|
|
124
|
+
--gradient-primary: linear-gradient(
|
|
125
|
+
87.14044870021029deg,
|
|
126
|
+
oklch(0.644 0.226 23.049) 0%,
|
|
127
|
+
oklch(0.686 0.205 34.607) 50%,
|
|
128
|
+
oklch(0.71 0.167 13.3) 100%
|
|
129
|
+
);
|
|
130
|
+
|
|
131
|
+
/* semantic tokens */
|
|
132
|
+
--background: var(--zinc-50);
|
|
133
|
+
--foreground: var(--zinc-950);
|
|
134
|
+
--card: var(--zinc-50);
|
|
135
|
+
--card-foreground: var(--zinc-950);
|
|
136
|
+
--popover: var(--zinc-50);
|
|
137
|
+
--popover-foreground: var(--zinc-950);
|
|
138
|
+
--primary: var(--primary-500);
|
|
139
|
+
--primary-foreground: var(--zinc-50);
|
|
140
|
+
--brand: var(--brand-500);
|
|
141
|
+
--brand-foreground: var(--zinc-50);
|
|
142
|
+
--secondary: var(--zinc-100);
|
|
143
|
+
--secondary-foreground: var(--zinc-900);
|
|
144
|
+
--muted: var(--zinc-100);
|
|
145
|
+
--muted-foreground: var(--zinc-600);
|
|
146
|
+
--accent: var(--zinc-200);
|
|
147
|
+
--accent-foreground: var(--zinc-950);
|
|
148
|
+
--destructive: var(--red-500);
|
|
149
|
+
--destructive-foreground: var(--zinc-50);
|
|
150
|
+
--border: var(--zinc-200);
|
|
151
|
+
--input: var(--zinc-200);
|
|
152
|
+
--ring: var(--primary-300);
|
|
153
|
+
--chart-1: var(--primary-500);
|
|
154
|
+
--chart-2: var(--green-500);
|
|
155
|
+
--chart-3: var(--blue-500);
|
|
156
|
+
--chart-4: var(--indigo-500);
|
|
157
|
+
--chart-5: var(--pink-500);
|
|
158
|
+
--sidebar: var(--zinc-100);
|
|
159
|
+
--sidebar-foreground: var(--zinc-950);
|
|
160
|
+
--sidebar-primary: var(--primary-500);
|
|
161
|
+
--sidebar-primary-foreground: var(--zinc-50);
|
|
162
|
+
--sidebar-accent: var(--zinc-200);
|
|
163
|
+
--sidebar-accent-foreground: var(--zinc-900);
|
|
164
|
+
--sidebar-border: var(--zinc-200);
|
|
165
|
+
--sidebar-ring: var(--primary-300);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.dark {
|
|
169
|
+
--background: var(--zinc-950);
|
|
170
|
+
--foreground: var(--zinc-50);
|
|
171
|
+
--card: var(--zinc-900);
|
|
172
|
+
--card-foreground: var(--zinc-50);
|
|
173
|
+
--popover: var(--zinc-900);
|
|
174
|
+
--popover-foreground: var(--zinc-50);
|
|
175
|
+
--primary: var(--primary-400);
|
|
176
|
+
--primary-foreground: var(--zinc-50);
|
|
177
|
+
--brand: var(--brand-400);
|
|
178
|
+
--brand-foreground: var(--zinc-50);
|
|
179
|
+
--secondary: var(--zinc-800);
|
|
180
|
+
--secondary-foreground: var(--zinc-50);
|
|
181
|
+
--muted: var(--zinc-800);
|
|
182
|
+
--muted-foreground: var(--zinc-300);
|
|
183
|
+
--accent: var(--zinc-800);
|
|
184
|
+
--accent-foreground: var(--zinc-50);
|
|
185
|
+
--destructive: var(--red-400);
|
|
186
|
+
--destructive-foreground: var(--zinc-950);
|
|
187
|
+
--border: var(--zinc-800);
|
|
188
|
+
--input: var(--zinc-700);
|
|
189
|
+
--ring: var(--primary-400);
|
|
190
|
+
--chart-1: var(--primary-400);
|
|
191
|
+
--chart-2: var(--green-400);
|
|
192
|
+
--chart-3: var(--blue-400);
|
|
193
|
+
--chart-4: var(--indigo-400);
|
|
194
|
+
--chart-5: var(--pink-300);
|
|
195
|
+
--sidebar: var(--zinc-900);
|
|
196
|
+
--sidebar-foreground: var(--zinc-50);
|
|
197
|
+
--sidebar-primary: var(--primary-400);
|
|
198
|
+
--sidebar-primary-foreground: var(--zinc-50);
|
|
199
|
+
--sidebar-accent: var(--zinc-800);
|
|
200
|
+
--sidebar-accent-foreground: var(--zinc-50);
|
|
201
|
+
--sidebar-border: var(--zinc-800);
|
|
202
|
+
--sidebar-ring: var(--primary-400);
|
|
203
|
+
}
|