Free Plugin

Sayan Variation Swatches
for WooCommerce

Replace WooCommerce dropdowns with color, image, label, and radio swatches on product, shop, and archive pages. Everything described on this page is included in the free plugin — no key or account needed.

Applies to version 1.0.6  ·  Last updated October 19, 2026

v1.0.6 WP 7.1 Tested WC 7.0+ PHP 7.4+ HPOS Ready GPL-2.0

Overview & Features

Sayan Variation Swatches for WooCommerce is a lightweight WooCommerce plugin that replaces the default variation dropdown selects with visually rich swatches — color pickers, image tiles, label buttons, and radio selectors.

4 Swatch Types

Color, Image, Label/Button, and Radio — each with full customization.

3 Swatch Shapes

Square, Rounded, and Circle — set globally or override per attribute term.

Archive Page Swatches

Show compact swatches on shop, category, and archive pages.

Variation Image Auto-Swap

Gallery image updates instantly on swatch click — no AJAX, zero lag.

Dual / Split Colors

Show two colors in a single swatch with a diagonal split gradient.

Out-of-Stock Handling

Blur with cross, blur only, or hide unavailable swatches automatically.

Notify Me Message

Optional message and link when a shopper picks an unavailable option.

Smart Variation Finder

Optional search box on product pages. Off until you enable it.

Export / Import

Move your settings between sites with a JSON file.

Live Swatch Preview

Below is a preview of how each swatch type renders on your product page:

Color Swatches

Selected: Ocean Blue

Label / Button Swatches

XS
S
M
L
XL
2XL
Selected: M

Radio Swatches

S
M
L

System Requirements

ComponentMinimumRecommended
WordPress6.47.0+
WooCommerce7.0Latest stable
PHP7.48.3+
MySQL / MariaDB5.6 / 10.18.0+ / 10.4+
BrowserChrome 90+, Firefox 88+, Safari 14+, Edge 90+

Installation

Method 1 — WordPress Admin (Recommended)

1

Upload the plugin

Go to Plugins → Add New → Upload Plugin, choose the sayan-variation-swatches.zip file, and click Install Now.

2

Activate

Click Activate Plugin after installation completes.

3

Configure

Go to Variation Swatches in the left WordPress admin menu to adjust global settings.

4

Set up attributes

Go to Products → Attributes, click any attribute name, then edit individual terms to assign swatch types and colors.

Method 2 — Manual FTP

# Unzip and upload to your plugins directory
unzip sayan-variation-swatches.zip
# Upload the folder via FTP to:
/wp-content/plugins/sayan-variation-swatches/

Then activate from Plugins → Installed Plugins.

WooCommerce must be installed and activated before activating this plugin. If WooCommerce is missing, an admin notice will appear.

Swatch Types

The plugin supports 4 swatch types plus the default dropdown. Set the type on each attribute term, or override it for a single product (see Setting Up Attribute Swatches).

Custom (local) attributes: colors and images are stored on global attribute terms, so Color and Image swatches need a global attribute (Products → Attributes). A custom attribute typed into a single product can only be shown as Label or Radio swatches.
TypeBest ForData Required
ColorColor variants, fabric shades, paint optionsHex color (+ optional second color for dual)
ImagePatterns, textures, material previewsUpload an image per term
LabelSizes (S/M/L/XL), styles, materials as textNone — uses term name
RadioYes/No options, simple choicesNone — uses term name
SelectKeep as default WooCommerce dropdownNone

Admin Screenshot — Attribute Term Edit

WordPress Admin — Products → Attributes → pa_color → Edit Term
≡ WordPress ⬤ Products All Products Add New Attributes ◈ WooCommerce Edit Color: Ocean Blue Edit Term: Ocean Blue Name Ocean Blue Slug ocean-blue Swatch Type Color ▾ Select how this attribute will be displayed as a swatch. Swatch Color #2563eb Choose the swatch color. Second Color (Dual) No color Optional: second color for a split/dual swatch. Update
Products → Attributes → Edit any attribute → Edit a term — set Swatch Type, Color, and optional Second Color

