Release history

Changelog

New versions, improvements, and fixes are announced here. This is the primary place we publish updates — bookmark this page to stay current.

v1.4.7

Latest

The finalized release, rolling up a same-day batch of fixes and refinements (1.4.2–1.4.7). Most changes are bug fixes and quality improvements; none change your saved settings or content. As always, preview an update on an unpublished copy of your theme before publishing.

Added

  • New Header setting: "Show 'View all' link in menu dropdowns" (off by default). When enabled, an automatic "View all [item]" link is added at the top of each menu dropdown, linking to that menu item's page. You can also add a "View all" entry manually as a nested link in your navigation.

Changed

  • Cart behaviour when the cart drawer is turned off: "Add to cart" now adds the item in the background and then takes the customer to the cart page (matching how leading themes behave), and the add-to-cart logic loads on every page so product-card quick-add keeps working. With the cart drawer on, behaviour is unchanged.

Improved

  • Release hardening pass: a full accessibility review (headings, image alt text, form labels, landmarks, language attribute), a right-to-left layout check, and verification that the theme installs as a clean blank slate with no demo data baked into the download.

Fixed

  • Accessibility: the newsletter email field (footer and Newsletter section) now has a proper screen-reader label instead of relying on placeholder text alone.
  • Safari & iPhone/iPad: the image lightbox, the "back to top" button, and the video player now work in Safari and on iOS. They previously relied on a browser feature Safari does not support, so they silently did nothing for Safari visitors.
  • Product cards: refined how the sale price displays for products where all variants share one price but only some are marked down, avoiding a misleading "was" price in that specific case.
  • Search filters no longer disappear when a filter returns zero results — you can remove individual filters again instead of only seeing a "Clear all" link.
  • Cart discounts: automatic (non-code) discounts are no longer shown as removable discount pills with a non-working "×". Only customer-entered codes can be removed.
  • Featured product: the sale price and "Sale" badge now appear correctly when a shopper switches to a discounted variant, and disappear when switching back to a full-price variant.
  • Cart drawer quantity: the +/− controls now respect product quantity rules (minimum, maximum, and increment), matching the cart page.
  • Shop the look: products no longer appear twice on tablet-width screens.
  • Transparent header: no longer mis-activates when a slideshow, image banner, or video using the transparent header isn't the first section on the homepage.
  • Mobile menu: WhatsApp now appears among the social icons in the mobile menu (it already appeared in the footer).
  • Cart accessibility: the screen-reader cart count now stays in sync with the visible cart count after changes made in the drawer.
  • Cart drawer order note is now saved automatically when typed, instead of only being saved at checkout.
  • Search: the "Clear all filters" link is now correctly encoded.
  • Featured product price now displays in the store's own currency in all cases.
  • Countdown timer: accepts single-digit hour entries (e.g. "9:00") without silently hiding the timer.
  • Marquee: the separator character is now safely escaped.
  • Mobile navigation: nested menu items (for example, collections placed under a "Shop" menu item) now appear correctly in the mobile menu. Previously only a "View all" link showed on mobile, with the nested links missing.

Quality checks

  • Installs as a clean blank slate — the download contains no demo data (config/settings_data.json has an empty current object).
  • Download SHA-256 (for integrity verification): 82A39E443C117BD968ADBE00380AAF727AFCD4959C273DECD8CF56747C35C414

Like every Shopify theme upload, v1.4.7 installs as a new theme instance — your previous theme is not overwritten, but settings don't carry over automatically. To preserve your customisations, copy config/settings_data.json from your old theme to the new one using the theme code editor before publishing.

Download v1.4.7 By downloading, you agree to the Valor Free License. One Shopify store per download.

v1.4.1

Valor 1.4.1 polishes the release toward final, with particular focus on navigation, homepage hero sections, the product-page buying experience, and consistency of theme-editor settings.

