refactor: apply Tailwind CSS and Heroicons to all HTML files

- Replace custom CSS with Tailwind utility classes
- Convert all inline SVGs to Heroicons sprite system
- Add consistent Tailwind config with design tokens
- Improve responsive layout for onboarding screen
This commit is contained in:
2026-05-18 18:04:47 +09:00
parent 72b7d35719
commit 3735240eed
7 changed files with 1729 additions and 5130 deletions

104
tailwind.config.js Normal file
View File

@@ -0,0 +1,104 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
content: ["./index.html", "./scene_*.html"],
theme: {
extend: {
colors: {
primary: {
DEFAULT: '#3b82f6',
light: '#60a5fa',
dark: '#1d4ed8',
},
secondary: {
DEFAULT: '#06b6d4',
light: '#22d3ee',
},
accent: {
DEFAULT: '#0ea5e9',
warn: '#38bdf8',
danger: '#f472b6',
},
surface: {
primary: '#f8fafc',
secondary: '#e2e8f0',
card: '#ffffff',
overlay: 'rgba(14, 165, 233, 0.08)',
},
dark: {
primary: '#0a0e1a',
secondary: '#111827',
card: '#1e293b',
overlay: 'rgba(14, 165, 233, 0.12)',
},
text: {
primary: '#0f172a',
secondary: '#475569',
muted: '#94a3b8',
},
},
fontFamily: {
sans: ['Noto Sans KR', '-apple-system', 'BlinkMacSystemFont', 'sans-serif'],
display: ['Outfit', 'sans-serif'],
},
spacing: {
'1': '4px',
'2': '8px',
'3': '12px',
'4': '16px',
'5': '20px',
'6': '24px',
'8': '32px',
'10': '40px',
'12': '48px',
'16': '64px',
},
borderRadius: {
'sm': '8px',
'md': '12px',
'lg': '20px',
'xl': '28px',
},
boxShadow: {
'sm': '0 2px 8px rgba(14, 165, 233, 0.06)',
'md': '0 4px 20px rgba(14, 165, 233, 0.08)',
'lg': '0 8px 40px rgba(14, 165, 233, 0.12)',
'glow': '0 0 30px rgba(14, 165, 233, 0.25)',
'blue': '0 4px 20px rgba(59, 130, 246, 0.3)',
},
transitionTimingFunction: {
'bounce': 'cubic-bezier(0.34, 1.56, 0.64, 1)',
},
keyframes: {
float: {
'0%, 100%': { transform: 'translateY(0)' },
'50%': { transform: 'translateY(-10px)' },
},
fadeSlideUp: {
from: { opacity: '0', transform: 'translateY(20px)' },
to: { opacity: '1', transform: 'translateY(0)' },
},
slideIn: {
from: { opacity: '0', transform: 'translateY(30px)' },
to: { opacity: '1', transform: 'translateY(0)' },
},
bounceIn: {
'0%': { transform: 'scale(0)' },
'50%': { transform: 'scale(1.1)' },
'100%': { transform: 'scale(1)' },
},
pulse: {
'0%, 100%': { opacity: '0.5', transform: 'scale(1)' },
'50%': { opacity: '1', transform: 'scale(1.1)' },
},
},
animation: {
'float': 'float 3s ease-in-out infinite',
'fade-slide-up': 'fadeSlideUp 0.5s ease forwards',
'slide-in': 'slideIn 0.5s ease forwards',
'bounce-in': 'bounceIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards',
'pulse-slow': 'pulse 2s ease-in-out infinite',
},
},
},
plugins: [],
}