BalmDocumentation

Product page blocks

Balm ships one product page, and every product uses it. You shape it from the theme editor, and you can let each product carry its own colors and texts through metafields, so you never need a second template.

How the page is built

The Product section is a two column layout: the media gallery on one side, a column of blocks on the other. Add, remove and reorder the blocks in the theme editor: Online Store, Themes, Customize, then pick Products in the page menu at the top. The section also accepts app blocks, so any app that offers a block (reviews, subscriptions, bundles) drops straight into the column, and the general theme blocks (Heading, Button, Spacer and the others).

The template, templates/product.json, starts with this stack:

OrderBlockWhat it does
1TitleThe product title.
2TextA short tagline under the title. Rich text, so you can bold or link.
3PopupA small Specifications link that opens a dialog, for ingredients, sizing or nutrition.
4PricePrice, compare-at price and unit price.
5Variant pickerThe options the customer chooses from.
6QuantityQuantity selector, with any per order limits you have set.
7Volume pricingQuantity break pricing, shown only when the variant has price breaks.
8Purchase optionsSubscription or delivery options, shown only when the product has selling plans.
9Gift card recipientRecipient name, email and message, shown only on gift card products.
10Buy buttonsAdd to cart and the accelerated checkout buttons. A variant that keeps selling at 0 stock says Pre-order instead.
11Back in stockA Notify me when available form, shown only when the selected variant is sold out.
12Pickup availabilityLocal pickup for the selected variant, shown only when a location offers it.
13Payment iconsA secure checkout line with your store's payment icons.
14Product upsellFrequently bought together, picked automatically.
15Icon listThree short reassurance claims with icons.
16DescriptionThe product description from the product admin page.
17Collapsible rowDetails, a closed accordion row.
18Collapsible rowShipping and returns, a closed accordion row.
19Product navigationPrevious and next links to the neighboring products.

Blocks marked shown only when render nothing on products that do not need them, so the page stays short even though the stack is long. Below the section, the template also places Product recommendations and a Sticky add to cart bar.

The section picker offers a second version of the section, Balm spotlight: a dark page with a stacked gallery, a radial halo background, a spinning badge, a specifications popup, an icon list and three collapsible rows. Use it as a starting point for a hero product.

Buy button styles

The Style setting of the Buy buttons block offers five looks. Each keeps its own Corner radius, Font weight and Letter case settings, so you can land anywhere between them.

StyleLooks likeGood for
Solid (default)A filled button in your color scheme's button color.Most stores. Reads clearly on any background.
OutlineA bordered button that fills in on hover.Quiet, editorial pages where the button should not shout.
SoftFilled, generously rounded, lifted by a soft shadow.A modern, app like feel.
Signature pillAn asymmetric italic pill with one square corner.A bold, branded look. The only style that can weld to the packs menu.
GlassA frosted panel: tinted fill, hairline border, blurred backdrop.Pages with a photo, gradient or halo background, where the button should sit in the artwork.

Welding joins the buy button to the Packs menu variant picker so the two read as one shape. It needs the Signature pill style, because the seam depends on its square corner. Turn on Weld to the buy button in the Variant picker block and Weld to the packs menu in the Buy buttons block.

About the Glass style

Glass takes its recipe from Theme settings, Glass effect: one tint, one opacity, one blur and one border opacity, shared by every glass surface. Change it once and the buy button, the upsell buttons, the popup trigger, the newsletter card and the cart panel move together.

The label keeps the text color of the section's color scheme. Balm measures the contrast between that color and the frosted surface, and only when it falls below 3:1 (the WCAG floor for large text) does it switch the label to black or white, whichever reads better. Over a background image or a gradient the backdrop changes from pixel to pixel, so the theme leaves your scheme color alone there: check the contrast yourself.

Glass is available on the buy button, on the Product upsell buttons (Button style, separate from the card style) and on the Popup trigger.

Variant picker styles

StyleLooks like
Buttons (pills) (default)Pill shaped option buttons.
Dropdown menuA select menu. Best when a product has many values.
Color swatchesRound color dots, from the swatches saved on your option values in the admin.
Image swatchesSmall image tiles, from the same swatches.
Signature pillLarge italic pills.
Packs menuA single pill that opens a menu of pack sizes, with a price per option.

Swatch styles fall back to a text pill for option values with no swatch saved. Unavailable option values grays out or hides combinations that cannot be bought. Products that belong to a combined listing switch to the sibling product when a shopper picks one of its values: see Combined listings.

Ready-made backgrounds

The Product section can paint its own background. The setting is Background mode, at the top of the section settings, with five modes: None (use the color scheme), Solid color, Gradient (two colors), Image and Radial halo. The template default is None (use the color scheme). The three combinations below are ready to copy.

A. Soft gradient

A near white wash that lifts the packshot without coloring it. These gradient colors are already typed into the template, so switching the mode is all it takes.

SettingValue
Background modeGradient (two colors)
Gradient start#faf8f5
Gradient end#ffffff
Gradient direction180
Show bottom curveOff

B. Warm paper

A single flat color. The calmest option, and the easiest to connect to a metafield so each product carries its own shade.

SettingValue
Background modeSolid color
Background color#f4f1ec
Show bottom curveOff

C. Radial halo

A dark halo anchored in one corner over a light base. The most dramatic of the three; use it when the packshot is cut out on a transparent background.

SettingValue
Background modeRadial halo
Base color#f4f1ea
Halo color#1a1a1a
Halo positionTop right
Halo size (desktop)160
Halo size (mobile)130
Halo solid area24
Show bottom curveOn, Curve color #ffffff

To give every product its own background color, connect these colors to product metafields: the step by step guide is on Metafields.

The accelerated checkout buttons

