Create a beautiful, personalized birthday website for your loved one! This template includes animated pages, a countdown timer, photo galleries, and heartfelt messages.
- Countdown timer to the birthday
- Animated homepage with custom greetings
- "Reasons I Love You" interactive page
- Photo memories gallery
- Timeline of your relationship
- Background music support
- Fully responsive design
- Confetti celebrations
- Share functionality
git clone https://github.com/notsointresting/happy-birthday-template.git
cd happy-birthday-templateBefore you start customizing, collect the following:
| Item | Description | Example |
|---|---|---|
| Their Name | The birthday person's name | "Sarah", "John" |
| Their Age | The age they're turning | 22, 25, 30 |
| Birthday Date | Their birthday (for countdown) | "January 25, 2025" |
| Your Name | Your name (the creator) | "Alex" |
| Photo | Description | Filename |
|---|---|---|
| Photo 1 | A photo of them or you together | photo-1.jpg |
| Photo 2 | Another memorable photo | photo-2.jpg |
| Photo 3 | Birthday/celebration photo | photo-3.jpg |
| Favicon | Small icon for browser tab (optional) | favicon.png |
| Item | Description | Where It's Used |
|---|---|---|
| Nicknames | Pet names for each other | Homepage greeting |
| Relationship | Friend/Partner/Family | Messages & titles |
| How You Met | Story of how you met | Memories page |
| Special Memories | 3-5 memorable moments | Photo captions |
| Wishes/Messages | Birthday wishes (5-10 reasons you love them) | Wishes page |
| Item | Description |
|---|---|
| Background Music | An MP3 file (birthday song, favorite song) |
| Custom GIFs | Animated backgrounds or decorations |
| Timeline Events | Key dates in your relationship |
template/
├── index.html # Homepage with countdown
├── wishes.html # "Reasons I Love You" page
├── memories.html # Photo gallery
├── timeline.html # Relationship timeline
├── home.css # Homepage styles
├── home.js # Homepage scripts
├── wishes.css # Wishes page styles
├── wishes.js # Wishes page scripts
├── photos/ # Your photos folder
│ ├── photo-1.jpg
│ ├── photo-2.jpg
│ └── photo-3.jpg
├── hbd.mp3 # Background music (optional)
└── README.md # This file
Open home.js and find the countdown configuration:
// Change this to their birthday
const birthdayDate = new Date('January 25, 2025 00:00:00');<!-- Change the name -->
<h1>Happy Birthday [THEIR NAME]</h1>
<!-- Change the greeting -->
<p class="nickname-text">To my favorite [NICKNAME]</p>
<!-- Change your signature -->
<p class="from-text">- From [YOUR NAME]</p>
<!-- Change the age -->
<div class="level-up-badge">Level [AGE] Unlocked!</div>Update the title and name:
<h1>Happy Birthday [THEIR NAME]</h1>Update the final message section:
<h2>Happy [AGE]th Birthday, [THEIR NAME]!</h2>
<p class="signature">- [YOUR NAME]</p>- Add your photos to the
photos/folder - Rename them to match the template:
photo-1.jpgphoto-2.jpgphoto-3.jpg
- Or update the image paths in HTML files
In memories.html, update the memory cards:
<div class="memory-card">
<img src="./photos/photo-1.jpg" alt="Description" class="memory-img">
<div class="memory-date">[DATE OR TITLE]</div>
<div class="memory-caption">[YOUR CAPTION HERE]</div>
</div>In wishes.js, update the reasons array:
const reasons = [
"Because your smile lights up my day",
"Because you always know how to make me laugh",
"Because you're the best listener",
"Because you give the warmest hugs",
"Because you believe in me",
// Add more reasons...
];- Add your MP3 file to the root folder as
hbd.mp3 - The music toggle button will appear automatically
- Push your code to GitHub
- Go to Repository Settings > Pages
- Select "main" branch and save
- Your site will be live at
https://username.github.io/repo-name
- Go to netlify.com
- Drag and drop your folder
- Get a free URL instantly
- Go to vercel.com
- Import your GitHub repository
- Deploy with one click
The default theme uses pink/purple colors. To change:
| Current Color | Description |
|---|---|
#ff69b4 |
Hot Pink (primary) |
#ff99cc |
Light Pink |
#da70d6 |
Orchid |
#ffd1dc |
Pale Pink |
Replace:
#ff69b4→#4169e1(Royal Blue)#ff99cc→#87ceeb(Sky Blue)#da70d6→#6495ed(Cornflower Blue)
Modern browsers block autoplay. The music toggle button lets users enable it manually.
- Check file names match exactly (case-sensitive)
- Ensure images are in the correct folder
- Use lowercase extensions (.jpg, not .JPG)
- Make sure the date format is correct:
'Month Day, Year HH:MM:SS' - Check your timezone considerations
- Use high-quality photos - They'll be displayed prominently
- Write personal messages - Generic wishes are forgettable
- Test on mobile - Many people will view on phones
- Send the link privately - Makes it more special
- Time it right - Send at midnight or morning of their birthday
- GSAP Animation Library
- Google Fonts (Dancing Script, Quicksand)
- Made with love for someone special
MIT License - Feel free to use, modify, and share!
Made with love for your loved ones.