Added

  • New Countdown timer section — count down to a date and time, with a badge, heading, and configurable behaviour once the timer expires. Ideal for sales and launches.
  • New Recently viewed products section — show shoppers the products they've recently looked at, with configurable columns, image ratio, and product card details.
  • Mega menu can now be targeted to a top-level menu item by its link, instead of requiring the heading text to match exactly by hand — fewer mistakes.
  • Mega menu now has a dedicated "Mega menu links" setting to choose which menu it displays.
  • Slideshow section now supports the transparent header feature, the same way as Image banner.
  • Video section now supports the transparent header feature, the same way as Image banner.
  • Image banner blocks now have separate colour controls for heading and subheading text.
  • Featured product adds "Swatches" as a Variant style option.
  • Featured product swatches now have shape and size options.
  • Shop the look adds a separate mobile image, a subheading field, and text alignment options (left, center, right).
  • Buttons settings add a "Button border on hover" colour control.

Improved

  • Button colour settings moved more clearly under the Buttons settings group, so all button-related settings live in one place.
  • Button colours now follow theme settings more reliably, both in the editor and on the live site.
  • An empty or transparent button background no longer forces a dark background on the button.
  • Slideshow now uses only line-style indicators; the counter option was removed so content no longer overlaps the indicator.
  • Slideshow now supports wrap-around swiping on mobile — continue from the last slide to the first, and from the first back to the last.
  • Slideshow, Shop the look, and Promo grid heading sizes are ordered logically (smallest to largest), with a Small option added to Shop the look and Promo grid.
  • Mega menu promo image now lists a recommended image size (4:3, at least 1400 × 1050 px).
  • Transparent header logic unified across Image banner, Slideshow, and Video through a shared trigger, and now forces the hero section to a full-width layout when needed so the header and hero media feel cohesive.
  • Announcement bar now works in transparent header mode more broadly with homepage hero sections, not only Image banner.
  • The header's transparent logo swap and pinned transparent-header state now use shared media-section detection.

Fixed

  • Product-page sticky add-to-cart bar no longer just flashes — it stays visible after the main add-to-cart button scrolls out of view.
  • Mega menu can now also appear when a separate mega menu menu or promo content is configured.
  • Mega menu fallback: the previous heading match still works if the new link targeting isn't set.
  • Removed the slideshow counter overlap with long text, bottom-left / bottom-right content positions, and the text box setting (by removing the counter option).
  • Button hover border fallback logic: the hover border can now use its own setting or a sensible fallback colour.
  • Image banner's transparent-header identifier now uses the same shared class as Slideshow and Video.

Quality checks

  • Shopify Theme Check passed: 102 files checked, no errors.
  • The release ZIP is clean for new installs — config/settings_data.json contains only an empty current object.
  • Download SHA-256 (for integrity verification): 448E049408154DE3EB4FDF50E74EED9FB50EEA067DED2783C9DC6420B1F22506

Like every Shopify theme upload, v1.4.1 installs as a new theme instance — your previous theme is not overwritten, but settings don't carry over automatically. To preserve your customisations, copy config/settings_data.json from your old theme to the new one using the theme code editor before publishing.

Download v1.4.1 By downloading, you agree to the Valor Free License. One Shopify store per download.

v1.3.6

A cleanup and stability release focused on Shopify compatibility, cleaner theme structure, and a more polished downloadable package. It also adds three new homepage sections — Slideshow, Promo grid, and Shop the look.

Added

  • Slideshow section. A full-width hero carousel built from repeatable slide blocks — rotate through multiple banner slides, each with its own image, heading, and call-to-action.
  • Promo grid section. A mosaic-style promotional grid of image tiles (promo blocks) for linking to collections, pages, or campaigns from the homepage.
  • Shop the look section. A shoppable lifestyle image with positionable product hotspots — visitors can tap a hotspot to jump to the featured product.
  • Custom Liquid section. A section for inserting your own Liquid, HTML, or CSS anywhere on the page — handy for embeds, bespoke blocks, or third-party widgets, with container width and spacing controls.
  • Local store pickup availability. Product pages now show per-variant local pickup availability, listing which of your store locations have the item ready for collection. Appears automatically when Shopify's local pickup is enabled.