With Dynamic checkout buttons on, the wallet buttons (Shop Pay, PayPal, Google Pay, Apple Pay) show under Add to cart. Which ones appear depends on the payment methods your store has enabled and on the visitor's browser, so the row differs from one shopper to the next.

These buttons are drawn by Shopify, inside an element no theme and no app can style directly. Shopify exposes a short list of settings instead, and Balm sets all of them from your Add to cart button:

WhatFollows
HeightYour Button height setting, within Shopify's range of 25 to 55 px
Corner radiusYour Corner radius setting, the same value as Add to cart
ShadowRemoved, so the row stays flat like the buy button
AlignmentCentered
Space between wallet rowsMatched to the gap under the buy button
Loading placeholderYour color scheme, instead of Shopify's default gray

No theme can change the brand color of each button, its logo, its label or its font: Shop Pay stays purple and PayPal yellow on every Shopify store. Because Shopify caps the wallet height at 55 px, a Button height above 55 makes Add to cart taller than the wallet row; keep it at 55 or below if you want the two to match. The cart drawer and the cart page get the same treatment.

Product section settings

Settings of the Product section itself: background (with the product metafields they connect to), product vignette, bottom curve, layout, gallery, packshot captions, video and 3D, spacing, collapsible rows and breadcrumbs. Select the section in the editor, above its blocks, to see them.

Product section settings (85)
SettingValuesDefaultNotes
Color schemeColor schemeScheme 1
Section background
Pick a mode: a flat color, a two-color gradient, an image, or a radial halo. The settings for the mode you pick appear right below. Keep None to let the color scheme paint the section.
Background mode
  • None (use the color scheme)
  • Solid color
  • Gradient (two colors)
  • Image
  • Radial halo
None (use the color scheme)None lets the color scheme paint the section background, like every other section of the theme.
Background colors can be connected to a product metafield, so each product can carry its own color without a separate template. Create a product metafield of type "Color" in Settings → Custom data → Products, then use the dynamic source icon next to a color below.
Fallback background colorColorNoneDo not connect this one: it is the value used when a connected metafield is empty on a product. Leave it as None and those products fall back to the color scheme background instead.
Solid color settings
Background colorColor#F4F1ECTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Background color", set namespace and key to "custom.background_color", and choose type "Color". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists. Shown when Background mode is Solid color.
Gradient settings
Gradient startColor#F4F1ECTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Background color", set namespace and key to "custom.background_color", and choose type "Color". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists. Shown when Background mode is Gradient (two colors).
Gradient endColor#FFFFFFTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Background color end", set namespace and key to "custom.background_color_end", and choose type "Color". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists. Shown when Background mode is Gradient (two colors).
Gradient direction0 to 360 deg, step 15180 degShown when Background mode is Gradient (two colors).
Image settings
Background imageImageEmptyTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Background image", set namespace and key to "custom.background_image", and choose type "File". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists. Shown when Background mode is Image.
Overlay colorColor#000000To vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Overlay color", set namespace and key to "custom.overlay_color", and choose type "Color". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists. Shown when Background mode is Image.
Overlay opacity0 to 90%, step 50%Shown when Background mode is Image.
Radial halo settings
Base colorColor#F4F1ECTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Background color", set namespace and key to "custom.background_color", and choose type "Color". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists. Shown when Background mode is Radial halo.
Halo colorColor#1A1A1ATo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Accent color", set namespace and key to "custom.accent_color", and choose type "Color". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists. Shown when Background mode is Radial halo.
Halo position
  • Top right
  • Top left
  • Top
  • Center
  • Bottom right
  • Bottom left
Top rightShown when Background mode is Radial halo.
Halo size (desktop)40 to 260%, step 10160%Shown when Background mode is Radial halo.
Halo size (mobile)40 to 260%, step 10130%Shown when Background mode is Radial halo.
Halo solid area0 to 80%, step 224%How much of the halo stays a flat color before it fades out. Shown when Background mode is Radial halo.
Background · Product vignette
An image layer behind the product area. It stacks on top of the background above, so both can be used together.
Show product vignetteCheckboxOff
Vignette imageImageEmptyTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Background media", set namespace and key to "custom.background_media", and choose type "File". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists. Shown when Show product vignette is on.
Vignette opacity10 to 100%, step 5100%Shown when Show product vignette is on.
Vignette width (desktop)20 to 160%, step 570%Shown when Show product vignette is on.
Vignette horizontal align (desktop)
  • Left
  • Center
  • Right
RightShown when Show product vignette is on.
Vignette vertical align (desktop)
  • Top
  • Center
  • Bottom
CenterShown when Show product vignette is on.
Vignette horizontal offset (desktop)-300 to 300 px, step 100 pxShown when Show product vignette is on.
Vignette vertical offset (desktop)-300 to 300 px, step 100 pxShown when Show product vignette is on.
Vignette width (mobile)20 to 200%, step 5110%Shown when Show product vignette is on.
Vignette horizontal align (mobile)
  • Left
  • Center
  • Right
CenterShown when Show product vignette is on.
Vignette vertical align (mobile)
  • Top
  • Center
  • Bottom
TopShown when Show product vignette is on.
Vignette horizontal offset (mobile)-200 to 200 px, step 100 pxShown when Show product vignette is on.
Vignette vertical offset (mobile)-200 to 200 px, step 100 pxShown when Show product vignette is on.
Background · Bottom curve
Show bottom curveCheckboxOffSet the curve color to match the section below so the two blend.
Shape
  • None
  • Simple curve
  • Wave
  • Diagonal
  • Rounded concave
  • Rounded convex
  • Custom image
