shru-design-system 0.0.9 → 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.
@@ -1,640 +0,0 @@
1
- @import "tailwindcss";
2
- @import "tw-animate-css";
3
- /* refer: https://tailwindcss.com/docs/theme */
4
-
5
- @custom-variant dark (&:is(.dark *));
6
-
7
- @custom-variant fixed (&:is(.layout-fixed *));
8
-
9
- @theme inline {
10
- --breakpoint-3xl: 1600px;
11
- --breakpoint-4xl: 2000px;
12
- --font-sans: var(--font-sans);
13
- --font-mono: var(--font-mono);
14
- --radius-sm: calc(var(--radius) - 4px);
15
- --radius-md: calc(var(--radius) - 2px);
16
- --radius-lg: var(--radius);
17
- --radius-xl: calc(var(--radius) + 4px);
18
- --color-background: var(--background);
19
- --color-foreground: var(--foreground);
20
- --color-card: var(--card);
21
- --color-card-foreground: var(--card-foreground);
22
- --color-popover: var(--popover);
23
- --color-popover-foreground: var(--popover-foreground);
24
- --color-primary: var(--primary);
25
- --color-primary-foreground: var(--primary-foreground);
26
- --color-secondary: var(--secondary);
27
- --color-secondary-foreground: var(--secondary-foreground);
28
- --color-muted: var(--muted);
29
- --color-muted-foreground: var(--muted-foreground);
30
- --color-accent: var(--accent);
31
- --color-accent-foreground: var(--accent-foreground);
32
- --color-destructive: var(--destructive);
33
- --color-border: var(--border);
34
- --color-input: var(--input);
35
- --color-ring: var(--ring);
36
- --color-chart-1: var(--chart-1);
37
- --color-chart-2: var(--chart-2);
38
- --color-chart-3: var(--chart-3);
39
- --color-chart-4: var(--chart-4);
40
- --color-chart-5: var(--chart-5);
41
- --color-sidebar: var(--sidebar);
42
- --color-sidebar-foreground: var(--sidebar-foreground);
43
- --color-sidebar-primary: var(--sidebar-primary);
44
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
45
- --color-sidebar-accent: var(--sidebar-accent);
46
- --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
47
- --color-sidebar-border: var(--sidebar-border);
48
- --color-sidebar-ring: var(--sidebar-ring);
49
- --color-surface: var(--surface);
50
- --color-surface-foreground: var(--surface-foreground);
51
- --color-code: var(--code);
52
- --color-code-foreground: var(--code-foreground);
53
- --color-code-highlight: var(--code-highlight);
54
- --color-code-number: var(--code-number);
55
- --color-selection: var(--selection);
56
- --color-selection-foreground: var(--selection-foreground);
57
- --color-skeleton: var(--skeleton);
58
- }
59
-
60
- :root {
61
- --radius: 0.625rem;
62
- /* Spacing variable - required for Tailwind v4's generated utilities */
63
- --spacing: 0.25rem; /* 1 unit = 0.25rem (4px), so px-4 = calc(0.25rem * 4) = 1rem */
64
-
65
- /* Color palette variables - required for chart and other components */
66
- --color-blue-50: #eff6ff;
67
- --color-blue-100: #dbeafe;
68
- --color-blue-200: #bfdbfe;
69
- --color-blue-300: #93c5fd;
70
- --color-blue-400: #60a5fa;
71
- --color-blue-500: #3b82f6;
72
- --color-blue-600: #2563eb;
73
- --color-blue-700: #1d4ed8;
74
- --color-blue-800: #1e40af;
75
- --color-blue-900: #1e3a8a;
76
- --color-blue-950: #172554;
77
-
78
- /* Semantic color variables */
79
- --background: oklch(1 0 0);
80
- --foreground: oklch(0.145 0 0);
81
- --card: oklch(1 0 0);
82
- --card-foreground: oklch(0.145 0 0);
83
- --popover: oklch(1 0 0);
84
- --popover-foreground: oklch(0.145 0 0);
85
- --primary: oklch(0.205 0 0);
86
- --primary-foreground: oklch(0.985 0 0);
87
- --secondary: oklch(0.97 0 0);
88
- --secondary-foreground: oklch(0.205 0 0);
89
- --muted: oklch(0.97 0 0);
90
- --muted-foreground: oklch(0.556 0 0);
91
- --accent: oklch(0.97 0 0);
92
- --accent-foreground: oklch(0.205 0 0);
93
- --destructive: oklch(0.577 0.245 27.325);
94
- --border: oklch(0.922 0 0);
95
- --input: oklch(0.922 0 0);
96
- --ring: oklch(0.708 0 0);
97
- --chart-1: var(--color-blue-300);
98
- --chart-2: var(--color-blue-500);
99
- --chart-3: var(--color-blue-600);
100
- --chart-4: var(--color-blue-700);
101
- --chart-5: var(--color-blue-800);
102
- --sidebar: oklch(0.985 0 0);
103
- --sidebar-foreground: oklch(0.145 0 0);
104
- --sidebar-primary: oklch(0.205 0 0);
105
- --sidebar-primary-foreground: oklch(0.985 0 0);
106
- --sidebar-accent: oklch(0.97 0 0);
107
- --sidebar-accent-foreground: oklch(0.205 0 0);
108
- --sidebar-border: oklch(0.922 0 0);
109
- --sidebar-ring: oklch(0.708 0 0);
110
- --surface: oklch(0.98 0 0);
111
- --surface-foreground: var(--foreground);
112
- --code: var(--surface);
113
- --code-foreground: var(--surface-foreground);
114
- --code-highlight: oklch(0.96 0 0);
115
- --code-number: oklch(0.56 0 0);
116
- --selection: oklch(0.145 0 0);
117
- --selection-foreground: oklch(1 0 0);
118
- --skeleton: oklch(0.92 0 0);
119
- }
120
-
121
- .dark {
122
- --background: oklch(0.145 0 0);
123
- --foreground: oklch(0.985 0 0);
124
- --card: oklch(0.205 0 0);
125
- --card-foreground: oklch(0.985 0 0);
126
- --popover: oklch(0.269 0 0);
127
- --popover-foreground: oklch(0.985 0 0);
128
- --primary: oklch(0.922 0 0);
129
- --primary-foreground: oklch(0.205 0 0);
130
- --secondary: oklch(0.269 0 0);
131
- --secondary-foreground: oklch(0.985 0 0);
132
- --muted: oklch(0.269 0 0);
133
- --muted-foreground: oklch(0.708 0 0);
134
- --accent: oklch(0.371 0 0);
135
- --accent-foreground: oklch(0.985 0 0);
136
- --destructive: oklch(0.704 0.191 22.216);
137
- --border: oklch(1 0 0 / 10%);
138
- --input: oklch(1 0 0 / 15%);
139
- --ring: oklch(0.556 0 0);
140
- --chart-1: var(--color-blue-300);
141
- --chart-2: var(--color-blue-500);
142
- --chart-3: var(--color-blue-600);
143
- --chart-4: var(--color-blue-700);
144
- --chart-5: var(--color-blue-800);
145
- --sidebar: oklch(0.205 0 0);
146
- --sidebar-foreground: oklch(0.985 0 0);
147
- --sidebar-primary: oklch(0.488 0.243 264.376);
148
- --sidebar-primary-foreground: oklch(0.985 0 0);
149
- --sidebar-accent: oklch(0.269 0 0);
150
- --sidebar-accent-foreground: oklch(0.985 0 0);
151
- --sidebar-border: oklch(1 0 0 / 10%);
152
- --sidebar-ring: oklch(0.439 0 0);
153
- --surface: oklch(0.2 0 0);
154
- --surface-foreground: oklch(0.708 0 0);
155
- --code: var(--surface);
156
- --code-foreground: var(--surface-foreground);
157
- --code-highlight: oklch(0.27 0 0);
158
- --code-number: oklch(0.72 0 0);
159
- --selection: oklch(0.922 0 0);
160
- --selection-foreground: oklch(0.205 0 0);
161
- --skeleton: oklch(0.32 0 0);
162
- }
163
-
164
- @layer base {
165
- * {
166
- @apply border-border outline-ring/50;
167
- }
168
- ::selection {
169
- @apply bg-selection text-selection-foreground;
170
- }
171
- html {
172
- @apply overscroll-none scroll-smooth;
173
- }
174
- body {
175
- @apply bg-background text-foreground;
176
- font-synthesis-weight: none;
177
- text-rendering: optimizeLegibility;
178
- }
179
-
180
- [data-slot="layout"] {
181
- @apply 3xl:p-2 3xl:fixed:p-0 overscroll-none;
182
- }
183
-
184
- @supports (font: -apple-system-body) and (-webkit-appearance: none) {
185
- [data-wrapper] {
186
- @apply min-[1800px]:border-t;
187
- }
188
- }
189
-
190
- a:active,
191
- button:active {
192
- @apply opacity-60 md:opacity-100;
193
- }
194
- }
195
-
196
- @utility border-grid {
197
- @apply border-border/50 dark:border-border;
198
- }
199
-
200
- @utility section-soft {
201
- @apply from-background to-surface/40 dark:bg-background 3xl:fixed:bg-none bg-gradient-to-b;
202
- }
203
-
204
- @utility theme-container {
205
- @apply font-sans;
206
- }
207
-
208
- @utility container-wrapper {
209
- @apply 3xl:fixed:max-w-[calc(var(--breakpoint-2xl)+2rem)] mx-auto w-full px-2;
210
- }
211
-
212
- @utility container {
213
- @apply 3xl:max-w-screen-2xl mx-auto max-w-[1400px] px-4 lg:px-8;
214
- }
215
-
216
- @utility no-scrollbar {
217
- -ms-overflow-style: none;
218
- scrollbar-width: none;
219
-
220
- &::-webkit-scrollbar {
221
- display: none;
222
- }
223
- }
224
-
225
- @utility border-ghost {
226
- @apply after:border-border relative after:absolute after:inset-0 after:border after:mix-blend-darken dark:after:mix-blend-lighten;
227
- }
228
-
229
- @utility step {
230
- counter-increment: step;
231
- @apply relative;
232
-
233
- &:before {
234
- @apply text-muted-foreground right-0 mr-2 hidden size-7 items-center justify-center rounded-full text-center -indent-px font-mono text-sm font-medium md:absolute;
235
- content: counter(step);
236
- }
237
- }
238
-
239
- @utility extend-touch-target {
240
- @media (pointer: coarse) {
241
- @apply relative touch-manipulation after:absolute after:-inset-2;
242
- }
243
- }
244
-
245
- /*
246
- * Override broken Tailwind v4 generated utilities
247
- * Tailwind v4 has bugs with some utility generation (e.g., rounded-full generates infinity)
248
- * We explicitly define these to ensure they work correctly
249
- */
250
-
251
- /*
252
- * Pre-generated utility classes for design system components
253
- * These utilities are explicitly defined to ensure they work in consuming apps
254
- * without requiring Tailwind configuration or scanning
255
- *
256
- * Generated from 98 component files
257
- * Total classes: 423
258
- */
259
-
260
-
261
- /*
262
- * Pre-generated utility classes for design system components
263
- * These utilities are explicitly defined to ensure they work in consuming apps
264
- * without requiring Tailwind configuration or scanning
265
- *
266
- * Generated from 98 component files
267
- * Total classes: 423
268
- */
269
-
270
- /*
271
- * COMPREHENSIVE UTILITY OVERRIDES
272
- * These utilities are explicitly defined to work in consuming apps
273
- * without requiring Tailwind configuration or scanning.
274
- * This ensures components "just work" when imported from npm.
275
- *
276
- * IMPORTANT: These are OUTSIDE @layer utilities and placed at the end
277
- * to ensure they override Tailwind's generated utilities.
278
- */
279
-
280
- /* Border Radius */
281
- .rounded-none { border-radius: 0 !important; }
282
- .rounded-sm { border-radius: var(--radius-sm) !important; }
283
- .rounded { border-radius: var(--radius) !important; }
284
- .rounded-md { border-radius: var(--radius-md) !important; }
285
- .rounded-lg { border-radius: var(--radius-lg) !important; }
286
- .rounded-xl { border-radius: var(--radius-xl) !important; }
287
- .rounded-2xl { border-radius: calc(var(--radius) + 8px) !important; }
288
- .rounded-full { border-radius: 9999px !important; }
289
-
290
- /* Spacing - Padding */
291
- .p-0 { padding: 0 !important; }
292
- .p-1 { padding: calc(var(--spacing) * 1) !important; }
293
- .p-2 { padding: calc(var(--spacing) * 2) !important; }
294
- .p-3 { padding: calc(var(--spacing) * 3) !important; }
295
- .p-4 { padding: calc(var(--spacing) * 4) !important; }
296
- .p-6 { padding: calc(var(--spacing) * 6) !important; }
297
- .p-8 { padding: calc(var(--spacing) * 8) !important; }
298
- .px-1 { padding-left: calc(var(--spacing) * 1) !important; padding-right: calc(var(--spacing) * 1) !important; }
299
- .px-2 { padding-left: calc(var(--spacing) * 2) !important; padding-right: calc(var(--spacing) * 2) !important; }
300
- .px-3 { padding-left: calc(var(--spacing) * 3) !important; padding-right: calc(var(--spacing) * 3) !important; }
301
- .px-4 { padding-left: calc(var(--spacing) * 4) !important; padding-right: calc(var(--spacing) * 4) !important; }
302
- .px-6 { padding-left: calc(var(--spacing) * 6) !important; padding-right: calc(var(--spacing) * 6) !important; }
303
- .px-8 { padding-left: calc(var(--spacing) * 8) !important; padding-right: calc(var(--spacing) * 8) !important; }
304
- .py-1 { padding-top: calc(var(--spacing) * 1) !important; padding-bottom: calc(var(--spacing) * 1) !important; }
305
- .py-2 { padding-top: calc(var(--spacing) * 2) !important; padding-bottom: calc(var(--spacing) * 2) !important; }
306
- .py-3 { padding-top: calc(var(--spacing) * 3) !important; padding-bottom: calc(var(--spacing) * 3) !important; }
307
- .py-4 { padding-top: calc(var(--spacing) * 4) !important; padding-bottom: calc(var(--spacing) * 4) !important; }
308
-
309
- /* Spacing - Margin */
310
- .m-0 { margin: 0 !important; }
311
- .m-1 { margin: calc(var(--spacing) * 1) !important; }
312
- .m-2 { margin: calc(var(--spacing) * 2) !important; }
313
- .m-4 { margin: calc(var(--spacing) * 4) !important; }
314
- .m-6 { margin: calc(var(--spacing) * 6) !important; }
315
- .m-8 { margin: calc(var(--spacing) * 8) !important; }
316
- .mb-1 { margin-bottom: calc(var(--spacing) * 1) !important; }
317
- .mb-2 { margin-bottom: calc(var(--spacing) * 2) !important; }
318
- .mb-4 { margin-bottom: calc(var(--spacing) * 4) !important; }
319
- .mb-6 { margin-bottom: calc(var(--spacing) * 6) !important; }
320
- .mb-8 { margin-bottom: calc(var(--spacing) * 8) !important; }
321
- .mt-1 { margin-top: calc(var(--spacing) * 1) !important; }
322
- .mt-2 { margin-top: calc(var(--spacing) * 2) !important; }
323
- .mt-4 { margin-top: calc(var(--spacing) * 4) !important; }
324
- .mt-6 { margin-top: calc(var(--spacing) * 6) !important; }
325
- .mt-8 { margin-top: calc(var(--spacing) * 8) !important; }
326
- .mr-1 { margin-right: calc(var(--spacing) * 1) !important; }
327
- .mr-2 { margin-right: calc(var(--spacing) * 2) !important; }
328
- .mr-4 { margin-right: calc(var(--spacing) * 4) !important; }
329
- .ml-1 { margin-left: calc(var(--spacing) * 1) !important; }
330
- .ml-2 { margin-left: calc(var(--spacing) * 2) !important; }
331
- .ml-4 { margin-left: calc(var(--spacing) * 4) !important; }
332
- .mx-auto { margin-left: auto !important; margin-right: auto !important; }
333
-
334
- /* Spacing - Gap */
335
- .gap-1 { gap: calc(var(--spacing) * 1) !important; }
336
- .gap-2 { gap: calc(var(--spacing) * 2) !important; }
337
- .gap-3 { gap: calc(var(--spacing) * 3) !important; }
338
- .gap-4 { gap: calc(var(--spacing) * 4) !important; }
339
- .gap-6 { gap: calc(var(--spacing) * 6) !important; }
340
- .gap-8 { gap: calc(var(--spacing) * 8) !important; }
341
-
342
- /* Sizing - Width */
343
- .w-full { width: 100% !important; }
344
- .w-auto { width: auto !important; }
345
- .w-fit { width: fit-content !important; }
346
- .w-4 { width: calc(var(--spacing) * 4) !important; }
347
- .w-5 { width: calc(var(--spacing) * 5) !important; }
348
- .w-6 { width: calc(var(--spacing) * 6) !important; }
349
- .w-8 { width: calc(var(--spacing) * 8) !important; }
350
- .w-10 { width: calc(var(--spacing) * 10) !important; }
351
- .w-12 { width: calc(var(--spacing) * 12) !important; }
352
- .w-14 { width: calc(var(--spacing) * 14) !important; }
353
- .w-16 { width: calc(var(--spacing) * 16) !important; }
354
- .min-w-0 { min-width: 0 !important; }
355
- .max-w-full { max-width: 100% !important; }
356
-
357
- /* Sizing - Height */
358
- .h-4 { height: calc(var(--spacing) * 4) !important; }
359
- .h-5 { height: calc(var(--spacing) * 5) !important; }
360
- .h-6 { height: calc(var(--spacing) * 6) !important; }
361
- .h-8 { height: calc(var(--spacing) * 8) !important; }
362
- .h-9 { height: calc(var(--spacing) * 9) !important; }
363
- .h-10 { height: calc(var(--spacing) * 10) !important; }
364
- .h-12 { height: calc(var(--spacing) * 12) !important; }
365
- .h-14 { height: calc(var(--spacing) * 14) !important; }
366
- .h-16 { height: calc(var(--spacing) * 16) !important; }
367
- .h-full { height: 100% !important; }
368
- .h-auto { height: auto !important; }
369
- .h-fit { height: fit-content !important; }
370
- .h-screen { height: 100vh !important; }
371
- .min-h-screen { min-height: 100vh !important; }
372
-
373
- /* Display */
374
- .block { display: block !important; }
375
- .inline-block { display: inline-block !important; }
376
- .inline { display: inline !important; }
377
- .flex { display: flex !important; }
378
- .inline-flex { display: inline-flex !important; }
379
- .grid { display: grid !important; }
380
- .hidden { display: none !important; }
381
-
382
- /* Flexbox */
383
- .flex-col { flex-direction: column !important; }
384
- .flex-row { flex-direction: row !important; }
385
- .flex-wrap { flex-wrap: wrap !important; }
386
- .flex-nowrap { flex-wrap: nowrap !important; }
387
- .items-start { align-items: flex-start !important; }
388
- .items-center { align-items: center !important; }
389
- .items-end { align-items: flex-end !important; }
390
- .justify-start { justify-content: flex-start !important; }
391
- .justify-center { justify-content: center !important; }
392
- .justify-end { justify-content: flex-end !important; }
393
- .justify-between { justify-content: space-between !important; }
394
- .shrink-0 { flex-shrink: 0 !important; }
395
-
396
- /* Typography */
397
- .text-xs { font-size: 0.75rem !important; line-height: 1rem !important; }
398
- .text-sm { font-size: 0.875rem !important; line-height: 1.25rem !important; }
399
- .text-base { font-size: 1rem !important; line-height: 1.5rem !important; }
400
- .text-lg { font-size: 1.125rem !important; line-height: 1.75rem !important; }
401
- .text-xl { font-size: 1.25rem !important; line-height: 1.75rem !important; }
402
- .text-2xl { font-size: 1.5rem !important; line-height: 2rem !important; }
403
- .text-3xl { font-size: 1.875rem !important; line-height: 2.25rem !important; }
404
- .text-4xl { font-size: 2.25rem !important; line-height: 2.5rem !important; }
405
- .font-thin { font-weight: 100 !important; }
406
- .font-light { font-weight: 300 !important; }
407
- .font-normal { font-weight: 400 !important; }
408
- .font-medium { font-weight: 500 !important; }
409
- .font-semibold { font-weight: 600 !important; }
410
- .font-bold { font-weight: 700 !important; }
411
- .font-extrabold { font-weight: 800 !important; }
412
- .text-left { text-align: left !important; }
413
- .text-center { text-align: center !important; }
414
- .text-right { text-align: right !important; }
415
- .whitespace-normal { white-space: normal !important; }
416
- .whitespace-nowrap { white-space: nowrap !important; }
417
- .whitespace-pre { white-space: pre !important; }
418
-
419
- /* Position */
420
- .static { position: static !important; }
421
- .relative { position: relative !important; }
422
- .absolute { position: absolute !important; }
423
- .fixed { position: fixed !important; }
424
- .sticky { position: sticky !important; }
425
- .inset-0 { top: 0 !important; right: 0 !important; bottom: 0 !important; left: 0 !important; }
426
- .top-0 { top: 0 !important; }
427
- .right-0 { right: 0 !important; }
428
- .bottom-0 { bottom: 0 !important; }
429
- .left-0 { left: 0 !important; }
430
- .z-0 { z-index: 0 !important; }
431
- .z-10 { z-index: 10 !important; }
432
- .z-20 { z-index: 20 !important; }
433
- .z-30 { z-index: 30 !important; }
434
- .z-40 { z-index: 40 !important; }
435
- .z-50 { z-index: 50 !important; }
436
-
437
- /* Effects */
438
- .shadow-sm { box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important; }
439
- .shadow { box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1) !important; }
440
- .shadow-md { box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1) !important; }
441
- .shadow-lg { box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1) !important; }
442
- .shadow-xl { box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1) !important; }
443
- .shadow-2xl { box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25) !important; }
444
- .shadow-none { box-shadow: none !important; }
445
- .opacity-0 { opacity: 0 !important; }
446
- .opacity-25 { opacity: 0.25 !important; }
447
- .opacity-50 { opacity: 0.5 !important; }
448
- .opacity-75 { opacity: 0.75 !important; }
449
- .opacity-100 { opacity: 1 !important; }
450
-
451
- /* Transitions */
452
- .transition { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter !important; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important; transition-duration: 150ms !important; }
453
- .transition-all { transition-property: all !important; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important; transition-duration: 150ms !important; }
454
- .transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke !important; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important; transition-duration: 150ms !important; }
455
- .transition-opacity { transition-property: opacity !important; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important; transition-duration: 150ms !important; }
456
- .transition-transform { transition-property: transform !important; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important; transition-duration: 150ms !important; }
457
- .duration-75 { transition-duration: 75ms !important; }
458
- .duration-100 { transition-duration: 100ms !important; }
459
- .duration-150 { transition-duration: 150ms !important; }
460
- .duration-200 { transition-duration: 200ms !important; }
461
- .duration-300 { transition-duration: 300ms !important; }
462
- .duration-500 { transition-duration: 500ms !important; }
463
- .ease-in { transition-timing-function: cubic-bezier(0.4, 0, 1, 1) !important; }
464
- .ease-out { transition-timing-function: cubic-bezier(0, 0, 0.2, 1) !important; }
465
- .ease-in-out { transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important; }
466
-
467
- /* Transforms */
468
- .scale-95 { transform: scale(0.95) !important; }
469
- .scale-100 { transform: scale(1) !important; }
470
- .scale-105 { transform: scale(1.05) !important; }
471
- .scale-110 { transform: scale(1.1) !important; }
472
- .rotate-0 { transform: rotate(0deg) !important; }
473
- .rotate-90 { transform: rotate(90deg) !important; }
474
- .rotate-180 { transform: rotate(180deg) !important; }
475
-
476
- /* Interactive */
477
- .cursor-pointer { cursor: pointer !important; }
478
- .cursor-not-allowed { cursor: not-allowed !important; }
479
- .cursor-default { cursor: default !important; }
480
- .select-none { user-select: none !important; }
481
- .select-text { user-select: text !important; }
482
- .select-all { user-select: all !important; }
483
- .pointer-events-none { pointer-events: none !important; }
484
- .pointer-events-auto { pointer-events: auto !important; }
485
-
486
- /* Overflow */
487
- .overflow-hidden { overflow: hidden !important; }
488
- .overflow-auto { overflow: auto !important; }
489
- .overflow-scroll { overflow: scroll !important; }
490
- .overflow-visible { overflow: visible !important; }
491
- .overflow-x-hidden { overflow-x: hidden !important; }
492
- .overflow-y-hidden { overflow-y: hidden !important; }
493
-
494
- /* Outline */
495
- .outline-none { outline: 2px solid transparent !important; outline-offset: 2px !important; }
496
-
497
- /* Hover States */
498
- .hover\:opacity-80:hover { opacity: 0.8 !important; }
499
- .hover\:opacity-90:hover { opacity: 0.9 !important; }
500
- .hover\:scale-105:hover { transform: scale(1.05) !important; }
501
- .hover\:scale-110:hover { transform: scale(1.1) !important; }
502
- .hover\:shadow-xl:hover { box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1) !important; }
503
-
504
- /* Active States */
505
- .active\:scale-95:active { transform: scale(0.95) !important; }
506
- .active\:opacity-80:active { opacity: 0.8 !important; }
507
-
508
- /* Focus States */
509
- .focus\:outline-none:focus { outline: 2px solid transparent !important; outline-offset: 2px !important; }
510
- .focus\:ring-2:focus { box-shadow: 0 0 0 2px var(--ring) !important; }
511
- .focus\:ring-offset-2:focus { box-shadow: 0 0 0 2px transparent, 0 0 0 4px var(--ring) !important; }
512
-
513
- /* Disabled States */
514
- .disabled\:opacity-50:disabled { opacity: 0.5 !important; }
515
- .disabled\:cursor-not-allowed:disabled { cursor: not-allowed !important; }
516
- .disabled\:pointer-events-none:disabled { pointer-events: none !important; }
517
-
518
- @layer components {
519
- .steps {
520
- &:first-child {
521
- @apply !mt-0;
522
- }
523
-
524
- &:first-child > h3:first-child {
525
- @apply !mt-0;
526
- }
527
-
528
- > h3 {
529
- @apply !mt-16;
530
- }
531
-
532
- > h3 + p {
533
- @apply !mt-2;
534
- }
535
- }
536
-
537
- [data-rehype-pretty-code-figure] {
538
- background-color: var(--color-code);
539
- color: var(--color-code-foreground);
540
- border-radius: var(--radius-lg);
541
- border-width: 0px;
542
- border-color: var(--border);
543
- margin-top: calc(var(--spacing) * 6);
544
- overflow: hidden;
545
- font-size: var(--text-sm);
546
- outline: none;
547
- position: relative;
548
- @apply -mx-1 md:-mx-1;
549
-
550
- &:has([data-rehype-pretty-code-title]) [data-slot="copy-button"] {
551
- top: calc(var(--spacing) * 1.5) !important;
552
- }
553
- }
554
-
555
- [data-rehype-pretty-code-title] {
556
- border-bottom: color-mix(in oklab, var(--border) 30%, transparent);
557
- border-bottom-width: 1px;
558
- border-bottom-style: solid;
559
- padding-block: calc(var(--spacing) * 2.5);
560
- padding-inline: calc(var(--spacing) * 4);
561
- font-size: var(--text-sm);
562
- font-family: var(--font-mono);
563
- color: var(--color-code-foreground);
564
- }
565
-
566
- [data-line-numbers] {
567
- display: grid;
568
- min-width: 100%;
569
- white-space: pre;
570
- border: 0;
571
- background: transparent;
572
- padding: 0;
573
- counter-reset: line;
574
- box-decoration-break: clone;
575
- }
576
-
577
- [data-line-numbers] [data-line]::before {
578
- font-size: var(--text-sm);
579
- counter-increment: line;
580
- content: counter(line);
581
- display: inline-block;
582
- width: calc(var(--spacing) * 16);
583
- padding-right: calc(var(--spacing) * 6);
584
- text-align: right;
585
- color: var(--color-code-number);
586
- background-color: var(--color-code);
587
- position: sticky;
588
- left: 0;
589
- }
590
-
591
- [data-line-numbers] [data-highlighted-line][data-line]::before {
592
- background-color: var(--color-code-highlight);
593
- }
594
-
595
- [data-line] {
596
- padding-top: calc(var(--spacing) * 0.5);
597
- padding-bottom: calc(var(--spacing) * 0.5);
598
- min-height: calc(var(--spacing) * 1);
599
- width: 100%;
600
- display: inline-block;
601
- }
602
-
603
- [data-line] span {
604
- color: var(--shiki-light);
605
-
606
- @variant dark {
607
- color: var(--shiki-dark) !important;
608
- }
609
- }
610
-
611
- [data-highlighted-line],
612
- [data-highlighted-chars] {
613
- position: relative;
614
- background-color: var(--color-code-highlight);
615
- }
616
-
617
- [data-highlighted-line] {
618
- &:after {
619
- position: absolute;
620
- top: 0;
621
- left: 0;
622
- width: 2px;
623
- height: 100%;
624
- content: "";
625
- background-color: color-mix(
626
- in oklab,
627
- var(--muted-foreground) 50%,
628
- transparent
629
- );
630
- }
631
- }
632
-
633
- [data-highlighted-chars] {
634
- border-radius: var(--radius-sm);
635
- padding-inline: 0.3rem;
636
- padding-block: 0.1rem;
637
- font-family: var(--font-mono);
638
- font-size: 0.8rem;
639
- }
640
- }