{"id":291275,"date":"2026-04-04T14:51:02","date_gmt":"2026-04-04T14:51:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/animation-kit\/"},"modified":"2026-09-25T06:54:42","modified_gmt":"2026-09-25T06:54:42","slug":"wpxero-animation-kit","status":"publish","type":"plugin","link":"https:\/\/kab.wordpress.org\/plugins\/wpxero-animation-kit\/","author":21159831,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.5.0","stable_tag":"0.5.0","tested":"7.1.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Animation Kit \u2013 Animated Backgrounds & WebGL Effects","header_author":"WPXERO","header_description":"Entrance animation controls for Gutenberg blocks.","assets_banners_color":"212470","last_updated":"2026-09-25 06:54:42","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/wpxero.com\/plugins\/wpxero-animation-kit\/pricing","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/wpxero-animation-kit","header_author_uri":"https:\/\/wpxero.com\/plugins\/wpxero-animation-kit","rating":0,"author_block_rating":0,"active_installs":10,"downloads":934,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.0.1":{"tag":"0.0.1","author":"wpxero","date":"2026-04-04 14:50:35","revision":3498807},"0.1.0":{"tag":"0.1.0","author":"wpxero","date":"2026-04-14 15:14:35","revision":3506174},"0.2.0":{"tag":"0.2.0","author":"wpxero","date":"2026-05-14 16:00:28","revision":3532246},"0.2.1":{"tag":"0.2.1","author":"wpxero","date":"2026-05-16 06:36:15","revision":3533594},"0.2.2":{"tag":"0.2.2","author":"wpxero","date":"2026-06-10 03:30:11","revision":3566768},"0.3.0":{"tag":"0.3.0","author":"wpxero","date":"2026-07-05 00:39:44","revision":3596243},"0.3.1":{"tag":"0.3.1","author":"wpxero","date":"2026-08-26 14:23:50","revision":3667240},"0.4.0":{"tag":"0.4.0","author":"wpxero","date":"2026-09-20 07:30:54","revision":3703964},"0.5.0":{"tag":"0.5.0","author":"wpxero","date":"2026-09-25 06:54:42","revision":3712531}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3560181,"resolution":"128x128","location":"assets","locale":"","width":1254,"height":1254},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3560181,"resolution":"256x256","location":"assets","locale":"","width":1254,"height":1254}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3560181,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3560181,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3712531,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=wpxero-animation-kit#background\",\"preferredVersions\":{\"php\":\"8.0\",\"wp\":\"latest\"},\"features\":{\"networking\":true},\"steps\":[{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"wpxero-animation-kit\"},\"options\":{\"activate\":true}},{\"step\":\"setSiteOptions\",\"options\":{\"blogname\":\"Animation Kit\",\"blogdescription\":\"Supercharge your websites with powerful animations, dynamic effects, and interactive visual experiences with Animation Kit!\"}}]}"}},"all_blocks":[],"tagged_versions":["0.0.1","0.1.0","0.2.0","0.2.1","0.2.2","0.3.0","0.3.1","0.4.0","0.5.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Aurora background behind a hero section \u2014 landing-page mockup showing the flowing color wash with overlaid headline and CTA.","2":"The Background Animation admin workspace \u2014 backgrounds list, live preview and effect picker inside WordPress.","3":"Effect picker with search and category filters.","4":"Antigravity \u2014 close-up of the magnetic particle field with pointer interaction.","5":"Light Pillar on a SaaS hero \u2014 vertical light column behind a product mockup.","6":"Mobile view \u2014 the same background on a phone, using the \"On phones\" setting."}},"plugin_section":[],"plugin_tags":[266425,148076,34536,190643,805],"plugin_category":[50],"plugin_contributors":[223308],"plugin_business_model":[],"class_list":["post-291275","plugin","type-plugin","status-publish","hentry","plugin_tags-animated-background","plugin_tags-gutenberg","plugin_tags-hero-section","plugin_tags-particles","plugin_tags-webgl","plugin_category-media","plugin_contributors-wpxero","plugin_committers-afnanturab","plugin_committers-wpxero","plugin_support_reps-afnanturab"],"banners":{"banner":"https:\/\/ps.w.org\/wpxero-animation-kit\/assets\/banner-772x250.jpg?rev=3560181","banner_2x":"https:\/\/ps.w.org\/wpxero-animation-kit\/assets\/banner-1544x500.jpg?rev=3560181","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wpxero-animation-kit\/assets\/icon-128x128.png?rev=3560181","icon_2x":"https:\/\/ps.w.org\/wpxero-animation-kit\/assets\/icon-256x256.png?rev=3560181","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Animation Kit lets you add a moving WebGL background to any WordPress page \u2014 a particle field, an aurora wash, a sweeping radar pulse \u2014 from a single admin screen. No theme editing, no shortcodes, no CSS. Pick an effect, match your colors, save, and your visitors see a smooth canvas layer behind your content.<\/p>\n\n<p>The plugin is <strong>builder-agnostic<\/strong>: it renders at the document level, so it cooperates with classic themes, block themes, Elementor, Bricks, WPBakery, and Gutenberg page builds without needing a per-builder integration.<\/p>\n\n<h3>How it works<\/h3>\n\n<p>You get a dedicated <strong>Background Animation<\/strong> screen inside the WP admin. From there:<\/p>\n\n<ol>\n<li>Pick one of 6 free effects (full list below) \u2014 search and filter the gallery, or step through effects right on the live preview.<\/li>\n<li>Set its colors and watch the live preview on a light or dark stand-in page.<\/li>\n<li>Toggle the background on. The canvas appears site-wide.<\/li>\n<\/ol>\n\n<p>Want motion in just one section \u2014 a hero, a call-to-action band? Select any <strong>Group<\/strong> or <strong>Cover<\/strong> block and switch on <strong>Animated background<\/strong> in the block settings.<\/p>\n\n<p>Start from one of the curated <strong>looks<\/strong>, add a <strong>readability overlay<\/strong> so text on top stays legible, and choose what <strong>phones<\/strong> get. Copy a background's look and paste it into another background, a block, or another site.<\/p>\n\n<p>The free tier targets the whole website (single configuration) with the renderer\u2019s own placement defaults. Pro adds multiple stacked configurations, per-page placement rules, and Display Settings (position, stacking order, opacity).<\/p>\n\n<h3>Effects included in the free version<\/h3>\n\n<ul>\n<li><strong>Antigravity<\/strong> \u2014 Magnetic particle field that reacts to pointer movement. Good for tech, SaaS, and sci-fi-style hero sections.<\/li>\n<li><strong>Aurora<\/strong> \u2014 Flowing color washes. Suits portfolios, night-mode brands, and creative agencies.<\/li>\n<li><strong>Particles<\/strong> \u2014 Drifting 3D particle cloud in your brand colors.<\/li>\n<li><strong>Silk<\/strong> \u2014 Slow, fabric-like folds. Calm and premium.<\/li>\n<li><strong>Light Pillar<\/strong> \u2014 Vertical light column. Good for landing-page focal points on dark designs.<\/li>\n<li><strong>Radar<\/strong> \u2014 Sweep-style radar visualization.<\/li>\n<\/ul>\n\n<h3>Animation Kit Pro<\/h3>\n\n<p>Pro adds 17 more effects \u2014 Color Bends, Dot Grid, Evil Eye, Floating Lines, Floating Orbs, Gradient Blinds, Grainient, Grid Scan, Iridescence, Light Rays, Line Waves, Liquid Ether, Pixel Blast, Plasma, Prism, Soft Aurora and Starfield \u2014 every effect's motion, size and interaction controls, multiple layered backgrounds, page and section targeting, and position, stacking, opacity and blend-mode controls.<\/p>\n\n<p>Each effect is its own lazy-loaded chunk: visitors only download the code for the effect you enable, not a single fat bundle.<\/p>\n\n<p>Pricing and details: https:\/\/wpxero.com\/plugins\/wpxero-animation-kit\/pricing<\/p>\n\n<h3>Use cases<\/h3>\n\n<ul>\n<li>Hero sections that need motion without an animated video.<\/li>\n<li>Landing pages where you want a moving backdrop behind a CTA.<\/li>\n<li>Portfolios and agency sites that want a signature visual.<\/li>\n<li>Conference, course, and event sites that want a \"live\" feel.<\/li>\n<li>Dark-mode marketing pages where Aurora or Light Pillar adds depth.<\/li>\n<\/ul>\n\n<h3>Performance and Core Web Vitals<\/h3>\n\n<p>Animation Kit is built around lazy loading. The frontend script only ships when a background is enabled; the heavy rendering code (Three.js, OGL, the per-effect shader) is split into separate chunks loaded on demand after <code>DOMContentLoaded<\/code>. Each background has an <strong>On phones<\/strong> setting \u2014 full animation, a lighter lower-resolution version, a still image in the same colors, or hidden. Visitors who prefer reduced motion, use Save-Data, or whose browser has no WebGL get the still image, with no WebGL code downloaded.<\/p>\n\n<p>Compatibility filters are registered for <strong>WP Rocket<\/strong>, <strong>LiteSpeed Cache<\/strong>, <strong>Autoptimize<\/strong>, <strong>W3 Total Cache<\/strong>, and <strong>WP Fastest Cache<\/strong> so their delay-JS \/ combine-JS \/ minify rules don't break the lazy chunks.<\/p>\n\n<h3>Accessibility<\/h3>\n\n<ul>\n<li>The canvas wrapper is <code>aria-hidden=\"true\"<\/code> and <code>pointer-events: none<\/code> \u2014 assistive tech ignores it, and visitors can still click links, forms, and menus through it.<\/li>\n<li><code>prefers-reduced-motion: reduce<\/code> is honored: when the visitor's OS preference is set when the page loads, they get a still image in the background's colors and no WebGL code is downloaded. The preference is read on page load, so a change takes effect on the next page.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Search \"Animation Kit\" in <strong>Plugins \u2192 Add New<\/strong> and install, or upload the ZIP from wordpress.org\/plugins\/wpxero-animation-kit.<\/li>\n<li>Activate.<\/li>\n<li>Open <strong>Animation Kit \u2192 Background Animation<\/strong> in the WordPress admin.<\/li>\n<li>Pick an effect or a look, set its colors, turn it on, save.<\/li>\n<li>Visit the front of your site in a private window to confirm.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20add%20an%20animated%20background%20to%20a%20wordpress%20page%20without%20coding%3F\"><h3>How do I add an animated background to a WordPress page without coding?<\/h3><\/dt>\n<dd><p>Install and activate Animation Kit, open <strong>Animation Kit \u2192 Background Animation<\/strong> in the admin, pick an effect or a ready-made look, set its colors, and turn it on. There's no shortcode to paste, no widget to drop in, no template to edit.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20elementor%2C%20gutenberg%2C%20bricks%2C%20and%20wpbakery%3F\"><h3>Does this work with Elementor, Gutenberg, Bricks, and WPBakery?<\/h3><\/dt>\n<dd><p>Yes \u2014 the site-wide background renders at the document body, so it sits behind anything those builders output. In the block editor you can also animate a single section: select a <strong>Group<\/strong> or <strong>Cover<\/strong> block and switch on <strong>Animated background<\/strong>. There is no Elementor widget yet; on page builders, targeting one section (via a CSS selector) is a Pro feature.<\/p><\/dd>\n<dt id=\"will%20animated%20backgrounds%20slow%20down%20my%20page%20or%20hurt%20pagespeed%3F\"><h3>Will animated backgrounds slow down my page or hurt PageSpeed?<\/h3><\/dt>\n<dd><p>The frontend script only loads when a background is enabled. The heavy rendering code is code-split and lazy-loaded after the page is interactive. Choose per background what phones get (full, lighter, still image or hidden); reduced-motion, Save-Data and no-WebGL visitors always get a still image. Like any WebGL animation, a full-quality effect on a weak device still costs GPU time \u2014 the lighter or still-image options are there for exactly that.<\/p><\/dd>\n<dt id=\"will%20it%20break%20with%20my%20caching%20plugin%3F\"><h3>Will it break with my caching plugin?<\/h3><\/dt>\n<dd><p>Compatibility filters ship for WP Rocket, LiteSpeed, Autoptimize, W3 Total Cache, and WP Fastest Cache. The scripts are excluded from delay\/combine\/minify rules so the lazy chunks resolve correctly. If you use a different cache plugin, exclude <code>wpxero-animation-kit\/build\/<\/code> from optimization manually.<\/p><\/dd>\n<dt id=\"can%20i%20limit%20the%20animation%20to%20one%20page%20or%20one%20section%3F\"><h3>Can I limit the animation to one page or one section?<\/h3><\/dt>\n<dd><p>Yes \u2014 for a single section, select a <strong>Group<\/strong> or <strong>Cover<\/strong> block in the editor and switch on <strong>Animated background<\/strong> in its settings sidebar. Pick a look, adjust its colors, add a readability overlay, choose what phones get. This works in the free version and is independent of the site-wide background.<\/p>\n\n<p>Running different site-wide backgrounds on different pages, or targeting a CSS selector, is part of Animation Kit Pro.<\/p><\/dd>\n<dt id=\"does%20the%20canvas%20block%20clicks%2C%20focus%2C%20or%20scroll%3F\"><h3>Does the canvas block clicks, focus, or scroll?<\/h3><\/dt>\n<dd><p>No. <code>pointer-events: none<\/code> is set on the wrapper, so clicks pass through to your content. The wrapper is also <code>aria-hidden=\"true\"<\/code> for screen readers.<\/p><\/dd>\n<dt id=\"does%20it%20respect%20prefers-reduced-motion%3F\"><h3>Does it respect prefers-reduced-motion?<\/h3><\/dt>\n<dd><p>Yes. When the visitor's OS-level reduced-motion preference is on, they get a still image in the background's own colors and no WebGL code is downloaded. The preference is checked when the page loads.<\/p><\/dd>\n<dt id=\"how%20do%20i%20uninstall%20cleanly%3F\"><h3>How do I uninstall cleanly?<\/h3><\/dt>\n<dd><p>Plugin settings are stored under two options (<code>animation_kit_settings<\/code> and <code>animation_kit_background_settings<\/code>). Deactivating preserves them so you don't lose configuration; <strong>deleting<\/strong> the plugin from the Plugins screen runs <code>uninstall.php<\/code>, which removes both options and any transients across all sites (multisite-aware).<\/p><\/dd>\n<dt id=\"what%27s%20the%20difference%20between%20free%20and%20pro%3F\"><h3>What's the difference between Free and Pro?<\/h3><\/dt>\n<dd><p>Free: 6 effects with your own colors, one site-wide background.\nPro: 17 more effects, every effect's motion and size controls, multiple layered backgrounds, per-page and CSS-selector targeting, position \/ stacking \/ opacity \/ blend mode, priority support.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.5.0 \u2014 September 25, 2026<\/h4>\n\n<ul>\n<li>Added: Section backgrounds \u2014 an \"Animated background\" panel on Group and Cover blocks puts an effect on one section (a hero, a CTA band), independent of the site-wide background. Free.<\/li>\n<li>Added: Looks gallery \u2014 curated effect + palette starting points in the dashboard and the block panel, including 8 looks made for light sites.<\/li>\n<li>Added: Readability overlay (color + strength) so text on top of a background stays legible.<\/li>\n<li>Added: \"On phones\" per background \u2014 full animation, lighter (lower resolution), a still image in the same colors, or hidden.<\/li>\n<li>Added: Copy look \/ Paste look \/ Reset effect in the editor header; effect search, category filters, previous\/next stepper and full-screen preview.<\/li>\n<li>Added: Light-site check on the preview \u2014 warns when a background puts dark behind dark text, with one-click fixes.<\/li>\n<li>Changed: The live preview shows your theme's real page and text colors by default, so what you design matches what visitors see.<\/li>\n<li>Changed: Visitors with reduced motion, Save-Data or no WebGL get a still image in the background's own colors instead of nothing, without downloading the WebGL renderer.<\/li>\n<li>Improved: Redesigned settings screen \u2014 plan badge, live \/ unsaved \/ off status, View site, Discard, Ctrl\/\u2318+S to save, and a clearer Effect \u2192 Customize \u2192 Where it runs flow.<\/li>\n<li>Fixed: Reset kept old settings (overlay, knobs of earlier effects), so the reset background looked like the old one. It now resets this background completely and never removes your other backgrounds.<\/li>\n<li>Fixed: Aurora turned any palette into a grey smudge on white pages; Radar's background color was not painted; Particles defaulted to white, which vanished on white themes.<\/li>\n<li>Fixed: Silk and Antigravity previews stayed blank after switching effect; the preview could briefly show the previous effect.<\/li>\n<li>Fixed: Switching effect without a license left the old effect's settings stored, which then applied to the new effect once Pro was activated.<\/li>\n<li>Fixed: Backgrounds mounted inside an element disappeared behind that element's own background color.<\/li>\n<\/ul>\n\n<h4>0.4.0 \u2014 September 20, 2026<\/h4>\n\n<ul>\n<li>Changed: Display Settings is now an Animation Kit Pro feature in full \u2014 where a background appears, its position, stacking order and opacity. The free plugin shows what Pro unlocks and ships no part of the panel. Free sites render with the same defaults the panel used to start from (site-wide, fixed, z-index -1, full opacity), so a site that never changed them looks unchanged.<\/li>\n<li>Changed: The Welcome and About screens are gone. Animation Kit \u2192 Background Animation is the only admin screen; activation opens it directly.<\/li>\n<li>Improved: Background editor is a single workspace \u2014 live stage, effect picker and controls \u2014 instead of a multi-page header with separate Welcome\/About routes.<\/li>\n<li>Fixed: One background configuration that failed to render took every other background on the page down with it. Each configuration now mounts in isolation; a crashed effect is skipped with a console warning instead of aborting the rest.<\/li>\n<li>Fixed: A background effect chunk that failed to download (stale cache, CDN mid-deploy) rejected into an unhandled promise and simply never appeared; the failure is now reported.<\/li>\n<li>Fixed: With several backgrounds on one page, the last one listed painted on top of the first. Layers are now inserted in configuration order, so the list reads the way it renders.<\/li>\n<li>Fixed: Switching a configuration to a different effect wrote <code>undefined<\/code> over any display value the old configuration happened not to have set, silently resetting opacity, z-index or scope.<\/li>\n<li>Fixed: The live preview ignored backgrounds aimed at a specific page (picker tokens such as <code>id:5<\/code> were dropped before they reached the stage). Those pages now appear as preview tabs, an \u201cEverywhere else\u201d tab returns to the site-wide view, and selecting a configuration in the list jumps the stage to its page.<\/li>\n<li>Fixed: Unlicensed saves no longer overwrite stored Pro display values and per-effect knobs with the client\u2019s own defaults. The REST input gate now drops the same keys the output gate hides.<\/li>\n<li>Security: Color fields now accept only real CSS colors (hex, <code>rgb()<\/code>\/<code>hsl()<\/code>, <code>var(--token)<\/code>, named colors, <code>transparent<\/code>). The previous fallback let any 64-character string reach the background\u2019s inline styles and the WebGL shader uniforms.<\/li>\n<li>Added: Background layers carry <code>data-ak-background<\/code> and <code>data-ak-effect<\/code> attributes so you can tell which configuration produced which layer from developer tools.<\/li>\n<\/ul>\n\n<h4>0.3.1 \u2014 August 26, 2026<\/h4>\n\n<ul>\n<li>Fixed: Cache plugins (WP Rocket, LiteSpeed) delayed the front-end background's inline scripts, so the lazy-loaded chunks resolved from the wrong URL and no background rendered. The <code>animationKitBgData<\/code> \/ <code>__animationKitBgPublicPath<\/code> globals are now excluded from delay-JS and combine as well.<\/li>\n<li>Fixed: A stored effect id with no registered renderer \u2014 an effect that was removed, or a Pro effect on a site where Pro is inactive \u2014 rendered nothing at all. It now falls back to the default effect.<\/li>\n<li>Fixed: The legacy <code>antigravity<\/code> effect id resolves to its registered type again, so configurations saved before the id change keep their controls, live preview and picker selection.<\/li>\n<li>Fixed: A saved \"multiple backgrounds\" flag with an empty configuration list is coerced off, so a dangling flag can no longer suppress the background entirely.<\/li>\n<li>Fixed: Admin asset enqueue no longer assumes <code>get_current_screen()<\/code> returns a screen object.<\/li>\n<li>Performance: Admin pages load as lazy route chunks \u2014 only the active page's code is parsed on load.<\/li>\n<li>Performance: Promo images moved out of the JS bundle into <code>assets\/images\/promo\/<\/code>, removing roughly 750KB of inline base64 from the admin bundle.<\/li>\n<li>Performance: The live preview is debounced, so dragging a slider no longer rebuilds the WebGL scene on every tick.<\/li>\n<li>Performance: Background engines pause their animation loop when the tab is hidden or the canvas scrolls off-screen, instead of tearing down and recreating the WebGL context.<\/li>\n<li>Performance: The review notice seeds its install timestamp on its own screens instead of <code>admin_init<\/code>, removing one uncached database query from every admin page load.<\/li>\n<li>Performance: Bundled preset asset directory scans are memoized per request.<\/li>\n<li>Added: A shared PHP+JS background types manifest (<code>classes\/background-types-manifest.json<\/code>) as the single source of truth for the free effect list, the default effect and legacy id aliases, with development-mode drift warnings.<\/li>\n<li>Added: PHPUnit suite covering the premium gates; runs against lightweight stubs with no WordPress install required.<\/li>\n<li>Improved: Premium key and scope lists are centralized, so the REST input gate and the output sanitizers can no longer drift apart.<\/li>\n<li>Updated: Freemius SDK 2.13.4.<\/li>\n<li>Tested up to WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>0.3.0 \u2014 July 4, 2026<\/h4>\n\n<ul>\n<li>Changed: WordPress.org trialware-compliance refactor \u2014 premium background effects and their advanced (size\/speed\/motion) controls now ship entirely in Animation Kit Pro. The free plugin contains zero locked functionality; premium features are implemented in the add-on, not disabled behind a license.<\/li>\n<li>Removed: Beams and Dark Veil background effects.<\/li>\n<li>Improved: Effect picker now shows a captured Silk preview thumbnail (WebP).<\/li>\n<\/ul>\n\n<h4>0.2.2 \u2014 June 10, 2026<\/h4>\n\n<ul>\n<li>Added: 8 new free background effects \u2014 Color Bends, Grid Scan, Line Waves, Liquid Ether, Pixel Blast, Plasma, Prism, Soft Aurora (13 total).<\/li>\n<li>Added: Honors <code>prefers-reduced-motion: reduce<\/code>. When the visitor's OS-level reduced-motion preference is on, the WebGL mount is skipped; re-mounts automatically if they toggle the preference off mid-session.<\/li>\n<li>Added: Optional one-time review-request notice \u2014 shown to administrators only after 7+ days of installation and at least one saved background configuration. Three explicit choices: leave review, snooze 14 days, dismiss forever. Never blocks UI.<\/li>\n<li>Security: REST settings endpoints now validate every incoming field against a strict per-field schema; unknown keys are dropped and string fields are length-capped. Defense-in-depth on top of the existing capability gate.<\/li>\n<li>Fixed: Premium gate referenced a stale class name; the fallback branch checking for the Pro plugin is now correct.<\/li>\n<li>Fixed: An invalid CSS selector in one background configuration no longer aborts renderer initialization for every other configuration.<\/li>\n<li>Improved: <code>$_SERVER['REQUEST_URI']<\/code> and <code>$_REQUEST['action']<\/code> are now properly unslashed and sanitized.<\/li>\n<li>Improved: WordPress.org listing copy rewritten for clarity and search relevance (no functional change).<\/li>\n<li>Removed: Dead promotional dashboard widget that had been commented out since 0.2.1.<\/li>\n<\/ul>\n\n<h4>0.2.1 \u2014 May 16, 2026<\/h4>\n\n<ul>\n<li>Improved: Multiple Backgrounds editor \u2014 Animation \/ Display sub-tabs and aligned color controls.<\/li>\n<li>Improved: Configuration name field validation and editor guidance.<\/li>\n<li>Fixed: Apply Configuration now persists immediately so saved configurations are not lost.<\/li>\n<\/ul>\n\n<h4>0.2.0 \u2014 May 14, 2026<\/h4>\n\n<ul>\n<li>Added: Radar effect.<\/li>\n<li>Improved: Particles effect \u2014 renderer and admin controls.<\/li>\n<li>Improved: Background admin editor (shared controls, layout, styles).<\/li>\n<li>Fixed: Display-rule conditional logic.<\/li>\n<li>Added: Translation template (POT) and JSON catalogs for localization.<\/li>\n<\/ul>\n\n<h4>0.1.0 \u2014 April 14, 2026<\/h4>\n\n<ul>\n<li>Added: Aurora effect.<\/li>\n<\/ul>\n\n<h4>0.0.1 \u2014 April 3, 2026<\/h4>\n\n<ul>\n<li>Initial release with Antigravity and Light Pillar effects and the Background Animation admin screen.<\/li>\n<\/ul>","raw_excerpt":"Add animated WebGL backgrounds to any WordPress page \u2014 Aurora, Silk, Particles, Light Pillar and more. Lazy-loaded, no code needed.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/291275","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=291275"}],"author":[{"embeddable":true,"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wpxero"}],"wp:attachment":[{"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=291275"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=291275"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=291275"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=291275"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=291275"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=291275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}