Simple curveShown when Show bottom curve is on.
Shape imageImageEmptyStretched to the band width and height, like the built-in shapes. A PNG or SVG with transparency works best. Shown when Show bottom curve is on and Shape is Custom image.
Curve colorColor#FFFFFFTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Curve color", set namespace and key to "custom.curve_color", and choose type "Color". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists. Shown when Show bottom curve is on and Shape is not None and Shape is not Custom image.
Flip curveCheckboxOffShown when Show bottom curve is on and Shape is not None.
Curve height (desktop)12 to 120 px, step 448 pxShown when Show bottom curve is on and Shape is not None.
Curve height (mobile)8 to 80 px, step 424 pxShown when Show bottom curve is on and Shape is not None.
Layout
Gallery width (desktop)40 to 65%, step 555%
Gap between columns (desktop)24 to 96 px, step 448 px
Sticky product info (desktop)CheckboxOn
One collapsible row open at a timeCheckboxOffOpening a row closes the others.
Media
Gallery layout
Desktop layout
  • Thumbnails below the viewer
  • Thumbnails left of the viewer
  • Thumbnails right of the viewer
  • Stacked (all media, no viewer)
  • Grid
  • Full-frame carousel
Thumbnails below the viewer
Mobile layout
  • Carousel (swipe)
  • Thumbnails below the viewer
  • Stacked (all media, no viewer)
  • Grid
Carousel (swipe)
Columns (desktop)1 to 42Only used by the Grid layout.
Columns (mobile)1 to 41
Gap between media (desktop)0 to 40 px, step 412 px
Gap between media (mobile)0 to 32 px, step 48 px
Viewer height (desktop)0 to 900 px, step 500 px0 = follow the media aspect ratio.
Carousel position indicator
  • Dots
  • Counter
  • None
Dots
Next-slide peek (mobile)0 to 40 px, step 40 pxShows a sliver of the next media so the carousel reads as swipeable.
Media ratio (desktop)
  • Original (never crops)
  • Square (1:1)
  • Landscape (4:3)
  • Portrait (3:4)
  • Wide (16:9)
Original (never crops)
Media ratio (mobile)
  • Same as desktop
  • Original
  • Square (1:1)
  • Landscape (4:3)
  • Portrait (3:4)
Same as desktop
Fit (when a ratio is set)
  • Fill (crops)
  • Contain (never crops)
Fill (crops)
Media corner radius0 to 48 px, step 40 pxCapped by the global corner setting (Theme settings → Corner style).
Show thumbnailsCheckboxOn
Thumbnail size40 to 96 px, step 864 px
Thumbnail size (mobile)40 to 96 px, step 856 px
Zoom imageCheckboxOn
Maximum zoom level2 to 6 x3 xClick or tap the image to step through the levels.
Promo badgeCheckboxOn
Badge textTextTranslated textTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Badge label", set namespace and key to "custom.badge_label", and choose type "Single line text". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists. Leave empty to use the translated default.
Packshot captions
Adds a caption under each media. Designed for cut-out packshots; combines with every gallery layout, and media with no caption simply render without one.
Show captionsCheckboxOff
Caption source
  • Media alt text
  • Product metafield (list)
Media alt text
MetafieldTextEmptynamespace.key of a list.single_line_text_field. Entry 1 captions media 1, and so on. Falls back to the alt text.
Style
  • Subtle
  • Spaced capitals
  • Display italic
Subtle
Caption size (desktop)10 to 24 px13 px
Caption size (mobile)10 to 22 px12 px
Caption weight
  • Regular
  • Medium
  • Semibold
  • Bold
Regular
Caption case
  • As typed
  • UPPERCASE
  • lowercase
  • Capitalize
As typed
Caption alignment
  • Left
  • Center
  • Right
Center
Caption colorColorNoneLeave transparent to inherit the color scheme text color.
Space above the caption0 to 32 px, step 210 px
Video and 3D
Show video controlsCheckboxOn
Autoplay videosCheckboxOffBrowsers only honor autoplay on muted videos.
Loop videosCheckboxOff
Mute videosCheckboxOn
Show the AR button on 3D modelsCheckboxOnHidden automatically on devices with no AR support.
Spacing
Top padding (desktop)0 to 120 px, step 440 px
Bottom padding (desktop)0 to 120 px, step 464 px
Top padding (mobile)0 to 80 px, step 424 px
Bottom padding (mobile)0 to 80 px, step 440 px
Collapsible rows
Set the space between rows hereCheckboxOffOverrides the spacing of every collapsible row at once. Leave off to keep each row's own spacing.
Space between rows (desktop)0 to 48 px, step 216 pxShown when Set the space between rows here is on.
Space between rows (mobile)0 to 40 px, step 212 pxShown when Set the space between rows here is on.
Breadcrumbs
Breadcrumbs on this page
  • Use the theme setting
  • Show
  • Hide
Use the theme settingOverrides Theme settings for this page only. Position and separator stay global.
Breadcrumbs alignment
  • Use the theme setting
  • Left
  • Center
  • Right
Use the theme setting

Blocks

Every block of the product information column, with the name the block picker shows. Settings that can be connected to a product metafield say so in their notes, with the exact definition to create; the full list is on Metafields.

Title

The product title, the main heading of the page. Keep one Title block on H1; any extra title block should use a subheading level.

Block settings (10)
SettingValuesDefaultNotes
Heading level
  • Main heading (H1)
  • Subheading (H2)
  • Subheading (H3)
Subheading (H2)A page should have exactly one main heading. Leave any extra title block on a subheading level.
Typography style
  • House style (italic, caps)
  • Neutral
  • Uppercase
  • Italic
  • Italic uppercase
  • As typed
House style (italic, caps)
Size (desktop)24 to 96 px, step 448 px
Size (mobile)20 to 64 px, step 432 px
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 48 px, step 412 px
Margin bottom (mobile)0 to 48 px, step 48 px

Vendor

The brand or maker name, from the product admin page.

Block settings (6)
SettingValuesDefaultNotes
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 48 px, step 48 px
Margin bottom (mobile)0 to 48 px, step 48 px

