Changelog
2026-10-06
Open the Fancy Etch panel in the builder and press Update all. Cart Count and Search changed, and a component already on your pages keeps the markup it had the day you installed it until you update it.
New: Wishlist — a heart that saves anything published: a product, a post, a page. Guests can use it too, and what they saved moves to their account when they log in. Nobody's list travels in the page's HTML, so it is safe behind a page cache, and it works with WooCommerce and without it. Three components — Wishlist Button, Wishlist Count and Wishlist Notice, the floating Undo — and a wishlist page that is an Etch loop with your own card inside: one loop per kind if you want products and posts apart, and an empty state per kind with an Etch condition. Its settings, its texts and its privacy tools come with it.
New: the builder panel has two levels — the modules down the side, WooCommerce and Wishlist, and each one's tabs across the top — a search box that looks through all of them, and the Fancy Etch logo instead of a cart, which lied on a site without a shop. A tab missing two or more components offers Install them, and each module says how many of its own need updating.
New: Design belongs to Fancy Etch, not to the shop: without WooCommerce it is still there, with the tokens the Wishlist uses. It shows only the tokens something on your site reads, and the contrast check measures only those.
New: the header icons match — the cart, the search and the wishlist count share one size, one line and one hover, each icon can be swapped for any SVG, and the search and wishlist icons take the colour of the header around them.
New: Result details in Search — details under each result's name, side by side with a divider: «One day · Sun 30 Aug · Difficulty: Medium». Write a field between % signs —Difficulty: %difficulty%— and it is read from a product attribute, a taxonomy, an ACF field or a custom field (JetEngine, ACPT…). A detail with no value is left out, and only the fields you wrote can be read.
Changed: Texts is split by feature, WooCommerce and Wishlist, and whatever comes next brings its own section.
Fixed: switching WooCommerce off left the shop components showing as raw code on every page that had one. They now draw nothing until WooCommerce is back.
Fixed: in the builder, the Variation Picker kept redrawing its message when the product being previewed had no variations. And with the builder open over https on a site set to http, the canvas lost the shop's palette.
Fixed: a product name with quotes showed codes in Search —«“Venaditos”»— and an «&» showed as «&» in the mini cart and the Variation Picker.
2026-09-26
New: Etch — a @keyframes written inside a class's CSS now runs, on the page and in the builder's canvas. Etch drops it: a class's CSS is nested inside its own selector, and no nesting rule may hold a @keyframes, so the animation simply never existed and the only way out was the Style Manager. Now the plugin lifts it out and prints it beside your styles — the animation of an element lives with the element, can be read there, and a template that carries it carries it whole.
New: a tab of improvements to Etch — Fancy Etch → Etch, one switch per improvement, all of them on until you turn them off, all of them also a filter, and all of them on every page Etch builds, shop or not:
- The structure panel follows the selection: clicking an element in the canvas brings its row to the middle, instead of leaving you to find it in a tree of a hundred rows.
- A button that closes every folder except the ones leading to the selection, beside Etch's «Fold» — and, if you want it, the same thing by itself on every selection (off until you turn it on).
- Full names on hover, for the names the panel cuts short.
- An element's Content field grows with its text, up to ten lines, with a handle to make it taller — like a component's text properties. It is still one line: Enter adds no break.
- The row of icons over the CSS editor scrolls, with the wheel or by dragging, and fades where more are hidden. In a narrow pane most of them could not be reached at all.
- A line marks the selected row: Etch says which row it is by making its colour slightly lighter, which in a list of components is hard to see at all.
New: WooCommerce — Search results use the catalogue, in Shop → Search & Catalogue. Product searches already use your catalogue template when WooCommerce's own search page is untouched, but that page cannot be deleted, and any copy saved in your site — a WooCommerce update, a visit to Appearance → Editor, or opening it in Etch, which saves what it finds — stops counting as untouched and wins. Turn this on and the catalogue draws every product search, whatever is in front of it. Off by default, so a search page you designed yourself is never run over.
New: two templates on fancyetch.com, built with the WooCommerce components: Woo single, a product page, and Woo archive, the shop's catalogue.
Fixed: the settings screen — its switches could only be pressed on the knob. WordPress's own rule for a checkbox beat ours, leaving the real control 16×16 in the corner of a 44×24 switch: a click on the left worked, one in the middle did nothing.
2026-09-14
Fixed: WooCommerce — changing a quantity quickly in the mini cart or the checkout summary could end in «Too many requests» and block the next «Add to cart»: each click was its own request, and cart changes are limited per minute. A quick run of clicks, however long, now costs at most two, and the number no longer jumps back while you are still clicking. Shoppers behind a CDN or a shared connection no longer share one allowance either: each one is counted by their own session.
New: WooCommerce — Fancy Etch → Texts. Every text a shopper reads in the components can be rewritten from one tab, in any language, with no translation file to install. Where WooCommerce already says the same thing, its wording is used, so those texts arrive translated in every language WordPress speaks.
Docs: WooCommerce — the account page now explains its login and register screen, with a screenshot, and the search explains the engine that finds a product when the words are not typed exactly.
2026-09-13
New: WooCommerce — search results and attribute pages use your catalogue template. «See all results» used to lead to a template of its own, product-search-results, which Etch cannot create or open — and Etch even saves WooCommerce's stock page to the database whenever its builder opens, where it won. A shop built in Etch got WooCommerce's stock search page, with none of its design, and the same on /color/blue/. Both now use your product archive, filters and grid included: one template for the shop, its categories, its attributes and its searches. Add a condition on url.parameter.s to its heading to say what was searched. A search page the site changed still wins. Ready for other content types too: the day the search looks beyond products, their results use their own archive.
Changed: WooCommerce — options.fecommerce.archive.isTerm is true on an attribute archive (/color/blue/) as well as on a category or tag, so an attribute page shows its own heading and not the shop's.
Fixed: WooCommerce — a notice with a button ran its words into the button when the message was long («…link them to your account.Confirm email address»): WooCommerce writes the button inside the message and floats it. The words come first now, with the button after them — and under them when there is no room.
Changed: the builder panel's Catalog tab no longer asks you to build product-search-results and taxonomy-product_attribute: both pages use the product archive.
2026-09-11
Fixed: WooCommerce — the Variation Picker's compact mode did nothing in a card: its tighter spacing and sizes were declared where the component's own style record wins, so a card drew the roomy mode's measurements. Cards get the compact ones now. If you set «Control height» or «Swatch size» by hand on a compact picker, they are scaled by 0.73 from now on — that is what compact means.
Fixed: WooCommerce — pressing the gallery's arrows quickly left several photos sliding over each other, one of them huge and out of place: each new slide was measured against a photo that was still moving. A new move now stops the one before it. Product photos can no longer be selected or dragged either: a click with the slightest drag selected the photo, and the selection colour over a light picture looks like it has been washed out.
New: WooCommerce — Product Reviews can stop after the first few and clip the rest behind a fade, so a shop with sixty of them is not a page nobody reaches the bottom of. The next reviews show through the fade, which says there is more before anybody reads the button. Every review stays in the page — a search engine and «find on page» still see them all — and where no script arrives, they are all out.
New: WooCommerce — the specifications WooCommerce shows under «Additional information» — weight, dimensions and the visible attributes — as {this.fecommerce.attributes}, ready for a loop. And {this.fecommerce.upsell_ids}, the shop's hand-picked products, for the same kind of grid as the related ones.
New: WooCommerce — Product Reviews reads in two columns where there is room (Columns: one, two, three, or two once there are three). Each review drops under the shortest column, so no card is stretched and no column ends in a hole; a phone always shows one, and without JavaScript they sit in plain rows. And it can keep its form behind a button: half a page of fields is the first thing a shopper scrolls past. It is a disclosure, so it opens with the keyboard and on a page without JavaScript.
Changed: WooCommerce — the Product Gallery's main photo is fetched at high priority. On a product page it is the largest thing on the screen, and a browser treats it like any other image until it is told otherwise.
Fixed: WooCommerce — a product page built from these components published no structured data for the product: WooCommerce writes it while rendering its own product summary, which such a page never renders, so a search engine saw no price, availability or rating. It is WooCommerce's own data, asked for once when nothing else generated it (fancy_etch/woo/product_structured_data turns it off).
Fixed: WooCommerce — Stock Status showed every state in the «in stock» colour: only the glyph told «Out of stock» apart. Each state has its own knob now — --fe-woo-stock-out-color and the other two.
Fixed: WooCommerce — a grouped product's price was its cheapest child's («$16.00» for a set holding a $90 pair of sunglasses). It shows WooCommerce's range, like a variable product.
Fixed: WooCommerce — on its own page, a sold-out product showed WooCommerce's «Read more» button, which led back to that same page. There is no button there now; the stock line says it.
New: WooCommerce — related products for an Etch loop: {this.fecommerce.related_ids} lists WooCommerce's related products for the product being viewed, ready for a «You may also like» grid with your catalogue's own card. Only worked out for that product, so a listing never pays for it. And its main category — category_name, category_url — for the «View all» link beside it: the one the breadcrumb ends in.
Fixed: WooCommerce — on a product without variations, the Variation Picker left an empty item that still took its gap in the column around it: a hole between the price and the stock line.
Fixed: WooCommerce — the Breadcrumb left the shop page out: a category read «Home / Clothing / Hoodies». WooCommerce only adds it when product links start with the shop's address, and its default links don't. It's there now on every product, category, tag and attribute page; Shop step puts it back the way WooCommerce had it, or takes it out.
New: WooCommerce — three more Breadcrumb options: a house for the first step (its name stays for screen readers), hiding the last step when the title below already says it, and only the way back on small screens — the step above, with an arrow. Press Update on the Breadcrumb component to get them.
Fixed: WooCommerce — the filter counts included products hidden from the catalogue, so a category could say "Hoodies (4)" and show three. They now count exactly what the catalogue shows, and what search shows on search results.
New: WooCommerce — subcategories sit inside their parent in the Category Filter, as nested lists a screen reader announces by level, instead of mixed alphabetically with the rest.
New: WooCommerce — filters that fold, and long lists that stop at "show more". Both are <details>: keyboard, screen readers and a page without JavaScript get them for free, and every choice stays in the page. A group that is filtering something always opens, and a hidden choice that somebody filtered by opens its own list. Off by default — press Update on the filter components to get the new options.
2026-09-10
Changed: WooCommerce — the shop's dynamic data now lives under fecommerce: {this.fecommerce.*} for a product and {item.fecommerce.*} inside a loop. «commerce» was too generic a name: it is the first one any other plugin would pick for store data, and whoever writes it last wins. Nothing breaks: {this.commerce.*} keeps working, as long as no other plugin uses that name, until version 2.0. Press Update on the components the panel marks, and use fecommerce in anything you build from now on.
New: WooCommerce — the shop's reviews for a loop: options.fecommerce.top_reviews (four and five stars) and options.fecommerce.reviews, ready for a testimonials section with your own design and the Product Rating component inside.
New: WooCommerce — the cart page shows a discount the way the checkout does: the regular price struck through, the price paid, the percentage, and what the order saves under the total.
New: WooCommerce — the Variation Picker's photo follows the choice before it is complete: choose blue and a blue product shows, while price and button wait for the rest.
2026-09-08
New: the WooCommerce module — 26 components that give Etch the shop it does not ship: the product page, the catalogue with its filters and search, the cart, the checkout and the customer's account. It re-skins WooCommerce rather than replacing it, so gateways, shipping plugins and every hook keep working. Documentation.
New: every component's props and CSS variables are now documented one by one, generated from the component definitions themselves so they cannot drift from the plugin.
Fixed: WooCommerce — the receipt after paying read «ORDER NUMBER», «DATE», «EMAIL» and «TOTAL» in capitals. WooCommerce's own stylesheet shouts on the class we keep on purpose, and the label underneath inherited it. Capitals read worse, and some screen readers spell them out letter by letter.
2026-07-23
New: Slider — FancySliderArrow gains Icon direction (auto / horizontal / vertical): on a vertical slider the glyph points up/down by itself.
Fixed: Slider — stacked effects (fade, zoom, cover, reveal, fade-up) now mirror correctly in RTL; previously the active slide landed a slide-width off screen.
New: Slider — Disable drag option (Behavior). Recommended for vertical sliders so they don't trap page scrolling on mobile.
New: Slider — vertical orientation (Layout → Orientation = vertical, with a Viewport height). Applies to the default slide effect.
New: Slider — FancySliderThumbnails control: a drop-in thumbnail strip (one per slide, auto-pulls the slide image, click to navigate). Skins frame / dim / bar.
New: Slider — Lazy load images option (Behavior): slide images using data-src load just before they scroll into view.
Accessibility: Slider — reduced-motion now also disables continuous auto-scroll and makes the default slide effect instant; off-screen slides are inert; dots gained a keyboard focus ring.
New: Slider — Autoplay gains Pause on hover and Pause on prev / next options (both on by default).
2026-07-23
New: Slider — FancySliderProgress gains Colors (track, fill) / Size (height, width, radius) property groups.
2026-07-23
New: Slider — FancySliderPlayPause gains the same design skins as the arrows (solid/outline/minimal/text — PLAY/PAUSE) plus Colors and Size property groups.
2026-07-23
New / fixed: Slider — FancySliderCounter gains
skins (inline/stacked/pill) and Colors / Size property groups,
and now updates live when you change its options (before, edits only showed
after the slider moved).
2026-07-23
New: Slider — FancySliderArrow gains design skins
(solid/outline/minimal/line/text) plus Colors and Size property
groups — colors come from the panel, so there's no need to override variables
from a parent or wrapper.
2026-07-22
New: Slider — Auto scroll (continuous marquee via
Embla's Auto Scroll plugin, bundled into the component so there's nothing to
upload). Fixed: center/end snap positions now show from the first slide
and update live in the editor.
2026-07-22
New: Slider — two more dot skins, lines (dashes) and
worm (the active dot stretches into a pill), and FancySliderDots now exposes
its Skin, Colors and Size as grouped properties, so it can be restyled
without touching CSS.
2026-07-22
New: Slider — Dots progress skin: FancySliderDots
gains a skin prop (dots / progress); progress is a bar that fills as the
slides advance (position, not autoplay time), with its own track variables.
2026-07-22
New: Slider — three more slide effects: fade-up,
cover and reveal, plus data-direction / data-leaving hooks so an effect
can differ depending on which way the slider moved.
New: Slider — Slide effect (Behavior): slide,
fade, zoom or none for sliders showing one slide at a time. none is the
starting point for custom entrance animations against [data-active].
New: Slider — Fade edges (Behavior): slides
dissolve at the viewport edges instead of being cut off, with
--fe-slider-fade and --fe-slider-fade-headroom to tune it. It is opt-in,
so sliders that don't use it keep full vertical freedom for hover lifts and
shadows.
New: Slider — a slider/carousel built on Embla
Carousel. Slides-per-breakpoint, loop, autoplay with a real-pause progress
bar and play/pause button, arrows and dots, free drag, and synced sliders
by syncId. Fully documented, including props, states, accessibility, and
CSS variables.
2026-07-21
Changed: Accordion skins renamed to their
visual identity — underline, bordered, numbered, minimal (were
one/six/fw/autoplay).
2026-07-20
New: Accordion — 4 skins shipped, plus
independent indicator (arrow/angle/dot) and indicatorBg (filled/bare)
props. Fully documented, including props, CSS variables, accessibility
behavior, and the autoplay progress bar.
2026-04-27
Initial release — initial templates.