Files
SEEN/frontend/tailwind.config.js
T
2026-04-10 12:06:24 +02:00

131 lines
6.0 KiB
JavaScript

/** @type {import('tailwindcss').Config} */
export default {
content: ['./index.html', './src/**/*.{ts,tsx}'],
theme: {
extend: {
fontFamily: {
sans: ['"Space Grotesk"', 'system-ui', 'sans-serif'],
display: ['"Space Grotesk"', 'system-ui', 'sans-serif'],
mono: ['"JetBrains Mono"', 'monospace'],
},
colors: {
// Surface Architecture
'surface-dim': 'rgb(var(--color-surface-dim) / <alpha-value>)',
'surface': 'rgb(var(--color-surface) / <alpha-value>)',
'surface-bright': 'rgb(var(--color-surface-bright) / <alpha-value>)',
'surface-lowest': 'rgb(var(--color-surface-container-lowest) / <alpha-value>)',
'surface-low': 'rgb(var(--color-surface-container-low) / <alpha-value>)',
'surface-container': 'rgb(var(--color-surface-container) / <alpha-value>)',
'surface-high': 'rgb(var(--color-surface-container-high) / <alpha-value>)',
'surface-highest': 'rgb(var(--color-surface-container-highest) / <alpha-value>)',
// Legacy mappings
bg: 'rgb(var(--color-bg) / <alpha-value>)',
fg: 'rgb(var(--color-fg) / <alpha-value>)',
muted: 'rgb(var(--color-muted) / <alpha-value>)',
'muted-fg': 'rgb(var(--color-muted-fg) / <alpha-value>)',
card: 'rgb(var(--color-card) / <alpha-value>)',
border: 'rgb(var(--color-border) / <alpha-value>)',
// Primary
primary: 'rgb(var(--color-primary) / <alpha-value>)',
'primary-container': 'rgb(var(--color-primary-container) / <alpha-value>)',
'primary-fixed': 'rgb(var(--color-primary-fixed) / <alpha-value>)',
'primary-fixed-dim': 'rgb(var(--color-primary-fixed-dim) / <alpha-value>)',
'on-primary': 'rgb(var(--color-on-primary) / <alpha-value>)',
'on-primary-container': 'rgb(var(--color-on-primary-container) / <alpha-value>)',
// Accent alias
accent: 'rgb(var(--color-accent) / <alpha-value>)',
// Secondary
secondary: 'rgb(var(--color-secondary) / <alpha-value>)',
'secondary-container': 'rgb(var(--color-secondary-container) / <alpha-value>)',
'secondary-fixed': 'rgb(var(--color-secondary-fixed) / <alpha-value>)',
'secondary-fixed-dim': 'rgb(var(--color-secondary-fixed-dim) / <alpha-value>)',
'on-secondary': 'rgb(var(--color-on-secondary) / <alpha-value>)',
'on-secondary-container': 'rgb(var(--color-on-secondary-container) / <alpha-value>)',
// Tertiary
tertiary: 'rgb(var(--color-tertiary) / <alpha-value>)',
'tertiary-container': 'rgb(var(--color-tertiary-container) / <alpha-value>)',
// Semantic
success: 'rgb(var(--color-success) / <alpha-value>)',
warning: 'rgb(var(--color-warning) / <alpha-value>)',
danger: 'rgb(var(--color-danger) / <alpha-value>)',
'on-danger': 'rgb(var(--color-on-danger) / <alpha-value>)',
// Outlines
outline: 'rgb(var(--color-outline) / <alpha-value>)',
'outline-variant': 'rgb(var(--color-outline-variant) / <alpha-value>)',
'on-surface-variant': 'rgb(var(--color-on-surface-variant) / <alpha-value>)',
// Inverse
'inverse-surface': 'rgb(var(--color-inverse-surface) / <alpha-value>)',
'inverse-on-surface': 'rgb(var(--color-inverse-on-surface) / <alpha-value>)',
'inverse-primary': 'rgb(var(--color-inverse-primary) / <alpha-value>)',
// Tint
'surface-tint': 'rgb(var(--color-surface-tint) / <alpha-value>)',
},
boxShadow: {
brutal: '8px 8px 0 rgb(var(--color-primary))',
'brutal-sm': '4px 4px 0 rgb(var(--color-primary))',
'brutal-lg': '12px 12px 0 rgb(var(--color-primary))',
'brutal-hover': '12px 12px 0 rgb(var(--color-primary))',
'brutal-outline': '8px 8px 0 rgb(var(--color-outline))',
none: 'none',
},
borderRadius: {
none: '0',
DEFAULT: '0',
},
borderWidth: {
DEFAULT: '3px',
0: '0',
2: '2px',
3: '3px',
4: '4px',
6: '6px',
8: '8px',
},
keyframes: {
'brutal-appear': {
'0%': { opacity: 0 },
'100%': { opacity: 1 },
},
'brutal-scale': {
'0%': { transform: 'scale(0.9)' },
'50%': { transform: 'scale(1.05)' },
'100%': { transform: 'scale(1)' },
},
'glitch-anim': {
'0%': { clip: 'rect(42px, 9999px, 44px, 0)' },
'5%': { clip: 'rect(12px, 9999px, 59px, 0)' },
'10%': { clip: 'rect(48px, 9999px, 29px, 0)' },
'15%': { clip: 'rect(42px, 9999px, 73px, 0)' },
'20%': { clip: 'rect(63px, 9999px, 27px, 0)' },
'100%': { clip: 'rect(4px, 9999px, 91px, 0)' },
},
'flicker': {
'0%, 100%': { opacity: 1 },
'42%': { opacity: 0 },
'43%': { opacity: 1 },
'48%': { opacity: 0 },
'49%': { opacity: 1 },
},
'slide-brutal': {
'0%': { transform: 'translateX(-100%)' },
'100%': { transform: 'translateX(0)' },
},
},
animation: {
'brutal-appear': 'brutal-appear 0.1s steps(1) both',
'brutal-scale': 'brutal-scale 0.1s steps(2) both',
'glitch': 'glitch-anim 3s infinite linear alternate-reverse',
'flicker': 'flicker 5s infinite',
'slide-brutal': 'slide-brutal 0.2s steps(3) both',
},
backgroundImage: {
'gradient-primary': 'linear-gradient(135deg, rgb(var(--color-primary)) 0%, rgb(var(--color-primary)) 100%)',
'gradient-secondary': 'linear-gradient(135deg, rgb(var(--color-secondary)) 0%, rgb(var(--color-secondary)) 100%)',
'gradient-mesh': 'repeating-linear-gradient(45deg, transparent, transparent 10px, rgb(var(--color-primary) / 0.03) 10px, rgb(var(--color-primary) / 0.03) 20px)',
'brutal-stripes': 'repeating-linear-gradient(45deg, transparent, transparent 20px, rgb(var(--color-primary) / 0.05) 20px, rgb(var(--color-primary) / 0.05) 40px)',
},
},
},
plugins: [],
}