Price

The price, the compare-at price, the unit price and an optional taxes and shipping note. It follows the selected variant.

Block settings (11)
SettingValuesDefaultNotes
Show compare-at priceCheckboxOn
Show unit priceCheckboxOn
Taxes and shipping noteCheckboxOnSays when prices include tax, and links your shipping policy when one is published. Nothing shows on a store with neither.
Size (desktop)12 to 48 px, step 424 px
Size (mobile)12 to 40 px, step 420 px
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 48 px, step 416 px
Margin bottom (mobile)0 to 48 px, step 412 px

SKU

The SKU of the selected variant, with an optional prefix.

Block settings (7)
SettingValuesDefaultNotes
PrefixTextTranslated textLeave empty to use the translated default.
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 48 px, step 48 px
Margin bottom (mobile)0 to 48 px, step 48 px

Rating

Stars, the numeric value and the review count, read from the standard reviews.rating and reviews.rating_count metafields that review apps fill. It renders nothing until an app fills them.

Block settings (14)
SettingValuesDefaultNotes
Reads the standard reviews.rating metafields. The block renders nothing until a review app fills them.
Show the numeric valueCheckboxOn
Show the review countCheckboxOn
Star size (desktop)10 to 32 px16 px
Star size (mobile)10 to 28 px14 px
Text size (desktop)10 to 22 px13 px
Text size (mobile)10 to 20 px12 px
Star colorColorNoneLeave transparent to inherit the text color.
Alignment (desktop)
  • Left
  • Center
  • Right
Left
Spacing
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 64 px, step 412 px
Margin bottom (mobile)0 to 48 px, step 48 px

Text

A free rich text paragraph. Connect it to the custom.tagline metafield to give each product its own tagline.

Block settings (9)
SettingValuesDefaultNotes
TextRich textAdd extra details about your product.To vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Tagline", set namespace and key to "custom.tagline", and choose type "Single line text". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists.
Size (desktop)12 to 24 px, step 214 px
Size (mobile)12 to 20 px, step 212 px
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 48 px, step 412 px
Margin bottom (mobile)0 to 48 px, step 48 px

Variant picker

The options the customer chooses from, in one of six styles (see Variant picker styles). It handles products with many variants, combined listings and unavailable combinations.

Block settings (15)
SettingValuesDefaultNotes
Style
  • Buttons (pills)
  • Dropdown menu
  • Color swatches
  • Image swatches
  • Signature pill
  • Packs menu
Buttons (pills)Swatch styles fall back to a text pill for option values with no swatch saved in the admin.
A pill that opens a menu listing every option with its price.
Show a price per optionCheckboxOnPrices follow the selection and the currency automatically. Shown when Style is Packs menu.
Weld to the buy buttonCheckboxOffAlso turn this on in the Buy buttons block so both share one row. Shown when Style is Packs menu.
Show option namesCheckboxOn
Show the selected value next to the option nameCheckboxOn
Swatches
Swatch shape
  • Circle
  • Rounded
  • Square
CircleCapped by the global Corner style setting, like the rest of the theme.
Size (desktop)24 to 72 px, step 444 px
Size (mobile)20 to 64 px, step 436 px
Unavailable combinations
Unavailable option values
  • Gray out (recommended)
  • Hide
Gray out (recommended)Graying out keeps the full range visible, which helps product discovery.
Spacing
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 48 px, step 416 px
Margin bottom (mobile)0 to 48 px, step 412 px

Quantity

The quantity selector. It respects the minimum, maximum and increment of quantity rules set in B2B catalogs.

Block settings (8)
SettingValuesDefaultNotes
Show labelCheckboxOn
LabelTextTranslated textLeave empty to use the translated default. Shown when Show label is on.
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 48 px, step 416 px
Margin bottom (mobile)0 to 48 px, step 412 px

Volume pricing

Quantity price breaks, as a table or a list. It renders nothing when the variant has none.

Block settings (12)
SettingValuesDefaultNotes
Shows quantity price breaks when the product has them. Renders nothing otherwise.
Show headingCheckboxOn
HeadingTextTranslated textLeave empty to use the translated default. Shown when Show heading is on.
Style
  • Table
  • List
Table
Show the price for the chosen quantityCheckboxOn
Text size (desktop)10 to 22 px13 px
Text size (mobile)10 to 20 px12 px
Spacing
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 64 px, step 416 px
Margin bottom (mobile)0 to 48 px, step 412 px

Purchase options

One-time purchase and subscription options from your subscription app, with the plan names, descriptions and savings. It renders nothing unless the product has a selling plan.

Block settings (13)
SettingValuesDefaultNotes
Shows one-time and subscription options. Renders nothing unless the product has a selling plan.
HeadingTextTranslated textLeave empty to use the translated default.
One-time purchase labelTextTranslated textLeave empty to use the translated default.
Show the plan group nameCheckboxOn
Show the plan descriptionCheckboxOn
Show the savingsCheckboxOn
Text size (desktop)11 to 22 px14 px
Text size (mobile)10 to 20 px13 px
Spacing
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 64 px, step 416 px
Margin bottom (mobile)0 to 48 px, step 412 px

Gift card recipient

Lets the buyer send a gift card to someone else, with a name, an email, a message and a send date. It only renders on gift card products.

Block settings (9)
SettingValuesDefaultNotes
Lets the buyer send the gift card to someone else. Only renders on gift card products.
Toggle labelTextTranslated textLeave empty to use the translated default.
Text size (desktop)11 to 22 px14 px
Text size (mobile)10 to 20 px13 px
Spacing
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 64 px, step 416 px
Margin bottom (mobile)0 to 48 px, step 412 px

Buy buttons

Add to cart, the accelerated checkout buttons and the Shop Pay Installments banner. See Buy button styles and accelerated checkout.

