Files
game-marathon/frontend/tailwind.config.js
2025-12-17 02:03:33 +07:00

227 lines
7.9 KiB
JavaScript

/** @type {import('tailwindcss').Config} */
export default {
content: [
"./index.html",
"./src/**/*.{js,ts,jsx,tsx}",
],
theme: {
extend: {
colors: {
// Base dark colors
dark: {
950: '#050508',
900: '#0a0a0f',
800: '#12121a',
700: '#1a1a24',
600: '#1e1e2e',
500: '#2a2a3a',
},
// Neon cyan (primary)
neon: {
50: '#ecfeff',
100: '#cffafe',
200: '#a5f3fc',
300: '#67e8f9',
400: '#22d3ee',
500: '#00f0ff',
600: '#00d4e4',
700: '#00a8b8',
800: '#007c8a',
900: '#005a64',
},
// Purple accent
accent: {
50: '#faf5ff',
100: '#f3e8ff',
200: '#e9d5ff',
300: '#d8b4fe',
400: '#c084fc',
500: '#a855f7',
600: '#9333ea',
700: '#7c3aed',
800: '#6b21a8',
900: '#581c87',
},
// Pink highlight
pink: {
400: '#f472b6',
500: '#ec4899',
600: '#db2777',
},
// Keep primary for backwards compatibility
primary: {
50: '#ecfeff',
100: '#cffafe',
200: '#a5f3fc',
300: '#67e8f9',
400: '#22d3ee',
500: '#00f0ff',
600: '#00d4e4',
700: '#00a8b8',
800: '#007c8a',
900: '#005a64',
},
},
fontFamily: {
sans: ['Inter', 'system-ui', 'sans-serif'],
mono: ['JetBrains Mono', 'monospace'],
display: ['Orbitron', 'sans-serif'],
},
animation: {
// Existing
'spin-slow': 'spin 3s linear infinite',
'wheel-spin': 'wheel-spin 4s cubic-bezier(0.17, 0.67, 0.12, 0.99) forwards',
'fade-in': 'fade-in 0.3s ease-out forwards',
'slide-up': 'slide-up 0.3s ease-out forwards',
// New animations
'glitch': 'glitch 1s linear infinite',
'glitch-1': 'glitch-1 0.5s infinite linear alternate-reverse',
'glitch-2': 'glitch-2 0.5s infinite linear alternate-reverse',
'glow-pulse': 'glow-pulse 2s ease-in-out infinite',
'float': 'float 6s ease-in-out infinite',
'shimmer': 'shimmer 2s linear infinite',
'slide-in-right': 'slide-in-right 0.3s ease-out forwards',
'slide-in-left': 'slide-in-left 0.3s ease-out forwards',
'slide-in-up': 'slide-in-up 0.4s ease-out forwards',
'slide-in-down': 'slide-in-down 0.3s ease-out forwards',
'scale-in': 'scale-in 0.2s ease-out forwards',
'bounce-in': 'bounce-in 0.5s ease-out forwards',
'pulse-neon': 'pulse-neon 2s ease-in-out infinite',
'border-flow': 'border-flow 3s linear infinite',
'typing': 'typing 3.5s steps(40, end), blink-caret 0.75s step-end infinite',
'counter': 'counter 2s ease-out forwards',
'shake': 'shake 0.5s ease-in-out',
'confetti': 'confetti 1s ease-out forwards',
},
keyframes: {
'wheel-spin': {
'0%': { transform: 'rotate(0deg)' },
'100%': { transform: 'rotate(var(--wheel-rotation, 1800deg))' },
},
'fade-in': {
'0%': { opacity: '0' },
'100%': { opacity: '1' },
},
'slide-up': {
'0%': { opacity: '0', transform: 'translateY(10px)' },
'100%': { opacity: '1', transform: 'translateY(0)' },
},
'glitch': {
'0%, 100%': { transform: 'translate(0)' },
'20%': { transform: 'translate(-2px, 2px)' },
'40%': { transform: 'translate(-2px, -2px)' },
'60%': { transform: 'translate(2px, 2px)' },
'80%': { transform: 'translate(2px, -2px)' },
},
'glitch-1': {
'0%': { clipPath: 'inset(20% 0 60% 0)' },
'100%': { clipPath: 'inset(50% 0 30% 0)' },
},
'glitch-2': {
'0%': { clipPath: 'inset(60% 0 20% 0)' },
'100%': { clipPath: 'inset(30% 0 50% 0)' },
},
'glow-pulse': {
'0%, 100%': {
boxShadow: '0 0 5px var(--glow-color, #00f0ff), 0 0 10px var(--glow-color, #00f0ff), 0 0 20px var(--glow-color, #00f0ff)'
},
'50%': {
boxShadow: '0 0 10px var(--glow-color, #00f0ff), 0 0 20px var(--glow-color, #00f0ff), 0 0 40px var(--glow-color, #00f0ff)'
},
},
'float': {
'0%, 100%': { transform: 'translateY(0)' },
'50%': { transform: 'translateY(-10px)' },
},
'shimmer': {
'0%': { backgroundPosition: '-200% 0' },
'100%': { backgroundPosition: '200% 0' },
},
'slide-in-right': {
'0%': { opacity: '0', transform: 'translateX(20px)' },
'100%': { opacity: '1', transform: 'translateX(0)' },
},
'slide-in-left': {
'0%': { opacity: '0', transform: 'translateX(-20px)' },
'100%': { opacity: '1', transform: 'translateX(0)' },
},
'slide-in-up': {
'0%': { opacity: '0', transform: 'translateY(30px)' },
'100%': { opacity: '1', transform: 'translateY(0)' },
},
'slide-in-down': {
'0%': { opacity: '0', transform: 'translateY(-20px)' },
'100%': { opacity: '1', transform: 'translateY(0)' },
},
'scale-in': {
'0%': { opacity: '0', transform: 'scale(0.9)' },
'100%': { opacity: '1', transform: 'scale(1)' },
},
'bounce-in': {
'0%': { opacity: '0', transform: 'scale(0.3)' },
'50%': { transform: 'scale(1.05)' },
'70%': { transform: 'scale(0.9)' },
'100%': { opacity: '1', transform: 'scale(1)' },
},
'pulse-neon': {
'0%, 100%': {
textShadow: '0 0 5px var(--neon-color, #00f0ff), 0 0 10px var(--neon-color, #00f0ff)'
},
'50%': {
textShadow: '0 0 10px var(--neon-color, #00f0ff), 0 0 20px var(--neon-color, #00f0ff), 0 0 30px var(--neon-color, #00f0ff)'
},
},
'border-flow': {
'0%': { backgroundPosition: '0% 50%' },
'50%': { backgroundPosition: '100% 50%' },
'100%': { backgroundPosition: '0% 50%' },
},
'typing': {
'from': { width: '0' },
'to': { width: '100%' },
},
'blink-caret': {
'from, to': { borderColor: 'transparent' },
'50%': { borderColor: '#00f0ff' },
},
'shake': {
'0%, 100%': { transform: 'translateX(0)' },
'10%, 30%, 50%, 70%, 90%': { transform: 'translateX(-5px)' },
'20%, 40%, 60%, 80%': { transform: 'translateX(5px)' },
},
'confetti': {
'0%': { transform: 'translateY(0) rotate(0deg)', opacity: '1' },
'100%': { transform: 'translateY(100vh) rotate(720deg)', opacity: '0' },
},
},
backgroundImage: {
'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
'gradient-conic': 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))',
'neon-glow': 'linear-gradient(90deg, #00f0ff, #a855f7, #00f0ff)',
'cyber-grid': `
linear-gradient(rgba(0, 240, 255, 0.03) 1px, transparent 1px),
linear-gradient(90deg, rgba(0, 240, 255, 0.03) 1px, transparent 1px)
`,
},
backgroundSize: {
'grid': '50px 50px',
},
boxShadow: {
'neon': '0 0 5px #00f0ff, 0 0 10px #00f0ff, 0 0 20px #00f0ff',
'neon-lg': '0 0 10px #00f0ff, 0 0 20px #00f0ff, 0 0 40px #00f0ff, 0 0 60px #00f0ff',
'neon-purple': '0 0 5px #a855f7, 0 0 10px #a855f7, 0 0 20px #a855f7',
'neon-pink': '0 0 5px #ec4899, 0 0 10px #ec4899, 0 0 20px #ec4899',
'inner-glow': 'inset 0 0 20px rgba(0, 240, 255, 0.1)',
'glass': '0 8px 32px 0 rgba(0, 0, 0, 0.37)',
},
backdropBlur: {
'xs': '2px',
},
transitionDuration: {
'400': '400ms',
},
},
},
plugins: [],
}