Theme Editor Basics
The theme editor is where most customisation happens. It provides a visual interface for changing colours, fonts, layouts, and content without touching code.
Modern Shopify themes use Online Store 2.0 architecture, which allows you to customise any page type using sections and blocks. Older themes (vintage themes) have more limited customisation options.
Accessing the Theme Editor
- 1.Go to Online Store → Themes in your Shopify admin
- 2.Find your current theme and click Customise
- 3.The editor opens showing your homepage with a left sidebar
Editor Layout
- •Left sidebar: Sections and blocks for the current page, plus theme settings
- •Centre preview: Live preview of your changes
- •Top bar: Page selector, device preview, and save button
- •Device toggle: Preview on desktop, tablet, or mobile
Page Selector
Use the dropdown at the top of the editor to switch between page types:
- •Home page: Your store's main landing page
- •Products: Product page templates
- •Collections: Collection page templates
- •Pages: Content page templates (About, Contact, etc.)
- •Blog: Blog listing and article templates
Customising Sections
Sections are the building blocks of your pages. Each section serves a purpose, like displaying a slideshow, featuring products, or showing testimonials.
Adding a New Section
- 1.In the theme editor, click Add section in the left sidebar
- 2.Browse available sections or search for what you need
- 3.Click a section to add it to the page
- 4.Drag the section to reorder it on the page
Section Settings
Click any section in the sidebar to reveal its settings. Common options include:
- •Heading and subheading: Text that appears above the section content
- •Colour scheme: Background and text colours
- •Padding: Spacing above and below the section
- •Width: Full width or contained within margins
Working with Blocks
Many sections contain blocks, which are smaller content units within the section. For example, a "Multicolumn" section contains individual column blocks.
Block Actions
- •Add block: Click "Add block" within a section
- •Edit block: Click on a block to see its settings
- •Reorder blocks: Drag blocks to change their order
- •Delete block: Click the bin icon on a selected block
Pro Tip
Click directly on elements in the preview to jump to their settings. This is often faster than navigating through the sidebar.
Theme Settings
Theme settings are global options that affect your entire store. Access them by clicking Theme settings at the bottom of the left sidebar.
Colours
Set your brand colours for text, backgrounds, buttons, and accents. Most themes let you create colour schemes that can be applied to different sections.
Typography
Choose fonts for headings and body text. Select from system fonts (faster loading) or Shopify's font library. Set base font sizes and scales.
Layout
Control page width, spacing between sections, and grid settings. Some themes offer options for borders, shadows, and corner rounding.
Buttons
Customise button styles including padding, border radius, and hover effects. Set different styles for primary and secondary buttons.
Social Media
Add links to your social profiles. These appear in the header, footer, or dedicated social sections depending on your theme.
Favicon
Upload your favicon (the small icon in browser tabs). Use a 32x32 or 16x16 pixel PNG image.
Adding Custom CSS
When the theme editor does not offer the customisation you need, custom CSS can override default styles. Most themes provide a dedicated field for custom CSS.
Where to Add Custom CSS
- 1.In the theme editor, go to Theme settings
- 2.Look for Custom CSS or Custom code
- 3.Add your CSS rules in the provided text area
- 4.Save to see changes
Common CSS Customisations
/* Change announcement bar colour */
.announcement-bar {
background-color: #ef436b;
}
/* Increase product title size */
.product__title h1 {
font-size: 2.5rem;
}
/* Hide a specific element */
.breadcrumb {
display: none;
}
/* Custom button style */
.button--primary {
border-radius: 0;
text-transform: uppercase;
letter-spacing: 0.1em;
}
/* Add custom font (with @import) */
@import url('https://fonts.googleapis.com/css2?family=Your+Font&display=swap');
body {
font-family: 'Your Font', sans-serif;
}Finding CSS Selectors
Use your browser's developer tools (right-click, Inspect) to find the CSS selectors for elements you want to style. Look for class names starting with your theme's prefix.
Editing Theme Code
For advanced changes beyond CSS, you may need to edit the theme's Liquid files directly. This requires understanding HTML, CSS, and Shopify's Liquid templating language.
Accessing Theme Files
- 1.Go to Online Store → Themes
- 2.Click ... → Edit code on your theme
- 3.Navigate the file structure in the left sidebar
Theme File Structure
- •Layout: theme.liquid (main template wrapper)
- •Templates: Page type templates (product.json, collection.json)
- •Sections: Reusable content blocks
- •Snippets: Small reusable code pieces
- •Assets: CSS, JavaScript, images
- •Config: Theme settings schema
- •Locales: Translation files
Warning
Always duplicate your theme before editing code. Go to Themes, click ... on your theme, and select Duplicate. Edit the copy, not the live theme.
Basic Liquid Syntax
<!-- Output a variable -->
{{ product.title }}
<!-- Conditional logic -->
{% if product.available %}
<span>In Stock</span>
{% else %}
<span>Sold Out</span>
{% endif %}
<!-- Loop through items -->
{% for product in collection.products %}
<h3>{{ product.title }}</h3>
{% endfor %}
<!-- Include a snippet -->
{% render 'product-card', product: product %}Working with Metafields
Metafields let you store custom data on products, collections, customers, and more. You can display this data in your theme for enhanced customisation.
Common Metafield Uses
- •Product specifications: Size charts, materials, care instructions
- •Collection descriptions: Extended content for SEO
- •Custom badges: "New", "Bestseller", "Eco-friendly"
- •Brand content: Manufacturer logos, warranties
Displaying Metafields in Theme Editor
Many theme sections support dynamic sources. Instead of typing text directly, you can link to a metafield:
- 1.Click on a text field in the theme editor
- 2.Click the Connect dynamic source icon
- 3.Select the metafield you want to display
Pro Tip
Create metafield definitions in Settings → Custom data. This lets you set field types (text, number, date) and add validation rules for cleaner data.
Theme Best Practices
Always Work on a Duplicate
Before making significant changes, duplicate your theme. Test changes on the duplicate, then publish when ready. This prevents breaking your live store.
Document Your Changes
Keep notes about what you changed and why. This helps when updating themes or troubleshooting issues later. Add comments to custom CSS and code.
Test on Multiple Devices
Use the device preview in the editor, but also test on actual phones and tablets. Over 70% of traffic is mobile, so mobile experience is critical.
Keep Performance in Mind
Every section, image, and custom font adds load time. Only add what adds value. Compress images before uploading. Limit custom fonts to 2-3 weights.
Stay Updated
Theme developers release updates with bug fixes and new features. Review update changelogs. Note: updates may overwrite custom code changes.
Common Customisations
Here are solutions to customisation requests we see frequently.
Change the Logo Size
In the theme editor, click on the Header section. Look for logo width or size settings. If not available, use custom CSS:
.header__logo img { max-width: 150px; }Add a Sticky Header
Many themes have this as a setting. Check Header → Enable sticky header. If not available:
.header { position: sticky; top: 0; z-index: 100; }Show Product Reviews
Install a reviews app like Judge.me or Loox. Most apps include theme integration. Alternatively, enable native Shopify Product Reviews app and add the review section in the product template.
Add Trust Badges Below Add to Cart
Look for a "Custom Liquid" block in your product section. Add HTML for trust badges:
<div class="trust-badges">
<img src="{{ 'secure-checkout.svg' | asset_url }}" alt="Secure checkout">
<img src="{{ 'free-returns.svg' | asset_url }}" alt="Free returns">
</div>Hide a Section on Mobile
Use CSS media queries to hide elements on smaller screens:
@media (max-width: 749px) {
.section-to-hide {
display: none;
}
}