Thanks to visit codestin.com
Credit goes to github.com

Skip to content

inovus-labs/festive-js

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

90 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸŽ‰ Festive.js

Festive.js is a tiny, zero-dependency Web SDK that adds seasonal overlays (Diwali crackers πŸŽ†, Christmas snow ❄️, etc.) to websites.

It is designed to be minimal, lightweight, and non-intrusive β€” overlays should celebrate, not interfere. They must never harm the aesthetics, performance, or functionality of the host site.

🌱 The Story

This project was born at Inovus Labs β€” a student innovation hub where we experiment, build, and open-source our learnings.
We noticed that during festivals and events, websites often add heavy, distracting animations that ruin UX. We asked:

πŸ‘‰ Can we make festive websites truly festive, without compromising their design or performance?

That’s how Festive.js was started:

  • A lightweight overlay SDK
  • Vanilla JS, no third-party libraries, no CSS frameworks
  • Subtle, configurable, celebratory effects

Now we are opening this project up for the community, starting with Hacktoberfest 2025.

🎯 Why We’re Doing This

  • To create an open gallery of lightweight festive themes anyone can drop into their site.
  • To show how community contributions can make a project vibrant.
  • To give new developers a chance to contribute to a real open-source SDK.
  • To demonstrate clean, non-intrusive design principles in frontend/web SDK development.

πŸ—ΊοΈ Roadmap

We are running this project as an Inovus Labs Hacktoberfest Initiative:

  1. October 2025 (Hacktoberfest Season)

    • Kick off project as open source
    • Accept community contributions (themes + core improvements)
    • Build showcase, docs site, and demo platform
  2. End of October

    • Finalize and merge contributions
    • Publish v1.0.0 with a stable SDK + official theme gallery
  3. Beyond Hacktoberfest

    • Add more seasonal/cultural themes
    • Expand SDK capabilities (mount targets, presets, mobile-first optimizations)
    • Build peripheral platforms (bookmarklets, theme generator, gallery site)

πŸš€ Contribution Streams

You can contribute to Festive.js in two ways:

1. 🎨 Contribute a Theme

  • Add a new festive theme (Diwali, Halloween, Independence Day, New Year, Easter, local cultural festivals, etc.)
  • Keep it lightweight, minimal, and non-intrusive
  • Each theme has:
    • index.js β†’ theme implementation with metadata, params, auto-trigger rules, and effect implementation

2. βš™οΈ Contribute to Core

  • Improve SDK internals (performance optimizations, cleanup improvements)
  • Add new capabilities:
    • Mount overlays inside a target container
    • Theme parameter presets
    • Mobile-friendly rendering tweaks
  • Build peripheral platforms:
    • Bookmarklet for testing on any site
    • Docs & showcase website improvements
    • Playground for parameter tweaking

✨ Features (Current)

  • πŸ“¦ Drop-in script via CDN
  • 🎨 Themes auto-activate by date or can be forced
  • ⚑ Lightweight β€” no libraries, no CSS frameworks
  • πŸ–ΌοΈ Non-intrusive overlays (no DOM breakage)
  • πŸ”§ Configurable params per theme
  • πŸ“… Auto-trigger (e.g. Diwali Oct 20–Nov 20)

πŸš€ Getting Started

Note: During Hacktoberfest 2025, the themes branch is the default branch. All theme contributions should be made to this branch.

Using CDN

To quickly add Festive.js to your site, include the script from the CDN and initialize:

<script src="https://unpkg.com/festive-js"></script>
<script>
  Festive.init(); // auto-pick theme by date
</script>

Force a theme

To force a specific theme (e.g. for testing), use:

Festive.init({ forceTheme: "christmas-snow" });
// or
Festive.init({ forceTheme: "snowfall" });
// or
Festive.init({ forceTheme: "santa" });

Customize theme params

To customize parameters for a theme, pass them in the themes option:

Festive.init({
  forceTheme: "snowfall",
  themes: {
    "snowfall": { 
      density: 150, 
      snowflakeChar: "✦", 
      color: "#87ceeb",
      driftRange: 30 
    }
  }
});

// Santa theme example
Festive.init({
  forceTheme: "santa",
  themes: {
    "santa": {
      santaSize: 200,
      unicycleDuration: 10,
      sledDuration: 8,
      showOverlay: true
    }
  }
});

🀝 Contributing

See CONTRIBUTING.md for full guidelines. Also check out our amazing contributors in CONTRIBUTORS.md.

πŸ“ License

This project is licensed under the MIT License. See LICENSE for details.

About

Festive overlays for your website πŸŽ‰ Drop in & celebrate the season with snow, sparkles, and more.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Languages

  • JavaScript 89.6%
  • HTML 7.2%
  • Shell 3.2%