Verso Documentation

Everything is controlled from the Shopify Theme Editor. You never need to edit code to run the theme.

Overview

Best suited to fashion, electronics, home & lifestyle and luxury stores, but the four preset styles and the token system make it work for most catalogues.

Installing the theme

Option A — Shopify admin (recommended)

  1. Zip the contents of the theme folder so layout/, sections/, … sit at the root of the zip — not inside a parent folder. (The supplied Verso-1.0.0.zip is already correct.)
  2. Shopify admin → Online Store → Themes → Add theme → Upload zip file.
  3. Click Customize to open the Theme Editor.
  4. When you’re happy, Actions → Publish.

Option B — Shopify CLI (for developers)

shopify theme dev      # live preview against your store
shopify theme push     # upload to a new unpublished theme

First-run checklist

StepWhere
Pick a preset (Luxury / Fashion / Tech / Home)Theme settings → gear icon → presets
Upload your logo + faviconTheme settings → Logo
Set brand coloursTheme settings → Colors
Choose fontsTheme settings → Typography
Build your menuShopify admin → Navigation → main-menu, footer
Assign templatesProduct / Page admin → Theme template dropdown
Configure cart, header, badgesTheme settings groups of the same name
Connect review / email / loyalty appsTheme settings → App integrations & Reviews & ratings

What’s included

Templates