Dual / Split Color

When you fill in both the Swatch Color and Second Color fields, the swatch renders as a diagonal split — useful for multicolor or two-tone fabric options.

Dual-color swatches using diagonal gradient

Swatch Shapes

Three shape options are available globally from Variation Swatches → General → Swatch Shape. To use a different shape for one attribute value (for example Circle for colors, Square for sizes), edit the term and choose Swatch Shape Override. It applies on product pages and archive pages.

Square

Sharp 90° corners. Clean and modern.

Rounded

Soft corners. Default and most versatile.

Circle

Fully round. Ideal for color swatches.

Archive / Shop Page Swatches

Enable compact swatches on your shop, category, and archive pages so customers can preview color options without clicking into each product.

Enable this from Variation Swatches → Shop / Archive → Show Swatches on Archive. You can also set a smaller swatch size specifically for archive pages.

  • When a product has more options than fit, a +N badge shows how many are hidden.
  • Archive swatches also appear inside the WooCommerce Product Collection and All Products blocks.
  • Archive swatches are built from global attributes only.
Tip: Archive swatches let shoppers see the available colors without opening each product page.

Variation Image Auto-Swap

When a customer clicks a swatch, the main product gallery image automatically updates to show the matching variation image — with no page reload, no AJAX request, and no configuration required.

How it works

1

Set variation images in WooCommerce

In the product editor, go to Product data → Variations. For each variation, upload a dedicated image using the variation image picker (the small camera icon).

2

Plugin builds image map at page load

When the product page loads, the plugin reads all variation images and embeds a slug → image data map directly into the swatch HTML. No AJAX calls are ever made.

3

Swatch click triggers instant swap

Clicking a swatch updates the gallery <img> src, srcset, sizes, and alt — as well as the PhotoSwipe / lightbox href. The transition is immediate.

4

Deselect restores original image

Clicking a selected swatch again (or pressing the WooCommerce "Clear" button) restores the product's original main gallery image.

If a variation does not have a dedicated image set (i.e. it uses the parent product image), no swap occurs for that swatch. Only variations with unique images trigger the gallery update.

Out-of-Stock Styles

Configure from Variation Swatches → General → Out-of-Stock Style. Three options are available:

StyleAppearanceBest For
Blur with Cross Default Swatch is faded (38% opacity) with a diagonal line across it Most stores — clearly communicates unavailability
Blur only Swatch is faded without the cross line Cleaner look when the cross feels too aggressive
Hide Out-of-stock swatches are completely removed Stores where showing unavailable options causes confusion
Available
Blur+Cross
Blur only

Notify Me Message

When a shopper picks an option that is not available, a short message appears under the swatches. Configure it under Variation Swatches → General → Out-of-Stock "Notify Me":

SettingDefaultDescription
Show Notify MeYesTurns the message on or off.
Message TextNotify me when availableUp to 80 characters.
Link URLEmptyOptional. Only http and https links are accepted. Leave empty to show the text without a link.

Tooltip

When enabled, hovering over any swatch shows a small label with the attribute term name (e.g. "Ocean Blue", "Size M"). By default it appears above the swatch; you can move it to the bottom, left or right.

Customize tooltip colors and font size from Variation Swatches → Design & Style → Colors.

Tooltip Position

Top, Bottom, Left or Right of the swatch. Set under Variation Swatches → Design & Style → Tooltip Position. Default: Top

Tooltip BG Color

Background color of the tooltip bubble. Default: #333333

Tooltip Text Color

Text color inside the tooltip. Default: #ffffff

Tooltip Font Size

Font size in pixels (10–24px). Default: 13px

Enable/Disable

Toggle from Variation Swatches → General → Enable Tooltip.

Smart Variation Finder

