BalmDocumentation

Theme settings

Theme settings apply to the whole store. Open them in the theme editor with the Theme settings icon (the gear) in the left bar. The groups below follow the order of the editor, and every label is written exactly as the editor shows it. The Default column gives the theme's built in value; the Balm preset, which your store starts from, replaces the colors, fonts, corners, glass and typography values with its own.

Colors

Balm organizes its colors in color schemes. A scheme is a set of seven colors designed to work together, and every section, popup and drawer picks one scheme with its own Color scheme setting. Edit a scheme here and every place that uses it follows.

The Balm preset ships two schemes. Scheme 1 is the main one, white; Scheme 2 is its contrasting partner, near black. Add as many schemes as you need with Add scheme.

  • Background: the section background. Background gradient is optional and replaces it where set.
  • Text: body text, headings and icons.
  • Button / accent and Button label: the fill and the text of primary buttons.
  • Secondary background: the second surface of the scheme, used by cards, drawers, panels, inputs and secondary buttons. Balm derives a raised tone and a hairline from it, so dark schemes keep visible layers.
  • Accent (links / highlights): links and highlighted details.

Keep the text and button colors readable on their background: aim for a contrast ratio of at least 4.5:1 for body text. Glass surfaces measure their own contrast and switch the label to black or white when needed, but plain surfaces use exactly the colors you set.

Settings (7)
SettingValuesDefaultNotes
BackgroundColor#FFFFFF
Background gradientGradientEmptyOptional. Falls back to the solid background when empty.
TextColor#121212
Button / accentColor#1A1A1A
Button labelColor#FFFFFF
Secondary backgroundColor#F4F1EA
Accent (links / highlights)Color#1A1A1A

Typography

Two fonts drive the whole theme: the Heading font for headings and titles, and the Body font for paragraphs, forms and everything else. Both come from the Shopify font library, so they are served by Shopify and free to use on your store.

Three shared recipes follow. Headings sets the case, the slant and the weight of every display heading. Button labels sets the case, weight, letter spacing and slant of every button. Labels and small text sets the case of eyebrows, badges, prices, filters, variant pills, the announcement bar, the footer links and the main menu. Because the recipes are global, a section title, a product card and a page title always speak with the same voice.

Not every family offers every weight or an italic. When a family lacks the face you ask for, the browser uses the closest one it has, or slants an upright face. The help text of Heading style lists the weights available in italic for the default font.

Settings (10)
SettingValuesDefaultNotes
Heading fontFontFraunces 600Used for headings and titles.
Body fontFontKarla 400Used for body text, paragraphs, forms.
Headings
One shared recipe for every display heading in the theme, so a section title, a product card title and a page title all speak with the same voice. Case, slant and weight stack: set all three loud and a heading reads as heavy rather than editorial, whatever the font.
Heading case
  • Uppercase
  • As typed
As typedAs typed keeps the lowercase letterforms the display face was drawn for. Uppercase reads louder and is best paired with a lighter weight.
Heading style
  • Upright
  • Italic
UprightItalic headings are available at weights 400, 500, 700, 800 and 900. Pairing italic with weight 600 asks for a face the theme does not load, and the browser slants an upright one instead.
Heading weight
  • Regular
  • Medium
  • Semibold
  • Bold
  • Extrabold
  • Black
Semibold
Button labels
One shared recipe for every button label in the theme, so a product card, an add to cart and a footer newsletter all speak with the same voice. Pick the case first, then the letter spacing that case needs: sentence case sits at None or Hairline, uppercase needs Subtle or wider to keep its capitals apart.
Label case
  • Uppercase
  • As typed
As typedAs typed is the shipped default and reads as a contemporary control. Uppercase reads louder and needs the letter spacing raised with it.
Label weight
  • Regular
  • Medium
  • Semibold
  • Bold
  • Extrabold
Semibold
Label letter spacing
  • None
  • Hairline
  • Tight
  • Subtle
  • Standard
  • Wide
  • Widest
NoneSentence case labels want None or Hairline. Uppercase labels want Subtle or wider, because capitals are drawn with lowercase sidebearings and collide when set solid. Past roughly Widest a label reads as a stretched banner rather than a button.
Label style
  • Upright
  • Italic
Upright
Labels and small text
One shared case for everything that is neither a heading nor a button: eyebrows, meta lines, tags and badges, price and discount lines, form labels, filters, variant pills, the announcement bar, the footer links and the main menu. Letter spacing follows the case on its own: uppercase keeps each label's spacing, as typed sets it solid.
Label case
  • Uppercase
  • As typed
