|
20 | 20 |
|
21 | 21 | @custom-variant dark (&:is(.dark *)); |
22 | 22 |
|
| 23 | +@custom-variant fixed (&:is(.layout-fixed *)); |
| 24 | + |
23 | 25 | @theme inline { |
24 | | - --color-background: var(--background); |
25 | | - --color-foreground: var(--foreground); |
| 26 | + --breakpoint-3xl: 1600px; |
| 27 | + --breakpoint-4xl: 2000px; |
26 | 28 | --font-sans: var(--font-sans); |
27 | 29 | --font-mono: var(--font-mono); |
28 | 30 | --font-rubik: var(--font-rubik); |
29 | | - --color-sidebar-ring: var(--sidebar-ring); |
30 | | - --color-sidebar-border: var(--sidebar-border); |
31 | | - --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); |
32 | | - --color-sidebar-accent: var(--sidebar-accent); |
33 | | - --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); |
34 | | - --color-sidebar-primary: var(--sidebar-primary); |
35 | | - --color-sidebar-foreground: var(--sidebar-foreground); |
36 | | - --color-sidebar: var(--sidebar); |
37 | | - --color-chart-5: var(--chart-5); |
38 | | - --color-chart-4: var(--chart-4); |
39 | | - --color-chart-3: var(--chart-3); |
40 | | - --color-chart-2: var(--chart-2); |
41 | | - --color-chart-1: var(--chart-1); |
42 | | - --color-ring: var(--ring); |
43 | | - --color-input: var(--input); |
44 | | - --color-border: var(--border); |
45 | | - --color-destructive: var(--destructive); |
46 | | - --color-accent-foreground: var(--accent-foreground); |
47 | | - --color-accent: var(--accent); |
48 | | - --color-muted-foreground: var(--muted-foreground); |
49 | | - --color-muted: var(--muted); |
50 | | - --color-secondary-foreground: var(--secondary-foreground); |
51 | | - --color-secondary: var(--secondary); |
52 | | - --color-primary-foreground: var(--primary-foreground); |
53 | | - --color-primary: var(--primary); |
54 | | - --color-popover-foreground: var(--popover-foreground); |
55 | | - --color-popover: var(--popover); |
56 | | - --color-card-foreground: var(--card-foreground); |
| 31 | + --radius-sm: calc(var(--radius) - 4px); |
| 32 | + --radius-md: calc(var(--radius) - 2px); |
| 33 | + --radius-lg: var(--radius); |
| 34 | + --radius-xl: calc(var(--radius) + 4px); |
| 35 | + --radius-2xl: calc(var(--radius) + 8px); |
| 36 | + --radius-3xl: calc(var(--radius) + 12px); |
| 37 | + --radius-4xl: calc(var(--radius) + 16px); |
| 38 | + --color-background: var(--background); |
| 39 | + --color-foreground: var(--foreground); |
57 | 40 | --color-card: var(--card); |
| 41 | + --color-card-foreground: var(--card-foreground); |
| 42 | + --color-popover: var(--popover); |
| 43 | + --color-popover-foreground: var(--popover-foreground); |
| 44 | + --color-primary: var(--primary); |
| 45 | + --color-primary-foreground: var(--primary-foreground); |
| 46 | + --color-secondary: var(--secondary); |
| 47 | + --color-secondary-foreground: var(--secondary-foreground); |
| 48 | + --color-muted: var(--muted); |
| 49 | + --color-muted-foreground: var(--muted-foreground); |
| 50 | + --color-accent: var(--accent); |
| 51 | + --color-accent-foreground: var(--accent-foreground); |
| 52 | + --color-destructive: var(--destructive); |
| 53 | + --color-destructive-foreground: var(--destructive-foreground); |
| 54 | + --color-border: var(--border); |
| 55 | + --color-input: var(--input); |
| 56 | + --color-ring: var(--ring); |
| 57 | + --color-chart-1: var(--chart-1); |
| 58 | + --color-chart-2: var(--chart-2); |
| 59 | + --color-chart-3: var(--chart-3); |
| 60 | + --color-chart-4: var(--chart-4); |
| 61 | + --color-chart-5: var(--chart-5); |
| 62 | + --color-sidebar: var(--sidebar); |
| 63 | + --color-sidebar-foreground: var(--sidebar-foreground); |
| 64 | + --color-sidebar-primary: var(--sidebar-primary); |
| 65 | + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); |
| 66 | + --color-sidebar-accent: var(--sidebar-accent); |
| 67 | + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); |
| 68 | + --color-sidebar-border: var(--sidebar-border); |
| 69 | + --color-sidebar-ring: var(--sidebar-ring); |
58 | 70 | --color-surface: var(--surface); |
59 | 71 | --color-surface-foreground: var(--surface-foreground); |
60 | 72 | --color-code: var(--code); |
61 | 73 | --color-code-foreground: var(--code-foreground); |
62 | 74 | --color-code-highlight: var(--code-highlight); |
63 | 75 | --color-code-number: var(--code-number); |
64 | | - --radius-sm: calc(var(--radius) - 4px); |
65 | | - --radius-md: calc(var(--radius) - 2px); |
66 | | - --radius-lg: var(--radius); |
67 | | - --radius-xl: calc(var(--radius) + 4px); |
| 76 | + --color-selection: var(--selection); |
| 77 | + --color-selection-foreground: var(--selection-foreground); |
68 | 78 | } |
69 | 79 |
|
70 | 80 | :root { |
|
107 | 117 | --code-foreground: var(--surface-foreground); |
108 | 118 | --code-highlight: oklch(0.96 0 0); |
109 | 119 | --code-number: oklch(0.56 0 0); |
| 120 | + --destructive-foreground: oklch(0.97 0.01 17); |
| 121 | + --selection: oklch(0.145 0 0); |
| 122 | + --selection-foreground: oklch(1 0 0); |
110 | 123 | } |
111 | 124 |
|
112 | 125 | .dark { |
|
122 | 135 | --secondary-foreground: oklch(0.985 0 0); |
123 | 136 | --muted: oklch(0.269 0 0); |
124 | 137 | --muted-foreground: oklch(0.708 0 0); |
125 | | - --accent: oklch(0.269 0 0); |
| 138 | + --accent: oklch(0.371 0 0); |
126 | 139 | --accent-foreground: oklch(0.985 0 0); |
127 | 140 | --destructive: oklch(0.704 0.191 22.216); |
| 141 | + --destructive-foreground: oklch(0.58 0.22 27); |
128 | 142 | --border: oklch(1 0 0 / 10%); |
129 | 143 | --input: oklch(1 0 0 / 15%); |
130 | 144 | --ring: oklch(0.556 0 0); |
|
140 | 154 | --sidebar-accent: oklch(0.269 0 0); |
141 | 155 | --sidebar-accent-foreground: oklch(0.985 0 0); |
142 | 156 | --sidebar-border: oklch(1 0 0 / 10%); |
143 | | - --sidebar-ring: oklch(0.556 0 0); |
| 157 | + --sidebar-ring: oklch(0.439 0 0); |
144 | 158 | --surface: oklch(0.2 0 0); |
145 | 159 | --surface-foreground: oklch(0.708 0 0); |
146 | 160 | --code: var(--surface); |
147 | 161 | --code-foreground: var(--surface-foreground); |
148 | 162 | --code-highlight: oklch(0.27 0 0); |
149 | 163 | --code-number: oklch(0.72 0 0); |
| 164 | + --selection: oklch(0.922 0 0); |
| 165 | + --selection-foreground: oklch(0.205 0 0); |
150 | 166 | } |
151 | 167 |
|
152 | 168 | @layer base { |
153 | 169 | * { |
154 | 170 | @apply border-border outline-ring/50; |
155 | 171 | } |
| 172 | + ::selection { |
| 173 | + @apply bg-selection text-selection-foreground; |
| 174 | + } |
156 | 175 | html { |
157 | 176 | @apply bg-background text-foreground; |
158 | 177 | height: -webkit-fill-available; |
|
380 | 399 | } |
381 | 400 |
|
382 | 401 | /* v4 utilities - shadcn/ui style */ |
383 | | -@utility extend-touch-target { |
384 | | - @media (pointer: coarse) { |
385 | | - @apply relative touch-manipulation after:absolute after:-inset-2; |
386 | | - } |
387 | | -} |
388 | | - |
389 | 402 | @utility border-grid { |
390 | 403 | @apply border-border/50 dark:border-border; |
391 | 404 | } |
392 | 405 |
|
393 | 406 | @utility section-soft { |
394 | | - @apply from-background to-surface/40 dark:bg-background bg-gradient-to-b; |
| 407 | + @apply from-background to-surface/40 dark:bg-background 3xl:fixed:bg-none bg-gradient-to-b; |
395 | 408 | } |
396 | 409 |
|
397 | 410 | @utility theme-container { |
398 | 411 | @apply font-sans; |
399 | 412 | } |
400 | 413 |
|
401 | 414 | @utility container-wrapper { |
402 | | - @apply mx-auto w-full px-2; |
| 415 | + @apply 3xl:fixed:max-w-[calc(var(--breakpoint-2xl)+2rem)] mx-auto w-full px-2; |
403 | 416 | } |
404 | 417 |
|
405 | 418 | @utility container { |
406 | | - @apply mx-auto max-w-[1400px] px-4 lg:px-8; |
| 419 | + @apply 3xl:max-w-screen-2xl mx-auto max-w-[1400px] px-4 lg:px-8; |
407 | 420 | } |
408 | 421 |
|
409 | 422 | @utility no-scrollbar { |
|
414 | 427 | display: none; |
415 | 428 | } |
416 | 429 | } |
| 430 | + |
| 431 | +@utility border-ghost { |
| 432 | + @apply after:border-border relative after:absolute after:inset-0 after:border after:mix-blend-darken dark:after:mix-blend-lighten; |
| 433 | +} |
| 434 | + |
| 435 | +@utility step { |
| 436 | + counter-increment: step; |
| 437 | + |
| 438 | + &:before { |
| 439 | + @apply border-background bg-muted mr-2 inline-flex size-6 items-center justify-center rounded-full text-center -indent-px font-mono text-sm font-medium md:absolute md:mt-[-4px] md:ml-[-50px] md:size-9 md:border-4; |
| 440 | + content: counter(step); |
| 441 | + } |
| 442 | +} |
| 443 | + |
| 444 | +@utility extend-touch-target { |
| 445 | + @media (pointer: coarse) { |
| 446 | + @apply relative touch-manipulation after:absolute after:-inset-2; |
| 447 | + } |
| 448 | +} |
0 commit comments