Changed

  • Cleaned up the theme structure for a more production-ready release package.
  • Improved Valor-specific naming and class consistency across theme files.
  • Refined merchant-facing text and settings labels for clearer Shopify editor usage.
  • Centralized theme status colors into shared CSS variables for more consistent styling.
  • Improved consistency across sections, layout behavior, typography usage, and color handling.
  • Added a Valor identifier to the theme root markup.

Fixed

  • Fixed an incorrect gift card template setting reference.
  • Fixed scattered hardcoded sale, inventory, success, and warning color usage.
  • Fixed lightbox markup so empty image elements are no longer rendered before the lightbox is opened.
  • Removed old cleanup/fix-style comments and legacy wording from the codebase.
  • Removed or renamed generic theme utility classes where Valor-prefixed naming was more appropriate.

Quality checks

  • Shopify Theme Check passes with no reported issues.
  • Theme formatting check passes.
  • The downloadable ZIP has been cleaned so it does not include development files such as Git data, Node modules, package files, or tooling configuration.
  • Tested on the Valor demo store using both staging and live theme versions.
  • Download SHA-256 (for integrity verification): 7E7C14AF5D022F9BF6B14E2EE225DF86A9556902E66795EEF6A72B5034C46CCB

Like every Shopify theme upload, v1.3.6 installs as a new theme instance — your previous theme is not overwritten, but settings don't carry over automatically. To preserve your customisations, copy config/settings_data.json from your old theme to the new one using the theme code editor before publishing.

Download v1.3.6 By downloading, you agree to the Valor Free License. One Shopify store per download.

v1.2.5

A global button styling system — control background, text, border and hover colours, border thickness, and corner radius from theme settings, applied consistently across the whole theme. Plus a round of image-loading performance improvements and fixes.

Added

  • Added global button style controls for background, text, border, hover colors, border thickness and corner radius.
  • Added separate text color controls for outline buttons.
  • Added global button styling support across banners, rich text, collections, newsletter, cart, back-to-top and other CTA areas.

Improved

  • Improved button consistency across the theme.
  • Improved predictive search asset loading.
  • Improved image loading priority for above-the-fold sections.
  • Improved product gallery image loading by prioritizing the active media.
  • Improved image banner responsive image handling.
  • Reduced unnecessary preload/resource hints.

Fixed

  • Fixed article and blog image markup so image classes and alt text are preserved correctly.
  • Replaced deprecated article comment count usage.
  • Replaced parser-blocking script tags with deferred script loading.
  • Improved lightbox image width/height handling.
  • Removed unused Liquid variables and improved overall theme validation quality.

Existing stores keep the current default button look unless the new button settings are customized. Like every Shopify theme upload, v1.2.5 installs as a new theme instance — your previous theme is not overwritten, but settings don't carry over automatically. To preserve your customisations, copy config/settings_data.json from your old theme to the new one using the theme code editor before publishing.

Download v1.2.5 By downloading, you agree to the Valor Free License. One Shopify store per download.

v1.2.1

Maintenance release. Fixes social sharing previews and product price metadata, hardens the cart for multi-market stores, and closes a few small gaps in translation coverage. No new features — fully backward compatible with v1.2.0.

Fixed

  • Open Graph image now renders on social platforms. The og:image tag generated an image URL without a size, which Shopify's image_url filter requires — the result was an empty image URL, so Facebook, LinkedIn, WhatsApp, and X showed no thumbnail when a store page was shared. The tag now requests a correctly sized image (capped at the image's native width) and reports accurate og:image:width / og:image:height values.
  • Open Graph price metadata is now machine-readable. og:price:amount previously used a locale-formatted money string (e.g. "1.299,00" in European locales), which breaks the raw-decimal format the Open Graph protocol expects. It now emits a plain decimal (e.g. 1299.00).
  • Featured Product cart count works under localized URLs. The in-cart quantity indicator fetched the cart from a hard-coded /cart.js path; it now builds the URL from Shopify.routes.root, matching the rest of the theme so it works correctly on multi-market and multi-language stores with localized URL prefixes.

