Files
Arcanum_TD/tailwind.config.js
Mareli 7a62067af1 Initial commit: Arcanum TD — medieval fantasy tower defense
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>
2026-04-19 12:31:49 +03:00

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: [],
}