@dimaan/ui 0.0.22 → 0.0.24
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 +1 -0
- package/dist/index.cjs +294 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +193 -3
- package/dist/index.d.ts +193 -3
- package/dist/index.js +283 -13
- package/dist/index.js.map +1 -1
- package/dist/preset.css +282 -20
- package/package.json +1 -1
package/dist/preset.css
CHANGED
|
@@ -8,30 +8,113 @@
|
|
|
8
8
|
* generates `bg-primary`, `text-primary`, `border-primary`, etc.).
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
/*
|
|
12
|
+
* IBM Plex Sans Arabic — the library's default font, loaded from the Fontsource
|
|
13
|
+
* CDN (jsDelivr) so AR (and Latin) text renders correctly out of the box with
|
|
14
|
+
* zero consumer setup. Latin glyphs come from the same family for a consistent
|
|
15
|
+
* look across AR/EN. `unicode-range` lets the browser download only the subset a
|
|
16
|
+
* page actually uses; `font-display: swap` avoids invisible text while loading.
|
|
17
|
+
*
|
|
18
|
+
* Weights: 400/500/600 are used by components; 700 is included for headings in
|
|
19
|
+
* consumer apps. The CDN version is pinned — bump it deliberately.
|
|
20
|
+
*
|
|
21
|
+
* To self-host instead (offline / behind a firewall), replace these `src` URLs
|
|
22
|
+
* with `@fontsource/ibm-plex-sans-arabic` files served from your own origin.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/* — Arabic — */
|
|
26
|
+
@font-face {
|
|
27
|
+
font-family: "IBM Plex Sans Arabic";
|
|
28
|
+
font-style: normal;
|
|
29
|
+
font-weight: 400;
|
|
30
|
+
font-display: swap;
|
|
31
|
+
src: url("https://cdn.jsdelivr.net/npm/@fontsource/ibm-plex-sans-arabic@5.2.9/files/ibm-plex-sans-arabic-arabic-400-normal.woff2") format("woff2");
|
|
32
|
+
unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
|
|
33
|
+
}
|
|
34
|
+
@font-face {
|
|
35
|
+
font-family: "IBM Plex Sans Arabic";
|
|
36
|
+
font-style: normal;
|
|
37
|
+
font-weight: 500;
|
|
38
|
+
font-display: swap;
|
|
39
|
+
src: url("https://cdn.jsdelivr.net/npm/@fontsource/ibm-plex-sans-arabic@5.2.9/files/ibm-plex-sans-arabic-arabic-500-normal.woff2") format("woff2");
|
|
40
|
+
unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
|
|
41
|
+
}
|
|
42
|
+
@font-face {
|
|
43
|
+
font-family: "IBM Plex Sans Arabic";
|
|
44
|
+
font-style: normal;
|
|
45
|
+
font-weight: 600;
|
|
46
|
+
font-display: swap;
|
|
47
|
+
src: url("https://cdn.jsdelivr.net/npm/@fontsource/ibm-plex-sans-arabic@5.2.9/files/ibm-plex-sans-arabic-arabic-600-normal.woff2") format("woff2");
|
|
48
|
+
unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
|
|
49
|
+
}
|
|
50
|
+
@font-face {
|
|
51
|
+
font-family: "IBM Plex Sans Arabic";
|
|
52
|
+
font-style: normal;
|
|
53
|
+
font-weight: 700;
|
|
54
|
+
font-display: swap;
|
|
55
|
+
src: url("https://cdn.jsdelivr.net/npm/@fontsource/ibm-plex-sans-arabic@5.2.9/files/ibm-plex-sans-arabic-arabic-700-normal.woff2") format("woff2");
|
|
56
|
+
unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* — Latin — */
|
|
60
|
+
@font-face {
|
|
61
|
+
font-family: "IBM Plex Sans Arabic";
|
|
62
|
+
font-style: normal;
|
|
63
|
+
font-weight: 400;
|
|
64
|
+
font-display: swap;
|
|
65
|
+
src: url("https://cdn.jsdelivr.net/npm/@fontsource/ibm-plex-sans-arabic@5.2.9/files/ibm-plex-sans-arabic-latin-400-normal.woff2") format("woff2");
|
|
66
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
67
|
+
}
|
|
68
|
+
@font-face {
|
|
69
|
+
font-family: "IBM Plex Sans Arabic";
|
|
70
|
+
font-style: normal;
|
|
71
|
+
font-weight: 500;
|
|
72
|
+
font-display: swap;
|
|
73
|
+
src: url("https://cdn.jsdelivr.net/npm/@fontsource/ibm-plex-sans-arabic@5.2.9/files/ibm-plex-sans-arabic-latin-500-normal.woff2") format("woff2");
|
|
74
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
75
|
+
}
|
|
76
|
+
@font-face {
|
|
77
|
+
font-family: "IBM Plex Sans Arabic";
|
|
78
|
+
font-style: normal;
|
|
79
|
+
font-weight: 600;
|
|
80
|
+
font-display: swap;
|
|
81
|
+
src: url("https://cdn.jsdelivr.net/npm/@fontsource/ibm-plex-sans-arabic@5.2.9/files/ibm-plex-sans-arabic-latin-600-normal.woff2") format("woff2");
|
|
82
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
83
|
+
}
|
|
84
|
+
@font-face {
|
|
85
|
+
font-family: "IBM Plex Sans Arabic";
|
|
86
|
+
font-style: normal;
|
|
87
|
+
font-weight: 700;
|
|
88
|
+
font-display: swap;
|
|
89
|
+
src: url("https://cdn.jsdelivr.net/npm/@fontsource/ibm-plex-sans-arabic@5.2.9/files/ibm-plex-sans-arabic-latin-700-normal.woff2") format("woff2");
|
|
90
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
91
|
+
}
|
|
92
|
+
|
|
11
93
|
@theme {
|
|
12
|
-
/* Surface
|
|
94
|
+
/* Surface — neutrals carry a faint cool tint (hue 264) so the whole UI
|
|
95
|
+
reads as "designed" rather than flat default gray. */
|
|
13
96
|
--color-background: oklch(1 0 0);
|
|
14
|
-
--color-foreground: oklch(0.
|
|
97
|
+
--color-foreground: oklch(0.16 0.018 264);
|
|
15
98
|
|
|
16
99
|
/* Card / elevated surfaces */
|
|
17
100
|
--color-card: oklch(1 0 0);
|
|
18
|
-
--color-card-foreground: oklch(0.
|
|
101
|
+
--color-card-foreground: oklch(0.16 0.018 264);
|
|
19
102
|
|
|
20
103
|
/* Popover / floating surfaces (dropdowns, menus, tooltips) */
|
|
21
104
|
--color-popover: oklch(1 0 0);
|
|
22
|
-
--color-popover-foreground: oklch(0.
|
|
105
|
+
--color-popover-foreground: oklch(0.16 0.018 264);
|
|
23
106
|
|
|
24
107
|
/* Brand */
|
|
25
108
|
--color-primary: oklch(0.55 0.22 264);
|
|
26
|
-
--color-primary-foreground: oklch(0.985 0
|
|
109
|
+
--color-primary-foreground: oklch(0.985 0.002 264);
|
|
27
110
|
|
|
28
111
|
/* Accent (hover / subtle highlight) */
|
|
29
|
-
--color-accent: oklch(0.96 0.
|
|
30
|
-
--color-accent-foreground: oklch(0.
|
|
112
|
+
--color-accent: oklch(0.96 0.012 264);
|
|
113
|
+
--color-accent-foreground: oklch(0.22 0.02 264);
|
|
31
114
|
|
|
32
115
|
/* Neutral / muted */
|
|
33
|
-
--color-muted: oklch(0.97 0
|
|
34
|
-
--color-muted-foreground: oklch(0.
|
|
116
|
+
--color-muted: oklch(0.97 0.005 264);
|
|
117
|
+
--color-muted-foreground: oklch(0.55 0.025 264);
|
|
35
118
|
|
|
36
119
|
/* Feedback */
|
|
37
120
|
--color-destructive: oklch(0.577 0.245 27.325);
|
|
@@ -42,21 +125,21 @@
|
|
|
42
125
|
--color-warning-foreground: oklch(0.205 0 0);
|
|
43
126
|
|
|
44
127
|
/* Borders & inputs */
|
|
45
|
-
--color-border: oklch(0.
|
|
46
|
-
--color-input: oklch(0.
|
|
128
|
+
--color-border: oklch(0.92 0.006 264);
|
|
129
|
+
--color-input: oklch(0.92 0.006 264);
|
|
47
130
|
--color-ring: oklch(0.55 0.22 264);
|
|
48
131
|
|
|
49
132
|
/* Sidebar surface (slightly tinted off the main background) */
|
|
50
|
-
--color-sidebar: oklch(0.985 0
|
|
51
|
-
--color-sidebar-foreground: oklch(0.
|
|
52
|
-
--color-sidebar-border: oklch(0.
|
|
53
|
-
--color-sidebar-accent: oklch(0.95 0.
|
|
54
|
-
--color-sidebar-accent-foreground: oklch(0.
|
|
133
|
+
--color-sidebar: oklch(0.985 0.004 264);
|
|
134
|
+
--color-sidebar-foreground: oklch(0.22 0.02 264);
|
|
135
|
+
--color-sidebar-border: oklch(0.91 0.006 264);
|
|
136
|
+
--color-sidebar-accent: oklch(0.95 0.012 264);
|
|
137
|
+
--color-sidebar-accent-foreground: oklch(0.22 0.02 264);
|
|
55
138
|
|
|
56
139
|
/* Header surface */
|
|
57
140
|
--color-header: oklch(1 0 0);
|
|
58
|
-
--color-header-foreground: oklch(0.
|
|
59
|
-
--color-header-border: oklch(0.
|
|
141
|
+
--color-header-foreground: oklch(0.16 0.018 264);
|
|
142
|
+
--color-header-border: oklch(0.92 0.006 264);
|
|
60
143
|
|
|
61
144
|
/* Radii */
|
|
62
145
|
--radius: 0.5rem;
|
|
@@ -65,14 +148,193 @@
|
|
|
65
148
|
--radius-lg: var(--radius);
|
|
66
149
|
--radius-xl: calc(var(--radius) + 4px);
|
|
67
150
|
|
|
151
|
+
/* Elevation — soft, layered, faintly cool-tinted shadows (hue 264). Two
|
|
152
|
+
layers (ambient + direct) give realistic depth instead of one hard drop.
|
|
153
|
+
These override Tailwind's defaults, so every `shadow-sm/md/lg` upgrades.
|
|
154
|
+
Dark mode restyles these via `.dark .shadow-*` below (see note there). */
|
|
155
|
+
--shadow-2xs: 0 1px 2px 0 oklch(0.18 0.04 264 / 0.04);
|
|
156
|
+
--shadow-xs: 0 1px 2px 0 oklch(0.18 0.04 264 / 0.05), 0 1px 1px -1px oklch(0.18 0.04 264 / 0.04);
|
|
157
|
+
--shadow-sm: 0 2px 4px -1px oklch(0.18 0.04 264 / 0.06), 0 1px 2px -1px oklch(0.18 0.04 264 / 0.05);
|
|
158
|
+
--shadow-md: 0 4px 10px -2px oklch(0.18 0.04 264 / 0.08), 0 2px 4px -2px oklch(0.18 0.04 264 / 0.06);
|
|
159
|
+
--shadow-lg: 0 12px 24px -4px oklch(0.18 0.04 264 / 0.1), 0 4px 8px -4px oklch(0.18 0.04 264 / 0.06);
|
|
160
|
+
--shadow-xl: 0 24px 40px -8px oklch(0.18 0.04 264 / 0.12), 0 8px 14px -6px oklch(0.18 0.04 264 / 0.07);
|
|
161
|
+
--shadow-2xl: 0 32px 64px -12px oklch(0.18 0.04 264 / 0.2);
|
|
162
|
+
|
|
68
163
|
/* Layout sizing */
|
|
69
164
|
--sidebar-width: 16rem;
|
|
70
165
|
--sidebar-width-collapsed: 4rem;
|
|
71
166
|
--header-height: 3.5rem;
|
|
72
167
|
|
|
73
|
-
/* Typography —
|
|
168
|
+
/* Typography — IBM Plex Sans Arabic first (loaded via @font-face above);
|
|
169
|
+
the rest are fallbacks if the CDN font fails to load. */
|
|
74
170
|
--font-sans:
|
|
75
|
-
"
|
|
171
|
+
"IBM Plex Sans Arabic", "Inter", "Geist", "system-ui", "Segoe UI", "Tahoma",
|
|
76
172
|
"sans-serif";
|
|
77
173
|
--font-mono: "JetBrains Mono", "ui-monospace", "monospace";
|
|
174
|
+
|
|
175
|
+
/* Type scale — refine display/heading sizes: tighter line-height + gentle
|
|
176
|
+
negative tracking for crisper titles. Font sizes match Tailwind's defaults
|
|
177
|
+
(only line-height/tracking change). Body sizes (xs/sm/base/lg) are left
|
|
178
|
+
alone to preserve density. Tracking stays gentle so Arabic — a connected
|
|
179
|
+
script — keeps its legibility. */
|
|
180
|
+
--text-xl: 1.25rem;
|
|
181
|
+
--text-xl--line-height: 1.4;
|
|
182
|
+
--text-xl--letter-spacing: -0.01em;
|
|
183
|
+
--text-2xl: 1.5rem;
|
|
184
|
+
--text-2xl--line-height: 1.25;
|
|
185
|
+
--text-2xl--letter-spacing: -0.014em;
|
|
186
|
+
--text-3xl: 1.875rem;
|
|
187
|
+
--text-3xl--line-height: 1.2;
|
|
188
|
+
--text-3xl--letter-spacing: -0.018em;
|
|
189
|
+
--text-4xl: 2.25rem;
|
|
190
|
+
--text-4xl--line-height: 1.1;
|
|
191
|
+
--text-4xl--letter-spacing: -0.02em;
|
|
192
|
+
--text-5xl: 3rem;
|
|
193
|
+
--text-5xl--line-height: 1;
|
|
194
|
+
--text-5xl--letter-spacing: -0.022em;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/*
|
|
198
|
+
* Built-in dark mode. Components are token-based (they read CSS variables, not
|
|
199
|
+
* `dark:` utilities), so dark mode is just a re-binding of the same tokens.
|
|
200
|
+
* Add `class="dark"` to <html> (or any ancestor) to switch — wire it to a
|
|
201
|
+
* toggle or `prefers-color-scheme` in your app. No extra setup in the library.
|
|
202
|
+
*/
|
|
203
|
+
.dark {
|
|
204
|
+
/* Surface */
|
|
205
|
+
--color-background: oklch(0.17 0.012 264);
|
|
206
|
+
--color-foreground: oklch(0.96 0.004 264);
|
|
207
|
+
|
|
208
|
+
/* Card / elevated surfaces (lifted slightly off the background) */
|
|
209
|
+
--color-card: oklch(0.205 0.014 264);
|
|
210
|
+
--color-card-foreground: oklch(0.96 0.004 264);
|
|
211
|
+
|
|
212
|
+
/* Popover / floating surfaces */
|
|
213
|
+
--color-popover: oklch(0.205 0.014 264);
|
|
214
|
+
--color-popover-foreground: oklch(0.96 0.004 264);
|
|
215
|
+
|
|
216
|
+
/* Brand — a touch brighter so it pops against dark surfaces */
|
|
217
|
+
--color-primary: oklch(0.62 0.2 264);
|
|
218
|
+
--color-primary-foreground: oklch(0.985 0.004 264);
|
|
219
|
+
|
|
220
|
+
/* Accent */
|
|
221
|
+
--color-accent: oklch(0.27 0.022 264);
|
|
222
|
+
--color-accent-foreground: oklch(0.96 0.004 264);
|
|
223
|
+
|
|
224
|
+
/* Neutral / muted */
|
|
225
|
+
--color-muted: oklch(0.25 0.016 264);
|
|
226
|
+
--color-muted-foreground: oklch(0.7 0.018 264);
|
|
227
|
+
|
|
228
|
+
/* Feedback */
|
|
229
|
+
--color-destructive: oklch(0.62 0.2 27);
|
|
230
|
+
--color-destructive-foreground: oklch(0.98 0 0);
|
|
231
|
+
--color-success: oklch(0.68 0.16 145);
|
|
232
|
+
--color-success-foreground: oklch(0.18 0.01 145);
|
|
233
|
+
--color-warning: oklch(0.8 0.15 80);
|
|
234
|
+
--color-warning-foreground: oklch(0.2 0.01 80);
|
|
235
|
+
|
|
236
|
+
/* Borders & inputs */
|
|
237
|
+
--color-border: oklch(0.27 0.016 264);
|
|
238
|
+
--color-input: oklch(0.3 0.016 264);
|
|
239
|
+
--color-ring: oklch(0.62 0.2 264);
|
|
240
|
+
|
|
241
|
+
/* Sidebar surface */
|
|
242
|
+
--color-sidebar: oklch(0.205 0.014 264);
|
|
243
|
+
--color-sidebar-foreground: oklch(0.92 0.006 264);
|
|
244
|
+
--color-sidebar-border: oklch(0.27 0.016 264);
|
|
245
|
+
--color-sidebar-accent: oklch(0.3 0.03 264);
|
|
246
|
+
--color-sidebar-accent-foreground: oklch(0.96 0.004 264);
|
|
247
|
+
|
|
248
|
+
/* Header surface */
|
|
249
|
+
--color-header: oklch(0.19 0.013 264);
|
|
250
|
+
--color-header-foreground: oklch(0.96 0.004 264);
|
|
251
|
+
--color-header-border: oklch(0.27 0.016 264);
|
|
252
|
+
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/*
|
|
256
|
+
* Dark elevation — near-black and deeper so shadows read on dark surfaces (the
|
|
257
|
+
* faint tinted light shadows would otherwise vanish). Tailwind freezes @theme
|
|
258
|
+
* shadow values into utilities at build time, so dark mode can't re-bind them
|
|
259
|
+
* via a token. We override `box-shadow` directly, re-including Tailwind's ring
|
|
260
|
+
* composition vars first so focus rings still render. These rules are unlayered,
|
|
261
|
+
* so they win over the (layered) utility regardless of source order.
|
|
262
|
+
*/
|
|
263
|
+
.dark .shadow-2xs {
|
|
264
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 2px 0 oklch(0 0 0 / 0.3);
|
|
265
|
+
}
|
|
266
|
+
.dark .shadow-xs {
|
|
267
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 2px 0 oklch(0 0 0 / 0.35), 0 1px 1px -1px oklch(0 0 0 / 0.3);
|
|
268
|
+
}
|
|
269
|
+
.dark .shadow-sm {
|
|
270
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 2px 4px -1px oklch(0 0 0 / 0.4), 0 1px 2px -1px oklch(0 0 0 / 0.34);
|
|
271
|
+
}
|
|
272
|
+
.dark .shadow-md {
|
|
273
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 4px 10px -2px oklch(0 0 0 / 0.45), 0 2px 4px -2px oklch(0 0 0 / 0.36);
|
|
274
|
+
}
|
|
275
|
+
.dark .shadow-lg {
|
|
276
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 12px 24px -4px oklch(0 0 0 / 0.5), 0 4px 8px -4px oklch(0 0 0 / 0.38);
|
|
277
|
+
}
|
|
278
|
+
.dark .shadow-xl {
|
|
279
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 24px 40px -8px oklch(0 0 0 / 0.55), 0 8px 14px -6px oklch(0 0 0 / 0.4);
|
|
280
|
+
}
|
|
281
|
+
.dark .shadow-2xl {
|
|
282
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 32px 64px -12px oklch(0 0 0 / 0.65);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/*
|
|
286
|
+
* Motion — enter/exit animations for overlays (dialog, popover, dropdown,
|
|
287
|
+
* select, tooltip, date-picker). The components already reference
|
|
288
|
+
* `data-[state=open]:animate-in … fade-in-0 zoom-in-95` etc.; these definitions
|
|
289
|
+
* make them real (a minimal, self-contained port of tailwindcss-animate, only
|
|
290
|
+
* the utilities we use). Duration is tunable via --tw-animate-duration.
|
|
291
|
+
*/
|
|
292
|
+
@keyframes enter {
|
|
293
|
+
from {
|
|
294
|
+
opacity: var(--tw-enter-opacity, 1);
|
|
295
|
+
transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0)
|
|
296
|
+
scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), 1);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
@keyframes exit {
|
|
300
|
+
to {
|
|
301
|
+
opacity: var(--tw-exit-opacity, 1);
|
|
302
|
+
transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0)
|
|
303
|
+
scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), 1);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
@utility animate-in {
|
|
308
|
+
animation: enter var(--tw-animate-duration, 0.18s) var(--tw-animate-easing, cubic-bezier(0.16, 1, 0.3, 1));
|
|
309
|
+
--tw-enter-opacity: initial;
|
|
310
|
+
--tw-enter-scale: initial;
|
|
311
|
+
--tw-enter-translate-x: initial;
|
|
312
|
+
--tw-enter-translate-y: initial;
|
|
313
|
+
}
|
|
314
|
+
@utility animate-out {
|
|
315
|
+
animation: exit var(--tw-animate-duration, 0.14s) var(--tw-animate-easing, cubic-bezier(0.4, 0, 1, 1));
|
|
316
|
+
--tw-exit-opacity: initial;
|
|
317
|
+
--tw-exit-scale: initial;
|
|
318
|
+
--tw-exit-translate-x: initial;
|
|
319
|
+
--tw-exit-translate-y: initial;
|
|
320
|
+
}
|
|
321
|
+
@utility fade-in-0 {
|
|
322
|
+
--tw-enter-opacity: 0;
|
|
323
|
+
}
|
|
324
|
+
@utility fade-out-0 {
|
|
325
|
+
--tw-exit-opacity: 0;
|
|
326
|
+
}
|
|
327
|
+
@utility zoom-in-95 {
|
|
328
|
+
--tw-enter-scale: 0.95;
|
|
329
|
+
}
|
|
330
|
+
@utility zoom-out-95 {
|
|
331
|
+
--tw-exit-scale: 0.95;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
/* Respect users who ask for less motion. */
|
|
335
|
+
@media (prefers-reduced-motion: reduce) {
|
|
336
|
+
.animate-in,
|
|
337
|
+
.animate-out {
|
|
338
|
+
animation: none;
|
|
339
|
+
}
|
|
78
340
|
}
|