As typedAs typed is the shipped default and reads quiet and contemporary. Uppercase reads louder and brings its letter spacing with it.

Corner style

Four sliders set the maximum corner radius of the whole theme: Buttons and pills, Cards and panels, Form fields and Images and media. Each value is a ceiling: elements designed with smaller corners keep them, and 0 gives square corners everywhere. Section settings that carry their own radius, such as the floating header or the cart drawer, are capped by these values too.

The Balm preset sets buttons and form fields to 12 px, cards and media to 20 px.

Settings (4)
SettingValuesDefaultNotes
Global corner rounding for the whole theme. Each value is a maximum: elements designed with smaller corners keep them. Raise a slider for rounder corners, lower it for straighter ones, 0 = square.
Buttons and pills0 to 60 px, step 412 px60 = fully rounded (pill).
Cards and panels0 to 50 px, step 520 pxGlass cards, popups, dropdowns, panels.
Form fields0 to 40 px, step 212 px40 = fully rounded (pill).
Images and media0 to 80 px, step 520 px

Product badges

Four badges can sit on the product cards: Sale and Sold out follow the prices and the stock, New follows the product creation date, and Custom prints the value of a product metafield. This group sets their position, shape and colors once for the whole store.

The Custom badge needs one more step: name the metafield in the Custom badge metafield setting of each section that shows product cards (Collection, Search, Featured collection, Product recommendations, Recently viewed, Lookbook) and of the product page Badge block. The same badges appear on the product page when you add a Badge block and set Badge type to Automatic (Sale, Sold out, New, Custom). See Product badges for the full walkthrough.

Settings (12)
SettingValuesDefaultNotes
Badges on the product cards and, through the product page Badge block set to Automatic, on the product page. Sale and Sold out follow the prices and the stock, New follows the creation date, Custom reads a product metafield named on each product grid section.
Position
  • Top left
  • Top right
Top left
Shape
  • Follow the button corners
  • Pill
Follow the button corners
Sale
Sale badge text
  • Sale
  • Percentage off
  • Amount saved
SaleThe percentage and the amount compare the price with the compare-at price of the variant shown on the card.
Sale backgroundColor#1A1A1A
Sale textColor#FFFFFF
Sold out
Sold out backgroundColor#F4F1EA
Sold out textColor#121212
New
Show New badge forNumber30Days since the product was created. 0 disables the badge.
New backgroundColor#E9B44C
New textColor#121212
Custom
Shown when the product has a value in the metafield named under Custom badge metafield on the collection, search, featured collection and recommendations sections, and on the product page Badge block.
Custom backgroundColor#FFFFFF
Custom textColor#121212

Pre-order

A variant that keeps selling once its stock reaches 0 is treated as a pre-order. The add to cart button, the sticky add to cart bar and the quick add button then read Pre-order, or the label you type here. See Pre-order.

Settings (1)
SettingValuesDefaultNotes
A variant that keeps selling once its stock reaches 0 (inventory policy Continue selling when out of stock, in the product admin) is a pre-order. The add to cart button, the sticky bar and the quick add button then show this label instead of Add to cart. The stock status block keeps its own text.
Button labelTextTranslated textLeave empty to use the translated storefront text (Pre-order).

Quick view

Quick view opens a product in a modal from its card, so shoppers can pick a variant and add to cart without leaving the page. This group sets what the modal shows and how it looks. You turn it on per section, with the Quick view setting of the Collection, Featured collection, Search, Recently viewed and Lookbook sections. See Quick view.

Settings (11)
SettingValuesDefaultNotes
Opens a product in a modal from its card, without leaving the page. Turn it on per section with the Quick view setting of Collection, Featured collection, Search, Recently viewed and Lookbook.
Preload on hoverCheckboxOffLoads the product when the pointer rests on its card, so the modal opens at once. Uses more data.
Content
Show vendorCheckboxOn
Show ratingCheckboxOnShown when the product has review data (the reviews.rating metafield).
Show short descriptionCheckboxOn
Short description metafieldTextEmptyNamespace and key of a product metafield. Products without it show the first paragraph of their description. Shown when Show short description is on.
Description length80 to 400, step 20200Maximum number of characters. Shown when Show short description is on.
Show pickup availabilityCheckboxOnShown when the variant can be picked up at a location.
Show link to the product pageCheckboxOn
Card
Color schemeColor schemeScheme 1
Card style
  • Solid
  • Tinted glass
  • Glass
