A modern, carefully structured Shopify theme designed for e-commerce success. Built with modularity, maintainability, and Shopify's best practices in mind. Based on Shopify's skeleton theme with customizations by OtherDev.
Before starting, ensure you have the latest Shopify CLI installed:
- Shopify CLI – helps you download, upload, preview themes, and streamline your workflows
If you use VS Code:
- Shopify Liquid VS Code Extension – provides syntax highlighting, linting, inline documentation, and auto-completion specifically designed for Liquid templates
Clone this repository using Git or Shopify CLI:
git clone git@github.com:your-organization/boulevard.git
# or
shopify theme initPreview this theme using Shopify CLI:
shopify theme devThe Boulevard theme is structured with modularity and performance in mind:
.
├── assets # Stores compiled and static assets (CSS, JS, images, fonts, etc.)
├── blocks # Reusable, nestable, customizable UI components
├── config # Global theme settings and customization options
├── layout # Top-level wrappers for pages (layout templates)
├── locales # Translation files for theme internationalization
├── sections # Modular full-width page components
├── snippets # Reusable Liquid code or HTML fragments
├── src # Source files (uncompiled CSS and JavaScript)
└── templates # Templates combining sections to define page structuresTo learn more, refer to the theme architecture documentation.
Templates control what's rendered on each type of page in a theme.
The Boulevard Theme scaffolds JSON templates to make it easy for merchants to customize their store.
None of the template types are required, and not all of them are included in the Boulevard Theme. Refer to the template types reference for a full list.
Sections are Liquid files that allow you to create reusable modules of content that can be customized by merchants. They can also include blocks which allow merchants to add, remove, and reorder content within a section.
Sections are made customizable by including a {% schema %} in the body. For more information, refer to the section schema documentation.
Blocks let developers create flexible layouts by breaking down sections into smaller, reusable pieces of Liquid. Each block has its own set of settings, and can be added, removed, and reordered within a section.
Blocks are made customizable by including a {% schema %} in the body. For more information, refer to the block schema documentation.
When developing components defined by schema settings, we recommend these guidelines to simplify your code:
-
Single property settings: For settings that correspond to a single CSS property, use CSS variables:
<div class="collection" style="--gap: {{ block.settings.gap }}px"> ... </div> {% stylesheet %} .collection { gap: var(--gap); } {% endstylesheet %} {% schema %} { "settings": [{ "type": "range", "label": "gap", "id": "gap", "min": 0, "max": 100, "unit": "px", "default": 0, }] } {% endschema %}
-
Multiple property settings: For settings that control multiple CSS properties, use CSS classes:
<div class="collection {{ block.settings.layout }}"> ... </div> {% stylesheet %} .collection--full-width { /* multiple styles */ } .collection--narrow { /* multiple styles */ } {% endstylesheet %} {% schema %} { "settings": [{ "type": "select", "id": "layout", "label": "layout", "values": [ { "value": "collection--full-width", "label": "t:options.full" }, { "value": "collection--narrow", "label": "t:options.narrow" } ] }] } {% endschema %}
For CSS and JavaScript, we recommend using the {% stylesheet %} and {% javascript %} tags. They can be included multiple times, but the code will only appear once.
The Boulevard Theme uses modern development tools:
- Tailwind CSS for utility-first styling
- Bun as the JavaScript runtime for builds
- Terser for JavaScript minification
- PostCSS with Autoprefixer for CSS processing
The Boulevard Theme explicitly separates essential CSS necessary for every page into a dedicated critical.css file.
We're excited for your contributions to the Boulevard Theme! This repository aims to remain modern, performant, and a great foundation for e-commerce themes, and we kindly ask your contributions to align with this intention.
Visit our CONTRIBUTING.md for a detailed overview of our process, guidelines, and recommendations.
The Boulevard Theme includes several modern e-commerce features:
- Critical CSS inlining: Essential CSS is inlined in the layout for faster initial render
- Link prefetching: Navigation links are prefetched on hover/touch for faster page transitions
- Lazy loading: Images and content are loaded as needed to improve performance
- Resource hints: DNS prefetching for faster external resource loading
- Tailwind CSS: Utility-first CSS framework with custom configuration
- Bun runtime: Fast JavaScript runtime for development and builds
- Modular JavaScript: Organized JS modules for header, lazy loading, and product functionality
- PostCSS processing: With Autoprefixer for cross-browser compatibility
- CSS Grid layout: Modern grid-based layout system
- Mobile-first approach: Design optimized for all device sizes
- Flexible components: Sections and blocks that adapt to different screen sizes
- Component-based architecture: Reusable sections and blocks
- Schema-based customization: Easy-to-use settings for merchants
- Modern build tools: Automated compilation and minification
- Theme settings: Comprehensive customization options
Boulevard Theme is open-sourced under the MIT License.