{"id":246878,"date":"2025-08-20T06:03:52","date_gmt":"2025-08-20T06:03:52","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/init-fx-engine\/"},"modified":"2026-10-01T12:27:07","modified_gmt":"2026-10-01T12:27:07","slug":"init-fx-engine","status":"publish","type":"plugin","link":"https:\/\/et.wordpress.org\/plugins\/init-fx-engine\/","author":14479633,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.1","stable_tag":"2.0.1","tested":"7.1.2","requires":"6.9","requires_php":"7.4","requires_plugins":null,"header_name":"Init FX Engine","header_author":"Init HTML","header_description":"Add interactive visual effects like fireworks, emoji rain, and snowfall \u2014 triggered by comments, keywords, or holidays. Make your WordPress site come alive!","assets_banners_color":"77cff2","last_updated":"2026-10-01 12:27:07","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/inithtml.com\/plugin\/init-fx-engine\/","header_author_uri":"https:\/\/inithtml.com\/","rating":5,"author_block_rating":0,"active_installs":90,"downloads":1942,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"brokensmile.2103","date":"2025-08-20 06:03:43","revision":3347330},"1.1":{"tag":"1.1","author":"brokensmile.2103","date":"2025-08-24 13:47:18","revision":3349276},"1.2":{"tag":"1.2","author":"brokensmile.2103","date":"2025-08-25 04:40:34","revision":3349435},"1.3":{"tag":"1.3","author":"brokensmile.2103","date":"2025-09-13 05:16:34","revision":3360878},"1.3.1":{"tag":"1.3.1","author":"brokensmile.2103","date":"2025-10-01 05:53:57","revision":3370857},"1.3.2":{"tag":"1.3.2","author":"brokensmile.2103","date":"2025-10-16 09:14:08","revision":3379328},"1.4":{"tag":"1.4","author":"brokensmile.2103","date":"2025-11-14 13:13:23","revision":3395734},"1.5":{"tag":"1.5","author":"brokensmile.2103","date":"2025-12-09 05:06:10","revision":3414920},"1.6":{"tag":"1.6","author":"brokensmile.2103","date":"2025-12-17 04:20:41","revision":3421515},"1.6.1":{"tag":"1.6.1","author":"brokensmile.2103","date":"2025-12-25 05:28:08","revision":3427091},"1.6.2":{"tag":"1.6.2","author":"brokensmile.2103","date":"2026-05-17 15:57:35","revision":3534659},"2.0.0":{"tag":"2.0.0","author":"brokensmile.2103","date":"2026-08-05 05:28:24","revision":3634849},"2.0.1":{"tag":"2.0.1","author":"brokensmile.2103","date":"2026-10-01 12:27:07","revision":3723121}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3347330,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3347330,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3347330,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3347330,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"init-fx-engine\/fx-trigger":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"init-fx-engine\/fx-trigger","title":"FX Trigger","category":"init-fx-engine","icon":"star-filled","description":"Insert a link or button that fires a visual effect (fireworks, emoji rain, etc.) on click or hover.","keywords":["fx","effect","fireworks","init"],"textdomain":"init-fx-engine","attributes":{"text":{"type":"string","default":""},"fx":{"type":"string","default":"firework"},"emoji":{"type":"string","default":""},"shoot":{"type":"string","default":"click"},"tag":{"type":"string","default":"a"}},"supports":{"html":false,"className":false,"customClassName":false},"editorScript":"init-fx-engine-blocks-editor","render":"file:.\/render.php"}},"tagged_versions":["1.0.3","1.1","1.2","1.3","1.3.1","1.3.2","1.4","1.5","1.6","1.6.1","1.6.2","2.0.0","2.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3723121,"resolution":"1","location":"assets","locale":"","width":908,"height":3866},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3347330,"resolution":"2","location":"assets","locale":"","width":1200,"height":599}},"screenshots":{"1":"Settings page with real-time preview of fireworks, emoji rain, preloaders, and more.","2":"Snowfall effect scheduled automatically or set with custom dates."}},"plugin_section":[],"plugin_tags":[785,131,160321,839,24338],"plugin_category":[44,50],"plugin_contributors":[242666],"plugin_business_model":[],"class_list":["post-246878","plugin","type-plugin","status-publish","hentry","plugin_tags-animation","plugin_tags-comment","plugin_tags-confetti","plugin_tags-effect","plugin_tags-interaction","plugin_category-discussion-and-community","plugin_category-media","plugin_contributors-brokensmile2103-1","plugin_committers-brokensmile2103-1"],"banners":{"banner":"https:\/\/ps.w.org\/init-fx-engine\/assets\/banner-772x250.png?rev=3347330","banner_2x":"https:\/\/ps.w.org\/init-fx-engine\/assets\/banner-1544x500.png?rev=3347330","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/init-fx-engine\/assets\/icon-128x128.png?rev=3347330","icon_2x":"https:\/\/ps.w.org\/init-fx-engine\/assets\/icon-256x256.png?rev=3347330","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/init-fx-engine\/assets\/screenshot-1.png?rev=3723121","caption":"Settings page with real-time preview of fireworks, emoji rain, preloaders, and more."},{"src":"https:\/\/ps.w.org\/init-fx-engine\/assets\/screenshot-2.png?rev=3347330","caption":"Snowfall effect scheduled automatically or set with custom dates."}],"raw_content":"<!--section=description-->\n<p><strong>Init FX Engine<\/strong> brings modern, interactive visual effects to your WordPress site \u2014 from fireworks to snowfall, emoji rain, and more. All effects are fully customizable, and can be triggered via keywords, shortcodes, Block Editor blocks, or special events.<\/p>\n\n<blockquote>\n  <p>\ud83c\udf89 Celebrate milestones with fireworks or cannon blasts<br \/>\n  \ud83d\udcac Let users experience emoji reactions and heart rain in comments<br \/>\n  \u2744\ufe0f Schedule snowfall automatically or set your own custom dates<br \/>\n  \ud83c\udf83 Seasonal holiday scenes: Halloween, Christmas, New Year, Lunar New Year (T\u1ebft), Valentine, Mid-Autumn<br \/>\n  \ud83c\udf86 Real fireworks show for New Year's Eve and celebrations<br \/>\n  \u2699\ufe0f Lightweight, fully customizable engine with intuitive UI<br \/>\n  \ud83d\udda4 Grayscale mode for solemn occasions or national mourning<br \/>\n  \u23f3 Animated preloaders to enrich user experience<\/p>\n<\/blockquote>\n\n<p>Not just an effect plugin \u2014 this is an <strong>FX Engine<\/strong> for WordPress.<\/p>\n\n<p>This plugin is part of the <a href=\"https:\/\/en.inithtml.com\/init-plugin-suite-minimalist-powerful-and-free-wordpress-plugins\/\">Init Plugin Suite<\/a> \u2014 a collection of minimalist, fast, and developer-focused tools for WordPress.<\/p>\n\n<p>GitHub repository: <a href=\"https:\/\/github.com\/brokensmile2103\/init-fx-engine\">https:\/\/github.com\/brokensmile2103\/init-fx-engine<\/a><\/p>\n\n<p><strong>What's New in v2.0.1:<\/strong>\n- <strong>Seasonal Effects<\/strong>: holiday scenes floating over your site \u2014 \ud83c\udf83 Halloween bats &amp; ghosts, \ud83c\udf84 Christmas gifts, \ud83c\udf89 New Year sparkles, \ud83c\udf38 T\u1ebft (Lunar New Year) blossoms &amp; lucky money, \ud83d\udc96 Valentine hearts, \ud83c\udfee Mid-Autumn lanterns rising into the sky\n- <strong>Built-in holiday calendar<\/strong>: switches theme automatically, including T\u1ebft and the Mid-Autumn Festival computed from the Vietnamese lunar calendar (UTC+7)\n- <strong>Themed greeting<\/strong> once per visit: a real fireworks show on New Year, lucky money rain on T\u1ebft, and more\n- <strong>5 new effects<\/strong>: Halloween Burst, Lucky Money (T\u1ebft), Fireworks Show, Snow Burst, Lantern Rise \u2014 usable with keywords, shortcodes and the FX Trigger block\n- <strong>Faster frontend<\/strong>: lighter DOM scanning, cached effect shapes, lazy-loaded fireworks library<\/p>\n\n<p><strong>What's New in v2.0.0:<\/strong>\n- <strong>Block Editor (Gutenberg) support<\/strong>: a native <strong>FX Trigger<\/strong> block, grouped under its own <strong>Init FX Engine<\/strong> category in the block inserter. The block shares the exact same rendering code as its <code>[initfxen-fx]<\/code> shortcode counterpart, with a live preview right in the editor\n- <strong>Requires at least<\/strong> raised from 5.5 to 6.9<\/p>\n\n<p><strong>Highlights:<\/strong>\n- Native Block Editor block: FX Trigger \u2014 with live preview in the editor\n- Interactive visual effects: Firework, Emoji Rain, Heart Rain, Cannon Blast, Starlight, Celebration Burst, Halloween Burst, Lucky Money, Fireworks Show, Snow Burst, Lantern Rise\n- Seasonal Effects with a built-in holiday calendar (Halloween, Christmas, New Year, T\u1ebft, Valentine, Mid-Autumn), custom schedule or always-on mode\n- Preloader (loading screen) with 6 styles: Dot Dot Dot, Bar, Logo, Flower, Spinner, Emoji\n- Supports gradient or solid background for preloader\n- Auto-fetch favicon for logo-based animation\n- Snowfall effect with date scheduler (auto\/custom)\n- Grayscale mode (manual or scheduled)\n- Shortcode <code>[initfxen-fx-ambient]<\/code> for ambient background animation\n- Keywords to trigger effects inside comments or post content\n- Real-time preview of effects in settings page\n- Lightweight, extensible, and multilingual-ready<\/p>\n\n<h3>Block Editor (Gutenberg)<\/h3>\n\n<p>A native block is available under its own <strong>Init FX Engine<\/strong> category in the block inserter \u2014 no shortcode needed if you prefer working entirely in the editor:<\/p>\n\n<ul>\n<li><strong>FX Trigger<\/strong> \u2014 equivalent to <code>[initfxen-fx]<\/code>. A link or button that fires a visual effect (fireworks, emoji rain, etc.) on click or hover<\/li>\n<\/ul>\n\n<p>The block shares the exact same rendering code as its shortcode, so switching between the Block Editor and shortcode never changes the output. Block settings map directly to shortcode attributes, and a live preview is shown right in the editor as you configure it.<\/p>\n\n<p>Note: the <code>[initfxen-fx-ambient]<\/code> shortcode does not have a block equivalent in this release \u2014 its rendering behavior wasn't stable enough to bring into the Block Editor yet. The shortcode itself is unaffected and continues to work exactly as before.<\/p>\n\n<p>Note: this plugin does not include Abilities API support. It has no data to read or write \u2014 everything it does is a purely visual, client-side effect \u2014 so there is nothing meaningful for an AI agent or automation tool to query here.<\/p>\n\n<h3>Seasonal Effects<\/h3>\n\n<p>Go to <strong>Settings \u2192 Init FX Engine \u2192 Seasonal Effects<\/strong> and tick <strong>Enable seasonal effects on site<\/strong>.<\/p>\n\n<ul>\n<li><strong>Theme<\/strong>: pick a holiday, or leave it on <strong>Auto<\/strong> to follow the holiday calendar<\/li>\n<li><strong>Built-in holiday calendar<\/strong>: Halloween (Oct 24\u201331), Christmas (Dec 20\u201326), New Year (Dec 30 \u2013 Jan 2), T\u1ebft (one week before Lunar New Year's Day \u2013 the 7th day of the new year), Valentine (Feb 10\u201314), Mid-Autumn (one week before the 15th day of the 8th lunar month)<\/li>\n<li><strong>Custom schedule<\/strong> or <strong>Always on<\/strong> (handy for testing on localhost)<\/li>\n<li><strong>Custom emojis<\/strong>: replace the theme's emojis with your own (up to 12)<\/li>\n<li><strong>Greeting effect<\/strong>: plays once per browser session (e.g. a fireworks show on New Year)<\/li>\n<li>The <strong>Preview<\/strong> button plays the scene right in the settings page<\/li>\n<\/ul>\n\n<p>Performance: the scene is drawn on a single canvas with pre-rendered emoji sprites, starts only after the page has finished loading, pauses when the tab is hidden, uses fewer particles on small screens and respects the visitor's \"reduce motion\" setting.<\/p>\n\n<p>Developers can customize themes and dates with the <code>init_plugin_suite_fx_engine_seasonal_themes<\/code>, <code>init_plugin_suite_fx_engine_seasonal_window<\/code>, <code>init_plugin_suite_fx_engine_lunar_dates<\/code> and <code>init_plugin_suite_fx_engine_seasonal_config<\/code> filters.<\/p>\n\n<h3>License<\/h3>\n\n<p>This plugin is licensed under the GPLv2 or later.<br \/>\nYou are free to use, modify, and distribute it under the same license.<\/p>\n\n<h3>Credits<\/h3>\n\n<p>This plugin includes these open-source libraries:<\/p>\n\n<ul>\n<li>canvas-confetti \u2014 <a href=\"https:\/\/www.kirilv.com\/canvas-confetti\/\">https:\/\/www.kirilv.com\/canvas-confetti\/<\/a><\/li>\n<li>particles.js \u2014 <a href=\"https:\/\/vincentgarreau.com\/particles.js\/\">https:\/\/vincentgarreau.com\/particles.js\/<\/a><\/li>\n<li>fireworks-js 2.10.8 \u2014 <a href=\"https:\/\/github.com\/crashmax-dev\/fireworks-js\">https:\/\/github.com\/crashmax-dev\/fireworks-js<\/a> (Copyright \u00a9 2021-2023 Vitalij Ryndin)<\/li>\n<\/ul>\n\n<p>All are MIT licensed and bundled with the plugin.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin from the \u201cPlugins\u201d screen.<\/li>\n<li>Go to <strong>Settings \u2192 Init FX Engine<\/strong> to configure effects.<\/li>\n<li>Optionally insert <code>[initfxen-fx-ambient]<\/code> into posts or templates, or add the equivalent block in the Block Editor.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20add%20my%20own%20effects%3F\"><h3>Can I add my own effects?<\/h3><\/dt>\n<dd><p>Yes. Developers can hook into the engine via JavaScript or WordPress hooks.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20heavy%20or%20slow%3F\"><h3>Is the plugin heavy or slow?<\/h3><\/dt>\n<dd><p>No. Scripts are loaded only when needed \u2014 optimized for performance.<\/p><\/dd>\n<dt id=\"can%20i%20use%20the%20effects%20outside%20of%20comments%3F\"><h3>Can I use the effects outside of comments?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>[init-fx]<\/code> shortcode or call <code>FXEngine.trigger('effect')<\/code> in JavaScript.<\/p><\/dd>\n<dt id=\"how%20do%20i%20register%20my%20own%20effect%20in%20javascript%3F\"><h3>How do I register my own effect in JavaScript?<\/h3><\/dt>\n<dd><p>Call <code>FXEngine.register('myEffect', function (options) { ... })<\/code>, then use <code>fx=\"myEffect\"<\/code> in the shortcode or <code>FXEngine.trigger('myEffect')<\/code>.<\/p><\/dd>\n<dt id=\"when%20does%20t%E1%BA%BFt%20%2F%20mid-autumn%20start%20automatically%3F\"><h3>When does T\u1ebft \/ Mid-Autumn start automatically?<\/h3><\/dt>\n<dd><p>Dates are computed from the Vietnamese lunar calendar (UTC+7) and bundled up to 2040. You can add or override years with the <code>init_plugin_suite_fx_engine_lunar_dates<\/code> filter.<\/p><\/dd>\n<dt id=\"the%20seasonal%20scene%20doesn%27t%20show%20up%20on%20my%20site.\"><h3>The seasonal scene doesn't show up on my site.<\/h3><\/dt>\n<dd><p>Check that today is inside the holiday window (the settings page shows the calendar and what visitors will see today), or switch to <strong>Always on<\/strong> for testing. If your device has \"reduce motion\" enabled, the scene is skipped unless you untick that option. Remember to clear your page cache after changing settings.<\/p><\/dd>\n<dt id=\"does%20it%20support%20text%20formatting%3F\"><h3>Does it support text formatting?<\/h3><\/dt>\n<dd><p>Yes. You can format text using simple markers:<br \/>\n    <em>bold<\/em>, <code>~strike~<\/code>, <code>`italic`<\/code>, <code>^highlight^<\/code>, <code>_neon_<\/code><\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.1 \u2013 October 1, 2026<\/h4>\n\n<ul>\n<li><strong>New: Seasonal Effects<\/strong> \u2014 holiday scenes rendered over the page: Halloween (bats, ghosts, pumpkins), Christmas, New Year, Lunar New Year \/ T\u1ebft (peach &amp; apricot blossoms, lucky money), Valentine and Mid-Autumn (glowing lanterns rising). Three motion styles: falling, rising and fluttering<\/li>\n<li><strong>New: Built-in holiday calendar<\/strong> with automatic theme switching; T\u1ebft and Mid-Autumn dates are computed from the Vietnamese lunar calendar (UTC+7) and bundled through 2040. Also supports a custom date range or always-on mode, homepage-only display and custom emojis<\/li>\n<li><strong>New: Themed greeting effect<\/strong>, played once per browser session (fireworks show on New Year, lucky money on T\u1ebft, lantern rise on Mid-Autumn...)<\/li>\n<li><strong>New effects<\/strong>: Halloween Burst, Lucky Money (T\u1ebft), Fireworks Show, Snow Burst, Lantern Rise \u2014 available as keywords, in <code>[initfxen-fx]<\/code> and in the FX Trigger block<\/li>\n<li><strong>New library<\/strong>: <a href=\"https:\/\/github.com\/crashmax-dev\/fireworks-js\">fireworks-js<\/a> 2.10.8 (MIT) for the realistic Fireworks Show. It is lazy-loaded only when the effect actually runs; if it cannot load, the classic confetti firework is used instead<\/li>\n<li><strong>New: JavaScript API<\/strong> \u2014 <code>FXEngine.trigger( name, options )<\/code>, <code>FXEngine.register( name, fn )<\/code> and <code>FXEngine.effects()<\/code> (the <code>FXEngine.trigger<\/code> call mentioned in the FAQ now actually exists)<\/li>\n<li><strong>Settings<\/strong>: Seasonal Effects section with a live <strong>Preview<\/strong> button, the upcoming holiday calendar and a \"today visitors will see\" indicator; preview buttons for every new effect<\/li>\n<li><strong>Settings<\/strong>: the settings page is now organized into clear sections (Preloader, Keyword Effects, Snowfall, Seasonal Effects, Grayscale, Inline Formatting), one setting per row with proper labels. Field names are unchanged, so existing settings are kept<\/li>\n<li><strong>Performance<\/strong>: the seasonal renderer draws pre-rendered emoji sprites on a single canvas, starts after page load via <code>requestIdleCallback<\/code>, pauses while the tab is hidden, caps device pixel ratio at 2, reduces particles on small screens and respects <code>prefers-reduced-motion<\/code><\/li>\n<li><strong>Performance<\/strong>: inline formatting no longer serializes the whole page (<code>innerHTML<\/code>) to look for spoilers, and skips text nodes without any formatting marker before running its regular expressions<\/li>\n<li><strong>Performance<\/strong>: emoji\/heart shapes are cached instead of being rebuilt on every effect, and all \"in-view\" shortcodes share a single <code>IntersectionObserver<\/code><\/li>\n<li><strong>Performance<\/strong>: removed duplicated rules from the preloader critical CSS (same visual result)<\/li>\n<li><strong>Compatibility<\/strong>: <code>fx-engine.js<\/code> and <code>fx-snowfall.js<\/code> now also start when they are deferred\/delayed by optimization plugins (after <code>DOMContentLoaded<\/code>); <code>fx-engine.js<\/code> declares its canvas-confetti dependency explicitly<\/li>\n<li><strong>Developer<\/strong>: new filters <code>init_plugin_suite_fx_engine_seasonal_themes<\/code>, <code>init_plugin_suite_fx_engine_seasonal_window<\/code>, <code>init_plugin_suite_fx_engine_lunar_dates<\/code>, <code>init_plugin_suite_fx_engine_seasonal_config<\/code><\/li>\n<li><strong>Internationalization<\/strong>: new strings added to the POT file and Vietnamese translation (PO\/MO\/JSON regenerated with WP-CLI)<\/li>\n<li><strong>Uninstall<\/strong>: the new <code>init_plugin_suite_fx_engine_seasonal<\/code> option is removed on uninstall<\/li>\n<\/ul>\n\n<h4>2.0.0 \u2013 August 4, 2026<\/h4>\n\n<ul>\n<li><strong>New: Block Editor (Gutenberg) support<\/strong>: a native <strong>FX Trigger<\/strong> block (equivalent to <code>[initfxen-fx]<\/code>), grouped under its own <strong>Init FX Engine<\/strong> block category (instead of the generic \"Widgets\" category). Registered via <code>block.json<\/code> (with a PHP <code>render.php<\/code> file wired through the <code>\"render\"<\/code> field, WP 6.1+) that calls the exact same shortcode function as its shortcode counterpart \u2014 no duplicated display logic, output always matches. The editor integration is a single, no-build-step vanilla JavaScript file using <code>wp.serverSideRender<\/code> for a live preview directly in the editor. The <code>[initfxen-fx-ambient]<\/code> shortcode does not get a block equivalent in this release \u2014 its rendering behavior wasn't stable enough yet; the shortcode itself is unaffected<\/li>\n<li><strong>Changed<\/strong>: <code>Requires at least<\/code> raised from 5.5 to 6.9, for consistency with the rest of the Init Plugin Suite's 2.0.0 releases<\/li>\n<li><strong>Note<\/strong>: this release does not add Abilities API support. This plugin has no data to read or write \u2014 everything it does is a purely visual, client-side effect \u2014 so there is nothing meaningful for an AI agent to query<\/li>\n<li><strong>Tested up to: 7.1<\/strong><\/li>\n<\/ul>\n\n<h4>1.6 \u2013 December 17, 2025<\/h4>\n\n<ul>\n<li><strong>Enhancement<\/strong>: Added advanced Snowfall configuration options \u2014 control snow amount, size, fall speed, and opacity<\/li>\n<li><strong>UX<\/strong>: Introduced fine-grained snowfall tuning for balanced visuals without overwhelming content<\/li>\n<li><strong>Performance<\/strong>: Optimized particle density calculation to prevent visual clutter at higher snow counts<\/li>\n<li><strong>Stability<\/strong>: Enforced strict value clamping and safe defaults to avoid misconfiguration and extreme effects<\/li>\n<li><strong>Developer<\/strong>: Normalized snowfall settings schema with backward-compatible defaults for legacy installs<\/li>\n<li><strong>Developer<\/strong>: Frontend now receives a minimal, sanitized snowfall config payload (reduces JS surface and coupling)<\/li>\n<li><strong>Compatibility<\/strong>: Improved resilience when particles.js loads late or configuration is partially missing<\/li>\n<li><strong>Internationalization<\/strong>: Added translatable strings for all new Snowfall settings and helper descriptions<\/li>\n<li><strong>Code Quality<\/strong>: Refactored snowfall bootstrapping logic for clearer separation between schedule logic and rendering<\/li>\n<li><strong>Maintainability<\/strong>: Prepared Snowfall module for future presets (Light \/ Normal \/ Heavy) without breaking changes<\/li>\n<\/ul>\n\n<h4>1.5 \u2013 December 9, 2025<\/h4>\n\n<ul>\n<li><strong>New Feature<\/strong>: Added <em>Homepage-only Snowfall<\/em> option \u2014 allow snowfall effect to run exclusively on the homepage<\/li>\n<li><strong>UX<\/strong>: Snowfall settings now provide clearer scope control between full-site and homepage-only display<\/li>\n<li><strong>Developer<\/strong>: Extended snowfall option schema with <code>homepage_only<\/code> flag<\/li>\n<li><strong>Security<\/strong>: Improved sanitization for snowfall scope settings<\/li>\n<li><strong>Compatibility<\/strong>: Ensured correct behavior with both <code>is_front_page()<\/code> and <code>is_home()<\/code> configurations<\/li>\n<li><strong>Stability<\/strong>: Prevented unnecessary asset loading on non-homepage pages when homepage-only mode is enabled<\/li>\n<li><strong>Performance<\/strong>: Reduced frontend script footprint when snowfall is limited to homepage<\/li>\n<\/ul>\n\n<h4>1.4 \u2013 November 14, 2025<\/h4>\n\n<ul>\n<li><strong>Performance<\/strong>: Rebuilt FX Keyword Scanner \u2014 now uses a single-pass TreeWalker, unified regex engine, parent-level deduping, and smart skip rules for ultra-fast DOM parsing<\/li>\n<li><strong>Stability<\/strong>: Improved safety checks with <code>data-fx-keyword-processed<\/code> to prevent reprocessing loops and ensure clean node replacement<\/li>\n<li><strong>UX<\/strong>: Smoother keyword-trigger interactions via a single delegated click listener (reduces event overhead and boosts responsiveness)<\/li>\n<li><strong>Developer<\/strong>: Refactored internal matching pipeline for clarity, extensibility, and easier debugging<\/li>\n<li><strong>Compatibility<\/strong>: More accurate keyword detection across multilingual and mixed-format HTML content<\/li>\n<\/ul>\n\n<h4>1.3 \u2013 September 13, 2025<\/h4>\n\n<ul>\n<li><strong>New Feature<\/strong>: Added <em>Session-only Preloader<\/em> option (only shows preloader on first visit per session)<\/li>\n<li><strong>New Feature<\/strong>: Added <em>Inline Formatting toggle<\/em> (enable\/disable parsing of inline syntax in texts)<\/li>\n<li><strong>New Feature<\/strong>: Introduced <em>Spoiler syntax<\/em> using <code>||text||<\/code> \u2014 wraps any content (including images) inside a blurred container with click-to-reveal overlay<\/li>\n<li><strong>Internationalization<\/strong>: Spoiler overlay label (<code>Tap to reveal<\/code>) is now translatable via i18n<\/li>\n<li><strong>CSS Injection<\/strong>: Optimized to load highlight and spoiler styles only when needed<\/li>\n<li><strong>Developer<\/strong>: Extended sanitize and settings registration for new options (<code>session_once<\/code>, <code>inlinefmt<\/code>)<\/li>\n<li><strong>Stability<\/strong>: Fixed duplication issues when parsing spoiler blocks and ensured clean DOM structure<\/li>\n<li><strong>UX<\/strong>: Improved spoiler accessibility with ARIA labels<\/li>\n<\/ul>\n\n<h4>1.2 \u2013 August 25, 2025<\/h4>\n\n<ul>\n<li><strong>Critical Fix<\/strong>: Resolved preloader flash\/flicker issue during page load<\/li>\n<li><strong>Performance<\/strong>: Eliminated race conditions in asset loading sequence<\/li>\n<li><strong>Compatibility<\/strong>: Enhanced support for themes without <code>wp_body_open<\/code> hook<\/li>\n<li><strong>Stability<\/strong>: Fixed \"Cannot read properties of null\" errors in early execution<\/li>\n<li><strong>Code Quality<\/strong>: Refactored preloader timing mechanism for WordPress standards compliance<\/li>\n<li><strong>User Experience<\/strong>: Smoother transitions with anti-flash CSS critical loading<\/li>\n<li><strong>Developer<\/strong>: Improved error handling and graceful degradation fallbacks<\/li>\n<\/ul>\n\n<h4>1.1 \u2013 August 24, 2025<\/h4>\n\n<ul>\n<li><strong>New Effects<\/strong>: Particle Burst, Text Typewriter, Floating Bubbles, Lightning Strike<\/li>\n<li><strong>Advanced Triggers<\/strong>: Scroll-based, time-delayed sequences, interaction tracking<\/li>\n<li><strong>Enhanced Keywords<\/strong>: Phrase support, case-insensitive matching, bulk import\/export<\/li>\n<li><strong>Mobile Optimization<\/strong>: 40% better performance, responsive effect scaling<\/li>\n<li><strong>Developer API<\/strong>: Custom effect creation, debug mode, WordPress hooks<\/li>\n<li><strong>Bug Fixes<\/strong>: Preloader race condition, Safari compatibility, memory cleanup<\/li>\n<\/ul>\n\n<h4>1.0 \u2013 May 17, 2025<\/h4>\n\n<ul>\n<li>First public release<\/li>\n<li>Fireworks, emoji rain, heart rain, cannon blast and more<\/li>\n<li>Animated preloader with 6 built-in styles<\/li>\n<li>Settings page with real-time preview<\/li>\n<li>Shortcodes for triggering and ambient effects<\/li>\n<li>Snowfall scheduler (auto\/custom)<\/li>\n<li>Optional grayscale mode (manual or scheduled)<\/li>\n<li>Inline text formatting with common syntax<\/li>\n<li>Performance optimized and extensible<\/li>\n<\/ul>","raw_excerpt":"Bring your WordPress site to life with visual effects and seasonal holiday scenes, now with native Block Editor support.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/246878","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=246878"}],"author":[{"embeddable":true,"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/brokensmile2103-1"}],"wp:attachment":[{"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=246878"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=246878"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=246878"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=246878"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=246878"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/et.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=246878"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}