SolidThe materials of the newsletter popup. Glass takes Theme settings, Glass effect, and its text colour switches automatically when the colour scheme's text would not read on it.
Card opacity60 to 100%, step 585%Shown when Card style is Tinted glass.

Gift wrapping

Adds a gift wrapping checkbox, and an optional gift message, to the cart drawer and the cart page. The wrapping is a real product you create in your admin, so its price, taxes and stock work like any other product. See Gift wrapping for the setup.

Settings (10)
SettingValuesDefaultNotes
A checkbox in the cart drawer and on the cart page adds a wrapping product to the order, in quantity 1, and records Gift wrapping: Yes on the cart. An optional message is saved as the cart attribute Gift message. Both attributes appear on the order in your admin.
Offer gift wrappingCheckboxOff
Wrapping productProductEmptyCreate a product for the wrapping: its price is what the buyer pays. The option only shows once an available product is chosen here.
Checkbox labelTextTranslated textLeave empty to use the translated default. Shown when Offer gift wrapping is on.
Show help textCheckboxOnShown when Offer gift wrapping is on.
Help textTextTranslated textLeave empty to use the translated default. Shown when Offer gift wrapping is on and Show help text is on.
Gift message
Offer a gift messageCheckboxOnShown when Offer gift wrapping is on.
Message labelTextTranslated textLeave empty to use the translated default. Shown when Offer gift wrapping is on and Offer a gift message is on.
Message maximum length (characters)50 to 500, step 50200Shown when Offer gift wrapping is on and Offer a gift message is on.
Where to show it
Show in the cart drawerCheckboxOnShown when Offer gift wrapping is on.
Show on the cart pageCheckboxOnShown when Offer gift wrapping is on.

Back to top

A round button in a bottom corner that scrolls back to the top of the page. It appears after the visitor has scrolled the distance set in Show after scrolling, can be turned on for desktop and mobile separately, lifts above the sticky add to cart bar and steps aside from the hero video controls. Visitors who ask their device for reduced motion get an instant jump instead of a smooth scroll.

Settings (5)
SettingValuesDefaultNotes
A round button in the corner of the screen that scrolls back to the top. It appears once the visitor has scrolled the distance below, lifts above the sticky add to cart bar when that bar is at the bottom, and steps aside from the hero video controls.
Show a back to top buttonCheckboxOn
Show on desktopCheckboxOnShown when Show a back to top button is on.
Show on mobileCheckboxOnShown when Show a back to top button is on.
Position
  • Bottom right
  • Bottom left
Bottom rightShown when Show a back to top button is on.
Show after scrolling200 to 2000 px, step 100600 pxDistance scrolled down the page before the button appears. Shown when Show a back to top button is on.

Age verifier

A modal that asks visitors to confirm their age before they browse the store, for brands that sell alcohol, tobacco or other age restricted products. The answer is remembered in the visitor's browser for the number of days you choose. See Age verifier.

Settings (15)
SettingValuesDefaultNotes
Asks visitors to confirm their age before they can see the store. The answer is remembered in the browser for the number of days below. It waits for the page loader to leave, is never shown at checkout, and text fields left empty use the translated storefront text.
Enable the age verifierCheckboxOffShown on every page of the online store, never at checkout.
Preview in the theme editorCheckboxOffThe verifier never shows in the theme editor unless this is checked. Answers are not remembered while previewing. Shown when Enable the age verifier is on.
Content
Minimum ageNumber18Write [age] in the texts below to print this number. Shown when Enable the age verifier is on.
HeadingTextTranslated textEmpty fields use the translated storefront text. Write [age] where the minimum age should appear. Shown when Enable the age verifier is on.
TextMulti-line textEmptyShown when Enable the age verifier is on.
Confirm buttonTextEmptyShown when Enable the age verifier is on.
Decline buttonTextEmptyShown when Enable the age verifier is on.
When the visitor declines
Action
  • Show a message
  • Redirect to a link
Show a messageShown when Enable the age verifier is on.
MessageMulti-line textEmptyShown when Enable the age verifier is on and Action is Show a message.
LinkLinkEmptyThe page the visitor is sent to, for example https://www.responsibility.org. Shown when Enable the age verifier is on and Action is Redirect to a link.
Remember the answer for0 to 360 days, step 530 daysDays before the visitor is asked again in the same browser. 0 asks on every visit. Shown when Enable the age verifier is on.
Look
Background imageImageEmptyFills the screen behind the card. Optional. Shown when Enable the age verifier is on.
Color schemeColor schemeScheme 1Shown when Enable the age verifier is on.
Card style
  • Tinted glass
  • Glass
  • Solid
Tinted glassSame materials as the newsletter popup. Tinted glass takes the colour scheme background at the opacity below, Glass is the frosted surface with automatic readable ink, Solid uses the scheme exactly as set. Shown when Enable the age verifier is on.
Card opacity60 to 100%, step 585%Shown when Enable the age verifier is on and Card style is Tinted glass.

Glass effect

One frosted glass recipe shared by every glass surface of the theme: the glass header and mega menu, the announcement bar in Glass style, glass buttons, the popups and the cart drawer when they use a glass card. Set the Tint, Fill opacity, Blur and Border opacity once and every surface moves together.

Glass on phones decides what happens on screens under 768 px wide: Frosted keeps the blur, Near opaque swaps it for an almost solid fill that is lighter to scroll on older phones. Browsers without backdrop blur and visitors who ask for reduced transparency always get the near opaque fill.

Settings (5)
SettingValuesDefaultNotes
Frosted-glass recipe shared by every glass surface (popups, panels, glass buttons). Defaults match the original design: change once to restyle them all.
TintColor#FFFFFFBase color of the frosted fill and hairline border.
Fill opacity0 to 100%16%
Blur0 to 50 px30 px
Border opacity0 to 100%22%
Glass on phones
  • Frosted
  • Near opaque
FrostedFrosted keeps the blur on screens under 768px wide, as on larger ones. Near opaque swaps it there for a nearly solid fill, lighter to scroll on older phones. Covered: the header card, the announcement bar, the mega menu, the search panel, the mobile menu sheet and drawer, the sticky add to cart bar and the store locator accordions. Visitors who ask their device for less transparency always get the nearly solid fill on these surfaces. Other glass surfaces, such as the popup and glass buttons, stay frosted: their blur is not redrawn as the page scrolls.

Loader

Two things live here. The first is the small loading indicator used across the store while something loads, such as the hero video: pick its Style, size and color. The second, under Page loader, is an optional loading screen shown while pages open, with your logo, a progress bar or a spinner, and an exit animation. See Page loader.

Settings (21)
SettingValuesDefaultNotes
The loading indicator used across the store while something loads, such as the hero video. The page loader below has its own logo, layout and animations.
Style
  • Spinner
  • Dots
  • Bar
  • Logo
  • Custom image
Spinner
Loader imageImageEmptyLogo with no image uses your brand logo from Shopify settings, then the store name. Custom image with no image shows the spinner. Shown when Style is Logo or Style is Custom image.
Animation
  • Pulse
  • Fade
  • Spin
PulseShown when Style is Logo or Style is Custom image.
Size (desktop)16 to 96 px, step 432 px
Size (mobile)16 to 96 px, step 428 px
Color
  • Scheme text
  • Custom
Scheme textScheme text follows the color scheme of the surface the loader sits on. Visitors who ask for reduced motion see it still.
Custom colorColor#121212Shown when Color is Custom.
Page loader
Page loader
  • Off
  • First visit only
  • Every page
OffShows a loading screen while pages open. Every page adds it to each page view and can lower speed scores. First visit only shows it once per visit and is recommended. To see it again, open the store in a new private window, or check Preview in the theme editor and add ?preview_loader=1 to the page address.
Preview in the theme editorCheckboxOffShows the loader each time the editor preview reloads, so you can adjust how it looks. On the live store, it also shows on every reload of a page whose address carries ?preview_loader=1, so you can test First visit only there. Turn it off to edit your pages without it. Other visitors are not affected. Shown when Page loader is not Off.
Layout
  • Logo only
  • Logo and progress bar
  • Logo and spinner
  • Progress bar only
Logo and progress barThe progress bar follows the page as it loads: its structure first, then the images on the first screen. It fills up just before the loader leaves. Shown when Page loader is not Off.
Logo imageImageEmptyOptional. Leave it empty to use the header logo, then the brand logo from Shopify settings, then the store name in the heading font. Choose one here when the header logo does not read on the loader's color scheme. Shown when Page loader is not Off and Layout is not Progress bar only.
Logo width (desktop)60 to 320 px, step 10180 pxShown when Page loader is not Off.
Logo width (mobile)60 to 320 px, step 10140 pxThe progress bar takes the same width as the logo. Shown when Page loader is not Off.
Background
  • Solid
  • Glass
