@ -0,0 +1,17 @@ | |||
{ | |||
"$schema": "https://ui.shadcn.com/schema.json", | |||
"style": "default", | |||
"rsc": true, | |||
"tsx": true, | |||
"tailwind": { | |||
"config": "tailwind.config.ts", | |||
"css": "src/app/globals.css", | |||
"baseColor": "slate", | |||
"cssVariables": true, | |||
"prefix": "" | |||
}, | |||
"aliases": { | |||
"components": "@/components", | |||
"utils": "@/lib/utils" | |||
} | |||
} |
@ -1,33 +1,76 @@ | |||
@tailwind base; | |||
@tailwind components; | |||
@tailwind utilities; | |||
:root { | |||
--foreground-rgb: 0, 0, 0; | |||
--background-start-rgb: 214, 219, 220; | |||
--background-end-rgb: 255, 255, 255; | |||
} | |||
@media (prefers-color-scheme: dark) { | |||
@layer base { | |||
:root { | |||
--foreground-rgb: 255, 255, 255; | |||
--background-start-rgb: 0, 0, 0; | |||
--background-end-rgb: 0, 0, 0; | |||
} | |||
} | |||
--background: 0 0% 100%; | |||
--foreground: 222.2 84% 4.9%; | |||
body { | |||
color: rgb(var(--foreground-rgb)); | |||
background: linear-gradient( | |||
to bottom, | |||
transparent, | |||
rgb(var(--background-end-rgb)) | |||
) | |||
rgb(var(--background-start-rgb)); | |||
} | |||
--card: 0 0% 100%; | |||
--card-foreground: 222.2 84% 4.9%; | |||
--popover: 0 0% 100%; | |||
--popover-foreground: 222.2 84% 4.9%; | |||
--primary: 222.2 47.4% 11.2%; | |||
--primary-foreground: 210 40% 98%; | |||
--secondary: 210 40% 96.1%; | |||
--secondary-foreground: 222.2 47.4% 11.2%; | |||
--muted: 210 40% 96.1%; | |||
--muted-foreground: 215.4 16.3% 46.9%; | |||
--accent: 210 40% 96.1%; | |||
--accent-foreground: 222.2 47.4% 11.2%; | |||
--destructive: 0 84.2% 60.2%; | |||
--destructive-foreground: 210 40% 98%; | |||
@layer utilities { | |||
.text-balance { | |||
text-wrap: balance; | |||
--border: 214.3 31.8% 91.4%; | |||
--input: 214.3 31.8% 91.4%; | |||
--ring: 222.2 84% 4.9%; | |||
--radius: 0.5rem; | |||
} | |||
.dark { | |||
--background: 222.2 84% 4.9%; | |||
--foreground: 210 40% 98%; | |||
--card: 222.2 84% 4.9%; | |||
--card-foreground: 210 40% 98%; | |||
--popover: 222.2 84% 4.9%; | |||
--popover-foreground: 210 40% 98%; | |||
--primary: 210 40% 98%; | |||
--primary-foreground: 222.2 47.4% 11.2%; | |||
--secondary: 217.2 32.6% 17.5%; | |||
--secondary-foreground: 210 40% 98%; | |||
--muted: 217.2 32.6% 17.5%; | |||
--muted-foreground: 215 20.2% 65.1%; | |||
--accent: 217.2 32.6% 17.5%; | |||
--accent-foreground: 210 40% 98%; | |||
--destructive: 0 62.8% 30.6%; | |||
--destructive-foreground: 210 40% 98%; | |||
--border: 217.2 32.6% 17.5%; | |||
--input: 217.2 32.6% 17.5%; | |||
--ring: 212.7 26.8% 83.9%; | |||
} | |||
} | |||
@layer base { | |||
* { | |||
@apply border-border; | |||
} | |||
body { | |||
@apply bg-background text-foreground; | |||
} | |||
} |
@ -0,0 +1,6 @@ | |||
import { type ClassValue, clsx } from "clsx" | |||
import { twMerge } from "tailwind-merge" | |||
export function cn(...inputs: ClassValue[]) { | |||
return twMerge(clsx(inputs)) | |||
} |
@ -1,20 +1,80 @@ | |||
import type { Config } from "tailwindcss"; | |||
import type { Config } from "tailwindcss" | |||
const config: Config = { | |||
const config = { | |||
darkMode: ["class"], | |||
content: [ | |||
"./src/pages/**/*.{js,ts,jsx,tsx,mdx}", | |||
"./src/components/**/*.{js,ts,jsx,tsx,mdx}", | |||
"./src/app/**/*.{js,ts,jsx,tsx,mdx}", | |||
], | |||
'./pages/**/*.{ts,tsx}', | |||
'./components/**/*.{ts,tsx}', | |||
'./app/**/*.{ts,tsx}', | |||
'./src/**/*.{ts,tsx}', | |||
], | |||
prefix: "", | |||
theme: { | |||
container: { | |||
center: true, | |||
padding: "2rem", | |||
screens: { | |||
"2xl": "1400px", | |||
}, | |||
}, | |||
extend: { | |||
backgroundImage: { | |||
"gradient-radial": "radial-gradient(var(--tw-gradient-stops))", | |||
"gradient-conic": | |||
"conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", | |||
colors: { | |||
border: "hsl(var(--border))", | |||
input: "hsl(var(--input))", | |||
ring: "hsl(var(--ring))", | |||
background: "hsl(var(--background))", | |||
foreground: "hsl(var(--foreground))", | |||
primary: { | |||
DEFAULT: "hsl(var(--primary))", | |||
foreground: "hsl(var(--primary-foreground))", | |||
}, | |||
secondary: { | |||
DEFAULT: "hsl(var(--secondary))", | |||
foreground: "hsl(var(--secondary-foreground))", | |||
}, | |||
destructive: { | |||
DEFAULT: "hsl(var(--destructive))", | |||
foreground: "hsl(var(--destructive-foreground))", | |||
}, | |||
muted: { | |||
DEFAULT: "hsl(var(--muted))", | |||
foreground: "hsl(var(--muted-foreground))", | |||
}, | |||
accent: { | |||
DEFAULT: "hsl(var(--accent))", | |||
foreground: "hsl(var(--accent-foreground))", | |||
}, | |||
popover: { | |||
DEFAULT: "hsl(var(--popover))", | |||
foreground: "hsl(var(--popover-foreground))", | |||
}, | |||
card: { | |||
DEFAULT: "hsl(var(--card))", | |||
foreground: "hsl(var(--card-foreground))", | |||
}, | |||
}, | |||
borderRadius: { | |||
lg: "var(--radius)", | |||
md: "calc(var(--radius) - 2px)", | |||
sm: "calc(var(--radius) - 4px)", | |||
}, | |||
keyframes: { | |||
"accordion-down": { | |||
from: { height: "0" }, | |||
to: { height: "var(--radix-accordion-content-height)" }, | |||
}, | |||
"accordion-up": { | |||
from: { height: "var(--radix-accordion-content-height)" }, | |||
to: { height: "0" }, | |||
}, | |||
}, | |||
animation: { | |||
"accordion-down": "accordion-down 0.2s ease-out", | |||
"accordion-up": "accordion-up 0.2s ease-out", | |||
}, | |||
}, | |||
}, | |||
plugins: [], | |||
}; | |||
export default config; | |||
plugins: [require("tailwindcss-animate")], | |||
} satisfies Config | |||
export default config |