Fancy Animations can now teach your own AI assistant how to animate with it, using your own subscription (MCP, WordPress 6.9 or later). Also new: a redesigned settings screen with search, Start at page top and Check video for scroll scenes, and entrances that show even when their script does not run.
Your AI assistant, a new settings screen and entrances that always show
- NewAI assistants
Teach your own AI assistant, such as Claude, to animate with Fancy Animations on your own subscription. Needs WordPress 6.9+, the MCP Adapter plugin and an active license.
- NewAI assistants — Read-only tools
Four tools join the connection the Bricks MCP already uses: a start guide, a reference by topic, tested scroll-section recipes and a page check. The assistant builds with Bricks' or Etch's own tools.
- NewAI assistants — Page check
After each section, the assistant checks the saved Bricks page and gets the element and the fix for what it can't see: columns that don't stack on phones, text lost on its band, settings Bricks drops silently.
- NewAI assistants — Reads your site
Before planning, it reads your active modules, your background and text colours, fixed header, content width and framework spacing (Fancy Framework, Automatic.css, Core Framework), so new sections fit in.
- NewScrollTrigger
"Start at page top" in Bricks, Etch and Gutenberg. An element already on screen when the page loads, such as a hero, used to start its animation halfway (a full-screen hero is already at 50 % of its pass), so the first part of its animation had played before any scroll. With this option the pass starts at the page as it loads: Start 0 is the first scroll, and the same windows work for a hero as for any other section
- NewScrollTrigger
"Allow own transitions" in Bricks, Etch and Gutenberg. ScrollTrigger elements switch off every CSS transition so the scroll can drive them without lag, which also switched off the element's own hover and focus transitions. With this option the element keeps its own transitions; use it only when none of the properties the scroll animates has a transition
- NewScrollTrigger
Pinned scenes below a sticky header. Fancy now measures the site's sticky header in the browser and writes its height to the CSS variable --fa-header-height (0px when the header doesn't stay fixed), so a pinned stage set to top: var(--fa-header-height, 0px) no longer hides its top edge under the header, on phones especially
- NewVideo scrub
"Check video" button in the Bricks, Etch and block editor canvases, next to every video with Video scrub. It measures the actual video: how long seeking takes (too slow means the video needs more keyframes) and its frame rate and total frames (fewer than about 300 looks jumpy), and says what to change. It never appears on the published site
- NewEtch
@keyframes written inside an Etch class now work. Etch places a class's CSS inside the class rule, where the browser ignores @keyframes, so a custom animation needed its own Style Manager stylesheet. Fancy Animations now prints the keyframes each page uses where the browser reads them, on the front end and live in the canvas. On by default, also on sites that update; it can be switched off in Animation Settings → Animation defaults. If Fancy Etch is active with its own "Keyframes inside classes" switch on, Fancy Etch keeps doing it and Fancy Animations stays out of the way
- NewSmooth scroll
Pages can switch smooth scroll off and on live with `window.fancyAnimations.smoothScroll` (`stop()`, `start()`, `toggle()`, `isActive()`, `isAvailable()`); the event `fancyanimations:smoothscroll` says when it is ready. Turning it off returns native scrolling at the same position. With "Respect reduce motion" on, smooth scroll no longer starts for visitors who ask for less motion
- NewPage transitions
An on/off switch for the whole feature, separate from the transition style. Sites that already used a style keep their transitions on
- NewCursor
"Dot only" style in the Cursor screen: just the dot, without the outline. Settings that do not apply to it (outline, size, snapping, trail and labels) are shown disabled
- Improve / FixBricks
The Fancy Animations button in the builder toolbar uses the new logo. It shows in the toolbar's colour when the animation preview is off and in coral when it's on
- Improve / FixPage transitions
Entrance and text animations already on screen wait for the transition to finish, then play. Before, they played underneath the transition and had already ended when the page appeared, so visitors arriving through a transition never saw them. Direct loads are unchanged. The event `fancyanimations:pagetransitionend` fires on `window` when the transition has finished
- NewPage transitions
The settings screen plays the chosen style in a small preview, with your colours, logo, text, direction and duration: it plays by itself when you change the style and again with the Play button
- Improve / FixSettings screens
The default animation delay on a new install is now 0s, not 0.5s: time an entrance with its trigger point instead of guessing with a wait. Sites that already have the plugin installed keep their own delay
- Improve / FixSettings screens
Default colors on a new install now match the Fancy Animations brand (coral accent, ink, paper) instead of the old yellow and purple. Sites that already have the plugin installed keep their own colors
- Improve / FixSettings screens
Redesigned admin: light screens in WordPress's own colours, one layout for every tab, the font bundled with the plugin (no request to Google Fonts) and the tabs renamed Animations, Global animations, Page transitions, Cursor, Smooth scroll and Settings. Old links to the Dashboard and Lenis screens still work
- Improve / FixSettings screens
A save bar counts unsaved changes, with Discard and Save changes; leaving a tab or closing the page with unsaved changes asks first; each setting can go back to its default with one click, and each section with "Reset section"
- Improve / FixSettings screens
Wrong values are flagged on the field and block saving (ranges, CSS selectors, a custom easing that is not a function, the cursor image ratio) instead of being changed silently; settings that do not apply are shown disabled with the reason, not hidden
- Improve / FixSettings screens
Usable with the keyboard and screen readers (labelled controls, arrow keys in option groups, visible focus, enough contrast) and on narrow screens down to a phone
- Improve / FixSettings screens
Easier to scan: the figure you look for in a status line (activations in use, unsaved changes, fields to fix, the screen size animations start from) is in bold, the rest of the sentence stays light
- Improve / FixSettings screens
The side column (live previews, notes about each screen) stays in view while you scroll, on every screen; Global animations rules can be duplicated and reordered; Settings shows how many activations of your license are in use
- NewSettings screens
Press "/" anywhere outside a field, or click the Search button in the top bar, to search every setting by name and jump straight to it, on any of the 6 screens
- Improve / FixSettings screens
Every button reacts when the pointer is over it (Save changes, Discard, option groups, switches, collapsible sections, Global animations rules, the license chip), so it is clear what can be clicked
- Improve / FixPerformance
The scripts stop touching the page when nothing moves: the custom cursor's loop pauses once it settles and restarts on the next mouse move, scroll animations stop writing as soon as the smoothing settles (half a pixel) instead of for almost two more seconds, mouse animations do one update per frame instead of several, entrances are not re-applied on every scroll frame, and the page transition's loading pulse no longer runs while the layer is hidden. Measured on a real site: on a page at rest, from about 100 style changes a second to none, which also keeps the browser's inspector fast
- Improve / FixEntrance
"Remove when below trigger" now fades the element out in 0.3 s when it drops below its trigger line, instead of making it vanish, and then resets it so the next entrance plays the same. With reduced motion it hides at once
- Improve / FixBricks
Hover and Mouse take one animation per element, as in Etch: several competed for the same property and only one showed on the page. The add button hides once there is one. Elements saved with more than one keep them and look the same
- Improve / FixAI panel
Clearer instructions to the AI about what Start and End mean (points of the element's pass through the screen) and what "I am parent" and "Get parent" do, so its suggestions match how the plugin really behaves
- Improve / FixScrollTrigger Animations
A Start, End, From or To value outside the 5–95 steps (written by an AI assistant or an import, not from the panel) no longer drops the setting: it is rounded to the nearest step. Before, a "To" of 112 on a zoom made the image start at size 0, invisible
- Improve / FixEntrance
Elements with an entrance animation stayed invisible when its script did not run: JavaScript switched off, the script blocked, or an optimiser delaying JavaScript until the visitor interacts. They now show without the animation, and if the script starts later the animations work again
- Improve / FixEntrance
A delay of "0" on a staggered parent made every child appear at the same time. Children enter one after another again. A delay of "0" on a text animation now also starts the first letter straight away; before, the letters still waited for the site's default delay
- Improve / FixText animations
Splitting by letters or by words removed the links, bold, italics and paragraph breaks inside the text. They are kept now, and links keep their accessible name; Global Animations rules leave elements inside an animated text alone, so a link there does not get a second animation. Splitting by lines still keeps only the text
- Improve / FixText animations
Screen readers read nothing in an animated paragraph (or any text that is not a heading): the full text was given as a label that screen readers ignore on a paragraph, and every animated piece is hidden from them. Each run of text now has a hidden copy that screen readers read on any tag, and a link inside the text is announced in its place in the sentence. Nothing changes on screen
- Improve / FixText animations
"Per line" did nothing in the block editor and in Global Animations rules: the text was split into lines but never animated. It animates now, also in blocks that were already saved
- Improve / FixGlobal Animations
A rule no longer adds an entrance to an element that already has a ScrollTrigger animation: both animate opacity and transform, so an element meant to fade in with the scroll could be visible from the start
- Improve / FixEntrance and text
The 2.5s duration had no effect: animations played at the default duration
- Improve / FixEntrance
Ken Burns ignored the chosen duration and always took 20s. 20s is still the default when no duration is set
- Improve / FixHover
"Float shadow" showed no shadow
- Improve / FixHover
Float, Float shadow and Zoom now lift and grow on an element that also has an entrance animation. Before, the finished entrance held the element in place and only the shadow changed
- Improve / FixUpdating by replacing the plugin files (FTP, a deploy, Git) now rebuilds the animation stylesheet on the next visit
Before, only updates made from the WordPress dashboard rebuilt it, and the site kept serving the previous version's CSS
- Improve / FixStagger
Inside a Bricks slider slide, the children of a staggered parent entered all at once: the slide rule that drops delays also dropped the cascade. They enter one after another again; a single element's own delay is still ignored inside a slide, so content never lags behind the slide
- Improve / FixScrollTrigger
With "Covered by next sibling", when the cards' position depends on another animation (a deck with "Get parent" that slides them in), the first card showed covered on load until the first scroll. Covers are measured again once the page has settled
- Improve / FixEntrance
With "Remove when below trigger", an element that stopped right at its trigger line flickered: it was measured with its own animation's movement (a slide starts lower, a scale or rotate changes its box), so it dropped below the line as soon as it started, was reset, and started again. It is now measured where it sits on the page, for every preset and custom entrances
- Improve / FixOptimized CSS file
A page that was still a draft, pending, private or scheduled got none of its animation CSS from the cache (only published pages were scanned), so previewing a preset there looked broken even though the class was on the element
- Improve / FixEntrance
The Border animation's background is now a CSS variable (`--fa-border-bg`, still white by default) instead of a fixed white, so it can be overridden on a coloured element or a papered site
- Improve / FixGutenberg
Hover classes added by hand to a block (Advanced → Additional CSS class(es)) lost their styles with "Optimized CSS file" on
- Improve / FixBricks
The entrance and text scripts were loaded twice in the canvas. They load once now, and with the Fancy Animations preview switched off, entrance animations no longer fire while scrolling the canvas
- Improve / FixSettings screens
The logo in the top bar lost its small square to clipping. Also updated the WordPress admin menu icon to the new symbol
- Improve / FixSettings screens
The reset (↺) button sat in a fixed column at mid-row, flush against the control on a slider row and floating with nothing nearby on a row without one (such as ScrollTrigger smoothing). It now sits next to the setting's name, so every control ends at the card's right edge, in line with "Reset section", whether or not its value was changed, and nothing shifts when it appears
- Improve / FixBricks
The add button of the Entrance, Text, Hover and Mouse animation lists read "Add add animation", and the hover group title read "hover Animations"
- Improve / FixSettings screens
In Page transitions, the "Corner wipe" tile's curve was a radius almost twice the thumbnail's height, so only a sliver of it showed and it read as a diagonal, not a quarter circle. The "Elastic circle" preview changed its rounded corners and its height at the same time, so it only ever looked like a flat rectangle popping in and out, never a dome — it now follows the site's own two-step timing (grow or shrink first, round the corners after) and both tiles show a clean circle
- Improve / FixSettings screens
On 1366 and 1440 px laptops the top bar cut off the last tabs ("Settings" first), and from 1024 px down the tabs slid out of sight with no scrollbar: Docs and Changelog now step aside first (they are in every screen's side column), and on narrower screens the tabs get their own row
- Improve / FixSettings screens
Number, text and drop-down fields showed WordPress's blue focus ring instead of the plugin's own, and "Animation time" showed the ↺ reset on sites that saved it in an older version even when it was never changed
- Improve / FixSettings screens
Drop-down fields showed two arrows (WordPress's and the plugin's). The cursor and Page transitions previews went blank when a color was set as a CSS variable, which only exists on the site: they now show the default color for it and say the site will use the variable
- Improve / FixSettings screens
A tile's own options (Slide direction, Wipe direction, Corner origin, Zoom direction, Number of columns) showed after the whole grid of styles, far from the tile they belong to. They now sit right under that tile's row, which stays whole
- Improve / FixSettings
Importing settings left the site's CSS (animation colours, cursor, page transition colours) on the old values until the next scheduled rebuild; it is rebuilt at once now. Turning "Delete all data on uninstall" on or off, or exporting, no longer uses the copy of the settings loaded when the screen opened, which could undo changes saved since in another tab
- Improve / FixSettings
Animation delay could not be set to 0: the settings page compared the value to an empty string with `!=`, which JavaScript treats as equal to 0, so it was silently replaced by the default. 0 now saves and is kept





