Free plugin Version 2.1.0 Updated

Christmas Snow for WordPress documentation

Christmas Snow for WordPress adds a configurable falling snow effect to your site. You can shape it with a live preview, presets, display rules, a seasonal schedule and the christmassnow shortcode.

Try the live demo Get Christmas Snow for WordPress

Overview

Christmas Snow for WordPress adds a falling snow effect to your site. It draws the snow on a lightweight HTML5 Canvas. The snow starts as soon as you activate the plugin, so you don't have to set anything up first.

When you want to change how it looks, open Settings > Christmas Snow. The tabs cover the flake style, how the snow moves, where it appears, who sees it and which weeks of the year it runs. A Live preview panel updates as you change settings, and six one click Presets give you a starting point.

The plugin suits blogs, business sites and WooCommerce stores that want some seasonal decoration. WooCommerce cart, checkout and account pages are excluded by default. Visitors who ask their device to reduce motion don't see the animation, and the plugin is completely free with no locked features.

Requirements

  • WordPress 5.0 or later (tested up to WordPress 7.1)
  • PHP 7.0 or later
  • WooCommerce is not required. If you use it, cart, checkout and account pages are excluded by default.

Installation

Christmas Snow for WordPress is a free plugin. Install it from the WordPress.org plugin directory in your WordPress admin.

  1. Log in to your WordPress admin dashboard.

  2. Go to Plugins > Add New.

  3. Search for Christmas Snow.

  4. Click Install Now, then click Activate.

  5. Optional: go to Settings > Christmas Snow to shape the effect. The snow already runs with sensible defaults.

Quick start

  1. Check that the snow is live

    Go to Settings > Christmas Snow. The header of the settings screen shows a status badge, for example Snowfall is live. On the General tab, make sure Enable snowfall is switched on.

  2. Pick a preset

    In the Presets panel on the right, click a look such as Gentle Drift, Classic Christmas or Heavy Blizzard. A preset fills in the appearance and motion settings. Your display rules and schedule stay as they are.

  3. Fine-tune it in the live preview

    Adjust the flakes on the Appearance and Motion tabs. The Live preview panel updates as you change a setting. Use the Preview background dots to check the snow on a dark, blue or light background.

  4. Decide where the snow appears

    On the Display Rules tab, choose under Show on whether the snow covers the entire site, the home page only or selected content types and pages. Add any pages that should never show snow under Never show on.

  5. Save your changes

    Click Save changes. Changes apply to your site as soon as you save.

#General

The General tab under Settings > Christmas Snow holds the main switches for the effect.

Snowfall

  • Enable snowfall is the master switch. Turn it off to stop the effect everywhere without deactivating the plugin.
  • Respect reduced motion skips the animation for visitors who asked their device to reduce motion. This is recommended, and many sites need it for accessibility.
  • Pause in background tabs stops drawing while the browser tab is not visible, so the effect costs nothing in the background.
  • Stop the snow after sets how many seconds the snow falls per page view. When the time is up, no new flakes appear and the snow fades out. Use 0 to keep it snowing.
  • Let visitors turn the snow off adds a small button in the bottom left corner. The visitor's choice is remembered in their own browser, and nothing is stored on your site.

Placement

  • Layer (z-index) sets how high the snow sits in the page stack. Lower it if the snow covers a sticky header or a popup.
  • Limit to a container takes an optional CSS selector, for example .site-header. Leave it empty to cover the whole window.

The header of the settings screen also shows the plugin version and a status badge. It tells you whether the snow is live, off, waiting for its season or in shortcode only mode.

The General tab of the Christmas Snow settings with the Snowfall and Placement sections, plus the Live preview, Presets and Shortcode panels on the right
Enable snowfall is the master switch. The status badge in the header shows whether the snow is live.

#Live preview, presets and shortcode panel

Three panels stay on the right of every settings tab.

Live preview shows the snow with your current settings and updates as you change any setting. Click Pause to stop the animation. Use the Preview background dots to switch between a dark, blue and light background.

