Spaces:
Running
Running
| import type { Config } from "tailwindcss"; | |
| import tailwindcssAnimate from "tailwindcss-animate"; | |
| const config: Config = { | |
| darkMode: ["class"], | |
| content: ["./src/**/*.{js,ts,jsx,tsx,mdx}", "./index.html"], | |
| theme: { | |
| extend: { | |
| 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))", | |
| }, | |
| "accent-cyan": "hsl(var(--accent-cyan))", | |
| }, | |
| fontFamily: { | |
| sans: ["Geist", "sans-serif"], | |
| mono: ["Geist Mono", "monospace"], | |
| }, | |
| backgroundImage: { | |
| "grid-pattern": | |
| "url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' width='32' height='32' fill='none' stroke='rgb(255 255 255 / 0.05)'%3e%3cpath d='M0 .5H31.5V32'/%3e%3c/svg%3e\")", | |
| "hex-pattern": | |
| "url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49' viewBox='0 0 28 49'%3e%3chexagon stroke='rgb(255 255 255 / 0.05)'/%3e%3c/svg%3e\")", | |
| }, | |
| 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", | |
| }, | |
| }, | |
| scanline: { | |
| "0%": { transform: "translateY(0)" }, | |
| "100%": { transform: "translateY(100%)" }, | |
| }, | |
| "text-glitch": { | |
| "0%": { transform: "translate(0)" }, | |
| "20%": { transform: "translate(-2px, 2px)" }, | |
| "40%": { transform: "translate(-2px, -2px)" }, | |
| "60%": { transform: "translate(2px, 2px)" }, | |
| "80%": { transform: "translate(2px, -2px)" }, | |
| "100%": { transform: "translate(0)" }, | |
| }, | |
| }, | |
| animation: { | |
| "pulse-slow": "pulse 4s cubic-bezier(0.4, 0, 0.6, 1) infinite", | |
| "accordion-down": "accordion-down 0.2s ease-out", | |
| "accordion-up": "accordion-up 0.2s ease-out", | |
| scanline: "scanline 10s linear infinite", | |
| "text-glitch": "text-glitch 0.3s linear infinite alternate-reverse", | |
| }, | |
| }, | |
| }, | |
| plugins: [tailwindcssAnimate], | |
| }; | |
| export default config; | |