basecoat-css 0.1.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/dist/basecoat.css +1002 -0
- package/package.json +40 -0
|
@@ -0,0 +1,1002 @@
|
|
|
1
|
+
@custom-variant dark (&:is(.dark *));
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--radius: 0.625rem;
|
|
5
|
+
--background: oklch(1 0 0);
|
|
6
|
+
--foreground: oklch(0.145 0 0);
|
|
7
|
+
--card: oklch(1 0 0);
|
|
8
|
+
--card-foreground: oklch(0.145 0 0);
|
|
9
|
+
--popover: oklch(1 0 0);
|
|
10
|
+
--popover-foreground: oklch(0.145 0 0);
|
|
11
|
+
--primary: oklch(0.205 0 0);
|
|
12
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
13
|
+
--secondary: oklch(0.97 0 0);
|
|
14
|
+
--secondary-foreground: oklch(0.205 0 0);
|
|
15
|
+
--muted: oklch(0.97 0 0);
|
|
16
|
+
--muted-foreground: oklch(0.556 0 0);
|
|
17
|
+
--accent: oklch(0.97 0 0);
|
|
18
|
+
--accent-foreground: oklch(0.205 0 0);
|
|
19
|
+
--destructive: oklch(0.577 0.245 27.325);
|
|
20
|
+
--border: oklch(0.922 0 0);
|
|
21
|
+
--input: oklch(0.922 0 0);
|
|
22
|
+
--ring: oklch(0.708 0 0);
|
|
23
|
+
--chart-1: oklch(0.646 0.222 41.116);
|
|
24
|
+
--chart-2: oklch(0.6 0.118 184.704);
|
|
25
|
+
--chart-3: oklch(0.398 0.07 227.392);
|
|
26
|
+
--chart-4: oklch(0.828 0.189 84.429);
|
|
27
|
+
--chart-5: oklch(0.769 0.188 70.08);
|
|
28
|
+
--sidebar: oklch(0.985 0 0);
|
|
29
|
+
--sidebar-foreground: oklch(0.145 0 0);
|
|
30
|
+
--sidebar-primary: oklch(0.205 0 0);
|
|
31
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
32
|
+
--sidebar-accent: oklch(0.97 0 0);
|
|
33
|
+
--sidebar-accent-foreground: oklch(0.205 0 0);
|
|
34
|
+
--sidebar-border: oklch(0.922 0 0);
|
|
35
|
+
--sidebar-ring: oklch(0.708 0 0);
|
|
36
|
+
--sidebar-width: 16rem;
|
|
37
|
+
--sidebar-mobile-width: 18rem;
|
|
38
|
+
--scrollbar-track: transparent;
|
|
39
|
+
--scrollbar-thumb: rgba(0, 0, 0, 0.3);
|
|
40
|
+
--scrollbar-width: 6px;
|
|
41
|
+
--scrollbar-radius: 6px;
|
|
42
|
+
--chevron-down-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.556 0 0)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down"><path d="m6 9 6 6 6-6"/></svg>'); /* --muted-foreground */
|
|
43
|
+
--chevron-down-icon-50: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.556 0 0 / 0.5)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down"><path d="m6 9 6 6 6-6"/></svg>'); /* --muted-foreground + 50% opacity */
|
|
44
|
+
--check-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.556 0 0)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check-icon lucide-check"><path d="M20 6 9 17l-5-5"/></svg>'); /* --muted-foreground */
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.dark {
|
|
48
|
+
--background: oklch(0.145 0 0);
|
|
49
|
+
--foreground: oklch(0.985 0 0);
|
|
50
|
+
--card: oklch(0.205 0 0);
|
|
51
|
+
--card-foreground: oklch(0.985 0 0);
|
|
52
|
+
--popover: oklch(0.269 0 0);
|
|
53
|
+
--popover-foreground: oklch(0.985 0 0);
|
|
54
|
+
--primary: oklch(0.922 0 0);
|
|
55
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
56
|
+
--secondary: oklch(0.269 0 0);
|
|
57
|
+
--secondary-foreground: oklch(0.985 0 0);
|
|
58
|
+
--muted: oklch(0.269 0 0);
|
|
59
|
+
--muted-foreground: oklch(0.708 0 0);
|
|
60
|
+
--accent: oklch(0.371 0 0);
|
|
61
|
+
--accent-foreground: oklch(0.985 0 0);
|
|
62
|
+
--destructive: oklch(0.704 0.191 22.216);
|
|
63
|
+
--border: oklch(1 0 0 / 10%);
|
|
64
|
+
--input: oklch(1 0 0 / 15%);
|
|
65
|
+
--ring: oklch(0.556 0 0);
|
|
66
|
+
--chart-1: oklch(0.488 0.243 264.376);
|
|
67
|
+
--chart-2: oklch(0.696 0.17 162.48);
|
|
68
|
+
--chart-3: oklch(0.769 0.188 70.08);
|
|
69
|
+
--chart-4: oklch(0.627 0.265 303.9);
|
|
70
|
+
--chart-5: oklch(0.645 0.246 16.439);
|
|
71
|
+
--sidebar: oklch(0.205 0 0);
|
|
72
|
+
--sidebar-foreground: oklch(0.985 0 0);
|
|
73
|
+
--sidebar-primary: oklch(0.488 0.243 264.376);
|
|
74
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
75
|
+
--sidebar-accent: oklch(0.269 0 0);
|
|
76
|
+
--sidebar-accent-foreground: oklch(0.985 0 0);
|
|
77
|
+
--sidebar-border: oklch(1 0 0 / 10%);
|
|
78
|
+
--sidebar-ring: oklch(0.439 0 0);
|
|
79
|
+
--scrollbar-thumb: rgba(255, 255, 255, 0.3);
|
|
80
|
+
--chevron-down-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.708 0 0)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down"><path d="m6 9 6 6 6-6"/></svg>'); /* --muted-foreground */
|
|
81
|
+
--chevron-down-icon-50: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.708 0 0 / 0.5)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down"><path d="m6 9 6 6 6-6"/></svg>'); /* --muted-foreground + 50% opacity */
|
|
82
|
+
--check-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.708 0 0)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check-icon lucide-check"><path d="M20 6 9 17l-5-5"/></svg>');/* --muted-foreground */
|
|
83
|
+
color-scheme: dark;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
@theme {
|
|
87
|
+
--radius-sm: calc(var(--radius) - 4px);
|
|
88
|
+
--radius-md: calc(var(--radius) - 2px);
|
|
89
|
+
--radius-lg: var(--radius);
|
|
90
|
+
--radius-xl: calc(var(--radius) + 4px);
|
|
91
|
+
--color-background: var(--background);
|
|
92
|
+
--color-foreground: var(--foreground);
|
|
93
|
+
--color-card: var(--card);
|
|
94
|
+
--color-card-foreground: var(--card-foreground);
|
|
95
|
+
--color-popover: var(--popover);
|
|
96
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
97
|
+
--color-primary: var(--primary);
|
|
98
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
99
|
+
--color-secondary: var(--secondary);
|
|
100
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
101
|
+
--color-muted: var(--muted);
|
|
102
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
103
|
+
--color-accent: var(--accent);
|
|
104
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
105
|
+
--color-destructive: var(--destructive);
|
|
106
|
+
--color-border: var(--border);
|
|
107
|
+
--color-input: var(--input);
|
|
108
|
+
--color-ring: var(--ring);
|
|
109
|
+
--color-chart-1: var(--chart-1);
|
|
110
|
+
--color-chart-2: var(--chart-2);
|
|
111
|
+
--color-chart-3: var(--chart-3);
|
|
112
|
+
--color-chart-4: var(--chart-4);
|
|
113
|
+
--color-chart-5: var(--chart-5);
|
|
114
|
+
--color-sidebar: var(--sidebar);
|
|
115
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
116
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
117
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
118
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
119
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
120
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
121
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@layer base {
|
|
125
|
+
* {
|
|
126
|
+
@apply border-border outline-ring/50;
|
|
127
|
+
}
|
|
128
|
+
html {
|
|
129
|
+
@apply scroll-smooth;
|
|
130
|
+
}
|
|
131
|
+
body {
|
|
132
|
+
@apply bg-background text-foreground overscroll-none antialiased;
|
|
133
|
+
}
|
|
134
|
+
.scrollbar {
|
|
135
|
+
scrollbar-width: thin;
|
|
136
|
+
scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
|
|
137
|
+
|
|
138
|
+
&::-webkit-scrollbar {
|
|
139
|
+
width: var(--scrollbar-width);
|
|
140
|
+
}
|
|
141
|
+
&::-webkit-scrollbar-track {
|
|
142
|
+
background: var(--scrollbar-track);
|
|
143
|
+
}
|
|
144
|
+
&::-webkit-scrollbar-thumb {
|
|
145
|
+
background: var(--scrollbar-thumb);
|
|
146
|
+
border-radius: var(--scrollbar-radius);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/* Alpine.js */
|
|
150
|
+
[x-cloak] {
|
|
151
|
+
display: none !important;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/* Alert */
|
|
156
|
+
@layer components {
|
|
157
|
+
.alert,
|
|
158
|
+
.alert-destructive {
|
|
159
|
+
@apply relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current;
|
|
160
|
+
|
|
161
|
+
h2 {
|
|
162
|
+
@apply col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
section {
|
|
166
|
+
@apply text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed;
|
|
167
|
+
|
|
168
|
+
ul {
|
|
169
|
+
@apply list-inside list-disc text-sm;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
.alert {
|
|
174
|
+
@apply bg-card text-card-foreground;
|
|
175
|
+
}
|
|
176
|
+
.alert-destructive {
|
|
177
|
+
@apply text-destructive bg-card [&>svg]:text-current;
|
|
178
|
+
|
|
179
|
+
section {
|
|
180
|
+
@apply text-destructive;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/* Button */
|
|
186
|
+
@layer components {
|
|
187
|
+
.btn,
|
|
188
|
+
.btn-primary,
|
|
189
|
+
.btn-secondary,
|
|
190
|
+
.btn-outline,
|
|
191
|
+
.btn-ghost,
|
|
192
|
+
.btn-link,
|
|
193
|
+
.btn-destructive,
|
|
194
|
+
.btn-sm,
|
|
195
|
+
.btn-sm-primary,
|
|
196
|
+
.btn-sm-secondary,
|
|
197
|
+
.btn-sm-outline,
|
|
198
|
+
.btn-sm-ghost,
|
|
199
|
+
.btn-sm-link,
|
|
200
|
+
.btn-sm-destructive,
|
|
201
|
+
.btn-lg,
|
|
202
|
+
.btn-lg-primary,
|
|
203
|
+
.btn-lg-secondary,
|
|
204
|
+
.btn-lg-outline,
|
|
205
|
+
.btn-lg-ghost,
|
|
206
|
+
.btn-lg-link,
|
|
207
|
+
.btn-lg-destructive,
|
|
208
|
+
.btn-icon,
|
|
209
|
+
.btn-icon-primary,
|
|
210
|
+
.btn-icon-secondary,
|
|
211
|
+
.btn-icon-outline,
|
|
212
|
+
.btn-icon-ghost,
|
|
213
|
+
.btn-icon-link,
|
|
214
|
+
.btn-icon-destructive,
|
|
215
|
+
.btn-sm-icon,
|
|
216
|
+
.btn-sm-icon-primary,
|
|
217
|
+
.btn-sm-icon-secondary,
|
|
218
|
+
.btn-sm-icon-outline,
|
|
219
|
+
.btn-sm-icon-ghost,
|
|
220
|
+
.btn-sm-icon-link,
|
|
221
|
+
.btn-sm-icon-destructive,
|
|
222
|
+
.btn-lg-icon,
|
|
223
|
+
.btn-lg-icon-primary,
|
|
224
|
+
.btn-lg-icon-secondary,
|
|
225
|
+
.btn-lg-icon-outline,
|
|
226
|
+
.btn-lg-icon-ghost,
|
|
227
|
+
.btn-lg-icon-link,
|
|
228
|
+
.btn-lg-icon-destructive {
|
|
229
|
+
@apply inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-pointer rounded-md;
|
|
230
|
+
}
|
|
231
|
+
.btn,
|
|
232
|
+
.btn-primary,
|
|
233
|
+
.btn-secondary,
|
|
234
|
+
.btn-outline,
|
|
235
|
+
.btn-ghost,
|
|
236
|
+
.btn-link,
|
|
237
|
+
.btn-destructive {
|
|
238
|
+
@apply gap-2 h-9 px-4 py-2 has-[>svg]:px-3;
|
|
239
|
+
}
|
|
240
|
+
.btn-icon,
|
|
241
|
+
.btn-icon-primary,
|
|
242
|
+
.btn-icon-secondary,
|
|
243
|
+
.btn-icon-outline,
|
|
244
|
+
.btn-icon-ghost,
|
|
245
|
+
.btn-icon-link,
|
|
246
|
+
.btn-icon-destructive {
|
|
247
|
+
@apply size-9;
|
|
248
|
+
}
|
|
249
|
+
.btn-sm,
|
|
250
|
+
.btn-sm-primary,
|
|
251
|
+
.btn-sm-secondary,
|
|
252
|
+
.btn-sm-outline,
|
|
253
|
+
.btn-sm-ghost,
|
|
254
|
+
.btn-sm-link,
|
|
255
|
+
.btn-sm-destructive {
|
|
256
|
+
@apply gap-1.5 h-8 px-3 has-[>svg]:px-2.5;
|
|
257
|
+
}
|
|
258
|
+
.btn-sm-icon,
|
|
259
|
+
.btn-sm-icon-primary,
|
|
260
|
+
.btn-sm-icon-secondary,
|
|
261
|
+
.btn-sm-icon-outline,
|
|
262
|
+
.btn-sm-icon-ghost,
|
|
263
|
+
.btn-sm-icon-link,
|
|
264
|
+
.btn-sm-icon-destructive {
|
|
265
|
+
@apply size-8;
|
|
266
|
+
}
|
|
267
|
+
.btn-lg,
|
|
268
|
+
.btn-lg-primary,
|
|
269
|
+
.btn-lg-secondary,
|
|
270
|
+
.btn-lg-outline,
|
|
271
|
+
.btn-lg-ghost,
|
|
272
|
+
.btn-lg-link,
|
|
273
|
+
.btn-lg-destructive {
|
|
274
|
+
@apply gap-2 h-10 px-6 has-[>svg]:px-4;
|
|
275
|
+
}
|
|
276
|
+
.btn-lg-icon,
|
|
277
|
+
.btn-lg-icon-primary,
|
|
278
|
+
.btn-lg-icon-secondary,
|
|
279
|
+
.btn-lg-icon-outline,
|
|
280
|
+
.btn-lg-icon-ghost,
|
|
281
|
+
.btn-lg-icon-link,
|
|
282
|
+
.btn-lg-icon-destructive {
|
|
283
|
+
@apply size-10;
|
|
284
|
+
}
|
|
285
|
+
.btn,
|
|
286
|
+
.btn-primary,
|
|
287
|
+
.btn-sm,
|
|
288
|
+
.btn-sm-primary,
|
|
289
|
+
.btn-lg,
|
|
290
|
+
.btn-lg-primary,
|
|
291
|
+
.btn-icon,
|
|
292
|
+
.btn-icon-primary,
|
|
293
|
+
.btn-sm-icon,
|
|
294
|
+
.btn-sm-icon-primary,
|
|
295
|
+
.btn-lg-icon,
|
|
296
|
+
.btn-lg-icon-primary {
|
|
297
|
+
@apply bg-primary text-primary-foreground shadow-xs hover:bg-primary/90;
|
|
298
|
+
&[aria-pressed='true'] {
|
|
299
|
+
@apply bg-primary/90;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
.btn-secondary,
|
|
303
|
+
.btn-sm-secondary,
|
|
304
|
+
.btn-lg-secondary,
|
|
305
|
+
.btn-icon-secondary,
|
|
306
|
+
.btn-sm-icon-secondary,
|
|
307
|
+
.btn-lg-icon-secondary {
|
|
308
|
+
@apply bg-secondary text-secondary-foreground shadow-xs;
|
|
309
|
+
&:hover,
|
|
310
|
+
&[aria-pressed='true'] {
|
|
311
|
+
@apply bg-secondary/80;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
.btn-outline,
|
|
315
|
+
.btn-sm-outline,
|
|
316
|
+
.btn-lg-outline,
|
|
317
|
+
.btn-icon-outline,
|
|
318
|
+
.btn-sm-icon-outline,
|
|
319
|
+
.btn-lg-icon-outline {
|
|
320
|
+
@apply border bg-background shadow-xs dark:bg-input/30 dark:border-input;
|
|
321
|
+
&:hover,
|
|
322
|
+
&[aria-pressed='true'] {
|
|
323
|
+
@apply bg-accent text-accent-foreground dark:bg-accent/50;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
.btn-ghost,
|
|
327
|
+
.btn-sm-ghost,
|
|
328
|
+
.btn-lg-ghost,
|
|
329
|
+
.btn-icon-ghost,
|
|
330
|
+
.btn-sm-icon-ghost,
|
|
331
|
+
.btn-lg-icon-ghost {
|
|
332
|
+
&:hover,
|
|
333
|
+
&[aria-pressed='true'] {
|
|
334
|
+
@apply bg-accent text-accent-foreground dark:bg-accent/50;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
.btn-link,
|
|
338
|
+
.btn-sm-link,
|
|
339
|
+
.btn-lg-link,
|
|
340
|
+
.btn-icon-link,
|
|
341
|
+
.btn-sm-icon-link,
|
|
342
|
+
.btn-lg-icon-link {
|
|
343
|
+
@apply text-primary underline-offset-4;
|
|
344
|
+
&:hover,
|
|
345
|
+
&[aria-pressed='true'] {
|
|
346
|
+
@apply hover:underline;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
.btn-destructive,
|
|
350
|
+
.btn-sm-destructive,
|
|
351
|
+
.btn-lg-destructive,
|
|
352
|
+
.btn-icon-destructive,
|
|
353
|
+
.btn-sm-icon-destructive,
|
|
354
|
+
.btn-lg-icon-destructive {
|
|
355
|
+
@apply bg-destructive text-white shadow-xs focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60;
|
|
356
|
+
&:hover,
|
|
357
|
+
&[aria-pressed='true'] {
|
|
358
|
+
@apply bg-destructive/90 dark:bg-destructive/50;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
/* Badge */
|
|
364
|
+
@layer components {
|
|
365
|
+
.badge,
|
|
366
|
+
.badge-primary,
|
|
367
|
+
.badge-secondary,
|
|
368
|
+
.badge-destructive,
|
|
369
|
+
.badge-outline {
|
|
370
|
+
@apply inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden
|
|
371
|
+
}
|
|
372
|
+
.badge,
|
|
373
|
+
.badge-primary {
|
|
374
|
+
@apply border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90;
|
|
375
|
+
}
|
|
376
|
+
.badge-secondary {
|
|
377
|
+
@apply border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90;
|
|
378
|
+
}
|
|
379
|
+
.badge-destructive {
|
|
380
|
+
@apply border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60;
|
|
381
|
+
}
|
|
382
|
+
.badge-outline {
|
|
383
|
+
@apply text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
/* Card */
|
|
388
|
+
@layer components {
|
|
389
|
+
.card {
|
|
390
|
+
@apply bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm;
|
|
391
|
+
|
|
392
|
+
> header {
|
|
393
|
+
@apply @container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6;
|
|
394
|
+
/* TODO: CLEAN has-data-[slot=card-action] */
|
|
395
|
+
|
|
396
|
+
h2 {
|
|
397
|
+
@apply leading-none font-semibold;
|
|
398
|
+
}
|
|
399
|
+
p {
|
|
400
|
+
@apply text-muted-foreground text-sm;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
> section {
|
|
404
|
+
@apply px-6;
|
|
405
|
+
}
|
|
406
|
+
> footer {
|
|
407
|
+
@apply flex items-center px-6 [.border-t]:pt-6;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
/* Checkbox */
|
|
413
|
+
@layer components {
|
|
414
|
+
.form input[type='checkbox']:not([role='switch']),
|
|
415
|
+
.input[type='checkbox']:not([role='switch']) {
|
|
416
|
+
@apply appearance-none border-input dark:bg-input/30 checked:bg-primary dark:checked:bg-primary checked:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50;
|
|
417
|
+
|
|
418
|
+
&:checked:after {
|
|
419
|
+
@apply content-[''] block size-3.5 bg-primary-foreground;
|
|
420
|
+
@apply mask-[image:var(--check-icon)] mask-size-[0.875rem] mask-no-repeat mask-center;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
/* Collapsible */
|
|
426
|
+
@layer components {
|
|
427
|
+
details {
|
|
428
|
+
&::details-content {
|
|
429
|
+
block-size: 0;
|
|
430
|
+
@apply block opacity-0 transition-discrete transition-all;
|
|
431
|
+
}
|
|
432
|
+
&[open]::details-content {
|
|
433
|
+
block-size: auto;
|
|
434
|
+
block-size: calc-size(auto, size);
|
|
435
|
+
@apply opacity-100;
|
|
436
|
+
}
|
|
437
|
+
summary {
|
|
438
|
+
@apply inline-flex items-center cursor-pointer;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
details > summary::-webkit-details-marker {
|
|
442
|
+
display: none;
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
/* Dialog */
|
|
447
|
+
@layer components {
|
|
448
|
+
.dialog {
|
|
449
|
+
[role='dialog'] {
|
|
450
|
+
@apply fixed inset-0 z-50 bg-black/50 opacity-0 invisible transition-all;
|
|
451
|
+
|
|
452
|
+
&:not([inert]),
|
|
453
|
+
&[inert='false'] {
|
|
454
|
+
@apply opacity-100 visible;
|
|
455
|
+
> article {
|
|
456
|
+
@apply opacity-100 scale-100 visible;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
> article {
|
|
460
|
+
@apply bg-background fixed top-[50%] left-[50%] z-50 flex flex-col w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg sm:max-w-lg opacity-0 scale-95 invisible transition-all max-h-[calc(100%-2rem)];
|
|
461
|
+
|
|
462
|
+
> header {
|
|
463
|
+
@apply flex flex-col gap-2 text-center sm:text-left;
|
|
464
|
+
|
|
465
|
+
> h2 {
|
|
466
|
+
@apply text-lg leading-none font-semibold;
|
|
467
|
+
}
|
|
468
|
+
> p {
|
|
469
|
+
@apply text-muted-foreground text-sm;
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
> section {
|
|
473
|
+
@apply flex-1 -mx-6 px-6;
|
|
474
|
+
}
|
|
475
|
+
> footer {
|
|
476
|
+
@apply flex flex-col-reverse gap-2 sm:flex-row sm:justify-end;
|
|
477
|
+
}
|
|
478
|
+
> button {
|
|
479
|
+
@apply ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4;
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
/* Input */
|
|
487
|
+
@layer components {
|
|
488
|
+
.form input[type='text'],
|
|
489
|
+
.form input[type='email'],
|
|
490
|
+
.form input[type='password'],
|
|
491
|
+
.form input[type='number'],
|
|
492
|
+
.form input[type='file'],
|
|
493
|
+
.form input[type='tel'],
|
|
494
|
+
.form input[type='url'],
|
|
495
|
+
.form input[type='search'],
|
|
496
|
+
.form input[type='date'],
|
|
497
|
+
.form input[type='datetime-local'],
|
|
498
|
+
.form input[type='month'],
|
|
499
|
+
.form input[type='week'],
|
|
500
|
+
.form input[type='time'],
|
|
501
|
+
.input[type='text'],
|
|
502
|
+
.input[type='email'],
|
|
503
|
+
.input[type='password'],
|
|
504
|
+
.input[type='number'],
|
|
505
|
+
.input[type='file'],
|
|
506
|
+
.input[type='tel'],
|
|
507
|
+
.input[type='url'],
|
|
508
|
+
.input[type='search'],
|
|
509
|
+
.input[type='date'],
|
|
510
|
+
.input[type='datetime-local'],
|
|
511
|
+
.input[type='month'],
|
|
512
|
+
.input[type='week'],
|
|
513
|
+
.input[type='time'] {
|
|
514
|
+
@apply appearance-none file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm;
|
|
515
|
+
@apply focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px];
|
|
516
|
+
@apply aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive;
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
/* Label */
|
|
521
|
+
@layer components {
|
|
522
|
+
.form label,
|
|
523
|
+
.label {
|
|
524
|
+
@apply flex items-center gap-2 text-sm leading-none font-medium select-none peer-disabled:pointer-events-none peer-disabled:opacity-50;
|
|
525
|
+
|
|
526
|
+
&:has(>*:disabled),
|
|
527
|
+
&:has(+*:disabled) {
|
|
528
|
+
@apply opacity-50 pointer-events-none;
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
/* Popover */
|
|
534
|
+
@layer components {
|
|
535
|
+
.popover {
|
|
536
|
+
@apply relative inline-flex;
|
|
537
|
+
|
|
538
|
+
> [data-popover] {
|
|
539
|
+
@apply absolute bg-popover text-popover-foreground overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md z-50 visible opacity-100 scale-100 min-w-full w-max transition-all;
|
|
540
|
+
|
|
541
|
+
&[aria-hidden='true'] {
|
|
542
|
+
@apply invisible opacity-0 scale-95;
|
|
543
|
+
|
|
544
|
+
&:not([data-side]),
|
|
545
|
+
&[data-side='bottom'] {
|
|
546
|
+
@apply -translate-y-2;
|
|
547
|
+
}
|
|
548
|
+
&[data-side='top'] {
|
|
549
|
+
@apply translate-y-2;
|
|
550
|
+
}
|
|
551
|
+
&[data-side='left'] {
|
|
552
|
+
@apply translate-x-2;
|
|
553
|
+
}
|
|
554
|
+
&[data-side='right'] {
|
|
555
|
+
@apply -translate-x-2;
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
&:not([data-side]),
|
|
559
|
+
&[data-side='bottom'] {
|
|
560
|
+
@apply mt-1 top-full;
|
|
561
|
+
}
|
|
562
|
+
&[data-side='top'] {
|
|
563
|
+
@apply mb-1 bottom-full;
|
|
564
|
+
}
|
|
565
|
+
&[data-side='left'] {
|
|
566
|
+
@apply mr-1 right-full;
|
|
567
|
+
}
|
|
568
|
+
&[data-side='right'] {
|
|
569
|
+
@apply ml-1 left-full;
|
|
570
|
+
}
|
|
571
|
+
&:not([data-side]),
|
|
572
|
+
&[data-side='bottom'],
|
|
573
|
+
&[data-side='top'] {
|
|
574
|
+
&:not([data-align]),
|
|
575
|
+
&[data-align='start'] {
|
|
576
|
+
@apply left-0;
|
|
577
|
+
}
|
|
578
|
+
&[data-align='end'] {
|
|
579
|
+
@apply right-0;
|
|
580
|
+
}
|
|
581
|
+
&[data-align='center'] {
|
|
582
|
+
@apply left-1/2 -translate-x-1/2;
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
&[data-side='left'],
|
|
586
|
+
&[data-side='right'] {
|
|
587
|
+
&:not([data-align]),
|
|
588
|
+
&[data-align='start'] {
|
|
589
|
+
@apply top-0;
|
|
590
|
+
}
|
|
591
|
+
&[data-align='end'] {
|
|
592
|
+
@apply bottom-0;
|
|
593
|
+
}
|
|
594
|
+
&[data-align='center'] {
|
|
595
|
+
@apply top-1/2 -translate-y-1/2;
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
[role='menuitem'],
|
|
599
|
+
[role='menuitemcheckbox'],
|
|
600
|
+
[role='menuitemradio'],
|
|
601
|
+
[role='option'] {
|
|
602
|
+
@apply aria-hidden:hidden [&_svg]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none [&_svg]:shrink-0 [&_svg]:size-4 aria-disabled:opacity-50 aria-disabled:pointer-events-none disabled:opacity-50 disabled:pointer-events-none w-full truncate;
|
|
603
|
+
}
|
|
604
|
+
[role='menuitem'],
|
|
605
|
+
[role='menuitemcheckbox'],
|
|
606
|
+
[role='menuitemradio'] {
|
|
607
|
+
@apply focus-visible:bg-accent focus-visible:text-accent-foreground hover:bg-accent hover:text-accent-foreground;
|
|
608
|
+
}
|
|
609
|
+
[role='option'] {
|
|
610
|
+
@apply data-[focus]:bg-accent data-[focus]:text-accent-foreground pr-7.5;
|
|
611
|
+
|
|
612
|
+
&[aria-selected='true'] {
|
|
613
|
+
@apply bg-[image:var(--check-icon)] bg-no-repeat bg-position-[center_right_0.5rem] bg-size-[0.875rem];
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
[role='menu'] [role='heading'] {
|
|
617
|
+
@apply flex px-2 py-1.5 text-sm font-medium;
|
|
618
|
+
}
|
|
619
|
+
[role='listbox'] [role='heading'] {
|
|
620
|
+
@apply flex text-muted-foreground px-2 py-1.5 text-xs;
|
|
621
|
+
}
|
|
622
|
+
[role='listbox'] [role='group']:not(:has([role='option']:not([aria-hidden='true']))) {
|
|
623
|
+
@apply hidden;
|
|
624
|
+
}
|
|
625
|
+
[role='separator'] {
|
|
626
|
+
@apply border-border -mx-1 my-1;
|
|
627
|
+
}
|
|
628
|
+
/* Combobox */
|
|
629
|
+
> header {
|
|
630
|
+
@apply flex h-9 items-center gap-2 border-b px-3 -mx-1 -mt-1 mb-1;
|
|
631
|
+
|
|
632
|
+
svg {
|
|
633
|
+
@apply size-4 shrink-0 opacity-50;
|
|
634
|
+
}
|
|
635
|
+
input[role='combobox'] {
|
|
636
|
+
@apply placeholder:text-muted-foreground flex h-10 flex-1 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50 min-w-0;
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
[role='listbox']:not(:has([data-value]:not([aria-hidden='true'])))::before {
|
|
640
|
+
@apply flex items-center justify-center p-6 text-sm truncate;
|
|
641
|
+
}
|
|
642
|
+
[role='listbox'][data-empty]:not(:has([data-value]:not([aria-hidden='true'])))::before {
|
|
643
|
+
@apply content-[attr(data-empty)];
|
|
644
|
+
}
|
|
645
|
+
[role='listbox']:not([data-empty]):not(:has([data-value]:not([aria-hidden='true'])))::before {
|
|
646
|
+
@apply content-['No_results_found'];
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
/* Radio */
|
|
653
|
+
@layer components {
|
|
654
|
+
.form input[type='radio'],
|
|
655
|
+
.input[type='radio'] {
|
|
656
|
+
@apply appearance-none border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 relative;
|
|
657
|
+
|
|
658
|
+
&:checked:before {
|
|
659
|
+
@apply absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 content-[''] rounded-full size-2 bg-primary;
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
/* Range */
|
|
665
|
+
@layer components {
|
|
666
|
+
.form input[type='range'],
|
|
667
|
+
.input[type='range'] {
|
|
668
|
+
@apply appearance-none flex items-center p-0 outline-none;
|
|
669
|
+
--slider-value: 20%;
|
|
670
|
+
|
|
671
|
+
&:hover,
|
|
672
|
+
&:focus-visible {
|
|
673
|
+
&::-webkit-slider-thumb {
|
|
674
|
+
@apply ring-4;
|
|
675
|
+
}
|
|
676
|
+
&::-moz-range-thumb {
|
|
677
|
+
@apply ring-4;
|
|
678
|
+
}
|
|
679
|
+
&::-ms-thumb {
|
|
680
|
+
@apply ring-4;
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
&::-webkit-slider-thumb {
|
|
685
|
+
@apply appearance-none border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm -mt-1.25;
|
|
686
|
+
}
|
|
687
|
+
&::-webkit-slider-runnable-track {
|
|
688
|
+
@apply appearance-none rounded-full h-1.5 w-full;
|
|
689
|
+
background: linear-gradient(to right, var(--primary) var(--slider-value), var(--muted) var(--slider-value));
|
|
690
|
+
}
|
|
691
|
+
&::-moz-range-thumb {
|
|
692
|
+
@apply appearance-none border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm -mt-1.25;
|
|
693
|
+
}
|
|
694
|
+
&::-moz-range-track {
|
|
695
|
+
@apply appearance-none rounded-full h-1.5 w-full;
|
|
696
|
+
background: linear-gradient(to right, var(--primary) var(--slider-value), var(--muted) var(--slider-value));
|
|
697
|
+
}
|
|
698
|
+
&::-ms-thumb {
|
|
699
|
+
@apply appearance-none border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm -mt-1.25;
|
|
700
|
+
}
|
|
701
|
+
&::-ms-track {
|
|
702
|
+
@apply appearance-none rounded-full h-1.5 w-full;
|
|
703
|
+
}
|
|
704
|
+
&::-ms-fill-lower {
|
|
705
|
+
@apply bg-primary rounded-full;
|
|
706
|
+
}
|
|
707
|
+
&::-ms-fill-upper {
|
|
708
|
+
@apply bg-muted rounded-full;
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
/* Select */
|
|
714
|
+
@layer components {
|
|
715
|
+
.form select,
|
|
716
|
+
.select {
|
|
717
|
+
@apply appearance-none border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent pl-3 pr-9 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 h-9;
|
|
718
|
+
@apply bg-[image:var(--chevron-down-icon-50)] bg-no-repeat bg-position-[center_right_0.75rem] bg-size-[1rem];
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
/* Sidebar */
|
|
723
|
+
.sidebar {
|
|
724
|
+
&[data-uninitialized] {
|
|
725
|
+
@apply max-md:hidden;
|
|
726
|
+
}
|
|
727
|
+
&:not([aria-hidden]),
|
|
728
|
+
&[aria-hidden=false] {
|
|
729
|
+
@apply max-md:bg-black/50 max-md:fixed max-md:inset-0 max-md:z-40;
|
|
730
|
+
}
|
|
731
|
+
nav {
|
|
732
|
+
@apply bg-sidebar text-sidebar-foreground flex flex-col w-(--sidebar-mobile-width) md:w-(--sidebar-width) fixed inset-y-0 transition-transform ease-in-out duration-300 z-50;
|
|
733
|
+
}
|
|
734
|
+
&:not([data-side]),
|
|
735
|
+
&[data-side=left] {
|
|
736
|
+
nav {
|
|
737
|
+
@apply left-0 border-r;
|
|
738
|
+
}
|
|
739
|
+
& + * {
|
|
740
|
+
@apply relative md:ml-(--sidebar-width) transition-[margin] ease-in-out duration-300;
|
|
741
|
+
}
|
|
742
|
+
&[aria-hidden=true] {
|
|
743
|
+
nav {
|
|
744
|
+
@apply -translate-x-full;
|
|
745
|
+
}
|
|
746
|
+
& + * {
|
|
747
|
+
@apply md:ml-0;
|
|
748
|
+
}
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
&[data-side=right] {
|
|
752
|
+
nav {
|
|
753
|
+
@apply right-0 border-l;
|
|
754
|
+
}
|
|
755
|
+
& + * {
|
|
756
|
+
@apply relative md:mr-(--sidebar-width) transition-[margin] ease-in-out duration-300;
|
|
757
|
+
}
|
|
758
|
+
&[aria-hidden=true] {
|
|
759
|
+
nav {
|
|
760
|
+
@apply translate-x-full;
|
|
761
|
+
}
|
|
762
|
+
& + * {
|
|
763
|
+
@apply md:mr-0;
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
nav {
|
|
768
|
+
> header,
|
|
769
|
+
> footer {
|
|
770
|
+
@apply flex flex-col gap-2 p-2;
|
|
771
|
+
}
|
|
772
|
+
[role=separator] {
|
|
773
|
+
@apply border-sidebar-border mx-2 w-auto;
|
|
774
|
+
}
|
|
775
|
+
> section {
|
|
776
|
+
@apply flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto;
|
|
777
|
+
|
|
778
|
+
> [role=group] {
|
|
779
|
+
@apply relative flex w-full min-w-0 flex-col p-2;
|
|
780
|
+
}
|
|
781
|
+
h3 {
|
|
782
|
+
@apply text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0;
|
|
783
|
+
}
|
|
784
|
+
ul {
|
|
785
|
+
@apply flex w-full min-w-0 flex-col gap-1;
|
|
786
|
+
|
|
787
|
+
li {
|
|
788
|
+
@apply relative;
|
|
789
|
+
|
|
790
|
+
> a,
|
|
791
|
+
> details > summary {
|
|
792
|
+
@apply flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&[aria-current=page]]:bg-sidebar-accent [&[aria-current=page]]:font-medium [&[aria-current=page]]:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0;
|
|
793
|
+
|
|
794
|
+
&:not([data-variant]),
|
|
795
|
+
&[data-variant=default] {
|
|
796
|
+
@apply hover:bg-sidebar-accent hover:text-sidebar-accent-foreground;
|
|
797
|
+
}
|
|
798
|
+
&[data-variant=outline] {
|
|
799
|
+
@apply bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))];
|
|
800
|
+
}
|
|
801
|
+
&:not([data-size]),
|
|
802
|
+
&[data-size=default] {
|
|
803
|
+
@apply h-8 text-sm;
|
|
804
|
+
}
|
|
805
|
+
&[data-size=sm] {
|
|
806
|
+
@apply h-7 text-xs;
|
|
807
|
+
}
|
|
808
|
+
&[data-size=lg] {
|
|
809
|
+
@apply h-12 text-sm group-data-[collapsible=icon]:p-0!;
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
> details {
|
|
813
|
+
&:not([open]) {
|
|
814
|
+
> summary {
|
|
815
|
+
&::after {
|
|
816
|
+
@apply -rotate-90;
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
}
|
|
820
|
+
> summary {
|
|
821
|
+
&::after {
|
|
822
|
+
@apply content-[''] block size-3.5 bg-primary ml-auto transition-transform ease-linear;
|
|
823
|
+
@apply mask-[image:var(--chevron-down-icon)] mask-size-[1rem] mask-no-repeat mask-center;
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
&::details-content {
|
|
827
|
+
@apply px-3.5;
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
}
|
|
831
|
+
ul {
|
|
832
|
+
@apply border-sidebar-border flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5 w-full;
|
|
833
|
+
}
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
}
|
|
838
|
+
|
|
839
|
+
/* Switch */
|
|
840
|
+
@layer components {
|
|
841
|
+
.form input[type='checkbox'][role='switch'],
|
|
842
|
+
.input[type='checkbox'][role='switch'] {
|
|
843
|
+
@apply appearance-none focus-visible:border-ring focus-visible:ring-ring/50 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50;
|
|
844
|
+
@apply bg-input dark:bg-input/80 checked:bg-primary dark:checked:bg-primary;
|
|
845
|
+
@apply before:content-[''] before:pointer-events-none before:block before:size-4 before:rounded-full before:ring-0 before:transition-all;
|
|
846
|
+
@apply before:bg-background dark:before:bg-foreground;
|
|
847
|
+
@apply dark:checked:before:bg-primary-foreground checked:before:ms-3.5;
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
|
|
851
|
+
/* Tables */
|
|
852
|
+
@layer components {
|
|
853
|
+
.table {
|
|
854
|
+
@apply w-full caption-bottom text-sm;
|
|
855
|
+
thead {
|
|
856
|
+
@apply [&_tr]:border-b;
|
|
857
|
+
}
|
|
858
|
+
tbody {
|
|
859
|
+
@apply [&_tr:last-child]:border-0;
|
|
860
|
+
}
|
|
861
|
+
tfoot {
|
|
862
|
+
@apply bg-muted/50 border-t font-medium [&>tr]:last:border-b-0;
|
|
863
|
+
}
|
|
864
|
+
tr {
|
|
865
|
+
@apply hover:bg-muted/50 border-b transition-colors;
|
|
866
|
+
}
|
|
867
|
+
th {
|
|
868
|
+
@apply text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px];
|
|
869
|
+
}
|
|
870
|
+
td {
|
|
871
|
+
@apply p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px];
|
|
872
|
+
}
|
|
873
|
+
caption {
|
|
874
|
+
@apply text-muted-foreground mt-4 text-sm;
|
|
875
|
+
}
|
|
876
|
+
}
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
/* Tabs */
|
|
880
|
+
@layer components {
|
|
881
|
+
.tabs {
|
|
882
|
+
@apply flex flex-col gap-2;
|
|
883
|
+
|
|
884
|
+
[role='tablist'] {
|
|
885
|
+
@apply bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px];
|
|
886
|
+
|
|
887
|
+
[role='tab'] {
|
|
888
|
+
@apply focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4;
|
|
889
|
+
|
|
890
|
+
&[aria-selected='true'] {
|
|
891
|
+
@apply bg-background dark:text-foreground dark:border-input dark:bg-input/30 shadow-sm;
|
|
892
|
+
}
|
|
893
|
+
}
|
|
894
|
+
}
|
|
895
|
+
[role='tabpanel'] {
|
|
896
|
+
@apply flex-1 outline-none;
|
|
897
|
+
}
|
|
898
|
+
}
|
|
899
|
+
}
|
|
900
|
+
|
|
901
|
+
/* Textarea */
|
|
902
|
+
@layer components {
|
|
903
|
+
.form textarea,
|
|
904
|
+
.textarea {
|
|
905
|
+
@apply border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm;
|
|
906
|
+
}
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
/* Toasts */
|
|
910
|
+
@layer components {
|
|
911
|
+
.toaster {
|
|
912
|
+
@apply fixed bottom-0 p-4 pointer-events-none z-50 w-full sm:max-w-90 flex flex-col-reverse;
|
|
913
|
+
|
|
914
|
+
&:not([data-align]),
|
|
915
|
+
&[data-align='end'] {
|
|
916
|
+
@apply right-0;
|
|
917
|
+
}
|
|
918
|
+
&[data-align='start'] {
|
|
919
|
+
@apply left-0;
|
|
920
|
+
}
|
|
921
|
+
&[data-align='center'] {
|
|
922
|
+
@apply left-1/2 -translate-x-1/2;
|
|
923
|
+
}
|
|
924
|
+
.toast {
|
|
925
|
+
@apply pointer-events-auto w-full mt-4 animate-[toast-up_0.3s_ease-in-out] grid grid-rows-[1fr] transition-[grid-template-rows,opacity,margin] duration-300 ease-in-out;
|
|
926
|
+
|
|
927
|
+
.toast-content {
|
|
928
|
+
@apply text-popover-foreground text-[13px] bg-popover border shadow-lg rounded-lg overflow-hidden;
|
|
929
|
+
}
|
|
930
|
+
&[aria-hidden='true'] {
|
|
931
|
+
@apply grid-rows-[0fr] opacity-0 m-0 border-0 p-0 overflow-hidden;
|
|
932
|
+
|
|
933
|
+
.toast-content {
|
|
934
|
+
@apply border-0;
|
|
935
|
+
}
|
|
936
|
+
}
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
}
|
|
940
|
+
@keyframes toast-up {
|
|
941
|
+
from {
|
|
942
|
+
opacity: 0;
|
|
943
|
+
transform: translateY(100%);
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
/* Tooltip */
|
|
948
|
+
@layer components {
|
|
949
|
+
[data-tooltip] {
|
|
950
|
+
@apply relative;
|
|
951
|
+
|
|
952
|
+
&:before {
|
|
953
|
+
@apply absolute content-[attr(data-tooltip)] bg-primary text-primary-foreground z-50 truncate max-w-xs w-fit rounded-md px-3 py-1.5 text-xs invisible opacity-0 scale-95 transition-all pointer-events-none;
|
|
954
|
+
}
|
|
955
|
+
&:hover:before {
|
|
956
|
+
@apply visible opacity-100 scale-100;
|
|
957
|
+
}
|
|
958
|
+
&:focus-visible:not(:hover):before {
|
|
959
|
+
@apply hidden;
|
|
960
|
+
}
|
|
961
|
+
&:not([data-side]),
|
|
962
|
+
&[data-side='top'] {
|
|
963
|
+
@apply before:bottom-full before:mb-1.5 before:translate-y-2 hover:before:translate-y-0 ;
|
|
964
|
+
}
|
|
965
|
+
&[data-side='bottom'] {
|
|
966
|
+
@apply before:top-full before:mt-1.5 before:-translate-y-2 hover:before:translate-y-0 ;
|
|
967
|
+
}
|
|
968
|
+
&:not([data-side]),
|
|
969
|
+
&[data-side='top'],
|
|
970
|
+
&[data-side='bottom'] {
|
|
971
|
+
&[data-align='start'] {
|
|
972
|
+
@apply before:left-0;
|
|
973
|
+
}
|
|
974
|
+
&[data-align='end'] {
|
|
975
|
+
@apply before:right-0;
|
|
976
|
+
}
|
|
977
|
+
&:not([data-align]),
|
|
978
|
+
&[data-align='center'] {
|
|
979
|
+
@apply before:left-1/2 before:-translate-x-1/2;
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
&[data-side='left'] {
|
|
983
|
+
@apply before:right-full before:mr-1.5 before:translate-x-2 hover:before:translate-x-0;
|
|
984
|
+
}
|
|
985
|
+
&[data-side='right'] {
|
|
986
|
+
@apply before:left-full before:ml-1.5 before:-translate-x-2 hover:before:translate-x-0;
|
|
987
|
+
}
|
|
988
|
+
&[data-side='left'],
|
|
989
|
+
&[data-side='right'] {
|
|
990
|
+
&[data-align='start'] {
|
|
991
|
+
@apply before:top-0;
|
|
992
|
+
}
|
|
993
|
+
&[data-align='end'] {
|
|
994
|
+
@apply before:bottom-0;
|
|
995
|
+
}
|
|
996
|
+
&:not([data-align]),
|
|
997
|
+
&[data-align='center'] {
|
|
998
|
+
@apply before:top-1/2 before:-translate-y-1/2;
|
|
999
|
+
}
|
|
1000
|
+
}
|
|
1001
|
+
}
|
|
1002
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "basecoat-css",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Tailwind CSS for Basecoat components",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "hunvreus",
|
|
7
|
+
"url": "https://x.com/hunvreus"
|
|
8
|
+
},
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"main": "dist/basecoat.css",
|
|
11
|
+
"style": "dist/basecoat.css",
|
|
12
|
+
"files": [
|
|
13
|
+
"dist/"
|
|
14
|
+
],
|
|
15
|
+
"keywords": [
|
|
16
|
+
"components",
|
|
17
|
+
"component library",
|
|
18
|
+
"component system",
|
|
19
|
+
"ui",
|
|
20
|
+
"ui kit",
|
|
21
|
+
"shadcn",
|
|
22
|
+
"shadcn/ui",
|
|
23
|
+
"tailwind",
|
|
24
|
+
"tailwindcss",
|
|
25
|
+
"css",
|
|
26
|
+
"html",
|
|
27
|
+
"jinja",
|
|
28
|
+
"nunjucks",
|
|
29
|
+
"alpinejs"
|
|
30
|
+
],
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "git+https://github.com/hunvreus/basecoat.git",
|
|
34
|
+
"directory": "packages/css"
|
|
35
|
+
},
|
|
36
|
+
"bugs": {
|
|
37
|
+
"url": "https://github.com/hunvreus/basecoat/issues"
|
|
38
|
+
},
|
|
39
|
+
"homepage": "https://basecoatui.com/installation#install-css"
|
|
40
|
+
}
|