Presets gives you six one click looks:

  • Gentle Drift
  • Classic Christmas
  • Heavy Blizzard
  • Golden Sparkle
  • Festive Emoji
  • Settling Snow

A preset fills in the appearance and motion settings for you. Your display rules and schedule are left alone. Click Save changes to keep the result.

Shortcode shows the [christmas_snow] shortcode and an example with attributes, ready to copy. See the Shortcodes reference on this page for details.

#Appearance

The Appearance tab controls what each flake looks like.

Flake style

  • Flake type: choose Characters and emoji, Soft dots (fastest) or Custom image. Characters give classic snowflakes and emoji. Dots are the fastest option for heavy snowfall. An image lets you use your own artwork, for example a small transparent PNG or SVG from your media library.
  • Characters: the characters to use as flakes. Separate each one with a space. Snowflakes, sparkles, stars and holiday emoji all work.
  • Colours: the flake colour. Click + Add colour to add more colours (up to eight). The colours are mixed randomly across the flakes.

Size and opacity

  • Smallest flake and Largest flake: flakes are sized randomly between these two values.
  • Minimum opacity and Maximum opacity: lower both values for a subtle effect that sits behind your content.
  • Softness: blurs the flakes for a dreamy look. Anything above 0 costs some performance.
  • Depth effect: makes distant flakes smaller, slower and fainter, so the snowfall gains a sense of depth.

Fields that don't apply to your current choices are hidden automatically. For example, Characters only matters when the flake type is Characters and emoji.

The Appearance tab with the Flake style section (Flake type, Characters, Colours) and the Size and opacity sliders
Add more than one colour to mix them randomly across the flakes.

#Motion

The Motion tab controls how much snow falls and how it moves.

How much snow

  • Flakes on desktop and Flakes on mobile: keep the mobile count well below the desktop count. Phones have far less drawing power to spare.
  • Mobile breakpoint: screens narrower than this width (in pixels) use the mobile flake count.

Falling and wind

  • Slowest fall and Fastest fall: a wider gap between the two makes the snowfall look more natural.
  • Wind direction: negative values blow the snow to the left, positive values to the right.
  • Gusts: slowly swings the wind back and forth instead of holding one direction.
  • Sway: how much each flake drifts from side to side on its way down.
  • Spin the flakes turns rotation on, and Spin speed sets how fast the flakes spin.

Interaction

  • Cursor interaction: choose None, Push flakes away, Pull flakes in or Gentle wind towards the cursor. Letting the pointer push the snow around costs a little performance on very dense snowfall.

Settling snow

  • Let snow settle at the bottom builds a drift along the bottom of the screen as flakes land.
The Motion tab with How much snow, Falling and wind, Interaction and Settling snow sections
Desktop and mobile have separate flake counts, split at the Mobile breakpoint.

#Display Rules

The Display Rules tab decides where the snow appears and who sees it.

Where the snow appears

Under Show on, choose one of these:

  • The entire site
  • The home page only
  • Selected content types and pages, which lets you pick content types and list specific post or page IDs that always show snow

Never show on

  • These IDs: comma separated post or page IDs that should never show snow, for example 3, 27.
  • WooCommerce cart, checkout and account pages: on by default and strongly recommended, so nothing decorative sits between a customer and the pay button.
  • Search results and 404 pages: turn these on to hide the snow there too.

Who sees it

  • Devices: All devices, Desktop only or Mobile only. Device detection happens on the server, so a page cache that does not vary by device may serve the wrong result. Leaving this on All devices and lowering the mobile flake count is the safer choice.
  • Visitors: Everyone, Logged in users only or Logged out visitors only.
  • Hide from these roles: tick user roles (for example Administrator or Editor) that should not see the effect. This is useful for keeping the snow away from staff while they work.
The Display Rules tab with Where the snow appears, Never show on and Who sees it sections
WooCommerce cart, checkout and account pages are excluded by default.

#Schedule

The Schedule tab limits the snow to a season.

  1. Turn on Only show during a date range.
  2. Set your start and end dates.
  3. Click Save changes.