The Smart Variation Finder adds a small search box above the swatches on variable product pages. A shopper can type words such as "dark blue large" and the matching swatches are selected for them.

1

Turn it on

Go to Variation Swatches → General → Smart Variation Finder and switch on Enable Finder, then save.

2

Try it on a product

Open a variable product page, type an option name in the Find a variation box and pick a suggestion.

The finder is off by default on new installs. Stores that were already using it when they updated to 1.0.6 keep it on. It runs in the browser and contacts no external service.

Setting Up Attribute Swatches

Important: By default, swatch types are set at the term level (individual attribute values). Each color/size option gets its own type and data. You can also override the type for a single product (see below).

Step-by-Step: Setting up Color Swatches

1

Go to Products → Attributes

Find your Color attribute (e.g. pa_color) in the list.

2

Click the attribute name

This opens the term list for that attribute — you'll see all color options (Red, Blue, Green, etc.).

3

Edit each term

Click Edit next to a term (e.g. "Ocean Blue"). You'll see the plugin's new fields at the bottom of the edit form.

4

Set Swatch Type to "Color"

The Swatch Color field will appear. Click it to open the color picker and choose the color.

5

Optionally add a Second Color

Fill in the Second Color field to create a dual/split swatch.

6

Click Update

Repeat for each term. Your product pages will now show color swatches instead of the dropdown.

Step-by-Step: Setting up Image Swatches

1

Edit the attribute term

Follow steps 1–3 above for your texture or pattern attribute.

2

Set Swatch Type to "Image"

The Swatch Image uploader will appear.

3

Upload or select an image

Click Upload / Select Image to open the WordPress Media Library. Choose or upload your image. Recommended size: at least 80×80px.

4

Click Update

The image thumbnail will be shown in both the term list (Swatch column) and on the product page.

Per-Product Swatch Type

1

Add a global attribute to the product

In the product editor open Product data → Attributes, add the attribute and click Save attributes (or update the product).

2

Choose a type

Below the attribute list, under Swatch type for this product, pick a type for each attribute. Leave — Use attribute setting — to keep the term settings.

3

Update the product

The override applies to that product only and takes precedence over the term settings.

Per-Term Shape Override

Edit an attribute term and use Swatch Shape Override to give that value its own shape. Choose — Use Global Setting — to follow the global shape.

Settings — General

Access settings at Variation Swatches → General in the WordPress admin.

WordPress Admin — Variation Swatches → General
≡ WordPress ◈ Sayan Variation Swatches ⬤ Products ⬤ WooCommerce Sayan Variation Swatches for WooCommerce Sayan Variation Swatches for WooCommerce Beautiful product swatches for WooCommerce v1.0.0 SETTINGS ⚙ General 🎨 Design & Style ───────────── 🏪 Shop / Archive ⌨ Advanced Core Settings Enable Swatches Auto-convert Dropdowns Swatch Shape Square Round Circle Out-of-Stock Style Blur with Cross ▾ Show Selected Name Tooltip Enable Tooltip Save Settings
Variation Swatches → General — Core Settings and Tooltip configuration
SettingDefaultDescription
Enable SwatchesYesMaster toggle. Disabling reverts all product pages to default WooCommerce dropdowns.
Auto-convert DropdownsNoWhen on, any attribute term that has no swatch type saved yet is shown as a label/button swatch instead of a dropdown.
Swatch ShapeRoundedGlobal shape: Square, Rounded, or Circle. Can be overridden per attribute term.
Out-of-Stock StyleBlur with CrossHow unavailable swatches appear. Options: Blur with Cross, Blur only, Hide.
Show Selected NameYesShows the selected attribute value name next to the swatch group (e.g. "Color: Ocean Blue").
Enable TooltipYesShows attribute name on swatch hover.
Show Notify MeYesShows a message when a shopper picks an unavailable option. See Out-of-Stock Styles.
Notify Me Message Text / Link URLNotify me when available / emptyText (max 80 characters) and optional http/https link for the message.
Enable Finder (Smart Variation Finder)NoAdds the search box on product pages. See Smart Variation Finder.

