ποΈ Epic Hero Landing Animation - Implementation Guide
ποΈ Epic Hero Landing Animation - Implementation Guide
Overview
This implementation creates a jaw-dropping, F1-inspired landing page animation for Vansh Guptaβs website, featuring:
- Grid Convergence Effect: Animated grid lines that converge on the hero name
- Particle Explosion System: Dynamic particle bursts using Canvas API
- Telemetry Data Bars: F1-style data visualization bars
- Glitch Effects: Cyberpunk-inspired glitch animations
- Holographic Scanner: Sci-fi scanning overlay
- 3D Perspective Shifts: Mouse-responsive 3D transforms
- Responsive Design: Optimized for both desktop and mobile
Files Created/Modified
New Files
assets/js/hero-animation.js(611 lines)- Main animation engine
- Particle system with Canvas API
- Grid convergence with SVG
- Telemetry bars animation
- Glitch and holographic effects
- Mobile touch interactions
- Scroll-triggered parallax
_sass/_epic-hero.scss(641 lines)- Epic hero section styles
- Corner bracket animations
- Scanline overlay effects
- Data point telemetry displays
- Scroll indicator animations
- Mobile-specific optimizations
- Reduced motion support
Modified Files
_layouts/home.html- Enhanced hero section structure
- Added corner brackets
- Added scanlines overlay
- Added data points section
- Added scroll indicator
assets/css/main.scss- Imported
epic-herostyles
- Imported
_includes/scripts.html- Added
hero-animation.jsscript
- Added
_sass/_mobile.scss- Critical mobile fixes for hero name visibility
- Hero section mobile layout
- Data points mobile optimization
- Touch-friendly sizing
Features Breakdown
1. Grid Convergence System
- Desktop: 30 animated grid lines
- Mobile: 15 lines (performance optimized)
- Lines converge to center during intro
- Smooth fade-in/fade-out transitions
- Uses SVG for crisp rendering
2. Particle Explosion
- Desktop: 80 particles
- Mobile: 40 particles (performance optimized)
- Canvas-based rendering
- Multi-color particles (neon lime, cyan, amber)
- Radial explosion pattern
- Life-decay system
3. Telemetry Bars
- Desktop: 16 animated bars
- Mobile: 8 bars
- Random positioning on screen edges
- Synchronized animation timing
- F1-inspired color scheme
4. Hero Name Animation
- Enhanced GSAP timeline
- Character-by-character split animation
- 3D perspective on mouse move (desktop only)
- Pulsing glow effect
- Glitch burst effects
- Metallic gradient shimmer
- Touch-responsive scaling (mobile)
5. Data Points Display
- Live telemetry-style metrics
- Hover lift effects
- Floating animation
- Glass morphism design
- Responsive grid layout
6. Visual Enhancements
- Corner brackets with F1 aesthetic
- Scanline overlay (CRT effect)
- Scroll indicator with animated line
- Holographic scanner sweep
- Depth fog and atmosphere
Mobile Optimizations
Critical Fixes
- Hero Name Visibility: Force display with multiple fallbacks
- Touch Interactions: Custom touch handlers for scaling
- Performance: Reduced particle counts and simplified animations
- Layout: Flexbox-based responsive layout
- Typography: Optimal font sizing with clamp()
Mobile-Specific Features
- Simplified grid animations
- Reduced particle counts
- Touch-to-scale interaction
- Optimized corner brackets
- Safe area insets for notched devices
Browser Support
Tested Features
- β Chrome/Edge (desktop & mobile)
- β Firefox (desktop & mobile)
- β Safari (desktop & mobile)
- β iOS Safari (iPhone/iPad)
- β Android Chrome
Fallbacks
- Reduced motion preference respected
- JavaScript disabled fallback
- Gradient fallback colors
- Canvas/SVG feature detection
Performance Optimizations
- GPU Acceleration
transform: translateZ(0)on animated elementswill-changeproperties (auto-removed after animation)backface-visibility: hidden
- Animation Throttling
- RequestAnimationFrame for smooth 60fps
- GSAP ticker for synchronized animations
- Lenis smooth scroll optimization
- Mobile Optimizations
- Reduced particle counts (50% reduction)
- Fewer grid lines
- Simplified effects
- Touch-optimized interactions
- Lazy Loading
- Effects only initialize on hero section
- Scroll effects use IntersectionObserver
- Cleanup on page unload
Accessibility
Motion Preferences
@media (prefers-reduced-motion: reduce) {
/* All animations disabled */
/* Immediate state transitions */
/* Hero name always visible */
}
Screen Readers
- Proper ARIA labels
- Semantic HTML structure
- Keyboard navigation support
- Focus indicators
Color Contrast
- WCAG AA compliant
- High contrast text shadows
- Fallback colors for gradients
Testing Checklist
Desktop Testing
- Chrome - Grid convergence works
- Chrome - Particle explosion visible
- Chrome - Telemetry bars animate
- Chrome - Hero name animates smoothly
- Chrome - Mouse 3D effect works
- Chrome - Glitch effects trigger
- Firefox - All animations work
- Safari - Gradient text renders
- Edge - No performance issues
Mobile Testing
- iOS Safari - Hero name shows immediately
- iOS Safari - Touch scaling works
- Android Chrome - All effects visible
- Mobile - No horizontal scroll
- Mobile - Data points layout correctly
- Mobile - Scroll indicator visible
- Tablet - Responsive breakpoints work
Performance Testing
- Desktop - 60fps maintained
- Mobile - No jank on scroll
- Low-end devices - Graceful degradation
- Network - Assets load quickly
Accessibility Testing
- Reduced motion preference works
- Screen reader announces content
- Keyboard navigation functional
- Focus indicators visible
- Color contrast passes WCAG AA
Animation Timeline
0.0s - Page load
0.2s - Corner brackets fade in
0.3s - Grid convergence starts
0.5s - Telemetry bars appear
1.5s - Grid fades out
1.8s - Hero name dramatic entrance
2.0s - Holographic scanner sweep
2.5s - Glitch effects burst
3.0s - Data points fade in
3.0s - Scroll indicator appears
3.0s - Continuous pulsing effects begin
Customization
Colors
Edit _sass/_variables.scss:
$accent-color: #9bff1f; // Neon lime
$accent-color-strong: #63ff9d; // Cyan
$terminal-amber: #ffd86b; // Amber
Animation Speed
Edit assets/js/hero-animation.js:
// Grid convergence duration
duration: 1.2
// Particle life decay
decay: 0.01
// Glitch burst count
for (let i = 0; i < 3; i++)
Particle Count
const particleCount = isMobile ? 40 : 80;
Troubleshooting
Hero Name Not Showing
- Check browser console for errors
- Verify GSAP and Three.js loaded
- Check
motion-readyclass on body - Verify mobile CSS overrides
Animations Not Smooth
- Check GPU acceleration enabled
- Reduce particle counts
- Disable telemetry bars on mobile
- Check for CSS conflicts
Mobile Performance Issues
- Reduce particle counts further
- Disable 3D effects
- Simplify grid animations
- Remove holographic scanner
Future Enhancements
Potential Additions
- WebGL Shaders: Custom fragment shaders for effects
- Sound Design: Subtle audio cues (muted by default)
- Data Fetching: Live stats from GitHub API
- Theme Switching: Dark/light mode toggle
- Easter Eggs: Hidden interactions
- Performance Monitor: FPS counter for debugging
Advanced Features
- Track Outline: SVG circuit path animation
- 3D Vehicle Model: GLTF car/helmet with Three.js
- Split-Flap Display: Retro flip animation for numbers
- Noise Texture: Animated grain overlay
- Motion Path: GSAP MotionPath for curved animations
Credits
Design Inspiration: Lando Norris Official Website Animation Libraries: GSAP, Three.js, Lenis Implementation: Custom code for Vansh Guptaβs portfolio Testing: Cross-browser and cross-device validation
Support
For issues or questions:
- Check browser console for errors
- Verify all dependencies loaded
- Test with reduced motion off
- Review mobile CSS overrides
- Check network for asset loading
Version: 2.0.0
Last Updated: November 2025
Status: β
Production Ready