The range repeats every year, so you only set it once. Ranges that cross New Year work correctly, for example 1 December to 6 January. Outside the range, the status badge in the settings header shows that the snow is waiting for its season.

The Schedule tab with the Seasonal schedule section and the Only show during a date range toggle
The date range repeats every year.

#Advanced

The Advanced tab has performance and control options.

Performance

  • Frame rate limit: lower this to save battery on laptops and phones. 30 fps still looks smooth for falling snow.
  • Load the script in the footer: keeps the snow out of the way of your page rendering. Leave this on unless something needs the script earlier.

Control

  • Only load where the shortcode is used: ignores the display rules entirely and waits for [christmas_snow] to appear on the page. Use this to show snow on only a few pages.
  • Show the admin bar shortcut: adds a snowflake item to the toolbar. It shows whether the snow runs on the current page and lets you preview the page with or without snow. Only administrators see it.
The Advanced tab with the Performance section (Frame rate limit, Load the script in the footer) and the Control section
Turn on Only load where the shortcode is used to limit the snow to pages that contain the shortcode.

#Tools

The Tools tab helps you move, back up or reset your configuration.

  • Export settings: click Download JSON file to save your configuration. You can move it to another site or keep it as a backup.
  • Import settings: paste the contents of an exported file into the box and click Import settings. Everything is validated before it is saved.
  • Reset: click Reset all settings to put every setting back to how it was when you first installed the plugin.
  • Current configuration: shows your saved settings as JSON, for reference.
The Tools tab with Export settings, Import settings, Reset and Current configuration sections
Download JSON file exports your configuration. Paste it under Import settings on another site.

#Plugins

The Plugins tab lists plugins and add-ons from ProPluginsLab, the team behind Christmas Snow. You don't need this tab to use the snow effect.

  • Filter the list with All, Free plugins, Pro plugins and Add-ons.
  • Click View details on a free plugin or Get plugin on a pro plugin or add-on.
  • Plugins already on your site are marked as installed or active.
  • Click Refresh to update the list by hand.

To keep the list current, the plugin requests the catalogue from propluginslab.io once a day with WP-Cron, and again when an administrator clicks Refresh. The request sends the plugin version and your site address in the user agent, nothing else. Product icons load from propluginslab.io when you open the tab. If your site can't reach the internet, the tab shows a built in catalogue. Your visitors never trigger these requests.

The settings screen also shows a dismissible banner about ProPluginsLab's WooCommerce plugins. Click the close icon to dismiss it.

The Plugins tab showing a grid of ProPluginsLab plugin cards with filter buttons and a Refresh button
Use the filter buttons to show only free plugins, pro plugins or add-ons.

Settings reference

Settings > Christmas Snow > General

SettingTypeDefaultWhat it does
Enable snowfall checkbox on The master switch. Turn this off to stop the effect everywhere without deactivating the plugin.
Respect reduced motion checkbox on Skip the animation for visitors who asked their device to reduce motion.
Pause in background tabs checkbox on Stop drawing while the tab is not visible so the effect costs nothing in the background.
Stop the snow after number 0 Seconds of snowfall per page view. When the time is up, no new flakes appear and the snow fades out. Use 0 to keep it snowing.
Let visitors turn the snow off checkbox off Adds a small button in the bottom left corner. The choice is remembered in the visitor's browser, and nothing is stored on your site.
Layer (z-index) number 999999 How high the snow sits in the stack. Lower this if the snow covers a sticky header or a popup.
Limit to a container text - Optional CSS selector, for example .site-header. Leave empty to cover the whole window.

Settings > Christmas Snow > Appearance