Improved

  • Full translation coverage for accessibility labels. A handful of screen-reader labels were hard-coded in English and so could not be translated through Shopify's native translation system: the Featured Product quantity buttons, the blog article share links, and the announcement bar controls. These now use locale strings and translate correctly via Shopify's Translate & Adapt.
  • Consistent colour-swatch detection. The Featured Product section detected colour options in fewer languages than the main product page. Both now recognise the same set (English, Finnish, Swedish, German, French, Italian), so colour swatches render consistently across the theme on translated stores. Native Shopify swatches continue to work regardless of language.

Files changed

  • Modified: snippets/meta-tags.liquid, sections/featured-product.liquid, sections/article.liquid, sections/announcement-bar.liquid, locales/en.default.json, config/settings_schema.json

This is a drop-in maintenance update — no settings, markup, or styling changed in a way that affects existing customisations. Like every Shopify theme upload, v1.2.1 installs as a new theme instance — your previous theme is not overwritten, but settings don't carry over automatically. To preserve your customisations, copy config/settings_data.json from your old theme to the new one using the theme code editor before publishing.

Download v1.2.1 By downloading, you agree to the Valor Free License. One Shopify store per download.

v1.2.0

Site-wide Schema.org JSON-LD structured data foundation. Organization on every page, WebSite + SearchAction on the homepage, and modern Article JSON-LD replacing legacy microdata.

Added

  • Site-wide structured data foundation. The theme now emits Schema.org JSON-LD on every page so search engines can understand the store at the brand level, not just the product level. A single new snippet centralises all output and selects the right schema for each page type.
  • Organization schema — emitted on every page. Includes the shop name, full logo URL, brand description (from the Brand settings), and a sameAs list built from the social media URL settings. The sameAs key is omitted entirely if no social URLs are set, keeping the JSON-LD clean on a freshly installed theme.
  • WebSite + SearchAction — emitted on the homepage only. Tells Google about the store's search endpoint and enables the Sitelinks search box in search results.
  • Article JSON-LD — emitted on blog article pages, replacing the previous HTML microdata.

Improved

  • Article page now uses JSON-LD instead of HTML microdata. The article template previously marked up content with itemscope, itemtype and itemprop attributes scattered across the markup. These are removed in favour of a single JSON-LD block generated by Shopify's article | structured_data filter — cleaner HTML, modern format, and the format Google currently prefers.
  • JSON-LD output consolidated into one snippet. All structured data now lives in snippets/structured-data.liquid and is rendered with a single call from meta-tags.liquid. Future schema additions (BreadcrumbList, LocalBusiness, FAQPage) can be added in one place without touching multiple files.

How Valor v1.2.0 compares to other Shopify themes

The following comparison is based on inspection of each theme's publicly available source code. Dawn and Horizon are Shopify-maintained reference themes.

Schema type Dawn Horizon Valor v1.2.0
Product
Organization ✓ (basic) ✓ + brand description
sameAs social links ✓ (9 networks) ✓ (10 networks)
WebSite + SearchAction
Article JSON-LD

Files changed

  • New: snippets/structured-data.liquid
  • Modified: snippets/meta-tags.liquid, sections/article.liquid, config/settings_schema.json

Product structured data continues to work exactly as before. Existing storefront markup, customer settings, theme styles, and the search/collection improvements from v1.1.0 are all unchanged. Like every Shopify theme upload, v1.2.0 installs as a new theme instance — your previous theme is not overwritten, but settings don't carry over automatically. To preserve your customisations, copy config/settings_data.json from your old theme to the new one using the theme code editor before publishing.

Download v1.2.0 By downloading, you agree to the Valor Free License. One Shopify store per download.

v1.1.0

