Theme settings reference
Last checked against Splash 1.0.0 / 2026-09-09
Splash has 91 global settings, grouped into nine sections at the foot of the theme editor sidebar. This page lists all of them in the editor's own order, with the type, the default and one line on what each one changes.
To reach them: Online Store, then Themes, then Customize, then Theme settings at the bottom of the sidebar. Everything here is global. A global setting applies to every template at once and cannot be overridden on a single page. Settings that belong to one section or one block are listed separately in the section and block reference.
Several settings arrive holding the demo store's own values rather than the theme's defaults. Each one is marked in its table below, and they are listed together under What the theme ships, near the foot of this page.
Brand#
| Setting | Type | Default | What it does |
|---|---|---|---|
Logo |
Image | None | Draws in the header, in the footer brand column, on the password page and on the gift card your customer receives. Any aspect ratio. Around 300px wide is recommended. Left empty, all four print your store name as a wordmark. |
Logo width |
Slider, 60 to 300px, in steps of 10 | 140px | Sets the drawn width of the logo everywhere it appears: the header, the footer, the password page and the gift card page. There is no separate control for any of them. Height follows your file's own proportions. |
Favicon |
Image | None | The browser tab icon, requested at 32 x 32 and drawn on every page the theme's two layouts render, the password page included. The gift card page is the one exception: it is a standalone document outside both layouts and carries no icon tag. Left empty, the theme emits no icon tag anywhere and the browser logs a 404 for /favicon.ico. |
Working guide: apply your brand.
SEO and structured data#
The largest group, split into ten headed subgroups. Every field is optional and nothing is added to your pages until you fill it in. Structured data is what search engines read; some of these settings also print a visible block on the product page.
What to publish#
Six checkboxes deciding which kinds of structured data the theme writes at all. Every one defaults to on, and stays on until you switch it off, including on a store whose settings file predates the checkbox. Turn one off only when an app on your store already publishes the same kind.
| Setting | Type | Default | What it does |
|---|---|---|---|
Business details |
Checkbox | On | Your name, logo, address and social profiles, on every page. Off, the product markup also drops its seller and articles drop their publisher rather than referring to a description that is no longer on the page. |
Site name in search results |
Checkbox | On | Publishes your store's name so search engines can print it above your results instead of your domain. |
Product details |
Checkbox | On | Price, availability, shipping and returns on product pages. Off, products cannot appear as rich results at all. Nothing on the storefront changes. |
Breadcrumb trail |
Checkbox | On | Describes the path shown above the title. The visible trail is unaffected either way. |
Collection product lists |
Checkbox | On | The products on the current page of a collection, in the order they appear. |
Blog articles |
Checkbox | On | Headline, author, images and dates on articles. |
Breadcrumb menu |
Link list | Empty, follows main-menu |
The menu whose structure the breadcrumb trail follows, both on the page and in the BreadcrumbList search engines read. Set it to the menu your header uses, so the trail a shopper sees and the range the header marks agree. |
Organization#
| Setting | Type | Default | What it does |
|---|---|---|---|
Organization name |
Text | None, falls back to your store name | The legal or trading name declared to search engines on every page. Leaving it empty is a valid choice. |
Organization logo |
Image | None, falls back to your Brand logo | The logo declared to search engines. Square, 112 x 112 minimum. With both this and the Brand logo empty, no logo is claimed at all. On a local business type it doubles as the listing image. |
Business type |
Select: Online only, Local business, Store customers can visit | Online only | Online only describes a plain organization. The two local types describe a business customers visit, and both need the address below before they publish as one. |
Business address#
Used only when Business type is Local business or Store customers can visit. Ignored entirely on an online-only store.
| Setting | Type | Default | What it does |
|---|---|---|---|
Street address |
Text | None | Published only as part of a complete address. See the note below. |
City |
Text | None | Published only as part of a complete address. |
State or province |
Text | None | Optional. Use the short form where there is one, for example TX. |
Postal code |
Text | None | Optional. |
Country |
Text, two-letter code | None | Published only as part of a complete address. |
Opening hours |
Text | None | One line per set of days, for example Mo-Fr 09:00-17:00. Separate several with a comma. |
Price range |
Select: Do not publish, $, $$, $$$, $$$$ | Do not publish | A rough guide to what you charge. Some search results show it. |
Note The address publishes only when street, city and country are all three filled in. With any of the three empty the theme publishes a plain organization instead, and the opening hours and price range go with it. An address is one of only two properties search engines require of a local business, so a local business without one could never produce a listing; saying less correctly beats saying more and being rejected.
Social profiles#
Seven text fields. Each one you fill in adds its icon to the footer and declares that profile to search engines. The footer order is fixed as listed below and cannot be rearranged from the editor. Empty fields are left out.
| Setting | Type | Default | What it does |
|---|---|---|---|
Instagram URL |
Text | None | First icon in the footer row. |
Facebook URL |
Text | None | Second icon. |
X URL |
Text | None | Third icon. |
YouTube URL |
Text | None | Fourth icon. |
TikTok URL |
Text | None | Fifth icon. |
LinkedIn URL |
Text | None | Sixth icon. |
Pinterest URL |
Text | None | Seventh icon. |
These are plain text fields rather than link pickers, so they accept anything you type. A bare domain such as instagram.com/yourstore has https:// added to it. A single # shows the icon in the footer so you can preview the row before the accounts exist, and is deliberately withheld from search engines. Anything that is not an http address or a path inside your own store becomes an inert broken link.
Contact details#
| Setting | Type | Default | What it does |
|---|---|---|---|
Show contact details |
Checkbox | Off | Adds your support contact to the structured data on every page. Nothing visible changes on the storefront. |
Phone number |
Text | None | Include the country code, for example +1 555 555 5555. Required: with the checkbox on and this field empty, the whole contact block is skipped and the four fields below it do nothing. |
Contact type |
Select: Customer support, Sales, Technical support, Billing support | Customer support | Labels what the phone number is for. |
Email |
Text | None | Added to the contact block when filled. |
Languages |
Text, comma separated | None | The languages your support line speaks, for example English, French. |
Areas served |
Text, comma separated country codes | None | Where that support applies, for example US, CA, GB. |
Shipping details#
These settings do two jobs at once. They print a visible Shipping list on the product page, and they build the shipping markup search engines read. The visible list needs the Shipping and returns block on your product template; the markup does not.
| Setting | Type | Default | What it does |
|---|---|---|---|
Show shipping details |
Checkbox | Off. The theme ships this on. | The master switch for everything in this subgroup. Leave it off if your rates vary too much to summarize. |
Free shipping over |
Text, bare number | None. Ships as 500. |
Prints a free shipping line at that amount in your store currency. It cannot be expressed to search engines on its own. |
Flat shipping rate |
Text, bare number | None. Ships as 49. |
Prints the flat rate. Required, together with Ships to, for any shipping information to reach search results. |
Handling time, fastest |
Number | None. Ships as 1. |
Business days between the order and the shipment, lower bound. |
Handling time, slowest |
Number | None. Ships as 2. |
Upper bound. The handling line appears only when this is 1 or more, so the fastest field on its own prints nothing. |
Delivery time, fastest |
Number | None. Ships as 3. |
Business days the carrier takes, lower bound. |
Delivery time, slowest |
Number | None. Ships as 7. |
Upper bound. Same rule: the delivery line appears only when this is 1 or more. |
Ships to |
Text, comma separated country codes | None. Ships as US, CA. |
Prints your destinations, and is required for the shipping markup. Stray spaces and empty entries are dropped from both. Enter WORLD to print "Ships worldwide" on the page, which sends no shipping information to search engines at all. |
Note The visible Shipping list needs a rate, a free shipping threshold, a per-product note, or a handling or delivery time. Filling in only Ships to produces no block at all, so your destinations do not appear either.
Returns#
| Setting | Type | Default | What it does |
|---|---|---|---|
Show return policy |
Checkbox | Off. The theme ships this on. | The master switch. On its own it is enough to print the Returns list, because every other field below has a default. |
Returns accepted |
Select: Within a set number of days, Any time, Not accepted | Within a set number of days | Choosing Not accepted prints one line and drops every field below it. |
Return window |
Number of days | 30 | Used only when Returns accepted is set to a number of days. At 0 there is no window to state, so the Returns list is withheld from the page and from search results together. |
Refund type |
Select: Full refund, Store credit, Exchange only | Full refund | One line in the Returns list. There is no partial-refund choice: search engines have no such term, and a refund less a fee is a full refund with a restocking fee. |
Return shipping paid by |
Select: Store, Customer, Customer return shipping only, Customer restocking fee only | Store | One line in the Returns list. The last two each name a fee and need the matching amount below. Under an in-store or kiosk return method the first two read "Free to return" and "Return costs paid by you", since a counter return has no postage. |
Return shipping fee |
Number, bare | None | What the customer pays to send a return back. Required by search engines when you choose the return-shipping fee, and the visible line steps down to plain "paid by you" without it. |
Restocking fee |
Number, bare | None | What you keep from the refund. Same rule: required for the restocking choice, and the line steps down without it. |
Restocking fee measured in |
Select: Percent of the item price, Fixed amount | Percent of the item price | Which of the two the number above is. A figure like 10 could be either, and only you know. |
Return method |
Select: By mail, In store, At a kiosk | By mail | One line in the Returns list. |
Return label |
Select: Customer downloads and prints it, Included in the box, Customer buys their own | Customer downloads and prints it | Asked and printed only when the method is by mail. Required by search engines in that case, which is the one thing this field exists for. |
Damaged items return free |
Checkbox | Off | Publishes a separate rule for faulty goods, overriding the fee above for that case, and prints one line. |
Show money-back guarantee |
Checkbox | Off | Adds a line to the page only, and only when Refund type is Full refund and Return shipping paid by is Store, which are what the guarantee promises. Search engines have no term for a guarantee, so nothing is invented; they read those same two settings. |
Customer countries |
Text, one country code | None. Ships as US. |
The countries your customers are in, as two-letter codes separated by commas, up to 50. Left blank it falls back to the country your store is registered in, so the policy still reaches search results. Called Return destination in earlier builds, which described the wrong country. |
Country returns are sent to |
Text, one country code | None | Optional. Only needed when returns go somewhere other than the customer's own country. |
Return policy page |
URL | None | Adds a "Read the full return policy" link to the block and publishes the same address. A web address or a path inside your store; an email or phone link is not published. |
Per-product overrides#
Four metafield names. Any product carrying a value uses it instead of the store settings above, on the page and in search results together. A product with none is unaffected. Each metafield has to exist in Shopify admin under Settings, Custom data, Products before a product can hold a value.
| Setting | Type | Default | What it does |
|---|---|---|---|
Final sale metafield |
Text, namespace.key |
custom.final_sale |
A boolean. True means the product is not returnable whatever the store policy says: the page reads "Final sale, returns not accepted" and every return term is withdrawn from its search listing. |
Return window metafield |
Text, namespace.key |
custom.return_days |
An integer. Replaces the store return window for that product. |
Shipping rate metafield |
Text, namespace.key |
custom.shipping_rate |
A decimal. Replaces the store flat rate for that product. This is the one for freight. |
Per-product shipping note metafield |
Text, namespace.key |
custom.shipping_note |
A product holding a value shows that note instead of the store handling and delivery lines, and its markup drops those times to match. Rate, free shipping threshold and destinations still show. Set the two fields below to give the product its own times back. |
Handling time metafield |
Text, namespace.key |
custom.handling_days |
Business days between the order and the shipment, for that product. One figure such as 5, or a range such as 2-3. Replaces the store figure on the page and in the markup. |
Delivery time metafield |
Text, namespace.key |
custom.transit_days |
Business days the carrier takes, for that product. Same two shapes. A reversed range is read the only way it can be, so 14-10 is 10 to 14. |
Note A blank, a zero or a word leaves the store setting standing. An override has to be a real figure to replace a real figure, so there is no way to say "free shipping on this one" by typing 0. A wrong key and a product with no value also look exactly alike: the store terms keep showing and nothing reports an error.
Product identifiers#
| Setting | Type | Default | What it does |
|---|---|---|---|
Brand metafield |
Text, namespace.key |
None, falls back to the product vendor | Names the brand in each product's structured data. Point it at a metafield only if the vendor field is not the brand you want stated. |
GTIN metafield |
Text, namespace.key |
None, falls back to the variant barcode | The global trade item number. Leave blank if you already fill in Shopify's barcode field. The value has to be 8, 12, 13 or 14 digits; anything else is left out rather than published, because search engines reject a malformed one. |
MPN metafield |
Text, namespace.key |
None | The manufacturer part number. There is no Shopify field for this, so it comes from a metafield or not at all. |
Price valid for |
Number of days | 30 | How long search engines are told to treat the current price as valid. 30 days is typical. Values below 1 are read as 1. |
Ratings#
| Setting | Type | Default | What it does |
|---|---|---|---|
Rating value metafield |
Text, namespace.key |
None | The score your review app writes, for example reviews.rating. Must be on a 5-point scale, and must be a plain number: a metafield holding a word or a phrase like "4.5 out of 5" is treated as no rating rather than published as zero. |
Rating count metafield |
Text, namespace.key |
None | The number of reviews behind that score. |
Both fields must be filled before either is used, and the product must hold a value in both metafields. Together they feed the Rating block on the product page and the rating in that product's structured data.
Requires A review app that writes these metafields. Splash has no way to enter a rating by hand, and search engines expect a rating in your markup to be visible on the page, so add the Rating block to your product template when you fill these in.
Working guide: SEO and structured data.
Product cards#
| Setting | Type | Default | What it does |
|---|---|---|---|
Show the second image on hover |
Checkbox | On | Fades a card to the product's first non-featured image when a customer points at it. Products with one image are unaffected, and touch devices always show the first image. |
Applies to product cards everywhere: collection pages, search results, featured products and recommendations. Working guide: collection and search pages.
Product specs#
Three metafields shown as rows on product cards outside collection and search pages: the Featured products section, the recommendation rows beneath a product, and the small cards in a blog article. Collection and search pages ignore these settings and work their own rows out from the products being listed, with a bar under each figure; that behaviour is described on specifications.
These settings do not fill the specification table on the product page either; that table and the spec bars beside it carry their own metafield fields inside their own blocks.
| Setting | Type | Default | What it does |
|---|---|---|---|
Show specifications on product cards |
Checkbox | Off | Off, cards show the SKU, price and stock. On, the three specification rows are added beneath them. Applies to the Featured products section and the recommendation rows; collection and search pages draw their rows whatever this is set to. Product cards inside blog articles show the first specification either way, because that card has no room for more. |
Spec 1 metafield |
Text, namespace.key |
None. Ships as specs.flow_rate. |
The first row's value. A product with nothing in this metafield drops the row. |
Spec 1 label |
Text | None. Ships as Flow rate. |
The word printed beside the value. Left blank, the theme builds one from the key itself. |
Spec 2 metafield |
Text, namespace.key |
None. Ships as specs.head. |
The second row's value. |
Spec 2 label |
Text | None. Ships as Max head. |
The second row's label. |
Spec 3 metafield |
Text, namespace.key |
None. Ships as specs.power. |
The third row's value. |
Spec 3 label |
Text | None. Ships as Power. |
The third row's label. |
Note A key pointing at a metafield your products do not have looks exactly like a product with no value: the row is left out and nothing reports an error. The three keys ship pointing at pool pump measurements from the demo store, so on your own catalog they will find nothing until you change them.
Working guide: show your specifications.
Quote requests#
| Setting | Type | Default | What it does |
|---|---|---|---|
Quote-only product tag |
Text | quote-only |
A product carrying this tag loses its add-to-cart and price everywhere in the store, and gets a quote button and "Price on request" instead. Matched as a whole tag and case is ignored, so Quote-Only works and quote-only-legacy does not. Emptied, no product is quote-only. |
Quote request page |
Link | None. Ships pointing at a page with the handle quote-request. |
Where every quote button leads. Left empty, those buttons lead to your home page, which is the usual cause of a quote button that appears to do nothing. |
Quote button label |
Text | Request a quote |
The words on that button, on the product page, in quick view, in the featured product section and in the add-on rows. |
Quote note |
Text | Priced per project. A designer replies within 2 business days. |
One line under the button, setting expectations. 15 words is the practical maximum. Emptied, no note is printed. |
Requires A page assigned the Quote template for Quote request page to point at. See build the quote request form, and quote-only products for the tag.
Cart#
| Setting | Type | Default | What it does |
|---|---|---|---|
Cart type |
Select: Drawer, Page | Drawer | Drawer adds a side panel that opens on add-to-cart and on the header cart mark, without leaving the page. Page removes that panel from the store entirely, and every route to the cart goes to the cart page. |
The cart page exists and works under either setting. Working guide: announcement bar, footer and cart.
Typography#
| Setting | Type | Default | What it does |
|---|---|---|---|
Primary |
Font picker | Nunito Sans, regular | Everything readable: headings, body copy, buttons, labels, navigation and form fields. |
Secondary |
Font picker | IBM Plex Mono, regular | Data values only: prices, SKUs, specification values, stock counts, product counts and reference numbers. A monospaced family is what this slot is designed for. |
Both pickers draw on Shopify's own font library. The theme also loads bold, italic and bold italic for each. It asks for weight 500 on both, and weight 600 on the primary only. Each of those two is loaded only where the family you pick carries it, so a family without them falls back to the nearest weight it does have.
Layout#
| Setting | Type | Default | What it does |
|---|---|---|---|
Page width |
Select: Standard, Wide, Extra wide | Standard | The outer limit the content is held inside: 1200px, 1440px or 1760px at the default browser text size. Content and both margins fit inside that figure. |
Page margin |
Slider, 10 to 100px | 24px | The smallest gap between your content and the edge of the window, at every screen size. |
Several sections work out how wide a picture will really be drawn from these two numbers and ask Shopify for a file that size, so widening the store makes those images request larger files on their own.
Colors#
Eight colours and one corner radius. The group is labelled Colors in the editor.
| Setting | Type | Default | What it does |
|---|---|---|---|
Background |
Colour | #F5F7F8 |
The page ground behind every section, and the ground every mixed grey is blended into. |
Foreground |
Colour | #0F151A |
Body text on the page ground, and the ink every hairline, rule, muted grey and field border is mixed from. |
Card background |
Colour | #FFFFFF |
Product cards, panels and other raised surfaces, including the header, the footer and the cart drawer. |
Card text |
Colour | #0F151A |
Text on those raised surfaces. |
Accent |
Colour | #0E7C76 |
Filled buttons, the focus ring on every control, accent tints and hairlines, and the colour body links are mixed from. |
Accent text |
Colour | #FFFFFF |
The label printed on a filled accent button. |
Band background |
Colour | #0F151A |
The contrasting dark grounds: the announcement bar, the home page hero band and its claims row, and the testimonials section. |
Band text |
Colour | #F5F7F8 |
Text, rules and muted text on those bands, all mixed from this against Band background. |
Input corner radius |
Slider, 0 to 4px | 2px | Rounds the corners of form fields, buttons, badges and other small controls. 4px is the ceiling, and it is deliberate: the theme has no pill shapes anywhere. |
The announcement bar carries its own three colour overrides in its section settings, and falls back to the band pair above when they are left empty.
Note The in-stock, low-stock and out-of-stock colours are fixed in the theme and do not follow the accent. They are functional signals rather than brand, and they are set to clear the contrast requirement on all three grounds a stock badge can land on.
Working guide: apply your brand.
What the theme ships#
Splash arrives with saved values for some settings, taken from the demo store rather than from the theme's own defaults. They are there so a new install has something to look at, and every one of them is yours to change. Two of them publish claims to search engines as soon as the store opens.
| Setting | Theme default | Value as installed |
|---|---|---|
| Spec 1 metafield | None | specs.flow_rate |
| Spec 1 label | None | Flow rate |
| Spec 2 metafield | None | specs.head |
| Spec 2 label | None | Max head |
| Spec 3 metafield | None | specs.power |
| Spec 3 label | None | Power |
| Quote request page | None | The page with the handle quote-request |
| Show shipping details | Off | On |
| Free shipping over | None | 500 |
| Flat shipping rate | None | 49 |
| Handling time, fastest and slowest | None | 1 and 2 |
| Delivery time, fastest and slowest | None | 3 and 7 |
| Ships to | None | US, CA |
| Show return policy | Off | On |
| Return destination | None | US |
The returns fields not listed here already match their defaults: a 30-day window, a full refund, return shipping paid by the store, returned by mail. Both master switches being on means those terms, and the shipping terms above them, publish on your product pages and to search engines from the day you install. Review them before the store opens. Everything else, including the logo, the favicon, the colours, the fonts, the seven social fields and every structured data field, ships empty or at the default listed in the tables above.
Working guide: replace the demo content.
Three things worth knowing before you type#
Money fields take bare numbers#
Free shipping over and Flat shipping rate are text fields, and the theme reads them as a figure in your store currency and formats them itself. Write 500, not $500 and not 500 USD. A value that is not a plain number is treated as unset: Flat shipping rate prints no line and sends no rate to search engines, rather than either of them claiming $0.00 and so promising free shipping. A rate line missing where you set one is the symptom to look for. Decimals are fine: 49.99 works, and a deliberate 0 is kept.
Metafield fields take namespace and key, with exactly one dot#
Fourteen settings on this page ask for a metafield: the three spec keys, brand, GTIN, MPN, the two rating fields, and the six per-product overrides (final sale, return window, shipping rate, the shipping note, the handling time and the delivery time). All of them want the namespace and the key separated by a single dot.
specs.flow_rate correct
custom.shipping_note correct
flow_rate no namespace, reads nothing
specs/flow_rate wrong separator, reads nothing
specs.pump.flow_rate two dots, reads nothing
You can copy both parts from Settings, then Custom data, then Products, where each definition lists its namespace and key. A wrong key never reports an error. It looks identical to a product that has no value, so check against a product you know is filled in.
The eight colours produce far more than eight tones#
Splash stores no hairline colour, no grey text colour and no link colour. It mixes them from your eight settings every time a page is drawn, so a recolour stays coherent instead of leaving stray teal behind. Two consequences catch people out:
Links are not your accent
Body links are mixed one step deeper, toward your Foreground, so they stay readable on light grounds after a recolour. Picking a link colour by eye from the accent swatch will not match what renders. Button hover and press states are deeper mixes again.
The accent on a dark band is a different mix
On the announcement bar and the other band grounds, the accent is carried toward Band text rather than toward Foreground. That lifts it on a dark band and darkens it on a light one, which is the direction legibility needs either way.
The same principle governs Foreground. It is not only your body text: every rule, muted line and field border in the store is mixed from it. Set it to a mid-grey and all of them lighten together. Change it in small steps and look at a product page after each one.
Something wrong here If a step does not match what you see, say so and it gets fixed. Documentation goes stale, which is why the line under the title carries a date.