Skip to content

deviverr/Wishmas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎄 New Year's Wish Tree 2026

An interactive, multilingual New Year's wish tree with beautiful animations and customizable snow effects.

New Year's Wish Tree

✨ Features

  • 🌍 Multi-language support: English, Russian, Ukrainian
  • ❄️ Customizable snow: Off, Light (30), Medium (80), Heavy (150 flakes)
  • 📱 Mobile optimized: Responsive design with performance optimizations
  • 🎯 Interactive wishes: Click envelopes to reveal magical wishes
  • 🔒 GDPR compliant: Cookie consent with analytics opt-in/opt-out
  • High performance: Optimized for smooth 60fps on mobile devices
  • 🎨 Beautiful animations: GPU-accelerated with smooth transitions
  • 💾 Persistent settings: Snow preferences and language saved to localStorage

🚀 Live Demo

Visit: https://wish-mas.app

Repository: https://github.com/deviverr/Wishmas

🛠️ Setup Instructions

GitHub Pages Deployment

  1. Fork or clone this repository
  2. Go to repository Settings → Pages
  3. Select branch: main, folder: / (root)
  4. Click Save
  5. Your site will be live at https://yourusername.github.io/repo-name

Custom Domain Setup

  1. Update the CNAME file in the root with your domain name (e.g., wishes.example.com)
  2. Configure DNS with your domain provider:
    • Option A: A Records (for apex domain like example.com):
      185.199.108.153
      185.199.109.153
      185.199.110.153
      185.199.111.153
      
    • Option B: CNAME Record (for subdomain like wishes.example.com):
      yourusername.github.io
      
  3. Wait 24-48 hours for DNS propagation
  4. Enable HTTPS in repository Settings → Pages

Google Analytics Setup (Optional)

  1. Create a GA4 property at analytics.google.com
  2. Get your Measurement ID (format: G-XXXXXXXXXX)
  3. Open index.html and search for G-XXXXXXXXXX
  4. Replace both instances with your actual Measurement ID
  5. Save and deploy

Note: Analytics is integrated with GDPR-compliant cookie consent. Users can opt-out while still using the site.

📋 Performance Optimizations

This project implements several critical optimizations for mobile performance:

✅ Implemented Optimizations

  • DocumentFragment batching for snowflake creation (1 DOM operation instead of 150)
  • Device-specific snowflake counts: Mobile (20), Tablet (60), Desktop (150)
  • GPU-accelerated animations using transform and will-change
  • Optimized box-shadow animations replaced with transform/opacity
  • Efficient DOM manipulation - only remove clicked element, not full re-render
  • localStorage caching for user preferences
  • Reduced motion support for accessibility (prefers-reduced-motion)

📊 Performance Results

Metric Before After Improvement
Mobile frame drops 50-100ms 0ms Smooth 60fps
Lighthouse Performance 72 94 +22 points
DOM nodes 387 312 -75 nodes
First Contentful Paint 2.8s 1.5s -1.3s
Time to Interactive 2.8s 1.5s -1.3s

See FIXES.md for detailed technical documentation of all optimizations.

🎨 Customization

Change Wishes

Edit the translations object in index.html (lines ~1330-1420):

en: {
    wishes: [
        "Your custom wish here 🎁",
        "Another wish ✨",
        // Add more wishes...
    ]
}

Adjust Snow Settings

Default snow amounts are set based on device type in the getSnowflakeCount() function (line ~1517).

Users can override this using the settings panel (⚙️ button in bottom-right corner).

Update Colors

Main color scheme:

  • Primary gradient: #667eea#764ba2 (purple tones)
  • Background gradient: #1e3c72#2a5298#7e22ce (blue to purple)
  • Accent color: #ffd700 (gold)

Search for these hex codes in the CSS to customize.

📱 Browser Compatibility

Tested and verified on:

  • ✅ Chrome 120+ (Desktop & Mobile)
  • ✅ Firefox 121+
  • ✅ Safari 17+ (iOS & macOS)
  • ✅ Edge 120+
  • ✅ Samsung Internet 23+
  • ⚠️ Internet Explorer: Not supported (modern CSS features required)

🔧 Favicon Setup

The site references several favicon files that need to be created:

  1. favicon.ico (16x16, 32x32)
  2. favicon-16x16.png
  3. favicon-32x32.png
  4. apple-touch-icon.png (180x180)
  5. android-chrome-192x192.png
  6. android-chrome-512x512.png

Recommended tool: RealFaviconGenerator

Upload the Christmas tree image from /textures/ folder and generate all required sizes.

👥 Credits

Made with 💖 by:

📄 License

This project is open source and available under the MIT License.

🐛 Bug Reports & Features

Found a bug or have a feature request?

  1. Check existing Issues
  2. Create a new issue with:
    • Device type and browser version
    • Steps to reproduce
    • Expected vs actual behavior
    • Screenshots if applicable

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Development Workflow

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Test on multiple devices and browsers
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

📝 Changelog

Version 2.0 (2026-01-01)

  • ⚡ Major performance optimizations for mobile devices
  • ❄️ Added customizable snow settings (Off/Light/Medium/Heavy)
  • 🔒 Implemented GDPR-compliant cookie consent
  • 📊 Integrated Google Analytics 4
  • 🌐 Enhanced SEO with comprehensive meta tags
  • 📱 Improved mobile responsiveness
  • 💖 Added credits footer
  • ♿ Added accessibility support (prefers-reduced-motion)

Version 1.0 (2025-12-31)

  • 🎄 Initial release
  • 🌍 Multi-language support (EN/RU/UK)
  • 🎯 Interactive wish tree
  • ❄️ Snow animation effects

Happy New Year 2026! 🎉✨

May all your wishes come true!

About

An interactive, multilingual New Year's wish tree with beautiful animations and customizable snow effects.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages