feat: Add neon esports landing page with WCAG accessibility

- Create HeroSection with animated search bar and stat counters
- Add LiveMatchTicker with auto-scrolling recent matches
- Build FlashLeaderboard "Wall of Shame" with podium display
- Implement FeatureShowcase with scroll-triggered animations
- Add NeonCTA call-to-action section with trust badges
- Create reusable NeonButton component with glow effects

Accessibility improvements:
- Add aria-labels, aria-hidden for decorative elements
- Implement focus-visible ring styles for keyboard navigation
- Support prefers-reduced-motion across all animations
- Use semantic HTML (article, nav, dl) for screen readers
- Improve color contrast ratios for WCAG compliance

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-07 16:10:13 +01:00
parent 3383302225
commit 1ddda81d93
15 changed files with 1396 additions and 416 deletions

View File

@@ -14,6 +14,18 @@ module.exports = {
DEFAULT: '#5e98d9',
light: '#7eaee5',
dark: '#4a7ab3'
},
// Neon Esports colors
neon: {
blue: '#00d4ff',
gold: '#ffd700',
red: '#ff3366',
green: '#00ff88',
purple: '#8b5cf6'
},
void: {
DEFAULT: '#0a0a0f',
light: '#12121a'
}
},
fontFamily: {
@@ -34,6 +46,37 @@ module.exports = {
'"Courier New"',
'monospace'
]
},
animation: {
ticker: 'ticker 60s linear infinite',
float: 'float 6s ease-in-out infinite',
'glow-pulse': 'glow-pulse 2s ease-in-out infinite',
'fade-up': 'fade-up 0.6s ease-out forwards'
},
keyframes: {
ticker: {
'0%': { transform: 'translateX(0)' },
'100%': { transform: 'translateX(-50%)' }
},
float: {
'0%, 100%': { transform: 'translateY(0)' },
'50%': { transform: 'translateY(-10px)' }
},
'glow-pulse': {
'0%, 100%': { opacity: '1' },
'50%': { opacity: '0.5' }
},
'fade-up': {
'0%': { opacity: '0', transform: 'translateY(20px)' },
'100%': { opacity: '1', transform: 'translateY(0)' }
}
},
backgroundImage: {
'grid-pattern':
'linear-gradient(rgba(0, 212, 255, 0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 212, 255, 0.03) 1px, transparent 1px)'
},
backgroundSize: {
grid: '50px 50px'
}
}
},