Settings — Design & Style

SettingDefaultDescription
Width (px)36Swatch width on product pages (20–120px).
Height (px)36Swatch height on product pages (20–120px).
Border Color#ddddddDefault border color for unselected swatches.
Selected Border Color#333333Border color when a swatch is selected.
CheckmarkEnabled / #ffffffShow a white checkmark on the selected swatch. Toggle + color picker.
Tooltip PositionTopTop, Bottom, Left or Right of the swatch.
Tooltip BG Color#333333Tooltip background.
Tooltip Text Color#ffffffTooltip text color.
Tooltip Font Size13pxTooltip font size (10–24px).

Settings — Shop / Archive

SettingDefaultDescription
Show Swatches on ArchiveYesDisplay compact swatches on shop, category, and archive pages.
Archive Swatch Width28pxWidth of archive page swatches (16–80px).
Archive Swatch Height28pxHeight of archive page swatches (16–80px).

Custom CSS

Access at Variation Swatches → Advanced → Custom CSS. Enable the toggle and paste your CSS. All swatch elements use the .svsw-* class prefix. Only administrators can edit custom CSS; HTML tags and @import rules are removed when you save.

Useful CSS Classes

ClassDescription
.svsw-swatches-wrapOuter wrapper for each attribute's swatch group
.svsw-swatchesFlex container holding all swatches
.svsw-swatchIndividual swatch element
.svsw-type-colorColor swatch type
.svsw-type-imageImage swatch type
.svsw-type-labelLabel/button swatch type
.svsw-type-radioRadio swatch type
.svsw-swatch.selectedCurrently selected swatch
.svsw-swatch.svsw-unavailableOut-of-stock swatch
.svsw-tooltipTooltip bubble
.svsw-selected-nameSpan showing selected attribute name
.svsw-archive-swatchesArchive page swatch container
.svsw-shape-squareApplied when shape is square
.svsw-shape-roundedApplied when shape is rounded
.svsw-shape-circleApplied when shape is circle

CSS Custom Properties

The plugin injects these CSS variables dynamically based on your settings. You can override them in your custom CSS:

:root {
  --svsw-width: 36px;               /* Product page swatch width */
  --svsw-height: 36px;              /* Product page swatch height */
  --svsw-archive-width: 28px;       /* Archive swatch width */
  --svsw-archive-height: 28px;      /* Archive swatch height */
  --svsw-border-color: #dddddd;     /* Default border */
  --svsw-selected-border-color: #333333; /* Selected border */
  --svsw-checkmark-color: #ffffff;  /* Checkmark color */
  --svsw-tooltip-bg: #333333;       /* Tooltip background */
  --svsw-tooltip-color: #ffffff;    /* Tooltip text */
  --svsw-tooltip-font-size: 13px;   /* Tooltip font size */
}

Example: Make label swatches pill-shaped

.svsw-type-label .svsw-swatch {
  border-radius: 50px !important;
  padding: 0 16px;
  min-width: auto;
}

Example: Larger color swatches only

.svsw-type-color .svsw-swatch {
  width: 48px !important;
  height: 48px !important;
}

Example: Custom selected state highlight

.svsw-swatch.selected {
  box-shadow: 0 0 0 3px #ff6b35 !important;
}

Export / Import & Data

Find these options at Variation Swatches → Advanced. Export and import are available to administrators.

Export and import settings

1

Export

Click Download settings (JSON). The file contains the plugin settings only; swatch colors and images saved on attribute terms are not included.

2

Import

On the other site choose the file under Import and click Import settings. Only a .json file exported from this plugin, up to 64 KB, is accepted. Unknown or invalid values are rejected.

Delete data on uninstall