SolidSolid covers the page with the color scheme background. Glass lays a frosted layer of that background over the page, blurred and dense enough that nothing of the page can be read through it. Shown when Page loader is not Off.
Glass opacity85 to 100%, step 590%Shown when Page loader is not Off and Background is Glass.
Color schemeColor schemeScheme 1Shown when Page loader is not Off.
Exit animation
  • Fade
  • Slide up
  • Split
  • Zoom
  • Circle reveal
FadeSlide up lifts the loader like a curtain. Split opens it in two halves, one upward and one downward. Zoom enlarges the logo as the loader fades. Circle reveal opens the page in a circle that grows from the center. Visitors who ask for reduced motion see no animation. Shown when Page loader is not Off.
Exit duration300 to 1200 ms, step 50600 msShown when Page loader is not Off.
Page transitionsCheckboxOffWhen a visitor follows a link to another page of the store, the exit animation plays in reverse, then the next page opens behind the loader. Links that open a new tab, anchors, downloads and cart links are left alone. Shown when Page loader is not Off.
Minimum display time0 to 1000 ms, step 50300 msKeeps the loader on screen at least this long after it appears, so a fast page does not flash it. Ignored for visitors who ask for reduced motion. Shown when Page loader is not Off.
Maximum display time1000 to 5000 ms, step 1002500 msPast this time after it appears, the loader leaves, whatever is still loading. Shown when Page loader is not Off.

Favicon

The small icon shown in browser tabs and bookmarks. Upload a square image of at least 32 by 32 pixels; a PNG with a transparent background works best.

Settings (1)
SettingValuesDefaultNotes
FaviconImageEmptyWill be scaled down to 32 × 32px

Social sharing

Controls how your pages look when someone shares a link on social media or in a messaging app. Product, collection and blog post pages use their own featured image. The Fallback share image covers every other page, and the X (Twitter) account is shown as the source of shared cards.

Settings (2)
SettingValuesDefaultNotes
These tags control how your pages look when someone shares them on social media or in a messaging app. Product, collection and blog post pages use their own featured image automatically.
Fallback share imageImageEmptyUsed on pages that have no image of their own. Recommended size 1200 x 630 pixels.
X (Twitter) accountTextEmptyYour handle, with or without the @. Shown as the source on shared cards.

Breadcrumbs

A trail of links back to the home page, shown on product, collection and blog post pages. Position, separator and alignment are set here for the whole store. The Product, Collection and Article sections each have a Breadcrumbs on this page setting that shows or hides the trail on that page type only.

Settings (4)
SettingValuesDefaultNotes
A trail of links back to the home page, shown on product, collection and blog post pages. It matches the breadcrumb data search engines already read from your pages.
Show breadcrumbsCheckboxOn
Position
  • Above the page content
  • Below the page content
Above the page content
Separator
  • Chevron
  • Slash
  • Dot
Chevron
Alignment
  • Left
  • Center
Left

Search scope decides what the storefront searches, both in the header suggestions and on the results page. Products only keeps the results page to product cards, which is also what the search filters need. Products, articles and pages adds your blog posts and pages to the results.

Settings (1)
SettingValuesDefaultNotes
Decides what the storefront searches, both in the header suggestions and on the results page.
Search scope
  • Products only
  • Products, articles and pages
Products, articles and pagesProducts only keeps the results page to product cards, which is also what the product filters need. The wider scope adds blog articles and pages.

Search engines

Shopify already tells search engines to treat a filtered or sorted collection URL as the plain collection URL. Internal search results pages are not covered by default, and they rarely deserve a place in Google. This setting adds a noindex instruction to them, and optionally to filtered collections too.

Settings (1)
SettingValuesDefaultNotes
Shopify already tells search engines to treat a filtered or sorted collection URL as the plain collection URL, so those pages do not need anything extra. Internal search results are not covered, which is what this setting handles.
Keep out of search results
  • Search results pages
  • Search results and filtered collections
  • Nothing
Search results pagesAdding filtered collections is only worth doing if your SEO consultant asks for it: it sends Google a second, competing instruction on pages Shopify already points at the plain collection URL.