A beautiful, interactive birthday gift website built with React and TypeScript. is a one of a kind Birthday Treasure, handcrafted as a gift to Celebrate my Friend in style.
Born from late-night coding sessions and a love for building something special, it’s a Sleek, Luxurious Escape. It’s more than a site - it’s a personal digital keepsake designed with care and attention to detail.
- Interactive Envelope: Click to open an animated envelope that reveals the birthday content.
- Animated Hero Section: A full-screen experience with a stunning northern lights as background for a birthday message.
- Photo Gallery: An elegant photo collection, showcasing your friend's unforgettable memories.
- Personalized Messages: Custom birthday greetings and wishes.
- Shooting Star Wisher: A magical wish-making experience with animated shooting stars.
- Background Music: Ambient music that plays when the envelope is opened.
- Responsive Design: Works beautifully on desktop and mobile devices.
- Custom Cursor: Enhanced user experience with a custom cursor.
- Smooth Animations: Parallax effects and smooth transitions throughout.
- React 19: Latest React with modern features and hooks
- TypeScript: Type-safe development for better code quality
- Vite: Fast build tool and development server
- Tailwind CSS: Utility-first CSS framework for styling
- FontAwesome: Icons for UI elements
- ESLint: Code linting and quality assurance
- PostCSS: CSS processing and optimization
- Autoprefixer: Automatic vendor prefixing
src/
├── components/ # React components
│ ├── CustomCursor.tsx
│ ├── Envelope.tsx
│ ├── Gallery.tsx
│ ├── Greet.tsx
│ ├── Hero.tsx
│ ├── Message.tsx
│ └── Wish.tsx
├── assets/ # Static assets
│ └── music-bg.mp3
├── App.tsx # Main app component
└── main.tsx # Entry point
- Node.js (version 18 or higher)
- npm or yarn
- Clone the repository
git clone git https://github.com/irfan-rg/present
cd present- Install dependencies
npm install- Start development server
npm run dev-
Update the Hero Section (
src/components/Hero.tsx):- Change "Friend's Name" to the actual birthday person's name
- Replace the video background URL with your own video
- Modify the birthday message
-
Add Photos to Gallery (
src/components/Gallery.tsx):- Replace placeholder images with actual photos
- Add captions and descriptions
-
Customize Messages (
src/components/Message.tsx):- Write personalized birthday messages
- Add special memories or inside jokes
-
Update Background Music:
- Replace
src/assets/music-bg.mp3with your preferred background music
- Replace
The project uses Tailwind CSS for styling. You can customize:
- Colors in
tailwind.config.js - Fonts and typography
- Animations and transitions
- Responsive breakpoints
The project is fully responsive and includes:
- Touch-friendly interactions
- Mobile-optimized animations
- Responsive typography
- Mobile-specific audio handling
- Background music plays when envelope opens
- Mute/unmute button for audio control
- Mobile-friendly audio handling
- Automatic audio pause when leaving the page
This project is designed as a personal birthday gift. To use it:
- Customize the content with personal photos and messages
- Deploy to your preferred hosting platform
- Share the link with the birthday person
- Watch them enjoy their digital birthday surprise!
Made with ❤️ for special birthday celebrations