Turn on Delete Data on Uninstall (Advanced → Data) if you want the plugin's settings and the swatch values saved on terms and products removed when you delete the plugin. It is off by default, so your swatches survive a reinstall.

Keyboard Navigation & Accessibility

All swatches are fully keyboard-navigable and screen-reader friendly. They use role="radio", aria-checked, aria-label, and tabindex="0".

KeyAction
TabMove focus to the swatch group
→ / ↓Move to the next swatch
← / ↑Move to the previous swatch
Enter / SpaceSelect the focused swatch
EscapeDeselect the current swatch

Compatibility

✅ WordPress 7.1

Tested up to WordPress 7.1. The plugin uses taxonomy term screens, the product editor attribute panel and its own settings page.

✅ WooCommerce HPOS

High-Performance Order Storage compatibility explicitly declared. No order data is touched by this plugin.

✅ WC Blocks

Cart & Checkout Blocks compatibility declared. Swatches operate on the product page and do not touch the block cart/checkout.

✅ Variable Products

Full support for variable products. Works with all standard WooCommerce variation selectors and the wc-add-to-cart-variation script.

✅ Popular Themes

Built on standard WooCommerce hooks, so it is designed to work with most themes, for example Storefront, Astra and GeneratePress. Please check your own theme before going live.

✅ WPML / Polylang

Translation-ready. All strings use the sayan-variation-swatches text domain and a .pot file is included. Attribute term names follow your multilingual plugin. Please test your own setup.

✅ Product Blocks

Archive swatches work inside the Product Collection and All Products blocks.

✅ Elementor & Quick View

Product page swatches re-initialize in Elementor product widgets and quick view popups. On archive pages in Elementor Loop Grid or Loop Builder, swatches appear when the template runs WooCommerce's standard product loop hooks — please test your template.

Free vs Pro

The free plugin is complete and fully functional on its own. Nothing in it is locked or time-limited. A separate Pro plugin adds extra features for stores that want them.

FeatureFreePro
Color, dual-color, image, label and radio swatchesIncludedIncluded
Shop and archive swatches, product blocksIncludedIncluded
Out-of-stock styles and Notify Me messageIncludedIncluded
Design controls, tooltips, custom CSS, export / importIncludedIncluded
Smart Variation FinderIncludedIncluded
Sticky Add-to-Cart bar—Pro
Per-swatch badges—Pro
Multi-gallery per variation—Pro
Bulk swatch generator—Pro
Live stock badge—Pro

Pro is a separate plugin and is not installed from inside the free plugin. More at webtend.net.

Frequently Asked Questions

My swatches are not showing. What should I check?

Ensure: (1) Enable Swatches is toggled ON in Variation Swatches → General. (2) Each attribute term has a Swatch Type set — go to Products → Attributes → edit any attribute term. (3) The product uses a global attribute (custom attributes only support Label and Radio swatches). (4) WooCommerce is active and up to date. (5) If you use a caching plugin, clear the cache.

Can I set different swatch types for different products?

Yes. In the product editor, go to Product data → Attributes, save the attributes, then use Swatch type for this product below the attribute list. The override applies to that product only and takes precedence over the term settings.

The variation image is not swapping when I click a swatch.

Ensure the variation has a dedicated image set in the product editor (Variations tab → each variation row → the small camera icon). If a variation uses the parent product image, no swap occurs. Only variations with unique images trigger the swap.

My theme has a custom gallery. Will image swap still work?

The plugin updates the standard WooCommerce gallery img element, the wrapping a href (for lightboxes), and fires the woocommerce_gallery_reset_slide_position event. Most themes built on WooCommerce standards will work. If your theme uses a completely custom gallery, you may need a small CSS/JS integration.

How do I remove all plugin data when uninstalling?

Turn on Variation Swatches → Advanced → Delete Data on Uninstall and save. When you then delete the plugin (not just deactivate it), its settings, term meta and post meta are removed. With the option off, your data is kept.

Is there a Pro version?

