• Home

  • Projects

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

    nerulyrics

    nerulyrics

    A modern music streaming web application with synchronized lyrics and auto-hide UI. Built with React, TypeScript, and Tailwind CSS.
    Created at 8/10/2025 • 4 min read
    Repository
    Tags: Share:

    NerU Lyrics šŸŽµ

    A modern music streaming web application with synchronized lyrics and auto-hide UI. Built with React, TypeScript, and Tailwind CSS.

    #✨ Features

    • šŸ” Smart Music Search - Search across multiple music databases
    • šŸŽµ Audio Streaming - Stream music directly in your browser
    • šŸ“ Synchronized Lyrics - Real-time lyrics that highlight as the song plays
    • šŸ‘» Auto-Hide UI - Controls automatically hide when mouse is idle during playback
    • šŸ–„ļø Fullscreen Lyrics - Immersive lyrics viewing experience
    • šŸŽØ Modern Design - Beautiful gradient backgrounds and smooth animations
    • šŸ“± Responsive - Works on desktop, tablet, and mobile devices

    #šŸš€ Quick Start

    1. Clone the repository
      git clone https://github.com/nerufuyo/nerulyrics.git
      cd nerulyrics
      
    2. Install dependencies
      npm install
      
    3. Set up environment variables (optional)
      cp .env.example .env
      # Edit .env and add your YouTube API key for live search
      
    4. Start the development server
      npm run dev
      
    5. Open your browser and navigate to http://localhost:5173

    #šŸ› ļø Tech Stack

    • Frontend: React 18 + TypeScript
    • Build Tool: Vite
    • Styling: Tailwind CSS
    • Icons: Lucide React
    • HTTP Client: Axios
    • APIs: YouTube Data API, Lyrics.ovh API

    #šŸŽÆ How It Works

    ##Search & Play

    1. Type any song, artist, or album name in the search bar
    2. Click on a search result to start playing
    3. Enjoy synchronized lyrics that appear in real-time

    ##Auto-Hide UI

    • When music is playing, move your mouse to see controls
    • After 4 seconds of inactivity, controls smoothly fade away
    • Perfect for distraction-free lyrics reading

    ##Fullscreen Lyrics

    • Click the fullscreen button for an immersive lyrics experience
    • Large, centered text with smooth scrolling
    • Escape or click X to return to normal view

    #šŸ”§ API Configuration

    ##YouTube Data API (Optional)

    For live music search, you'll need a YouTube Data API key:
    1. Go to Google Cloud Console
    2. Create a new project or select existing one
    3. Enable YouTube Data API v3
    4. Create credentials (API key)
    5. Add the key to your .env file as VITE_YOUTUBE_API_KEY
    Note: The app works without API keys using demo data for testing.

    #šŸŽØ UI Features

    ##Auto-Hide Controls

    // Mouse idle detection with customizable timeout
    const { showUI } = useMouseIdle(4000, isPlaying);
    

    ##Synchronized Lyrics

    // Real-time lyrics synchronization
    const { currentLine } = useSyncedLyrics(lyrics, currentTime);
    

    ##Smooth Animations

    • Fade transitions for UI elements
    • Smooth scrolling lyrics
    • Gradient progress bars
    • Hover effects on interactive elements

    #šŸ“± Responsive Design

    • Desktop: Full featured experience with all controls
    • Tablet: Optimized layout for touch interaction
    • Mobile: Simplified UI with essential controls

    #šŸŽµ Supported Features

    • āœ… Music search and streaming
    • āœ… Synchronized lyrics display
    • āœ… Auto-hide UI system
    • āœ… Progress tracking and seeking
    • āœ… Volume control
    • āœ… Fullscreen lyrics mode
    • āœ… Responsive design
    • šŸ”„ Queue management (coming soon)
    • šŸ”„ Playlist support (coming soon)
    • šŸ”„ Offline lyrics cache (coming soon)

    #🧱 Project Structure

    src/ ā”œā”€ā”€ components/ # React components │ ā”œā”€ā”€ Search/ # Search-related components │ ā”œā”€ā”€ Player/ # Audio player components │ ā”œā”€ā”€ Lyrics/ # Lyrics display components │ └── UI/ # General UI components ā”œā”€ā”€ hooks/ # Custom React hooks ā”œā”€ā”€ services/ # API service classes ā”œā”€ā”€ types/ # TypeScript type definitions └── utils/ # Utility functions

    #šŸ”® Future Enhancements

    • Queue Management: Add, remove, and reorder songs
    • Playlist Support: Create and save custom playlists
    • User Accounts: Save favorites and listening history
    • Social Features: Share songs and playlists
    • Offline Mode: Cache lyrics and basic functionality
    • Keyboard Shortcuts: Full keyboard navigation
    • Visualizer: Audio visualization during playback

    #šŸ¤ Contributing

    1. Fork the repository
    2. Create a feature branch (git checkout -b feature/amazing-feature)
    3. Commit your changes (git commit -m 'Add amazing feature')
    4. Push to the branch (git push origin feature/amazing-feature)
    5. Open a Pull Request

    #šŸ“„ License

    This project is licensed under the MIT License - see the LICENSE file for details.

    #šŸ™ Acknowledgments

    • APIs: YouTube Data API, Lyrics.ovh
    • Icons: Lucide React
    • Styling: Tailwind CSS
    • Build Tool: Vite
    Made with ā¤ļø by nerufuyo
    Previous

    nerulibrary

    Next

    neru-scrapper