Block settings (19)
SettingValuesDefaultNotes
Style
  • Solid
  • Outline
  • Soft
  • Signature pill
  • Glass
SolidSignature pill keeps its own shape and italic type, and is the only style that can weld to the packs menu. Glass uses the global Glass effect (Theme settings). Its label keeps the section text color and is switched automatically only if that color would fall below a 3:1 contrast on the frosted surface.
Corner style
  • Follow the theme corners
  • Custom radius
Follow the theme cornersFollowing the theme corners makes the buttons pills in a rounded theme and square in a square one. Shown when Style is not Signature pill.
Corner radius0 to 48 px, step 48 pxIgnored by the signature pill. Shown when Style is not Signature pill and Corner style is Custom radius.
Button height40 to 64 px, step 252 pxAlso drives the accelerated checkout button. Shopify caps that one at 55px, so above 55 the two heights stop matching.
Font weight
  • Theme setting
  • Regular
  • Medium
  • Semibold
  • Bold
  • Extra bold
Theme settingShown when Style is not Signature pill.
Letter case
  • Theme setting
  • As typed
  • Uppercase
  • Lowercase
  • Capitalize
Theme settingShown when Style is not Signature pill.
Add to cart labelTextTranslated textTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Buy button label", set namespace and key to "custom.buy_button_label", and choose type "Single line text". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists. Leave empty to use the translated default.
Sold out labelTextTranslated textLeave empty to use the translated default.
Unavailable labelTextTranslated textLeave empty to use the translated default.
Dynamic checkout buttonsCheckboxOnWallet buttons (Shop Pay, PayPal, Google Pay, Apple Pay) are rendered by Shopify, not by the theme. This theme matches everything Shopify allows a theme to set: height, corner radius, shadow, alignment, spacing between rows and the loading placeholder. Their brand color, logo, label text and font are fixed by each payment provider and cannot be changed by any theme, because the button markup sits in a closed shadow DOM. That is a Shopify rule, not a fault in this theme. Height is also capped by Shopify between 25 and 55 px. Everything that can be matched is taken from the Add to cart button above, so raising its height past 55 px is the one case where the two stop lining up.
Shop Pay Installments bannerCheckboxOnShows the pay-in-installments message under the buttons. Shopify renders it, and only when Shop Pay Installments is enabled for your store.
Weld to the packs menuCheckboxOffPairs with the same setting in the Variant picker block. Overrides full width. Shown when Style is Signature pill.
Full widthCheckboxOn
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 48 px, step 424 px
Margin bottom (mobile)0 to 48 px, step 416 px

Stock status

In stock, low stock or out of stock for the selected variant, with a colored dot and an optional exact quantity. Low stock only applies when inventory is tracked and the variant stops selling at zero.

Block settings (18)
SettingValuesDefaultNotes
Reads the variant's inventory. "Low stock" only applies when inventory is tracked and the variant stops selling at zero.
Show the exact quantityCheckboxOffOnly shown when inventory is tracked.
Low stock threshold1 to 5010
In-stock labelTextTranslated textLeave empty to use the translated default.
Low-stock labelTextTranslated textLeave empty to use the translated default.
Out-of-stock labelTextTranslated textLeave empty to use the translated default.
In-stock colorColor#2E7D32
Low-stock colorColor#E0921A
Out-of-stock colorColor#B3261E
Dot size4 to 20 px8 px
Text size (desktop)10 to 22 px13 px
Text size (mobile)10 to 20 px12 px
Alignment (desktop)
  • Left
  • Center
  • Right
Left
Spacing
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 64 px, step 412 px
Margin bottom (mobile)0 to 48 px, step 48 px

Back in stock

A back in stock form, shown only while the selected variant is sold out. Requests arrive as contact form messages, at the store address set in Settings, Notifications, and name the exact variant; no app is needed.

Block settings (16)
SettingValuesDefaultNotes
Only shown while the variant the shopper selected is sold out. Requests arrive as a contact form message, at the store address set in Settings, then Notifications, and name the exact variant.
Show headingCheckboxOn
HeadingTextTranslated textLeave empty to use the translated default. Shown when Show heading is on.
SubtextRich textEmpty
Ask for a nameCheckboxOff
Email placeholderTextTranslated textLeave empty to use the translated default.
Button labelTextTranslated textLeave empty to use the translated default.
Success messageTextTranslated textLeave empty to use the translated default.
Style
Button style
  • Solid
  • Glass
SolidGlass uses the global Glass effect (Theme settings). Check contrast over the section background.
Text size (desktop)11 to 20 px14 px
Text size (mobile)11 to 18 px13 px
Spacing
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 64 px, step 420 px
Margin bottom (mobile)0 to 48 px, step 416 px

Pickup availability

Local pickup availability for the selected variant, and a button that opens the list of locations. It renders nothing unless a location has pickup enabled.

Block settings (6)
SettingValuesDefaultNotes
Shows local pickup availability for the selected variant. Renders nothing unless a location has pickup enabled.
Spacing
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 64 px, step 416 px
Margin bottom (mobile)0 to 48 px, step 412 px

Payment icons

A reassurance line and the icons of the payment methods enabled in your store (Settings, Payments). A theme cannot add or reorder these icons; to show another badge, upload it as the block image.

Block settings (14)
SettingValuesDefaultNotes
The marks are your store's own enabled payment methods (Settings, then Payments). A theme cannot add, remove or reorder them. To show a badge Shopify does not know about, upload it as the image below.
Show the reassurance lineCheckboxOn
TextTextTranslated textLeave empty to use the translated default.
ImageImageEmptyDrawn under the payment marks. Use it for a trust badge, a delivery promise or a guarantee.
Alignment (desktop)
  • Left
  • Center
  • Right