SettingTypeDefaultWhat it does
Flake type select Characters and emoji Characters and emoji, Soft dots (fastest) or Custom image. Dots are the fastest option for heavy snowfall. An image lets you use your own artwork.
Characters text ❄ ❅ ❆ The characters used as flakes. Separate each one with a space.
Colours text #ffffff Flake colour. Add more than one colour with + Add colour to mix them randomly across the flakes.
Colour 1 color #ffffff Colour picker for the first flake colour.
Smallest flake range 10 Smallest flake size in pixels. Flakes are sized randomly between the smallest and largest values.
Largest flake range 22 Largest flake size in pixels.
Minimum opacity range 0.45 Lowest flake opacity.
Maximum opacity range 0.95 Highest flake opacity. Lower both opacity values for a subtle effect that sits behind your content.
Softness range 0 Blurs the flakes for a dreamy look (in pixels). Anything above 0 costs some performance.
Depth effect checkbox on Makes distant flakes smaller, slower and fainter so the snowfall gains a sense of depth.

Settings > Christmas Snow > Motion

SettingTypeDefaultWhat it does
Flakes on desktop range 100 Number of flakes on desktop screens.
Flakes on mobile range 40 Number of flakes on mobile screens. Keep this well below the desktop count.
Mobile breakpoint number 768 Screens narrower than this width in pixels use the mobile flake count.
Slowest fall range 0.4 Slowest fall speed.
Fastest fall range 1.2 Fastest fall speed. A wider gap between the two speeds looks more natural.
Wind direction range 0 Negative values blow the snow to the left, positive values to the right.
Gusts range 0.5 Slowly swings the wind back and forth instead of holding one direction.
Sway range 1 How much each flake drifts from side to side on its way down.
Spin the flakes checkbox on Rotates the flakes as they fall.
Spin speed range 1 How fast the flakes spin.
Cursor interaction select None None, Push flakes away, Pull flakes in or Gentle wind towards the cursor. Costs a little performance on very dense snowfall.
Let snow settle at the bottom checkbox off Builds a drift along the bottom of the screen as flakes land.

Settings > Christmas Snow > Display Rules

SettingTypeDefaultWhat it does
The entire site radio The entire site The Show on option: The entire site, The home page only, or Selected content types and pages.
These IDs text - Comma separated post or page IDs that should never show snow.
WooCommerce cart, checkout and account pages checkbox on Never show snow on these pages. Strongly recommended.
Search results checkbox off Never show snow on search results.
404 pages checkbox off Never show snow on 404 pages.
All devices radio All devices The Devices option: All devices, Desktop only or Mobile only. Device detection happens on the server, so a page cache that does not vary by device may serve the wrong result.
Everyone radio Everyone The Visitors option: Everyone, Logged in users only or Logged out visitors only.
Administrator checkbox off Hide from these roles: hide the effect from administrators.
Editor checkbox off Hide from these roles: hide the effect from editors.
Author checkbox off Hide from these roles: hide the effect from authors.
Contributor checkbox off Hide from these roles: hide the effect from contributors.
Subscriber checkbox off Hide from these roles: hide the effect from subscribers.

Settings > Christmas Snow > Schedule

SettingTypeDefaultWhat it does
Only show during a date range checkbox off Show the snow only between a start and end date. The range repeats every year.

Settings > Christmas Snow > Advanced

SettingTypeDefaultWhat it does
Frame rate limit range 60 Maximum frames per second. Lower this to save battery on laptops and phones. 30 still looks smooth for falling snow.
Load the script in the footer checkbox on Keeps the snow out of the way of your page rendering. Leave this on unless something needs it earlier.
Only load where the shortcode is used checkbox off Ignores the display rules entirely and waits for [christmas_snow] to appear on the page.
Show the admin bar shortcut checkbox on Adds a snow indicator to the toolbar so you can check the status and preview any page with or without snow. Only administrators see it.

Shortcodes

[christmas_snow]

Forces the snow on for the page or post where you add it, even where your display rules would normally hide it. With Only load where the shortcode is used turned on under Advanced, the snow appears only on pages that contain this shortcode. Attributes override settings for that page only.

[christmas_snow density="150" color="#ffd700" size="20" speed="1.5" wind="2"]
AttributeDefaultDescription
density-Overrides how much snow falls on this page, for example 150.
color-Overrides the flake colour on this page, for example #ffd700.
characters-Overrides the characters used as flakes on this page.
type-Overrides the flake type on this page.
speed-Overrides the fall speed on this page, for example 1.5.
wind-Overrides the wind on this page, for example 2.
size-Overrides the flake size on this page, for example 20.
zindex-Overrides the layer (z-index) of the snow on this page.