index · product · collection · list-collections · cart · search · blog · article · page · page.about · page.contact · page.wishlist · 404 · password · gift_card · full customers/* set.

Homepage / content sections

Hero banner · Slideshow · Featured collection (grid or carousel) · Collection list · Rich text · Image with text · Multicolumn · Testimonials · FAQ · Call to action · Newsletter · Tabs · Gallery / lookbook · Shop the look (image hotspots) · Shop-the-look video (3D coverflow) · Announcement bar · Custom Liquid / HTML · Related products.

Every content section has: colour scheme, top/bottom padding, a heading with *emphasis* support, and reveal-on-scroll animation.

Layout options

AreaOptions
HeaderMinimal (centered logo) · Standard (logo left) · Full-width with mega menu
Product pageStandard · Wide gallery · Stacked; gallery as thumbnails or grid
Collection pageSidebar filters · Filter drawer · No filters; grid / list toggle
HomepageFully modular — drag sections in the editor

Colours & schemes

snippets/css-variables.liquid turns your Theme settings into CSS custom properties (--color-primary, --color-surface, …). Sections never hard-code a colour, so your settings always win.

Every content section exposes a Colour scheme picker — default / surface / inverse — mapped to the .color-* helper classes. The helpers keep foreground and background paired so text contrast holds.

Typography

In any heading field, wrap words in *asterisks* (or use <em> in rich text) to render them in the display font — e.g. Real *routines.* All four faces are font_picker settings: merchants pick from Shopify’s font library with zero code.

Spacing & shape

Global: page width, section spacing, grid gaps, corner radius, button radius, shadow strength. Per-section: top / bottom padding in px.

Animations

Theme settings → Animations: enable / disable, reveal style (fade / slide-up / scale), hover lift, and product-image hover effect (none / zoom / show 2nd image).

All motion auto-disables for visitors with prefers-reduced-motion — CSS and JS both respect it.

Product page

sections/main-product.liquid is built from re-orderable blocks — drag them in the editor, no code:

Sections reference

Shared conventions: Colour scheme (default/surface/inverse), top / bottom padding, and headings that support *emphasis*.

Store sections

SectionNotes
Header3 layouts (minimal / standard / full-width-mega); sticky, transparent-on-home, search & account visibility in Theme settings → Header. Section settings: menu, mega-menu blocks, wishlist icon + page.
FooterBlocks: Brand, Menu (×N), Text, Newsletter, Social icons. Copyright suffix, policy links, payment icons, country / language selectors.
Announcement barRotating message blocks; background / text colour + rotation speed.
Cart drawerNo own settings — driven by Theme settings → Cart: drawer / page / notification, quick add, upsell products, order notes, free-shipping bar + threshold.

Homepage / content sections

SectionKey options
Hero bannerImage or video background, height, overlay, content alignment (L/C/R), eyebrow, heading, text, 2 buttons. Works with the transparent header.
SlideshowUp to 6 slides, autoplay + speed, height; per slide image / overlay / text colour / alignment / eyebrow / heading / text / button. Keyboard + touch, pauses on hover / focus / tab-hidden and for reduced motion.
Featured collectionCollection, grid or carousel, columns (2–5), product count, “View all” label, per-section card style. Reuses the product card.
Collection listCollection cards from blocks; columns, image ratio, product count.
Rich textRe-orderable blocks: eyebrow, heading (3 sizes), text, button. Left / center.
Image with textImage / Shopify video / external video; ratio; image left / right; vertical align; eyebrow / heading / text / button; feature-line blocks (icon + text).
Multicolumn2–4 columns, icon or image, heading, text, optional link. Value props / how-it-works / perks.
TestimonialsGrid or carousel. Per block: quote, 0–5 stars, author, role, avatar.
FAQSplit or centered layout, single-open toggle. Emits FAQPage structured data.
Call to action1–3 CTA cards, each with optional background image, colour scheme, 2 buttons.
NewsletterHeading / text / disclaimer + provider-aware form (see App integrations).
TabsUp to 6 tabs; each is a collection grid or a rich-text panel. Accessible arrow-key navigation.
GalleryGrid / masonry / slider layouts, optional lightbox. Per image: caption + link.
Shop the lookLifestyle image with positioned hotspot blocks (x/y %), each linking a product. Hotspot popover has quick-add.
Shop-the-look video3D coverflow of vertical video cards → full-screen player with a featured-product rail. Per block: Shopify-hosted video, title, caption, duration, product. Self-contained CSS/JS; empty blocks show a static poster.
Custom Liquid / HTMLPaste app embeds / HTML / Liquid. Full / narrow / default width.
Related productsLazy-loaded via the Product Recommendations API. Intent: related / complementary. Columns + count.

Template sections

SectionTemplateKey options
main-productproductlayout (standard / wide-gallery / stacked), gallery style, sticky gallery / ATC, re-orderable info blocks
main-collectioncollectionfilter layout (sidebar / drawer / none), grid / list toggle, columns, per-page
main-cartcartfree-shipping bar, notes, recommendations
main-blogblogfeature latest post, excerpts, tag filter, columns
main-articlearticlehero image, share, reading time, comments
main-pagepagetitle, alignment, width, breadcrumbs
main-list-collectionslist-collectionssort, hide frontpage, counts, ratio, columns
main-searchsearchcolumns, results per page
main-404404message + suggested collection
main-passwordpasswordbackground, heading / text, newsletter
wishlistpage.wishlistheading, source collection, columns

App integrations — no code changes

Merchants switch apps from the Theme Editor. Each integration degrades gracefully if the app is missing or misconfigured.

Reviews & ratings

Theme settings → Reviews & ratings → Review platform · snippet snippets/app-reviews.liquid.

ProviderBadge containerFull widget
shopify.shopify-product-reviews-badge[data-id]#shopify-product-reviews
judgeme.jdgm-widget.jdgm-preview-badge.jdgm-widget.jdgm-review-widget
loox#looxReviews[data-product-id]#looxReviews
yotpo.yotpo.bottomLine.yotpo.yotpo-main-widget
okendo[data-oke-star-rating][data-oke-widget]
stamped.stamped-product-reviews-badge#stamped-main-widget

The theme prints the provider’s expected markup; the app’s own script hydrates it. Fallback: when the provider is none, cards and the product page fall back to the reviews.rating / reviews.rating_count product metafields.

Loyalty & rewards

Theme settings → App integrations → Loyalty & rewards · snippet snippets/loyalty-widget.liquid. Providers: Smile.io, LoyaltyLion, Yotpo Loyalty, or paste custom code.

PlacementWhere
productBelow the add-to-cart button
launcherFooter (floating widget host)
inlineCustomer account page panel

Fallback: if loyalty features are off, nothing renders — zero performance cost.

Email marketing / newsletter

Theme settings → App integrations → Email marketing · snippet snippets/newsletter-form.liquid (Newsletter section, footer block, password page).

ProviderBehaviour
shopifyNative customer form — synced to any connected ESP
klaviyoNative form + hidden contact[list_id] from the Klaviyo list ID setting
mailchimp / omnisendNative form; their apps sync customers automatically
customRenders the raw embed from “Custom newsletter embed” verbatim

Fallback: every mode degrades to the native Shopify customer form, so email capture keeps working even if a script fails to load.

Anything else

  1. Custom Liquid / HTML section — add anywhere, paste the app’s embed.
  2. Product page → Custom Liquid block — product-specific widgets.
  3. App blocks (@app) — OS 2.0 block apps drop into the product info column.
  4. App embed blocks — site-wide apps work automatically via content_for_header.

Mega menu

  1. Theme settings → Header → Header layout = “Full width with mega menu”.
  2. Open the Header section and add a Mega menu block per top-level item you want a panel for.
  3. Top-level menu item title — must match the menu item exactly.
  4. Column menu — each top-level link becomes a column heading; its children become the links.
  5. Optional featured products strip (from a collection) and up to 2 promo banners (image + heading + link).

New / Sale / Hot pills are set on the Header section as comma-separated menu-item titles (label_new, label_sale, label_hot) and apply to the desktop nav and the mobile drawer.

Wishlist

Built-in localStorage wishlist — heart icon on cards, count in the header, page.wishlist template. It emits a wishlist:change DOM event and exposes window.Verso.Wishlist, so a wishlist app can hook in or replace it. To use an app’s page, point Theme settings → Header → Wishlist page at it.

Performance & accessibility

Loading

Images

Accessibility (WCAG 2.1 AA)

Lighthouse depends on merchant content. Advise buyers to: upload images ≤ ~2000px; compress hero images (< 250 KB, WebP); keep the homepage to ~8–12 sections; audit apps (third-party scripts are the #1 cause of score drops); use Shopify-hosted video above the fold.

Error handling & fallbacks

A missing image, an empty collection, a failed request or a disabled app never breaks a page.

ScenarioHandling
Section with no collection / product chosenOnboarding placeholders in the editor; muted “choose a…” message on the live store
Product has no imagesPlaceholder rendered; card / gallery keep their aspect ratio
Product / variant unavailableBuy button disabled with “Sold out” / “Unavailable”; price gets price--sold-out
Collection has 0 products after filteringFriendly empty state + “Clear all” link
Add-to-cart / cart update failsError surfaced in the form region + aria-live; button re-enabled; cart never left broken
Section Rendering API failsFalls back to a full page navigation rather than stale UI
localStorage unavailable (private mode)Wishlist reads / writes are try/catch-wrapped and no-op safely
Web Components unsupported (old browsers)Progressive enhancement — forms, links and native <details> accordions still work; <noscript> variant selector

FAQ

Do I need to know how to code?

No. Every colour, font, layout, section and integration is set from the Theme Editor.

Will the demo images stay on my store?

No — the bundled ph-*.jpg photos only show where an image is missing. They disappear automatically as you add real products and images.

How do I connect my reviews / loyalty / email app?

Theme settings → Reviews & ratings or App integrations, pick the provider, and install that app from the Shopify App Store. No theme edits. See App integrations.

Can I move the theme to another store?

Yes. Download it (Actions → Download theme file) or use the supplied zip and upload it to the other store.

How do I get help?

See the support page or email [email protected].

Changelog

1.0.0 — Initial release. Online Store 2.0 architecture; 3 header layouts; full homepage / content section set; advanced product page (variants, subscriptions, pre-orders, inventory, sticky ATC, quick view); collection filtering + grid/list; cart drawer with upsell & free-shipping bar; app integration layer for reviews / loyalty / email; built-in wishlist; 4 preset styles; full customers/*, gift_card, password, 404, search templates.

Full history ships with the theme in docs/CHANGELOG.md.