Left
Icon size20 to 48 px, step 232 px
Space between icons2 to 20 px, step 28 px
Text size (desktop)10 to 20 px12 px
Text size (mobile)10 to 18 px11 px
Spacing
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 64 px, step 416 px
Margin bottom (mobile)0 to 48 px, step 412 px

Product upsell

Products to buy alongside this one, from Shopify recommendations or your own selection. Bundle (tick boxes, one total) adds every ticked product in one action; Simple list (add one by one) adds them separately.

Block settings (31)
SettingValuesDefaultNotes
Show headingCheckboxOn
HeadingTextTranslated textLeave empty to use the translated default. Shown when Show heading is on.
Presentation
  • Bundle (tick boxes, one total)
  • Simple list (add one by one)
Bundle (tick boxes, one total)Bundle adds every ticked product in one action.
Source
Products come from
  • Shopify recommendations
  • A manual selection
Shopify recommendations
Recommendation intent
  • Complementary (pairs well with)
  • Related (similar products)
Complementary (pairs well with)Only used with Shopify recommendations.
ProductsProduct listEmptyConnectable to a product list metafield.
Number of products2 to 103Shopify recommendations return 10 products at most.
Layout
Layout
  • List (thumbnail beside the text)
  • Grid
List (thumbnail beside the text)
Columns (desktop)1 to 43
Columns (mobile)1 to 41
Show product imageCheckboxOn
Thumbnail size40 to 120 px, step 464 px
Content
Show priceCheckboxOn
Show compare-at priceCheckboxOn
Tick every product by defaultCheckboxOnBundle mode only.
Products with several variants
  • Pick the variant inline
  • Link to the product page
Pick the variant inlineSingle-variant products are always addable inline.
Bundle button labelTextTranslated textLeave empty to use the translated default.
Row button labelTextTranslated textLeave empty to use the translated default.
Style
Card style
  • Bare
  • Bordered
  • Filled
  • Glass
BorderedGlass uses the global Glass effect (Theme settings). Check contrast over the section background.
Button style
  • Solid
  • Glass
SolidGlass uses the global Glass effect (Theme settings). Check contrast over the section background.
Corner radius0 to 40 px, step 212 pxCapped by the global corner radius (Theme settings, Corner style).
Card title size (desktop)10 to 24 px14 px
Card title size (mobile)10 to 22 px13 px
Spacing
Card gap (desktop)0 to 40 px, step 212 px
Card gap (mobile)0 to 32 px, step 210 px
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 64 px, step 420 px
Margin bottom (mobile)0 to 48 px, step 416 px

Complementary products

A small grid of product cards: complementary products from Shopify recommendations, curated in the Search & Discovery app, or your own selection, which can be connected to a product list metafield.

Block settings (17)
SettingValuesDefaultNotes
Show headingCheckboxOn
HeadingTextTranslated textLeave empty to use the translated default. Shown when Show heading is on.
Products come from
  • Shopify recommendations
  • A manual selection
Shopify recommendations
ProductsProduct listEmptyConnectable to a product list metafield.
Number of products2 to 84
Columns (desktop)1 to 42
Columns (mobile)1 to 42
Card title size (desktop)10 to 28 px14 px
Card title size (mobile)10 to 24 px13 px
Spacing
Card gap (desktop)0 to 40 px, step 216 px
Card gap (mobile)0 to 32 px, step 212 px
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 64 px, step 420 px
Margin bottom (mobile)0 to 48 px, step 416 px

Description

The product description from the product admin page.

Block settings (8)
SettingValuesDefaultNotes
Size (desktop)12 to 24 px, step 216 px
Size (mobile)12 to 20 px, step 214 px
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 48 px, step 416 px
Margin bottom (mobile)0 to 48 px, step 412 px

Collapsible row

An accordion row whose content is rich text, which can be connected to a metafield, or a page, to share one policy page across every product. The Product section can keep only one row open at a time.

Block settings (13)
SettingValuesDefaultNotes
HeadingTextCollapsible rowTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Row heading", set namespace and key to "custom.row_heading", and choose type "Single line text". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists.
Content comes from
  • Rich text
  • A page
Rich text
ContentRich textShare details about shipping, returns, materials or care instructions.To vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Ingredients", set namespace and key to "custom.ingredients", and choose type "Rich text". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists.
PagePageEmptyShare one policy page across every product.
IconImageEmpty
Icon size12 to 48 px, step 220 px
Open by defaultCheckboxOff
Spacing
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 48 px, step 416 px
Margin bottom (mobile)0 to 48 px, step 412 px

Popup

A link or button that opens a dialog with rich text or a page. The Under-title link style sits right below the product title.

Block settings (18)
SettingValuesDefaultNotes
Trigger labelTextSize guideTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Specs label", set namespace and key to "custom.specs_label", and choose type "Single line text". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists.
Trigger style
  • Link
  • Button
  • Glass button
  • Under-title link
LinkUnder-title link is a quiet underlined caption meant to sit right below the product title.
Alignment (desktop)
  • Left
  • Center
  • Right
Left
Text size (desktop)10 to 24 px14 px
Text size (mobile)10 to 22 px13 px
Modal content
Modal titleTextEmpty
Content comes from
  • Rich text
  • A page
Rich text
ContentRich textDescribe your sizing, composition or shipping details here.To vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Specifications", set namespace and key to "custom.specifications", and choose type "Rich text". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists.
PagePageEmptyShare one policy page across every product.
Modal width320 to 900 px, step 20560 px
Spacing
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 64 px, step 416 px
Margin bottom (mobile)0 to 48 px, step 412 px
Margin top (desktop)-40 to 40 px, step 40 pxUse a negative value to tuck the trigger under the block above.
Margin top (mobile)-32 to 32 px, step 40 px

Specifications

A label and value table built from Specification blocks, with lines, dots or zebra stripes between rows.