On your site

Visitors see snow falling over the pages where your display rules allow it, or on pages that contain [christmas_snow]. The snow is drawn on a canvas that screen readers ignore, because it is marked as decorative.

What visitors experience depends on your settings:

  • Phones get their own, lower flake count.
  • Visitors whose device asks to reduce motion don't see the animation while Respect reduced motion is on.
  • The animation pauses completely while the browser tab is in the background.
  • When Stop the snow after is set, the snow falls for that many seconds and then fades out.
  • When Let visitors turn the snow off is on, a small button appears in the bottom left corner. The visitor's choice is remembered in their own browser.
  • When Let snow settle at the bottom is on, a drift builds up along the bottom of the screen.
  • WooCommerce cart, checkout and account pages don't show snow by default.

The front end makes no external requests.

Frequently asked questions

Do I have to configure anything?

No. The snow works as soon as you activate the plugin. The settings under Settings > Christmas Snow are there when you want them.

Will this slow my site down?

The script is small, loads in the footer and is deferred. Flakes are drawn from cached sprites, and the animation stops entirely when the tab is not visible. To be extra careful, lower the flake count on the Motion tab, lower Frame rate limit under Advanced, or set Flake type to Soft dots (fastest).

Can I use it with WooCommerce?

Yes. Cart, checkout and account pages are excluded by default. You can change that with WooCommerce cart, checkout and account pages on the Display Rules tab.

Can I show snow on only one page?

Yes, in two ways. Set Show on to Selected content types and pages and list the page ID. Or turn on Only load where the shortcode is used under Advanced and add [christmas_snow] to that page.

Can I use emoji or my own image instead of snowflakes?

Yes. Set Flake type to Characters and emoji and type any characters you like, separated by spaces. Or set it to Custom image and pick a small transparent PNG or SVG from your media library.

How do I make the snow appear only in December?

Open the Schedule tab, turn on Only show during a date range and set your start and end dates. The range repeats every year, and ranges that cross New Year are handled correctly.

Can visitors turn the snow off?

Yes. Turn on Let visitors turn the snow off on the General tab. A small button appears in the bottom left corner, and the visitor's choice is remembered in their own browser. Nothing is stored on your site.

Will I lose my settings when I update or deactivate?

No. Settings are kept on deactivation and across updates. They are only removed if you delete the plugin. To keep a copy, use Download JSON file on the Tools tab.

Troubleshooting

The snow doesn't appear anywhere on the site.

Check the status badge at the top of Settings > Christmas Snow. Then check these settings:

  1. Enable snowfall on the General tab must be on.
  2. If Only show during a date range is on under Schedule, the snow only runs between your dates.
  3. If Only load where the shortcode is used is on under Advanced, the snow only appears on pages that contain [christmas_snow].
  4. If Stop the snow after is above 0, the snow fades out after that many seconds.
The snow covers my sticky header or a popup.

On the General tab, lower the Layer (z-index) value until the snow sits behind that element, then click Save changes.

The snow doesn't show on the cart or checkout page.

This is the default. On the Display Rules tab, WooCommerce cart, checkout and account pages is on under Never show on. Turn it off only if you want snow on those pages.

Some visitors or staff don't see the snow.

Visitors whose device asks to reduce motion don't see the animation while Respect reduced motion is on. Also check Visitors and Hide from these roles on the Display Rules tab, and check whether they turned it off with the visitor button.

Desktop only or mobile only targeting shows the wrong result.

Device detection happens on the server, so a page cache that does not vary by device may serve the wrong version. Set Devices to All devices and lower Flakes on mobile on the Motion tab instead.

The snow only shows in part of the page.

Check Limit to a container on the General tab. When it holds a CSS selector, the snow stays inside that element. Leave it empty to cover the whole window.