| 1 | import type { Config } from "tailwindcss"; |
| 2 | |
| 3 | const config: Config = { |
| 4 | content: [ |
| 5 | "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", |
| 6 | "./src/components/**/*.{js,ts,jsx,tsx,mdx}", |
| 7 | "./src/app/**/*.{js,ts,jsx,tsx,mdx}", |
| 8 | ], |
| 9 | theme: { |
| 10 | extend: { |
| 11 | colors: { |
| 12 | canvas: "#050607", |
| 13 | teal: { |
| 14 | bio: "#16e0c8", |
| 15 | dim: "#0d9e8e", |
| 16 | muted: "#0a6b60", |
| 17 | }, |
| 18 | surface: { |
| 19 | 0: "#050607", |
| 20 | 1: "#0a0c0e", |
| 21 | 2: "#0f1214", |
| 22 | 3: "#141820", |
| 23 | }, |
| 24 | text: { |
| 25 | primary: "#e8eaed", |
| 26 | secondary: "#8b929e", |
| 27 | muted: "#4a525e", |
| 28 | accent: "#16e0c8", |
| 29 | }, |
| 30 | }, |
| 31 | fontFamily: { |
| 32 | display: ["Space Grotesk", "sans-serif"], |
| 33 | ui: ["Inter", "sans-serif"], |
| 34 | mono: ["JetBrains Mono", "monospace"], |
| 35 | }, |
| 36 | fontSize: { |
| 37 | "display-xl": ["clamp(3rem, 8vw, 7rem)", { lineHeight: "0.95", letterSpacing: "-0.04em" }], |
| 38 | "display-lg": ["clamp(2rem, 5vw, 4.5rem)", { lineHeight: "1.0", letterSpacing: "-0.03em" }], |
| 39 | "display-md": ["clamp(1.5rem, 3vw, 2.5rem)", { lineHeight: "1.1", letterSpacing: "-0.02em" }], |
| 40 | "label-sm": ["0.6875rem", { lineHeight: "1.2", letterSpacing: "0.08em" }], |
| 41 | "label-md": ["0.75rem", { lineHeight: "1.3", letterSpacing: "0.06em" }], |
| 42 | }, |
| 43 | spacing: { |
| 44 | "18": "4.5rem", |
| 45 | "22": "5.5rem", |
| 46 | }, |
| 47 | animation: { |
| 48 | "pulse-slow": "pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite", |
| 49 | "glow-breathe": "glow-breathe 4s ease-in-out infinite", |
| 50 | "synapse-fire": "synapse-fire 0.6s ease-out forwards", |
| 51 | }, |
| 52 | keyframes: { |
| 53 | "glow-breathe": { |
| 54 | "0%, 100%": { opacity: "0.6", transform: "scale(1)" }, |
| 55 | "50%": { opacity: "1", transform: "scale(1.05)" }, |
| 56 | }, |
| 57 | "synapse-fire": { |
| 58 | "0%": { opacity: "0", transform: "scale(0.8)" }, |
| 59 | "60%": { opacity: "1", transform: "scale(1.05)" }, |
| 60 | "100%": { opacity: "1", transform: "scale(1)" }, |
| 61 | }, |
| 62 | }, |
| 63 | transitionTimingFunction: { |
| 64 | "expo-out": "cubic-bezier(0.16, 1, 0.3, 1)", |
| 65 | "expo-inout": "cubic-bezier(0.87, 0, 0.13, 1)", |
| 66 | }, |
| 67 | backdropBlur: { |
| 68 | xs: "2px", |
| 69 | }, |
| 70 | }, |
| 71 | }, |
| 72 | plugins: [], |
| 73 | }; |
| 74 | |
| 75 | export default config; |