Christmas Mode

December 23, 2025

javascriptnpmholiday

Every year, the same debate. Light mode or dark mode. As if those are the only options.

Meanwhile, the holiday season comes around and your website sits there, completely undecorated. No snow. No lights. No festive spirit.

That changes today.

DemoGitHubnpm

Introducing Christmas Mode

Dark mode is boring. Use Christmas mode.

Add festive Christmas decorations to any website with a single line of code. Falling snow, twinkling lights, a decorated Christmas tree, Santa's sleigh with all nine reindeer, marching nutcrackers, elves having snowball fights, and more.

Because your users deserve more than just a color scheme toggle.

Quick Start

Install from npm:

bash
1.npm install christmas-mode

Or include via CDN:

html
1.<script src="https://unpkg.com/christmas-mode/dist/christmas-mode.umd.js"></script>

Then enable it:

javascript
1.import ChristmasMode from "christmas-mode";
2.
3.ChristmasMode.init({ autoEnable: true });

That's it. Your website now has Christmas spirit.

What You Get

Christmas Mode Preview
  • Falling snow with accumulation effect
  • Twinkling Christmas lights along the top
  • Icicles hanging from the lights
  • Decorated Christmas tree with ornaments and star
  • Snowman with hat and scarf
  • North Pole sign with candy canes
  • Caroler that plays Jingle Bells (click to toggle)
  • Santa's sleigh with 9 reindeer (including Rudolph)
  • Marching nutcracker soldiers
  • Walking elves carrying presents
  • Sledding elves
  • Elves having a snowball fight
  • Stockings hung along the bottom
  • Presents under the tree
  • Holly decorations
  • Festive wreath with bow
  • Toggle switch to enable/disable

Configuration

Customize which decorations appear:

javascript
1.ChristmasMode.init({
2. toggle: true, // Show toggle switch
3. musicButton: true, // Show music button/caroler
4. autoEnable: false, // Auto-enable on init
5. snow: true, // Enable snow effect
6. lights: true, // Enable Christmas lights
7. tree: true, // Enable Christmas tree
8. snowman: true, // Enable snowman
9. northPole: true, // Enable North Pole sign
10.});

Toggle Position

javascript
1.ChristmasMode.init({
2. toggle: {
3. position: "bottom-right", // 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'
4. },
5.});

React Integration

jsx
1.import { useEffect } from "react";
2.import ChristmasMode from "christmas-mode";
3.
4.function App() {
5. useEffect(() => {
6. ChristmasMode.init({ autoEnable: true });
7.
8. return () => {
9. ChristmasMode.destroy();
10. };
11. }, []);
12.
13. return <div>My App</div>;
14.}

API

javascript
1.ChristmasMode.init(options) // Initialize with options
2.ChristmasMode.enable() // Show decorations
3.ChristmasMode.disable() // Hide decorations
4.ChristmasMode.toggle() // Toggle on/off
5.ChristmasMode.isEnabled() // Check if active
6.ChristmasMode.playMusic() // Start Jingle Bells
7.ChristmasMode.stopMusic() // Stop music
8.ChristmasMode.toggleMusic() // Toggle music
9.ChristmasMode.destroy() // Clean up everything

Contained Mode

Target a specific element instead of the entire page:

javascript
1.ChristmasMode.init({
2. target: document.getElementById("my-container"),
3. autoEnable: true,
4.});

Try It

Zero dependencies. Works with React, Vue, Angular, vanilla HTML. TypeScript definitions included.

bash
1.npm install christmas-mode

Check out the GitHub repository for full documentation.

Watch the product story to see it in action.

Found this helpful? Follow for more tips and tutorials