Islamic seasonal decorations · زينة المواسم
Decorate your site for the blessed days, and only on them.
Two small files. Add them to any website and it gets lanterns in Ramadan, bunting on Eid, a quiet border for the ten days of Dhul Ḥijjah, a crescent for the new Hijri year, and a greeting on Fridays if you want it. On every other day the script does nothing at all.
The occasions
Click one to preview it on this page. Each card shows the next time it will appear by itself, with the Umm al-Qura calendar and your settings below.
Configure
Pick what the script is allowed to do. The snippet updates as you go, and Preview applies it to this page.
Only settings that differ from the defaults are written out. With no settings at all, the single <script> tag is enough.
Light on the hardware
Decorations shouldn't cost a visitor's battery.
transform or opacity, so it runs on the GPU. No canvas, no requestAnimationFrame loop.<use> copies of one SVG sprite. Phones get fewer of them.pointer-events: none everywhere except the greeting's close button. Nothing blocks a click; nothing prints.Add it to a site
Pick whichever suits your site. Keep zeenah.css next to zeenah.js and the script loads it by itself.
<script src="https://cdn.jsdelivr.net/gh/HusseinBenz/zeenah@1/zeenah.min.js" defer></script>
<script src="zeenah.min.js" defer
data-enable="friday,whiteDays"
data-disable="ashura"
data-offset="-1"
data-lang="ar"></script>
<script>
window.ZeenahConfig = {
occasions: {
friday: true,
eidFitr: { greeting: { en: 'Eid Mubarak from all of us!' } }
},
custom: [{ id: 'anniversary', gregorian: { month: 11, from: 3 }, theme: 'eid',
greeting: { en: 'Our 10th birthday', ar: 'عيدنا العاشر' } }]
};
</script>
<script src="zeenah.min.js" defer></script>
Zeenah.show('ramadan'); Zeenah.hide(); Zeenah.upcoming(5);
Admins can test any day by adding ?zeenah=eidAdha or ?zeenah-date=2027-03-09 to a page's address. The full option list is in the README.