Christmas Snow adds an elegant falling snow effect to your WordPress site using a lightweight HTML5 Canvas engine. It still works the moment you activate it, and now you can shape every part of it from a friendly settings screen with a live preview.
Choose classic snowflakes, soft dots, festive emoji or your own image. Set how heavy the snow falls, which way the wind blows, where it appears and exactly which weeks of the year it should run. Everything you change is shown in a preview panel before you save.
Built for real sites
The effect is designed to stay out of the way of your content and your customers:
- Sprite based rendering keeps the frame cost flat even at high flake counts
- The animation pauses completely while the browser tab is in the background
- A separate, lower flake count is used on phones
- WooCommerce cart, checkout and account pages are excluded by default
- Visitors who ask their device to reduce motion never see the animation
- The canvas is marked as decorative so screen readers ignore it
Everything you can control
Appearance
- Flake type: characters and emoji, soft dots, or a custom image from your media library
- Any characters you like, so snowflakes, sparkles, stars or holiday emoji all work
- One colour or a mix of up to eight, blended randomly across the flakes
- Minimum and maximum flake size
- Minimum and maximum opacity
- Softness, for a dreamy out of focus look
- A depth effect that makes distant flakes smaller, slower and fainter
Motion
- Separate flake counts for desktop and mobile, plus the breakpoint between them
- Slowest and fastest fall speed
- Wind direction, gusts that swing the wind back and forth, and per flake sway
- Optional spin, with adjustable speed
- Cursor interaction: push flakes away, pull them in, or blow a gentle wind towards the pointer
- Settling snow that builds a drift along the bottom of the screen
Where it appears
- The entire site, the home page only, or a selection of content types and pages
- Always show on specific post or page IDs
- Never show on specific IDs
- Exclude WooCommerce cart, checkout and account pages
- Exclude search results and 404 pages
- Target desktop only or mobile only
- Show to everyone, only logged in users, or only logged out visitors
- Hide the effect from chosen user roles
Seasonal schedule
- Turn the snow on and off between two dates
- The range repeats every year, so you set it once
- Ranges that cross New Year work correctly, for example 1 December to 6 January
Presets
Six one click looks to start from: Gentle Drift, Classic Christmas, Heavy Blizzard, Golden Sparkle, Festive Emoji and Settling Snow. A preset fills in the appearance and motion settings and leaves your display rules and schedule untouched.
Tools
- Export your configuration as a JSON file
- Import a configuration onto another site
- Reset everything back to the defaults
- Copy the shortcode straight from the settings screen
Shortcode
Add
[christmas_snow] to any page or post to force the snow on there, even where your display rules would normally hide it.
You can override a few settings for that page only:
[christmas_snow density="150" color="#ffd700" size="20" speed="1.5" wind="2"]
Supported attributes are
density,
color,
characters,
type,
speed,
wind,
size and
zindex.
For developers
Three filters are available:
cwg_ppl_snow_settings filters the resolved settings array
cwg_ppl_snow_should_display filters the final decision about showing the effect
cwg_ppl_snow_config filters the configuration passed to the JavaScript engine
Perfect for:
- Christmas and holiday campaigns
- WooCommerce stores
- Blogs and business websites
- Temporary seasonal decoration
Minimum Requirements
- WordPress 5.0 or greater
- PHP 7.0 or greater
Automatic Installation
- Log in to your WordPress admin dashboard.
- Go to Plugins > Add New.
- Search for Christmas Snow.
- Click Install Now and then Activate.
- Visit Settings > Christmas Snow to shape the effect.
The snow starts working straight away with sensible defaults, so step 5 is optional.
Manual Installation
- Download the plugin ZIP file.
- Upload it to
/wp-content/plugins/.
- Activate the plugin through the Plugins menu in WordPress.
2.0.0 2026-08-20
This is a large release. Everything that used to be fixed is now yours to control, and the effect itself has been rewritten.
New: settings screen
- Added a full settings screen at Settings > Christmas Snow
- Added a live preview that updates as you change any setting, with three preview backgrounds
- Added six one click presets: Gentle Drift, Classic Christmas, Heavy Blizzard, Golden Sparkle, Festive Emoji and Settling Snow
- Added a status indicator showing whether the snow is currently live, off, waiting for its season or shortcode only
- Added a Settings link on the Plugins page
- Added an administrator toolbar item showing the status on the current page, with a preview toggle
- Fields that do not apply to your current choices are now hidden automatically
New: appearance options
- Added flake types: characters and emoji, soft dots, and a custom image from the media library
- Added custom flake characters, with full emoji support
- Added multi colour flakes, up to eight colours mixed at random
- Added minimum and maximum flake size
- Added minimum and maximum opacity
- Added a softness control
- Added a depth effect that scales size, speed and opacity together
New: motion options
- Added separate desktop and mobile flake counts, plus a configurable breakpoint
- Added minimum and maximum fall speed
- Added wind direction, gusts and per flake sway
- Added optional spin with adjustable speed
- Added cursor interaction with four modes and an adjustable strength
- Added settling snow that builds a drift along the bottom of the screen
New: display rules
- Added display modes: entire site, home page only, or selected content types and pages
- Added always show and never show lists by post or page ID
- Added toggles for WooCommerce pages, search results and 404 pages
- Added desktop only and mobile only targeting
- Added logged in and logged out targeting
- Added the ability to hide the effect from chosen user roles
New: scheduling
- Added an annual seasonal schedule with a start and end date
- Ranges that cross New Year are handled correctly
New: Plugins tab
- Added a Plugins tab listing every free plugin, pro plugin and add-on from ProPluginsLab
- Filter the catalogue by free, pro or add-on
- Free plugins install in one click, using WordPress' own installer
- Plugins already on your site are marked as installed or active
- Shows the current ProPluginsLab coupon when one is running, with click to copy
- The catalogue and the offer refresh once a day in the background and can be refreshed by hand
- A built in catalogue means the tab still works if the site cannot reach the internet
New: control and tools
- Added the
[christmas_snow] shortcode with per page overrides
- Added a shortcode only mode
- Added settings export and import as JSON
- Added a reset to defaults tool
- Added a frame rate limit
- Added a layer (z-index) control
- Added the option to confine the effect to a CSS container
- Added the
cwg_ppl_snow_settings, cwg_ppl_snow_should_display and cwg_ppl_snow_config filters
Improved: the snowfall engine
- Rewritten from scratch as a configurable engine
- Flakes are now rendered from cached sprites instead of drawing text every frame, which keeps performance steady at high flake counts
- Canvas now renders at device pixel ratio, so flakes are crisp on high resolution screens
- Motion is now time based, so the fall speed is identical on a 60Hz and a 144Hz display
- The animation now pauses completely while the tab is in the background
- Added a frame rate limit to save battery
- Resize handling is now debounced and handles orientation changes
- The canvas is now marked as decorative for assistive technology
- Every configuration value is validated in the browser as well as on the server, so a bad value can never break the animation
- Sprite memory is now capped
Improved: everything else
- Settings are validated and clamped on save, and unknown values are discarded
- Translations are now properly supported, with a text domain and a languages folder
- Settings are now removed cleanly when the plugin is deleted, including on multisite
- Tested with WordPress 7.1
1.0.1 2026-06-10
- Tested with WordPress 7.0
- Tested with WooCommerce 10.8.0
1.0.0 2025-12-25
- Initial release
- Added festive Christmas snow animation
- No-configuration, plug-and-play design
- Accessibility-friendly (respects reduced motion)