7a62067af1
Vite + React + PixiJS + TypeScript. Features: - 4-level campaign (King's Road → Obsidian Keep) - Isometric 2.5D grid with ley-line mechanics - ECS architecture (entities, components, systems) - 4 tower types, hero spellcaster, 10+ enemy types - Lich King boss with 3-phase AI - Meta-progression: essence, rune unlocks - Full UI redesign with fantasy design system Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
104 lines
3.7 KiB
JavaScript
104 lines
3.7 KiB
JavaScript
/** @type {import('tailwindcss').Config} */
|
|
export default {
|
|
content: ['./index.html', './src/**/*.{ts,tsx}'],
|
|
theme: {
|
|
extend: {
|
|
colors: {
|
|
midnight: '#0E1220',
|
|
'midnight-light': '#1a2035',
|
|
'midnight-deep': '#070b14',
|
|
parchment: '#E9DCC0',
|
|
gold: '#C9A14A',
|
|
'gold-dark': '#8B6914',
|
|
'gold-bright': '#f0c060',
|
|
ember: '#E8702A',
|
|
frost: '#6ECBD5',
|
|
'frost-dark': '#3a9aa8',
|
|
arcane: '#9b4de8',
|
|
'arcane-dark': '#5a1ea0',
|
|
void: '#050810',
|
|
},
|
|
fontFamily: {
|
|
cinzel: ['Cinzel', 'serif'],
|
|
garamond: ['"EB Garamond"', 'serif'],
|
|
},
|
|
keyframes: {
|
|
'rune-glow': {
|
|
'0%, 100%': { boxShadow: '0 0 8px 2px rgba(201, 161, 74, 0.4)' },
|
|
'50%': { boxShadow: '0 0 20px 6px rgba(201, 161, 74, 0.8)' },
|
|
},
|
|
'pulse-soft': {
|
|
'0%, 100%': { opacity: '0.65' },
|
|
'50%': { opacity: '1' },
|
|
},
|
|
float: {
|
|
'0%, 100%': { transform: 'translateY(0px)' },
|
|
'50%': { transform: 'translateY(-6px)' },
|
|
},
|
|
flicker: {
|
|
'0%, 100%': { opacity: '1' },
|
|
'30%': { opacity: '0.75' },
|
|
'60%': { opacity: '0.9' },
|
|
'80%': { opacity: '0.7' },
|
|
},
|
|
'spin-slow': {
|
|
from: { transform: 'rotate(0deg)' },
|
|
to: { transform: 'rotate(360deg)' },
|
|
},
|
|
'spin-slow-rev': {
|
|
from: { transform: 'rotate(0deg)' },
|
|
to: { transform: 'rotate(-360deg)' },
|
|
},
|
|
shimmer: {
|
|
'0%': { backgroundPosition: '-200% center' },
|
|
'100%': { backgroundPosition: '200% center' },
|
|
},
|
|
'slide-up': {
|
|
from: { opacity: '0', transform: 'translateY(16px)' },
|
|
to: { opacity: '1', transform: 'translateY(0)' },
|
|
},
|
|
'fade-in': {
|
|
from: { opacity: '0' },
|
|
to: { opacity: '1' },
|
|
},
|
|
'scale-in': {
|
|
from: { opacity: '0', transform: 'scale(0.92)' },
|
|
to: { opacity: '1', transform: 'scale(1)' },
|
|
},
|
|
'glow-pulse-rose': {
|
|
'0%, 100%': { boxShadow: '0 0 8px rgba(244,63,94,0.4)' },
|
|
'50%': { boxShadow: '0 0 22px rgba(244,63,94,0.9)' },
|
|
},
|
|
'glow-pulse-frost': {
|
|
'0%, 100%': { boxShadow: '0 0 8px rgba(110,203,213,0.4)' },
|
|
'50%': { boxShadow: '0 0 22px rgba(110,203,213,0.9)' },
|
|
},
|
|
'sweep-in': {
|
|
from: { clipPath: 'inset(0 100% 0 0)' },
|
|
to: { clipPath: 'inset(0 0% 0 0)' },
|
|
},
|
|
},
|
|
animation: {
|
|
'rune-glow': 'rune-glow 2s ease-in-out infinite',
|
|
'pulse-soft': 'pulse-soft 3s ease-in-out infinite',
|
|
float: 'float 4s ease-in-out infinite',
|
|
flicker: 'flicker 3s ease-in-out infinite',
|
|
'spin-slow': 'spin-slow 24s linear infinite',
|
|
'spin-slow-rev': 'spin-slow-rev 18s linear infinite',
|
|
shimmer: 'shimmer 2.5s linear infinite',
|
|
'slide-up': 'slide-up 0.4s ease-out',
|
|
'fade-in': 'fade-in 0.5s ease-out',
|
|
'scale-in': 'scale-in 0.35s cubic-bezier(0.16,1,0.3,1)',
|
|
'glow-pulse-rose': 'glow-pulse-rose 2s ease-in-out infinite',
|
|
'glow-pulse-frost': 'glow-pulse-frost 2s ease-in-out infinite',
|
|
'sweep-in': 'sweep-in 0.6s ease-out forwards',
|
|
},
|
|
backgroundImage: {
|
|
'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
|
|
'gradient-conic': 'conic-gradient(var(--tw-gradient-stops))',
|
|
},
|
|
},
|
|
},
|
|
plugins: [],
|
|
}
|