Block settings (17)
SettingValuesDefaultNotes
HeadingTextEmpty
Style
Row separator
  • Line
  • Dotted
  • Zebra
  • None
Line
Value alignment
  • Left
  • Center
  • Right
Right
Typography
Label size (desktop)10 to 24 px13 px
Label size (mobile)10 to 22 px12 px
Value size (desktop)10 to 24 px13 px
Value size (mobile)10 to 22 px12 px
Spacing
Row padding (desktop)0 to 32 px, step 210 px
Row padding (mobile)0 to 28 px, step 28 px
Gap between columns (desktop)8 to 80 px, step 424 px
Gap between columns (mobile)8 to 64 px, step 416 px
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 64 px, step 420 px
Margin bottom (mobile)0 to 48 px, step 416 px

Accepts these blocks inside it: Specification.

Specification

One row of the Specifications block. Both the label and the value can be connected to product metafields.

Block settings (2)
SettingValuesDefaultNotes
LabelTextLabelTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Spec label", set namespace and key to "custom.spec_label", and choose type "Single line text". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists.
ValueTextValueTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Net weight", set namespace and key to "custom.net_weight", and choose type "Single line text". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists.

Icon list

Reassurance claims built from Icon item blocks, stacked, side by side, or on one row with a button.

Block settings (27)
SettingValuesDefaultNotes
HeadingTextEmpty
Layout
Style
  • Vertical (icon beside the text)
  • Horizontal (icon above the text)
  • Inline with button
Vertical (icon beside the text)
Claims sit on one row with the button on the right. Each claim takes an equal share, so the row stays centered whatever the number.
Button labelTextShop nowShown when Style is Inline with button.
Button linkLinkEmptyShown when Style is Inline with button.
Button style
  • Filled pill
  • Outlined
  • Text link
Filled pillShown when Style is Inline with button.
Button text size (desktop)12 to 34 px20 pxShown when Style is Inline with button.
Button text size (mobile)11 to 28 px16 pxShown when Style is Inline with button.
Space before the button8 to 80 px, step 424 pxShown when Style is Inline with button.
Columns (desktop)1 to 41Ignored in the inline layout, where the claim count sets the columns.
Columns (mobile)1 to 41
Alignment (desktop)
  • Left
  • Center
  • Right
Left
Icon size (desktop)14 to 72 px, step 228 px
Icon size (mobile)12 to 64 px, step 224 px
Typography
Title size (desktop)10 to 28 px14 px
Title size (mobile)10 to 24 px13 px
Body text size (desktop)10 to 24 px13 px
Body text size (mobile)10 to 22 px12 px
Spacing
Gap between items (desktop)0 to 48 px, step 214 px
Gap between items (mobile)0 to 40 px, step 210 px
Gap icon/text (desktop)0 to 32 px, step 212 px
Gap icon/text (mobile)0 to 28 px, step 210 px
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 64 px, step 420 px
Margin bottom (mobile)0 to 48 px, step 416 px

Accepts these blocks inside it: Icon item.

Icon item

One claim of the Icon list: a built in glyph or your own image, a heading and a text.

Block settings (5)
SettingValuesDefaultNotes
Icon type
  • Built-in glyph
  • Image
  • No icon
Built-in glyph
Glyph
  • Check
  • Leaf
  • Shield
  • Truck
  • Refresh
  • Drop
  • Heart
  • Star
Check
Icon imageImageEmptyTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Claim icon", set namespace and key to "custom.claim_icon", and choose type "File". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists.
HeadingTextYour highlightTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Claim title", set namespace and key to "custom.claim_title", and choose type "Single line text". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists.
TextTextEmptyTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Claim body", set namespace and key to "custom.claim_body", and choose type "Single line text". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists.

Image

An image inside the information column, with an optional caption. Connect it to a metafield to show a different image per product.

Block settings (17)
SettingValuesDefaultNotes
ImageImageEmptyTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Product image", set namespace and key to "custom.product_image", and choose type "File". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists.
Image width (desktop)10 to 100%, step 5100%
Image width (mobile)10 to 100%, step 5100%
Aspect ratio
  • Original
  • Square (1:1)
  • Landscape (4:3)
  • Portrait (3:4)
  • Wide (16:9)
Original
Fit (when a ratio is set)
  • Fill (crops)
  • Contain (never crops)
Fill (crops)
Alignment (desktop)
  • Left
  • Center
  • Right
Left
Corner radius0 to 60 px, step 40 pxCapped by the global corner setting (Theme settings → Corner style).
Caption
CaptionTextEmptyTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Image caption", set namespace and key to "custom.image_caption", and choose type "Single line text". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists.
Text size (desktop)10 to 22 px13 px
Text size (mobile)10 to 20 px12 px
Space above the caption0 to 24 px, step 28 px
Spacing
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 64 px, step 420 px
Margin bottom (mobile)0 to 48 px, step 416 px

Badge

Automatic (Sale, Sold out, New, Custom) shows the same badges as the product cards, styled in Theme settings, Product badges. Text and Image place a sticker of your own in a corner of the gallery.

Block settings (19)
SettingValuesDefaultNotes
Badge type
  • Text
  • Image
  • Automatic (Sale, Sold out, New, Custom)
TextAutomatic draws the same badges as the product cards, from Theme settings, Product badges. Text and Image are a sticker of your own.
Custom badge metafieldTextEmptynamespace.key of a product text metafield, for example custom.badge. Colours, shape and position are in Theme settings, Product badges.
TextTextNewTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Badge label", set namespace and key to "custom.badge_label", and choose type "Single line text". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists.
ImageImageEmpty
Position
  • Top left
  • Top right
  • Bottom left
  • Bottom right
