Festival magic for
any website.
A zero-dependency script that layers animated Dashain kites, Tihar diyas, Holi colour and more over your page. It is date-aware, accessible, and installs with one tag.
<script src="https://cdn.jsdelivr.net/npm/festival-overlay@1/dist/festival-overlay.auto.min.js"></script>
Pick a festival
The overlay sits above this page. The page stays fully clickable.
Playground
Every option here maps 1:1 to a library option.
Embed it
Snippets update live from the playground settings.
Built to be a polite guest
Zero dependencies
Pure Canvas 2D. No images, fonts or frameworks. About 8 KB gzipped for all five themes.
Date-aware auto mode
Shows the right festival on the right day and does nothing on other days. The calendar updates over the CDN without a re-deploy.
Never in the way
pointer-events: none, aria-hidden, and an optional auto-stop timer. It never covers content for good.
Reduced motion aware
Honours prefers-reduced-motion, and pauses when the tab is hidden to save battery.
Zero-allocation loop
Pooled particles, time-based motion, DPR capped at 2, and a debounced resize. It holds 60 fps on mid-range phones.
Pluggable themes
A new festival is one theme file plus one calendar entry. The engine never changes.
Festival calendar
What festival: 'auto' will pick, from the bundled calendar.
Lunar festivals (Dashain, Tihar, Holi) are stored as data, not computed, and are marked unverified until a maintainer confirms them against the official Nepali calendar.