Yes, as a separate plugin. It adds a sticky add-to-cart bar, per-swatch badges, per-variation galleries, a bulk swatch generator and a live stock badge. The free plugin stays fully functional on its own. See Free vs Pro.

Can I change the tooltip direction?

Yes. Go to Variation Swatches → Design & Style → Tooltip Position and choose Top, Bottom, Left or Right.

What is the Smart Variation Finder and how do I turn it on?

It is a search box on product pages that selects matching swatches from typed words. Enable it under Variation Swatches → General → Smart Variation Finder. See Smart Variation Finder.

Does it support custom (local) attributes?

Partly. Color and Image swatches need global attributes because the colors and images are stored on attribute terms. A custom attribute on a single product can be shown as Label or Radio swatches.

Will it slow my store?

The plugin's CSS and JavaScript load on product, shop and archive pages and wherever a swatch is rendered, not on every page. It makes no external requests.

Does the plugin collect data or contact external servers?

No. It does not collect personal data and makes no external requests.

Can I use custom CSS to style swatches differently per attribute?

Yes. Use the attribute name in the selector via the data-attribute attribute on the wrapper:

/* Style only the color attribute swatches */
.svsw-swatches-wrap[data-attribute="pa_color"] .svsw-swatch {
  border-radius: 50%;
}

/* Style only the size attribute swatches */
.svsw-swatches-wrap[data-attribute="pa_size"] .svsw-swatch {
  min-width: 48px;
  font-size: 13px;
}
Still having issues? Visit the WordPress.org support forum for this plugin.

Changelog

This page mirrors the changelog in the plugin's readme.txt.

1.0.6

NewPro Features tab under Variation Swatches with an overview of the separate Pro plugin
NewSmart Variation Finder switch under General (off for new installs, stays on for existing stores)
New"Delete Data on Uninstall" switch under Advanced (off by default)
NewPer-product swatch type on the product's Attributes panel
NewDocs and Support links on the Plugins screen and in the settings header
ImprovedCSS and JavaScript now load only on product, shop and archive pages and where swatches are shown
ImprovedThe review notice counts login sessions, appears only on the Dashboard, Plugins and settings screens, and has a permanent "Don't ask again" button
FixedSettings Export / Import now works on the Advanced tab
FixedTooltip Position and the Notify Me text and link can now be changed in the settings
FixedThe per-term shape override is now applied on product and archive pages
Fixed"Show Selected Name" now works, and "Auto-convert dropdowns" now converts unset attributes to label swatches (off by default)
FixedShop managers can now save the plugin settings
FixedBlock archive swatches no longer appear when swatches are switched off
FixedA PHP error when rendering archive swatches
SecurityStricter custom CSS (administrators only), http and https only for the Notify Me link, escaped output, capability check when saving term swatches
DevNew filter svsw_load_assets to load the swatch assets on a custom page

1.0.5

NewWooCommerce Product Blocks compatibility for Product Collection (WC 8.0+) and All Products blocks
NewOut-of-Stock Notify Me message with optional link
NewTooltip Position setting under Design & Style
NewSelected swatch highlight animation that respects prefers-reduced-motion

1.0.4

NewElementor Loop Builder compatibility for archive swatches
NewSettings Export / Import
NewPer-attribute term shape override
NewStyled "Clear Selection" button
ImprovedAdmin term list column shows a type badge, shape badge and a more accurate preview

1.0.3

NewReview notice, archive "+N more" badge, attribute label next to swatches, Quick View compatibility
ImprovedSettings are read once per request instead of once per swatch
Fixed"Tested up to" values, plugin name and Author URI

1.0.2

FixedSaving settings on one tab reset the other tabs to defaults

1.0.1

NewCompatibility guard so the plugin runs next to Sayan Variation Swatches Pro

1.0.0

NewInitial release

Sayan Variation Swatches for WooCommerce v1.0.6  ·  GPL-2.0  ·  WordPress.org  ·  Support forum