๐ An Awwwards-level interactive experience where your presence paints the digital canvas with light
Live Demo โข Features โข Installation โข Tech Stack โข Performance
ECHOES OF LIGHT is an experimental, concept-level website that transforms user presence into art. Every cursor movement, scroll, click, and moment of stillness creates unique visual responsesโfrom liquid light trails to particle vortexes, from rippling distortions to aurora-like effects.
This project explores the boundaries between user interface and digital art, creating a mesmerizing experience that feels alive and responds uniquely to each visitor.
"Your presence becomes art. Every gesture leaves traces of luminescence."
Created by Owais Zakir | ยฉ 2024-Present
| Layer | Effect | Interaction |
|---|---|---|
| 0 | Deep Space Gradient | Ambient backdrop |
| 1 | Liquid Glow Effect | Mouse-following glow |
| 2 | Liquid Metaballs | Organic blob attraction |
| 3 | Particle Vortex | Galaxy spiral following cursor |
| 4 | Fluid Wave Lines | Velocity-reactive flow |
| 5 | Aurora Particles | Idle-triggered emergence |
| 6 | Light Trails | Cursor painting |
| 7 | Click Ripples | Tap/click bloom |
| 8 | Liquid Cursor | Multi-layered glow cursor |
- Movement โ Creates flowing light trails and attracts particles
- Hover โ Text characters morph and glow individually
- Click/Tap โ Sends ripples through the visual layers
- Scroll โ Triggers parallax transformations and wave effects
- Idle โ Awakens dormant aurora particles
- No WebGL dependencies โ Pure Canvas 2D API for maximum compatibility
- Throttled animations โ 24-30fps target for smooth experience without battery drain
- Device pixel ratio optimization โ Capped at 1.5x for performance
- Memoized components โ React.memo for all canvas components
- Passive event listeners โ Non-blocking mouse tracking
- Semantic HTML5 structure with proper landmarks
- Dynamic meta tags with react-helmet-async
- JSON-LD structured data
- Open Graph & Twitter Card meta
- Accessible ARIA labels
- Dynamic year in copyright
# Clone the repository
git clone https://github.com/owaiszakir/echoes-of-light.git
# Navigate to project directory
cd echoes-of-light
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build| Technology | Version | Purpose |
|---|---|---|
| React | 18.3.1 | UI Component Library |
| TypeScript | 5.x | Type-Safe Development |
| Vite | 5.x | Build Tool & Dev Server |
| Technology | Purpose |
|---|---|
| Tailwind CSS | Utility-First Styling |
| Framer Motion | Declarative Animations |
| Canvas 2D API | High-Performance Graphics |
| Custom CSS | Glow Effects & Gradients |
| Technology | Purpose |
|---|---|
| react-helmet-async | Dynamic Meta Tags |
| React.memo | Component Memoization |
| requestAnimationFrame | Optimized Animation Loop |
| Technology | Purpose |
|---|---|
| shadcn/ui | Accessible Components |
| Radix UI | Headless Primitives |
| Lucide React | Icon System |
โ
Canvas 2D instead of WebGL โ Better compatibility, no shader overhead
โ
Throttled to 24-30fps โ Smooth visuals without battery drain
โ
Device Pixel Ratio capped at 1.5x โ Prevents excessive canvas size
โ
Passive event listeners โ Non-blocking scroll & mouse events
โ
React.memo on all canvas components โ Prevents unnecessary re-renders
โ
useCallback for event handlers โ Stable function references
โ
useMemo for static data โ Prevents recalculation
โ
Reduced particle counts โ Fewer objects, same visual impact
| Metric | Target |
|---|---|
| Performance | 90+ |
| Accessibility | 100 |
| Best Practices | 100 |
| SEO | 100 |
src/
โโโ components/
โ โโโ AuroraParticles.tsx # Idle-triggered floating particles
โ โโโ BackgroundAurora.tsx # Ambient background effects
โ โโโ FluidDistortion.tsx # Canvas-based wave lines (optimized)
โ โโโ FloatingElement.tsx # Generic float animation wrapper
โ โโโ GlitchText.tsx # Subtle text glitch effect
โ โโโ GlowingText.tsx # Stroke-reveal text animation
โ โโโ InkReveal.tsx # Scroll-triggered ink wash reveal
โ โโโ LightTrailCanvas.tsx # Cursor light trail painter
โ โโโ LiquidBlobs.tsx # Organic metaball shapes (optimized)
โ โโโ LiquidCursor.tsx # Multi-layered custom cursor
โ โโโ MagneticButton.tsx # Cursor-attracted buttons
โ โโโ MorphingText.tsx # Character-level hover effects
โ โโโ ParticleVortex.tsx # Galaxy spiral particles (optimized)
โ โโโ RippleEffect.tsx # Click bloom effect
โ โโโ ScrollWaves.tsx # Scroll-driven light waves
โ โโโ WebGLDistortion.tsx # Lightweight liquid glow (optimized)
โโโ hooks/
โ โโโ useMousePosition.ts # Global mouse tracking
โ โโโ useIdle.ts # Idle state detection
โโโ pages/
โ โโโ Index.tsx # Main experience page (SEO optimized)
โโโ index.css # Design tokens & global styles
| Color | HSL | Usage |
|---|---|---|
| Midnight Deep | hsl(250, 40%, 4%) |
Background base |
| Glow Teal | hsl(170, 70%, 55%) |
Primary accents |
| Glow Rose | hsl(340, 80%, 70%) |
Secondary accents |
| Glow Violet | hsl(270, 60%, 60%) |
Tertiary accents |
| Aurora Gold | hsl(45, 90%, 65%) |
Highlight accents |
๐ฑ๏ธ Move โ Light trails follow cursor
๐ฑ๏ธ Hover โ Text morphs, buttons attract
๐ฑ๏ธ Click โ Ripples expand outward
๐ฑ๏ธ Fast Move โ Increased trail intensity
๐ Scroll Down โ Parallax transformations
๐ Scroll Up โ Reverse parallax
๐ Into View โ Ink reveal animations
โธ๏ธ Stop Moving โ Aurora particles emerge
โธ๏ธ Stay Still โ Ambient light breathing
This project draws inspiration from:
- Bioluminescent ocean phenomena
- Aurora Borealis light shows
- Liquid light art installations
- Award-winning experimental websites on Awwwards & FWA
MIT License โ feel free to use, modify, and distribute.
Created with ๐ by Owais Zakir
An experiment in presence โข Dynamic Year: Auto-updated