• Home

  • Projects

  • Home
  • Projects
Listyo Adi Pamungkas - 2025 - All rights reserved
SitemapRSS Feed

    nerurora

    nerurora

    A beautiful, interactive romantic demonstration featuring Matrix rain effects, particle systems, elegant typography, and audio integration. Created with love and modern web technologies.
    Created at 8/14/2025 • 5 min read
    Repository
    Tags: Share:

    šŸ’– Romantic Animated Demo

    A beautiful, interactive romantic demonstration featuring Matrix rain effects, particle systems, elegant typography, and audio integration. Created with love and modern web technologies.

    #✨ Features

    ##šŸŽ­ Visual Effects

    • Matrix Rain Effect: Customizable falling code characters with color transitions
    • Particle Systems: Hearts, stars, and fireworks with physics-based animations
    • Text Reveal: Elegant typography with staggered animations
    • Shape Formations: Dynamic particle arrangements forming romantic shapes

    ##šŸŽµ Audio Integration

    • Background Music: Seamless audio playback with fade in/out effects
    • Lyrics Display: Synchronized text display with color transitions
    • Audio Controls: Volume control, play/pause, and seeking capabilities

    ##šŸŽØ Design & Animation

    • Responsive Design: Optimized for desktop, tablet, and mobile devices
    • Custom Animations: Framer Motion powered smooth transitions
    • Color Themes: Romantic pink, gold, and purple gradients
    • Typography: Dancing Script and Playfair Display fonts

    #šŸ› ļø Technology Stack

    ##Frontend

    • Next.js 15: React framework with App Router
    • TypeScript: Type-safe development
    • Tailwind CSS: Utility-first styling with custom animations
    • Framer Motion: Professional animation library

    ##Libraries

    • Howler.js: Web audio management
    • Lucide React: Beautiful icons
    • clsx: Conditional className utility

    #šŸš€ Getting Started

    ##Prerequisites

    • Node.js 18.0.0 or higher
    • npm, yarn, or pnpm

    ##Installation

    1. Clone the repository
      git clone <repository-url>
      cd kaysa-romantic-demo
      
    2. Install dependencies
      npm install
      # or
      yarn install
      # or
      pnpm install
      
    3. Add background music (optional)
      • Place an MP3 file in public/audio/
      • Rename it to background-music.mp3
      • Ensure you have proper licensing for any music files
    4. Start development server
      npm run dev
      # or
      yarn dev
      # or
      pnpm dev
      
    5. Open in browser
      Navigate to http://localhost:3000

    #šŸ“ Project Structure

    kaysa-romantic-demo/ ā”œā”€ā”€ public/ │ ā”œā”€ā”€ audio/ # Audio files │ └── ... # Static assets ā”œā”€ā”€ src/ │ ā”œā”€ā”€ app/ # Next.js App Router │ │ ā”œā”€ā”€ globals.css # Global styles │ │ ā”œā”€ā”€ layout.tsx # Root layout │ │ └── page.tsx # Main page │ ā”œā”€ā”€ components/ # React components │ │ ā”œā”€ā”€ ui/ # Reusable UI components │ │ ā”œā”€ā”€ AudioController.tsx │ │ ā”œā”€ā”€ LyricsDisplay.tsx │ │ ā”œā”€ā”€ MatrixEffect.tsx │ │ ā”œā”€ā”€ ShapeFormation.tsx │ │ └── TextReveal.tsx │ ā”œā”€ā”€ hooks/ # Custom React hooks │ │ ā”œā”€ā”€ useAnimationSequence.ts │ │ ā”œā”€ā”€ useAudio.ts │ │ └── useParticles.ts │ ā”œā”€ā”€ types/ # TypeScript type definitions │ │ ā”œā”€ā”€ animation.ts │ │ ā”œā”€ā”€ audio.ts │ │ └── particles.ts │ ā”œā”€ā”€ utils/ # Utility functions and classes │ │ ā”œā”€ā”€ animationHelpers.ts │ │ ā”œā”€ā”€ audioUtils.ts │ │ └── particleSystem.ts │ ā”œā”€ā”€ data/ # Static data │ │ ā”œā”€ā”€ lyrics.ts │ │ └── quotes.ts │ └── lib/ # Constants and configuration │ └── constants.ts ā”œā”€ā”€ tailwind.config.ts # Tailwind CSS configuration ā”œā”€ā”€ tsconfig.json # TypeScript configuration └── package.json # Project dependencies

    #šŸŽØ Customization

    ##Colors

    Edit tailwind.config.ts to customize the color palette:
    colors: {
      romantic: { /* pink variations */ },
      gold: { /* gold variations */ },
      magic: { /* purple variations */ },
      matrix: '#00ff41'
    }
    

    ##Animation Durations

    Modify timing in src/lib/constants.ts:
    export const ANIMATION_DURATIONS = {
      MATRIX_EFFECT: 5000,
      SHAPE_FORMATION: 3000,
      TEXT_REVEAL: 4000,
      TRANSITION: 1000
    };
    

    ##Text Content

    Update quotes and lyrics in:
    • src/data/quotes.ts - Romantic quotes and dedication message
    • src/data/lyrics.ts - Synchronized lyrics with timestamps

    ##Particle Effects

    Configure particle systems in src/lib/constants.ts:
    export const PARTICLE_CONFIGS = {
      HEART: { count: 30, speed: { min: 0.5, max: 2 }, /* ... */ },
      STAR: { count: 25, /* ... */ },
      FIREWORKS: { count: 80, /* ... */ }
    };
    

    #šŸŽµ Audio Setup

    1. Supported Formats: MP3 (recommended for compatibility)
    2. File Location: public/audio/background-music.mp3
    3. Licensing: Ensure proper licensing for any music files
    4. Fallback: The app gracefully handles missing audio files

    #šŸ“± Responsive Design

    The application is optimized for:
    • Desktop (1200px+): Full experience with high particle counts
    • Tablet (768px-1199px): Reduced particles, touch-friendly controls
    • Mobile (<768px): Essential animations, vertical layout

    #šŸ”§ Development

    ##Available Scripts

    • npm run dev - Start development server
    • npm run build - Build for production
    • npm run start - Start production server
    • npm run lint - Run ESLint

    ##Code Quality

    • TypeScript: Strict type checking enabled
    • ESLint: Code linting with Next.js configuration
    • Prettier: Code formatting (install extension recommended)

    ##Architecture Principles

    • Clean Code: Modular, readable, and maintainable code
    • DRY (Don't Repeat Yourself): Reusable components and utilities
    • KISS (Keep It Simple, Stupid): Simple, focused solutions
    • OOP: Object-oriented particle systems and audio management

    #šŸš€ Deployment

    ##Vercel (Recommended)

    1. Connect repository to Vercel
    2. Configure build settings (automatic with Next.js)
    3. Deploy with zero configuration

    ##Other Platforms

    • Netlify: Drag and drop build folder
    • GitHub Pages: Static export with next export
    • Custom Server: Use npm run start after npm run build

    #šŸ› Troubleshooting

    ##Common Issues

    Audio not playing:
    • Check if background-music.mp3 exists in public/audio/
    • Verify file format is MP3
    • Check browser's autoplay policy
    Performance issues:
    • Reduce particle counts in src/lib/constants.ts
    • Check hardware acceleration in browser
    • Monitor CPU usage with DevTools
    Build errors:
    • Ensure all dependencies are installed
    • Check TypeScript errors with npm run build
    • Verify ESLint configuration

    #šŸ“„ License

    This project is for personal and educational use. Ensure proper licensing for any music or media files used.

    #šŸ’ Dedication

    Created with love for Kaysa ✨
    Note: This is a demonstration project showcasing modern web development techniques for creating romantic, interactive experiences. Feel free to customize and adapt it for your own romantic gestures!
    Previous

    nerushort

    Next

    nerumarried