Changelog
What shipped when. The list below covers Mercer’s pre-1.0 development and 1.0 release. Post-1.0 changes append to the top of this list as they ship.
The phase numbers refer to Mercer’s internal development sprints. They’re useful for tracing context but don’t carry any meaning to end users.
1.0.0 — 2026-05-19
Initial public release. A mobile-first, conversion-tuned theme for premium DTC merchants — five distinct industry presets, native Shopify swatches, font_picker compliance, and the full Online Store 2.0 section / template surface area, plus merchandising sections, B2B quick order, internationalization, and per-section color schemes.
Highlights
New merchandising sections
image-hotspot— positioned markers with desktop popovers, mobile numbered list, and no-JS list fallback.lookbook— mosaic, editorial-split, and stacked-story layouts with product chips on each tile.before-after— native range-input image reveal with no-JS side-by-side fallback.press-coverage— publication logo / quote blocks for “as seen in” surfaces.collection-navigation— menu-driven or collection-list-driven nav chips.promo-bannerandpromo-tiles— campaign banner, real-date countdown support, and promotional tile grids.
PDP enhancements
main-product.details_display_modeaddsaccordionandtabs_desktop_accordion_mobiledisplay modes for product detail blocks.- Collection and search filters render swatch-style controls when
Shopify reports
filter.presentation == 'swatch'orfilter.presentation == 'image'.
B2B
b2b-quick-orderadds a merchant-addable multi-variant grid for signed-in B2B buyers. It reuses quantity-rule and tier-price surfaces and submits selected rows throughMercer.cart.add([...]).
Internationalization
- French (
fr), German (de), Italian (it), and Spanish (es) starter storefront and Theme Editor locale files added. - RTL motion and scroll polish for
ar/he:<html dir>, drawer / off-canvas animation direction, PDP gallery keys, and horizontal scrollers.
Color schemes
- Five named schemes:
default,editorial-dark,warm-neutral,accent-pop, andsoft-contrast. - Applied per section on 17 sections — 11 reusable merchandising
sections (
image-hotspot,lookbook,before-after,b2b-quick-order,promo-banner,promo-tiles,faq,featured-collection,featured-blog,slideshow,hero-magazine-cover) plus all 6 signature heroes. See Color schemes for the full list.
Header
- Header blocks now support
mega_image,mega_collection,mega_product, andmega_promoenrichment. Blocks attach to a top-level menu link through exactparent_link_urlmatching.
Documentation
mercertheme.comdocs site live.
Build hardening
Five rounds of pre-submission QA remediation covered no-JS cart, variant, menu, and filter fallbacks; focus-trap hidden-element exclusion; locale-prefix segment safety; escape sweep; predictive-search clear-on-short-query; stale-response guards; and B2B quick-order event correlation.
Migration notes
No migration required. Color schemes default to settings-driven
default, and existing presets remain visually unchanged unless a
merchant changes a section’s scheme.
Platform foundation
Five designed presets
Each preset is a designed end-to-end look — palette, type pair, radius language, signature hero. Switch presets non-destructively in the editor; content is preserved.
- Mercer — editorial fashion / beauty default. Fraunces + Inter via Shopify’s font library, monochrome palette with semantic accents, refined pill buttons.
- Warm Craft — ceramics, pantry, slow goods. Lora + Inter, terracotta accent, soft pill buttons.
- Bold Pop — DTC beauty and lifestyle. Archivo + Inter, vivid orange accent on cream, generous radius.
- Quiet Luxe — jewelry and fragrance. Cormorant + Work Sans, whisper-warm palette, refined hairlines, spacious type density.
- Tech Forward — electronics and accessories — dark by design. Space Grotesk + Inter, neon accent on near-black, compact type density.
Templates and sections
Full Online Store 2.0 coverage of the required Theme Store template formats: product, collection, list-collections, blog, article, page, page.contact, password, gift_card, cart, search, and 404, plus header / footer / password layouts. (Customer-account pages are handled by Shopify’s new customer accounts and are not theme templates.)
The section library bundles:
- Per-preset signature sections (6) — heritage masthead, warm
collections, luxe single-product, pop color-block, pop H-scroller,
and tech spec strip. (The default Mercer preset’s hero is the
separate, non-signature
hero-magazine-coversection.) - Featured product — full PDP-grade single-product section with rich media (image / video / external_video / 3D model), variant picker, selling plans, gift-card recipient flow, payment_button, Shop Pay Installments banner, and accelerated checkout.
- Complementary products — pre-installed on the default PDP via Shopify’s Recommendations API, alongside the algorithmic Related products section.
- Predictive search with type-ahead product cards.
- Pickup availability on PDP.
- Multi-currency / multi-language switchers in three patterns (header dropdown, full modal, footer-only) plus a first-visit country gate.
- B2B catalog selector and PDP overlays (quantity rules + tier pricing) gated cleanly so B2C requests render zero extra markup.
- Multi-level (3-deep) mega menu with image columns.
- Custom Liquid section + Custom Liquid blocks in every section that supports app blocks.
Storefront chrome
- Dismissible announcement bar with sessionStorage-keyed per- message dismissal, designMode gate, and prefers-reduced-motion respect.
- Back-to-top button rendered from footer; suppressed on PDP to avoid sticky-CTA overlap.
- Mobile accordion footer columns via
<details open>with desktop summary affordance neutralized. - Payment icons footer block using
shop.enabled_payment_typespayment_type_svg_tag, opt-in.
<shopify-account>web component in desktop header for customer-accounts mode.
Performance
Internal mobile performance QA covered home, collection, and PDP views across the preset set. Re-run and archive fresh reports against the final demo stores before using exact Lighthouse numbers in listing copy.
Accessibility
Accessibility QA covered WCAG-oriented contrast, focus, labels, and reduced-motion patterns. Re-run and archive current accessibility reports before using exact scores in listing copy.
Theme Store compliance
- font_picker + font_modify per Shopify font library; no self-hosted WOFF2.
- Native
option_value.swatch.colorand.swatch.imagefor product swatches. - 8 global
type: colorsettings with foreground / background pairing (4 pairs). - JSON-LD product structured data for Google Rich Results.
- OpenGraph + Twitter Card meta on every storefront page.
- Bare
{{ powered_by_link }}per the verbatim-render rule. - All schema strings migrated to
t:keys (full schema localization; American English, sentence-case section names, no ampersands). /listingsfolder with one demo per non-default preset.- Block-based PDP architecture per the Dawn pattern: title, price,
variant_picker, buy_buttons, description, trust_row, share_row,
text accordion, plus
@appand Custom Liquid blocks anywhere@appis supported. - Shop Pay Installments via the
payment_termsfilter; cart accelerated checkout viacontent_for_additional_checkout_buttons.
Phase notes (development history)
The pre-1.0 milestones, organized by the internal phases. Useful for trace context; merchants can ignore.
Phase 9 — Submission polish (2026-05-07 → 12)
Pre-submission compliance + chrome enhancements.
- Storefront chrome: dismissible announcement bar, footer
back-to-top, mobile accordion footer columns, payment icons
block,
<shopify-account>adoption in header. - Theme Store §14 compliance pass: branded defaults scrubbed (42 sites); eyebrow renamed to caption; numbered “A/B/C” prefixes dropped; “View-all label” → “View-all button label”.
- Customer-account migration: undocumented
cancel_account_activationform replaced with documentedactivate_customer_password+ decline button. - XSS hardening: B2B defensive escape pass (10 sites); JSON
island
</escape; form drop reflection escapes; quick-add controller-scope hardening. - Form a11y: explicit id + for pairs (5 sites); novalidate removed from form-drop forms; error output + value repopulation on customer + comment forms.
- Token system:
--focus,--container-max,--nav-bgdefined; interactive boundaries switched to--line-strongper §16 contrast. - Settings wiring:
logo_width_*,scale_density,button_shape,cart_typewired to token cascades;accounts_moderemoved (Shopify-native). - Wishlist / save-for-later removed entirely (XSS surface, cohort feature recognized as v1.1+).
- Provenance comments scrubbed (13 sites) per §2 originality.
Phase 8a — Lighthouse audit (2026-05-07)
- A11y: pgallery dots — drop tablist role + 24×24 touch target.
Lighthouse
aria-required-childrenandtarget-sizeaudits moved from fail to pass. A11y delta on a sample PDP: 88 → 96.
Phase 7l — Submission polish
- Borderline §14 polish items closed (favicon spec format, UnusedAssign suppressions, signature-section hardcoded resource strings, gift card / selling-plan quick-add gating).
- Gate gift cards + selling-plan-required products to PDP (skip quick-add modal — needs full PDP for recipient form / subscription terms).
- 3rd-level submenu rendering in desktop nav and mega-menu.
- Centralize
Mercer.routesfor locale-aware AJAX across 7 sites. - Footer default install state to canonical ‘footer’ menu handle.
Phase 7j-7k — Collection / PDP polish
- Featured-collection card object-position support.
- Collection card upper-third focal anchor by default.
- PDP gallery: mobile vertical scroll + zoom-modal dismiss.
- PDP gallery: allow horizontal swipe on mobile.
- Swatch hex case block formatting + name→hex fallback.
- Header desktop nav-link baseline unification.
- Header dropdown caret to chevron-d (was right-pointing).
- Wrapper-bound fallback for collection banner image.
Phase 7g-7i — XSS hardening + cart consistency
- Default-filter sweep extension across 5 files.
- Cart JS skip-blank parity with Liquid
!= blanksemantics. - Drop ARIA
menuroles from header dropdown — use disclosure pattern instead. - Defense-in-depth XSS escape sweep across 18 files.
- Unify discount-allocation rendering across 5 cart paths.
Phase 7e-7f — Listings + content seeding
- Scaffold
listings/mercer/per Theme Store submission spec. - Strip hardcoded “Outerwear” copy per multi-vertical positioning.
- Photography manifest (Task 9a).
- Materials / care / origin moved from product description to metafields; PDP accordion wired.
- Footer columns wired to per-column menus.
- Mercer catalog seeder.
Phase 7c-7d — Gift card + i18n hardening
- Extract gift card recipient initializer to persistent JS.
- Desktop multi-level navigation + dynamic mega-menu source.
- Use
Shopify.routes.rootfor locale-aware Cart Ajax. - Extend XSS sweep to indirection + system tokens + attr context.
- Image_tag fallbacks for remaining wrapper-bound sections.
- Cart drawer + order line-level discount allocations port.
- Remove notify-me back-in-stock stub per Theme Store §8 (no app-like features).
- Align preset slugs + listings folders + strip hardcoded resources.
- Show variant range on cards even when on sale.
Phase 7a-7b — Order page + cart drawer discounts
- Use historical
line.unit_pricenot livevariant.unit_priceon order page. - Remove
aria-hiddenfrom focusable dot / scroll buttons. - PDP mobile-nav selector for sticky ATC + footer offset.
- 375px viewport contain hero headline and sticky ATC bar.
- Close predictive search overlay on Escape keydown on the input.
- Hide mobile bottom nav on tablet / desktop, not just ≥1024 px.
Phase 6e — Real photography + final LH pass
- Lighthouse sweep completed against the working storefront set; archive a fresh run against final demo stores before publishing exact scores.
- CLS finding on collection page root-caused to a collapsed sidebar grid
column. Fix: move
.js-onlyfrom wrapper to inner<div>so the sidebar column reserves its width from first paint.
Phase 6d — Schema i18n migration
- Migrate 754 schema strings to t-keys (698 sections + 56 settings_schema). Resolver check: 754/754 resolve.
- en.default.schema.json: 2436 lines.
- en.default.json: 399 lines.
- American English audit + 3 fixes.
- Sentence-case section names; no ampersands; link_list defaults to main-menu / footer.
- Font settings audit completed; current package uses Shopify font picker settings and derived font variants.
Phase 6b — Audit-gap closure
- Accelerated checkout buttons (
content_for_additional_checkout_buttons). - Image focal points across all image sections.
- Social sharing images (
page_imagemeta). - Pickup availability section.
- Rich product media (3D model + video + external_video).
- Selling plans on PDP (radio group, dynamic price update).
- Shop Pay Installments banner.
- Unit pricing (variant.unit_price_measurement + showUnitPrice flag).
- “Follow on Shop”
login_buttonblock on PDP. templates/page.contact.json.- Custom Liquid section.
Phase 6a — Theme Store readiness pass
Theme Store readiness work covered checkout-adjacent messaging, gift-card polish, settings labels, storefront defaults, and template coverage before the later compliance passes.
Phase 5 — Featured product + B2B + i18n + a11y
- Full-featured
featured-productsection with form, rich media, app blocks per Theme Store requirement. - Complementary products section on default PDP.
- Wire
--surface-text+--line-strongto base CSS for merchant settings. - Verbatim
{{ powered_by_link }}rendering on password page. - Replace “CTA” terminology with “Button label” per Shopify settings standards.
- Remove incomplete wishlist link from mobile bottom nav (anti-app- like rule).
- Native
collection.featured_imagefallback for collection card. - Drop orphan
show_bannerfrom default collection template. - Output
collection.imageby default. - Explicit
id+label-foron cart-drawer / selling-plan / newsletter inputs. - Custom Liquid block parity in image-with-text, newsletter, main-page.
- Global
type: colorsettings with foreground + background pairing per Theme Store requirements (4 pairs, 8 settings).
Phase 4 — Cart drawer + B2B
- B2B catalog badge + company switcher.
- B2B quantity rules display + qty-stepper data island.
- B2B tier price table (volume pricing).
- B2B cart aside.
- Cart drawer full implementation.
- Predictive search overlay.
- Mega menu with image columns.
Phase 3 — Collection + PDP
main-collectionsection + Section Rendering API client.main-list-collectionssection + collection-card snippet.- Eager-load top 4 product images + finer srcset.
main-productsection + gallery + variant + sticky CTA.- Related products + recently viewed sections.
Mercer.variantextracted into shared module.- Per-cell eager flag + img sizing fixes for collection grid.
main-cartsection + line / empty snippets + page JS.- Customer-account template pass + shared shell + form fields —
later superseded by Shopify’s
<shopify-account>; notemplates/customers/ships (see migration in v1.0.0 notes above). main-searchsection + article / page result snippets.
Phase 2 — Home page composition + presets
- Editorial Mono index template composed.
- Newsletter / testimonials / multi-column / image-with-text / featured-collection / page-numbered collection grid / editorial magazine cover sections.
- Cart drawer + predictive search + mega-menu overlay scaffolding.
- Per-preset signature heroes (6 — heritage, warm, luxe, pop color-block, pop H-scroller, tech spec strip).
- Per-preset alt index templates (under
/listings) for warm / pop / luxe / tech.
Phase 1 — Foundation
- Repo bootstrap with theme-check + CI workflow.
- 5-preset CSS token system.
- OS 2.0 directory tree; layouts; settings; JSON templates.
- CI Lighthouse wired.
- Self-hosted Fraunces + Inter; conditional Google Fonts for non- default presets.
- Base primitives + foundation JS + icon snippet.
- Header / footer / mobile bottom nav + section groups.
Versioning
Mercer follows semver:
- Major (1.0 → 2.0): Breaking changes that require merchant re-setup (preset architecture changes, removed sections, etc.).
- Minor (1.0 → 1.1): New sections / blocks / settings; non- breaking enhancements.
- Patch (1.0.0 → 1.0.1): Bug fixes; performance work; a11y; no schema changes.
Theme settings, content, and customizations always carry forward across patch and minor versions.