| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- /** @type {import('tailwindcss').Config} */
- module.exports = {
- content: [
- './app/**/*.{js,ts,jsx,tsx}',
- './components/**/*.{js,ts,jsx,tsx}',
- './lib/**/*.{js,ts,jsx,tsx}',
- '../packages/**/*.{js,ts,jsx,tsx}',
- ],
- darkMode: 'class',
- theme: {
- extend: {
- fontFamily: {
- sans: ['var(--font-inter)', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'sans-serif'],
- mono: ['JetBrains Mono', 'Fira Code', 'monospace'],
- },
- colors: {
- // ── Semantic tokens (Tailwind references these) ──────────────────
- primary: {
- DEFAULT: '#2563EB',
- foreground: '#FFFFFF',
- },
- // ── Brand / Indigo palette ─────────────────────────────────────
- brand: {
- 50: '#EEF2FF',
- 100: '#E0E7FF',
- 200: '#C7D2FE',
- 300: '#A5B4FC',
- 400: '#818CF8',
- 500: '#6366F1',
- 600: '#4F46E5',
- 700: '#4338CA',
- 800: '#3730A3',
- 900: '#312E81',
- },
- // ── Surface / neutral slate palette ─────────────────────────────
- surface: {
- DEFAULT: '#0F1117',
- 50: '#F8FAFC',
- 100: '#F1F5F9',
- 200: '#E2E8F0',
- 300: '#CBD5E1',
- 400: '#94A3B8',
- 500: '#64748B',
- 600: '#475569',
- 700: '#334155',
- 800: '#1E293B',
- 900: '#0F172A',
- 950: '#0A0D14',
- },
- // ── Ink / text colors ─────────────────────────────────────────
- ink: {
- DEFAULT: '#F1F5F9',
- 50: '#F8FAFC',
- 100: '#F1F5F9',
- 200: '#E2E8F0',
- 300: '#CBD5E1',
- 400: '#94A3B8',
- 500: '#64748B',
- 600: '#475569',
- 700: '#334155',
- 800: '#1E293B',
- 900: '#0F172A',
- },
- // ── Status palette ─────────────────────────────────────────────
- success: '#22C55E',
- warning: '#F59E0B',
- danger: '#EF4444',
- info: '#3B82F6',
- },
- backgroundColor: {
- surface: '#0F1117',
- 'surface-50': '#F8FAFC',
- 'surface-100': '#F1F5F9',
- 'surface-200': '#E2E8F0',
- 'surface-300': '#CBD5E1',
- 'surface-400': '#94A3B8',
- 'surface-500': '#64748B',
- 'surface-600': '#475569',
- 'surface-700': '#334155',
- 'surface-800': '#1E293B',
- 'surface-900': '#0F172A',
- 'surface-950': '#0A0D14',
- },
- textColor: {
- ink: '#F1F5F9',
- 'ink-50': '#F8FAFC',
- 'ink-100': '#F1F5F9',
- 'ink-200': '#E2E8F0',
- 'ink-300': '#CBD5E1',
- 'ink-400': '#94A3B8',
- 'ink-500': '#64748B',
- 'ink-600': '#475569',
- 'ink-700': '#334155',
- 'ink-800': '#1E293B',
- 'ink-900': '#0F172A',
- },
- borderColor: {
- 'surface-DEFAULT': 'rgba(255,255,255,0.06)',
- 'surface-100': 'rgba(255,255,255,0.08)',
- 'surface-200': 'rgba(255,255,255,0.12)',
- 'surface-300': 'rgba(255,255,255,0.18)',
- 'surface-border': 'rgba(255,255,255,0.10)',
- },
- boxShadow: {
- 'card': '0 0 0 1px rgba(255,255,255,0.06), 0 2px 8px rgba(0,0,0,0.40)',
- 'card-hover':'0 0 0 1px rgba(99,102,241,0.40), 0 4px 16px rgba(0,0,0,0.50)',
- 'panel': '0 0 0 1px rgba(255,255,255,0.04), 0 8px 32px rgba(0,0,0,0.60)',
- 'btn-click': '0 1px 2px rgba(0,0,0,0.4) inset',
- 'glow-brand': '0 0 20px rgba(99,102,241,0.35)',
- 'glow-success': '0 0 16px rgba(34,197,94,0.40)',
- 'glow-danger': '0 0 16px rgba(239,68,68,0.40)',
- 'glow-warning': '0 0 16px rgba(245,158,11,0.40)',
- },
- animation: {
- 'fade-in': 'fadeIn 0.2s ease-out',
- 'slide-up': 'slideUp 0.3s ease-out',
- 'scale-in': 'scaleIn 0.15s ease-out',
- 'pulse-glow': 'pulseGlow 2s ease-in-out infinite',
- 'shimmer': 'shimmer 1.8s linear infinite',
- },
- keyframes: {
- fadeIn: {
- '0%': { opacity: '0' },
- '100%': { opacity: '1' },
- },
- slideUp: {
- '0%': { opacity: '0', transform: 'translateY(8px)' },
- '100%': { opacity: '1', transform: 'translateY(0)' },
- },
- scaleIn: {
- '0%': { opacity: '0', transform: 'scale(0.95)' },
- '100%': { opacity: '1', transform: 'scale(1)' },
- },
- pulseGlow: {
- '0%, 100%': { opacity: '0.4' },
- '50%': { opacity: '1' },
- },
- shimmer: {
- '0%': { backgroundPosition: '-200% 0' },
- '100%': { backgroundPosition: '200% 0' },
- },
- },
- borderRadius: {
- xl: '12px',
- '2xl': '16px',
- '3xl': '24px',
- '4xl': '32px',
- },
- spacing: {
- '18': '4.5rem',
- '88': '22rem',
- },
- backdropBlur: {
- xs: '2px',
- },
- transitionTimingFunction: {
- 'spring': 'cubic-bezier(0.16, 1, 0.3, 1)',
- },
- },
- },
- plugins: [],
- };
|