Search page empty-state grid, two-mode grid view toggle on collection and search pages, and several refinements to search behaviour.

Added

  • Empty state product grid on the search page — visitors now see products instead of a blank screen before searching or when a search returns no results. A new section setting Empty state collection under Search results → Empty state lets the merchant choose which collection to display (defaults to all products).
  • Grid view toggle on collection and search pages — visitors can switch the product grid between two layouts using a two-button control next to the sort dropdown (desktop) or filter button (mobile). Desktop: default (the section's column setting) ↔ compact (denser auto-fill grid). Mobile: default (2 columns) ↔ single (1 product per row). The choice is remembered across page loads and survives AJAX filter/sort/pagination refreshes.
  • Context-aware secondary heading above the empty-state grid: shows the chosen collection's title, "Browse our products" before any search, or "You may also like" when a search returned zero results.

Improved

  • Search page reset (×) button now clears the entire search — both the input and the results — by navigating to the clean search URL. Previously it only cleared the input field but left results visible.
  • Cleaner three-branch search page logic: results / no results / no search yet, each with its own rendering and pagination behaviour where appropriate. Pre-search visitors can now paginate through the full empty-state collection instead of seeing only the first batch.
  • More reliable no-results message — the "No results for X" vs. "No results with the selected filters" decision now uses the actual count of active filters instead of an inconsistent filter object check.

Technical

  • Grid view JS validates localStorage values against a whitelist — corrupted or unexpected stored values fall back to defaults so the toggle UI never ends up in a confused state.
  • Double-init guard in grid view JS prevents duplicate event listeners when the Shopify Theme Editor re-evaluates section scripts after edits.

Files changed

  • New: assets/grid-view.js, snippets/grid-view-toggle.liquid
  • Modified: sections/search.liquid, sections/collection.liquid, snippets/facets-bar.liquid, assets/search.css, assets/collection.css, locales/en.default.json, config/settings_schema.json

Header search, predictive search, product page, cart, checkout, and homepage sections are unchanged. Like every Shopify theme upload, v1.1.0 installs as a new theme instance — your previous theme is not overwritten, but settings don't carry over automatically. To preserve your customisations, copy config/settings_data.json from your old theme to the new one using the theme code editor before publishing.

Download v1.1.0 By downloading, you agree to the Valor Free License. One Shopify store per download.

v1.0.0

Initial free release of Valor Theme.

Added

  • Complete Shopify Online Store 2.0 theme with all standard templates (homepage, collection, product, cart, page, blog, search, 404)
  • Cart drawer with discount codes and order notes
  • AJAX collection filtering and sorting
  • Predictive search
  • Section-based homepage builder with multiple block types
  • Two-color system controlled from theme settings (background + foreground)
  • Full typography control via Shopify's font picker (Google Fonts & Adobe Fonts supported)
  • WCAG-AA accessibility compliance across every surface
  • Lightbox product gallery with zoom & pan
  • English locale, ready for translation via Shopify's native system

Download v1.0.0 By downloading, you agree to the Valor Free License. One Shopify store per download.

How updates work

Every Shopify theme upload installs as a new theme instance — your previous theme is not overwritten or modified. You can preview the new version safely before publishing.

Settings don't carry over automatically when you upload a new ZIP. The new theme starts from defaults. To update your store:

  1. Download the new ZIP from the changelog entry.
  2. In your Shopify admin, go to Online Store → Themes → Add theme → Upload zip file. The new version installs alongside your current theme.
  3. Preserve your settings by copying config/settings_data.json from your old theme to the new one. Open the old theme in the code editor, copy the entire file content, then paste it into the same file in the new theme. This carries over most settings as long as the section IDs and setting keys haven't changed.
  4. Preview the new theme and verify everything looks correct. Sections that have been restructured may need reconfiguration.
  5. Click Publish when ready. Your old theme remains saved as a backup.

For larger version bumps (e.g. v1.x → v2.x), review the changelog carefully — some sections may have been restructured and require reapplying customisations.