Top right
Size (desktop)40 to 200 px, step 496 px
Size (mobile)32 to 160 px, step 468 px
Edge offset (desktop)0 to 80 px, step 412 px
Edge offset (mobile)0 to 60 px, step 48 px
Text size (desktop)8 to 32 px13 px
Text size (mobile)8 to 26 px11 px
Badge backgroundColor#121212To vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Badge background", set namespace and key to "custom.badge_background", and choose type "Color". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists.
Badge text colorColor#FFFFFFTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Badge text color", set namespace and key to "custom.badge_text_color", and choose type "Color". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists.
Spacing
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 64 px, step 40 px
Margin bottom (mobile)0 to 48 px, step 40 px

Spinning badge

A round badge with text turning around a ring, placed over a corner of the product image or behind it. The rotation stops for visitors who ask for reduced motion.

Block settings (16)
SettingValuesDefaultNotes
TextTextYour claim hereTo vary this per product, create the metafield first. Go to Settings → Custom data → Products. Name it "Badge label", set namespace and key to "custom.badge_label", and choose type "Single line text". Then come back here and connect it with the dynamic source icon. It cannot be connected until it exists.
Repeats1 to 63How many times the text goes around the circle.
SeparatorText·
Text size6 to 2011Relative to the badge, so it scales on every screen.
Text colorColor#FFFFFF
Background colorColorNoneLeave transparent for text only.
Motion
One full turn4 to 60 s, step 220 sRotation stops for visitors who ask for reduced motion.
Direction
  • Clockwise
  • Anticlockwise
Clockwise
Position
Anchor
  • Top left
  • Top right
  • Middle left
  • Middle right
  • Bottom left
  • Bottom right
Top right
Place behind the productCheckboxOffThe product image cuts into the ring.
Size (desktop)60 to 260 px, step 4140 px
Size (mobile)40 to 180 px, step 496 px
Horizontal offset (desktop)-200 to 200 px, step 40 px
Vertical offset (desktop)-200 to 200 px, step 40 px
Horizontal offset (mobile)-140 to 140 px, step 40 px
Vertical offset (mobile)-140 to 140 px, step 40 px

Share

Share links for X, Facebook and Pinterest, and a copy link button.

Block settings (15)
SettingValuesDefaultNotes
Show labelCheckboxOn
LabelTextTranslated textLeave empty to use the translated default. Shown when Show label is on.
Show XCheckboxOn
Show FacebookCheckboxOn
Show PinterestCheckboxOn
Show copy linkCheckboxOn
Alignment (desktop)
  • Left
  • Center
  • Right
Left
Text size (desktop)9 to 20 px12 px
Text size (mobile)9 to 18 px11 px
Spacing
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 64 px, step 416 px
Margin bottom (mobile)0 to 48 px, step 412 px

Product navigation

Links to the previous and next product of a collection (the product's first collection by default). Only the first 50 products of the collection are read.

Block settings (16)
SettingValuesDefaultNotes
Links to the previous and next product. Only the first 50 products of the collection are read.
CollectionCollectionEmptyLeave empty to use the product's first collection.
Loop aroundCheckboxOnThe last product links back to the first.
Previous labelTextTranslated textLeave empty to use the translated default.
Next labelTextTranslated textLeave empty to use the translated default.
Show product namesCheckboxOn
Layout
Style
  • Text link
  • Outlined pill
Text link
Horizontal alignment
  • Opposite edges
  • Left
  • Center
  • Right
Opposite edges
Gap8 to 64 px, step 424 px
Size (desktop)10 to 24 px14 px
Size (mobile)9 to 20 px12 px
Spacing
Padding top (desktop)0 to 80 px, step 40 px
Padding top (mobile)0 to 64 px, step 40 px
Padding bottom (desktop)0 to 80 px, step 40 px
Padding bottom (mobile)0 to 64 px, step 40 px
Margin bottom (desktop)0 to 64 px, step 416 px
Margin bottom (mobile)0 to 48 px, step 412 px

Sticky add to cart

The sticky add to cart bar as a block, for a product template that does not use the Sticky add to cart section. Use one or the other, not both.

Block settings (12)
SettingValuesDefaultNotes
Enable the barCheckboxOnRenders the bar for this product page. Leave the separate Sticky add to cart section off if you use this block: the first bar on the page is the one that gets wired.
Position
Position (desktop)
  • Top
  • Bottom
Bottom
Position (mobile)
  • Top
  • Bottom
Bottom
Bar height56 to 120 px, step 280 px
Displayed content
Product thumbnail (desktop)CheckboxOn
Product thumbnail (mobile)CheckboxOff
Product titleCheckboxOn
Selected variantCheckboxOn
PriceCheckboxOn
Behavior
Always visibleCheckboxOffUnchecked: the bar appears when the main buy button scrolls out of view.
Button
Button backgroundColor#FFFFFF
Button textColor#111111An accent inherited from the product section only replaces this color when it stays readable on the button background.

Liquid

Your own Liquid or HTML, or the insertion code of an app that has no app block. See Custom code.

Block settings (5)
SettingValuesDefaultNotes
Liquid codeLiquid codeEmptyAdd app snippets or any other Liquid / HTML code.
Top padding (desktop)0 to 80 px, step 40 px
Top padding (mobile)0 to 64 px, step 40 px
Bottom padding (desktop)0 to 80 px, step 40 px
Bottom padding (mobile)0 to 64 px, step 40 px

When one product needs a different layout

Metafields let one template carry different colors, texts and images per product. Some settings cannot be connected to a metafield: sliders, checkboxes, dropdowns, the color scheme and Liquid code. When a product needs a different value for one of those, create a second template: in the theme editor, open Products in the page menu, choose Create template, base it on the default product template, then assign it to the product from its admin page, under Theme template.

Products that used an older template

Early versions of Balm shipped extra product templates. They have been folded into the default one. A product still assigned to one of them falls back to the default product template and renders normally. To clear the setting, open the product in the admin and choose Default product under Theme template.