Sayan Variation Swatches
for WooCommerce
Replace boring dropdowns with beautiful color, image, label, and radio swatches. Boost conversions with a stunning product selection experience — zero configuration needed.
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 product.
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.
Live Swatch Preview
Below is a preview of how each swatch type renders on your product page:
Color Swatches
Label / Button Swatches
Radio Swatches
System Requirements
| Component | Minimum | Recommended |
|---|---|---|
| WordPress | 6.4 | 7.0+ |
| WooCommerce | 7.0 | 10.8+ |
| PHP | 7.4 | 8.3+ |
| MySQL / MariaDB | 5.6 / 10.1 | 8.0+ / 10.4+ |
| Browser | Chrome 90+, Firefox 88+, Safari 14+, Edge 90+ | |
Installation
Method 1 — WordPress Admin (Recommended)
Upload the plugin
Go to Plugins → Add New → Upload Plugin, choose the sayan-variation-swatches.zip file, and click Install Now.
Activate
Click Activate Plugin after installation completes.
Configure
Go to Sayan Variation Swatches in the left WordPress admin menu to adjust global settings.
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.
Swatch Types
The plugin supports 4 swatch types plus the default dropdown. Set the type globally per attribute term, or override it per product.
| Type | Best For | Data Required |
|---|---|---|
| Color | Color variants, fabric shades, paint options | Hex color (+ optional second color for dual) |
| Image | Patterns, textures, material previews | Upload an image per term |
| Label | Sizes (S/M/L/XL), styles, materials as text | None — uses term name |
| Radio | Yes/No options, simple choices | None — uses term name |
| Select | Keep as default WooCommerce dropdown | None |
Admin Screenshot — Attribute Term Edit
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.
Swatch Shapes
Three shape options are available globally from Settings → General → Swatch Shape.
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 Settings → Shop / Archive → Show Swatches on Archive. You can also set a smaller swatch size specifically for archive pages.
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
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).
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.
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.
Deselect restores original image
Clicking a selected swatch again (or pressing the WooCommerce "Clear" button) restores the product's original main gallery image.
Out-of-Stock Styles
Configure from Settings → General → Out-of-Stock Style. Three options are available:
| Style | Appearance | Best 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 |
Tooltip
When enabled, hovering over any swatch shows a small label above it with the attribute term name (e.g. "Ocean Blue", "Size M").
Customize tooltip colors and font size from Settings → Design & Style → Colors.
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 Settings → General → Enable Tooltip.
Setting Up Attribute Swatches
Step-by-Step: Setting up Color Swatches
Go to Products → Attributes
Find your Color attribute (e.g. pa_color) in the list.
Click the attribute name
This opens the term list for that attribute — you'll see all color options (Red, Blue, Green, etc.).
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.
Set Swatch Type to "Color"
The Swatch Color field will appear. Click it to open the color picker and choose the color.
Optionally add a Second Color
Fill in the Second Color field to create a dual/split swatch.
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
Edit the attribute term
Follow steps 1–3 above for your texture or pattern attribute.
Set Swatch Type to "Image"
The Swatch Image uploader will appear.
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.
Click Update
The image thumbnail will be shown in both the term list (Swatch column) and on the product page.
Settings — General
Access settings at Sayan Variation Swatches → General in the WordPress admin.
| Setting | Default | Description |
|---|---|---|
| Enable Swatches | Yes | Master toggle. Disabling reverts all product pages to default WooCommerce dropdowns. |
| Auto-convert Dropdowns | Yes | Converts any attribute that has no swatch type set to a label/button swatch automatically. |
| Swatch Shape | Rounded | Global shape: Square, Rounded, or Circle. Can be overridden per variation. |
| Out-of-Stock Style | Blur with Cross | How unavailable swatches appear. Options: Blur with Cross, Blur only, Hide. |
| Show Selected Name | Yes | Shows the selected attribute value name next to the swatch group (e.g. "Color: Ocean Blue"). |
| Enable Tooltip | Yes | Shows attribute name on swatch hover. |
Settings — Design & Style
| Setting | Default | Description |
|---|---|---|
| Width (px) | 36 | Swatch width on product pages (20–120px). |
| Height (px) | 36 | Swatch height on product pages (20–120px). |
| Border Color | #dddddd | Default border color for unselected swatches. |
| Selected Border Color | #333333 | Border color when a swatch is selected. |
| Checkmark | Enabled / #ffffff | Show a white checkmark on the selected swatch. Toggle + color picker. |
| Tooltip BG Color | #333333 | Tooltip background. |
| Tooltip Text Color | #ffffff | Tooltip text color. |
| Tooltip Font Size | 13px | Tooltip font size (10–24px). |
Settings — Shop / Archive
| Setting | Default | Description |
|---|---|---|
| Show Swatches on Archive | Yes | Display compact swatches on shop, category, and archive pages. |
| Archive Swatch Width | 28px | Width of archive page swatches (16–80px). |
| Archive Swatch Height | 28px | Height of archive page swatches (16–80px). |
Custom CSS
Access at Sayan Variation Swatches → Advanced → Custom CSS. Enable the toggle and paste your CSS. All swatch elements use the .svsw-* class prefix.
Useful CSS Classes
| Class | Description |
|---|---|
.svsw-swatches-wrap | Outer wrapper for each attribute's swatch group |
.svsw-swatches | Flex container holding all swatches |
.svsw-swatch | Individual swatch element |
.svsw-type-color | Color swatch type |
.svsw-type-image | Image swatch type |
.svsw-type-label | Label/button swatch type |
.svsw-type-radio | Radio swatch type |
.svsw-swatch.selected | Currently selected swatch |
.svsw-swatch.svsw-unavailable | Out-of-stock swatch |
.svsw-tooltip | Tooltip bubble |
.svsw-selected-name | Span showing selected attribute name |
.svsw-archive-swatches | Archive page swatch container |
.svsw-shape-square | Applied when shape is square |
.svsw-shape-rounded | Applied when shape is rounded |
.svsw-shape-circle | Applied 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;
}
Keyboard Navigation & Accessibility
All swatches are fully keyboard-navigable and screen-reader friendly. They use role="radio", aria-checked, aria-label, and tabindex="0".
| Key | Action |
|---|---|
| Tab | Move focus to the swatch group |
| → / ↓ | Move to the next swatch |
| ← / ↑ | Move to the previous swatch |
| Enter / Space | Select the focused swatch |
| Escape | Deselect the current swatch |
Compatibility
✅ WordPress 7.0
Tested with WP 7.0 "Armstrong". Plugin uses taxonomy term screens only — not affected by the DataViews admin redesign.
✅ 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
Storefront, Astra, OceanWP, Flatsome, Divi, GeneratePress, Kadence — all tested and compatible.
✅ WPML / Polylang
Translation-ready. All strings use the sayan-variation-swatches text domain. A .pot file is included.
Frequently Asked Questions
My swatches are not showing. What should I check?
Ensure: (1) Enable Swatches is toggled ON in Settings → General. (2) Each attribute term has a Swatch Type set — go to Products → Attributes → edit any attribute term. (3) WooCommerce is active and up to date.
Can I set different swatch types for different products?
Yes. In the product editor, go to the Attributes tab. Per-product overrides are stored separately and take precedence over the global term meta.
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?
Deleting the plugin (not just deactivating) triggers the uninstall.php file which removes all plugin options, term meta, and post meta from the database automatically.
Is there a Pro version?
Pro features are planned and will include: Quick View popup swatch support, Layered navigation filter swatches, Shareable variation URLs, Stock left badge ("Only 3 left!"), and more. Visit WordPress.org Profile for updates.
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;
}
Sayan Variation Swatches for WooCommerce v1.0.0 · GPL-2.0 · WordPress.org