Shopify Variant Images Are Broken on Both Flagship Themes
Shopify variant images don't work the way merchants expect in Dawn 12 or Horizon 3. Here's why, and why Shopify's own demo is misleading.

A thread on the Shopify Developer Community in late October 2025 described the symptom in two sentences. A merchant picked a color filter on their collection page. The prices and links updated. The variant image did not. They opened a bug report. Six months later the thread was still open, with Shopify's developer confirming the investigation and offering no timeline. We hear a version of this story every week, in different wording: from a Dawn store where the "Hide other variants' media" toggle refuses to do anything, from a Horizon store where galleries show the full mix of photos regardless of which color the shopper picks, from a Printify merchant whose import stripped every image-to-variant association in the sync.
Here is the take. Shopify variant images do not work the way merchants expect in Dawn 12. In Horizon, multi-image variant galleries are not a native feature at all. Both failures have fixes. Neither fix lives in the admin UI, and neither will land for a merchant who follows the obvious path through theme settings. The honest thing to tell a merchant on either theme is that the demo lied, and that this is going to cost developer time or app budget.
The conventional wisdom says the flagship theme handles this
The common advice on r/shopify when a merchant asks about variant image galleries is: pick Dawn or Horizon. They are the themes Shopify ships, so they should work. The Horizon demo on themes.shopify.com in particular behaves beautifully - a shopper picks a color and the full image set swaps. Several of the merchants we talk to installed Horizon specifically because of that demo. They expected to replicate it on their own catalog in an afternoon.
That is not the shape of the actual problem. The admin treats variant-image assignment as a solved thing. Each variant has an "image" dropdown. The theme editor has a toggle. The surface looks right. The behavior underneath comes apart, and the two flagships come apart differently.
Dawn's toggle hid one image per variant and never fully fixed itself
Dawn's "Hide other variants' media after selecting a variant" toggle shipped in version 12.0 and broke almost immediately. The threads we trust most on this - two separate ones on the Shopify Community dated November 2023 - show merchants with correct image-to-variant assignments, correct alt text, and the toggle checked, still seeing all photos for all colors on the live product page. One of them tested the same configuration on Shopify's Showcase theme and it worked, which rules out the setup. A Shopify staff reply in private support acknowledged the bug. More than a year later, no public fix had shipped.
The best-case behavior is still not what the label implies. A June 2024 reply on the longest-running thread notes that even when the toggle does something, it hides only the "main" variant image for each other variant. A product with six photos per color loses one photo per non-selected color. The other five leak through.
Dawn 15.2.0 introduced a different mechanism entirely. Instead of matching variant option values against image alt text, the theme fetches the product's JSON endpoint and uses each variant's featured_image.position to decide which images belong to which variant. This resolves the accessibility conflict the alt-text method forced on merchants (your screen reader previously announced images as "Red" instead of describing the photo). We have shipped the 15.x upgrade on three stores and seen the gallery actually filter the way the toggle label implies. We have not confirmed the fix on 12.x stores with heavily modified main-product.liquid - stage any in-place upgrade before trusting it there.
Horizon's native gallery was not built for this and the demo misleads merchants
Horizon is Shopify's current flagship theme. It also ships with no mechanism to show more than one image per variant on the product page. The native editor allows exactly one image per variant and that is the whole feature. If a merchant has five photos of their red hoodie and four of the blue one, Horizon displays all nine of them regardless of which color the shopper picks, because the theme has nowhere to attach the extras.
The themes.shopify.com demo gets around this. A merchant asked about the discrepancy in July 2025 on the Shopify Developer Community. The answer, from Shopify Plus Support directly, was that the demo uses Combined Listings - a Shopify Plus-only feature. Standard-plan merchants cannot replicate it. We think this is the most consequential of all the Shopify variant images failures because the demo sets the expectation before any configuration decision happens. A merchant installs Horizon, imports their catalog, and then learns the gallery feature they picked the theme for costs an extra plan tier.
The one no-code path to variant galleries on Horizon is a Shopify Community guide from VecomLab, published December 2025 and updated in early 2026 to add zoom and mobile swipe. The guide uses a "Variant Gallery" metafield of type List of files, roughly ten code insertions into _product-media-gallery.liquid, a CSS block, and a JavaScript block. It is a solid piece of work. It is also outside what a solo merchant can safely apply without staging. If you have been circling it for a few hours and want a second pair of eyes before you touch a Liquid file, the first fifteen minutes with a help1 expert are free and that is usually enough time to decide whether to apply the VecomLab guide, pay for a Horizon-aware app, or roll back to Dawn 15.
The Shadow DOM silently breaks the Dawn app stack you carried over
This is the Shopify variant images failure we see most on Horizon audits. A merchant switches from Dawn to Horizon, carries their variant-image app across, and the admin still shows the app installed and active. The storefront gallery stops responding to variant changes. The theme editor shows nothing wrong. The merchant assumes something is misconfigured and burns an afternoon re-reading docs that have not changed.
The cause is architectural. Horizon's gallery, variant picker, and cart drawer are web components inside Shadow DOM, an isolation boundary that blocks CSS and JavaScript injected through standard DOM selectors. Most variant-image apps on Shopify were built for Dawn's flat DOM. They attach a variant-change listener on the storefront, then manipulate gallery DOM nodes directly. On Horizon those listeners fire, the selectors return nothing, and the app does nothing. There is no error state anywhere for the merchant to find.
The only variant image app explicitly confirmed to work on Horizon in community threads we have read through 2026 is Rubik Variant Images, which built a Horizon-specific module against the gallery web component's internal API. We have not audited Rubik ourselves. If you are picking an app for a Horizon store, ask the vendor for a Horizon demo URL and test on your actual theme version before paying. Our heuristic: an app that does not mention Horizon by name in its listing in 2026 is almost certainly a Dawn-era app that will silently fail. The pattern now sits on our ten Horizon variant picker gaps checklist.
And a cap under all of this nobody wants to talk about
In October 2025 Shopify raised the per-product variant cap from 100 to 2048. It did not raise the 250-media-per-product cap. A Shopify staff reply in December 2025 confirmed the mismatch was intentional for that release. A merchant on the developer forum has been blocked from launching products since November because they need 51 color options at six photos each - 306 images, 56 over the cap. As of March 2026 the Shopify response was "monitor the changelog." If your catalog is pushing the 250 ceiling, no theme switch helps. Shopify Plus has a cleaner path through Combined Listings; the Shopify variant images story on standard plans does not have one.
What we tell merchants right now
Dawn 12 with the broken toggle: update to Dawn 15.x on a duplicate theme, assign images through the product editor rather than relying on alt text, enable "Hide other variants' media," and test on live product pages rather than the theme editor preview. The 15.2.0 approach resolves the setup trap that caught most Dawn 12 merchants.
Horizon needing multi-image variants: three real paths - the VecomLab metafield workaround for a developer-capable merchant, Rubik Variant Images for a merchant who would rather pay than code, or waiting for Shopify to add native multi-image gallery support. We treat the third as the "doing nothing" option.
For either theme, if your workflow depends on third-party sync (Printify is the one we see most), rebuild variant-image association yourself after the import. Better to do this once correctly than discover a quarter of the catalog is unassigned on the first sale.
Pick your path based on the theme you are on, not the theme you were shown.
We keep saying this to merchants and nobody wants to hear it: shipping two broken variant-image stories across two flagship themes is a product decision, and the next merchant who installs Horizon from the demo is going to run into it exactly the same way.
Still stuck? Talk to an expert.
Our vetted Shopify experts can fix this issue for you in a live session. $39 per session. Your first 15 minutes are free.