Project
Shopify Theme
Tiles is one of two responsive presets built on a library of 200+ reusable theme components and published after Shopify’s review.
- Role
- Frontend engineering · Theme architecture
- Stack
- TypeScript · SCSS · Liquid · Vite · Playwright · Git
- Period
- 2025-2026
- Outcome
- Shopify Theme Store release
Overview
Built for modern brands.
Shopify Theme Store release
The project covered the end-to-end development of a production Shopify theme: designing its architecture, implementing 200+ reusable Liquid components, creating two distinct presets, and taking the finished product through Shopify’s full review process. The component library contains 217 files in total: 63 sections and 154 blocks. The theme passed the required checks and is now published in the official Shopify Theme Store with the Bricks and Tiles presets.
The problem
Building a production theme at this scale meant solving more than the storefront’s visual layer. More than 200 components needed to remain consistent, configurable, performant, and maintainable while giving merchants enough freedom to shape campaigns and collections without turning every update into custom development.
One reusable theme foundation supports two distinct storefront identities. Bricks is tailored to fashion-led brands, while Tiles gives product and lifestyle stores a more playful direction. Both presets share the same section architecture and predictable behavior across screen sizes.
Role and constraints
The work covered the complete theme implementation: component and section architecture, responsive interface behavior, editor configuration, localization, and the quality-assurance cycle required for publication.
- 63
.liquidsection files insections/and 154.liquidblock files inblocks/need to share predictable design and interaction patterns. - Merchants should be able to compose pages from documented sections and blocks.
- Product discovery and purchase paths must remain clear from small mobile screens to wide desktop layouts.
- Lighthouse performance and accessibility checks must pass, with close attention to LCP and other loading and rendering metrics.
- Text, controls, icons, and focus states must preserve sufficient contrast for customers with low vision.
- Theme editor settings must be localized and understandable to merchants in every supported language.
Architecture and decisions
Liquid templates provide the server-rendered storefront structure. The 63 files in sections/ define reusable, merchant-configurable page modules, while the 154 files in blocks/ provide smaller reusable building blocks that can be composed across the theme. Together, these 217 components cover commerce, content, navigation, and merchandising patterns.
Section schemas define the content merchants can configure, CSS handles the shared layout and visual tokens, and TypeScript is reserved for focused enhancements that genuinely need browser behavior.
Shared snippets, schemas, tokens, and interaction patterns keep the large component library consistent without coupling the two presets to a single visual direction. Section code stays close to its styles and configuration. Vite prepares local assets, while the final theme remains compatible with Shopify’s rendering model. Progressive enhancement keeps navigation, product links, and core content available before optional scripts run.
Editor schemas use clear setting names and structured groups, with translated labels and help text stored in locale files. This keeps Bricks and Tiles flexible without making theme configuration difficult to navigate.
Responsive performance
Layouts, type, spacing, media, navigation, filters, product forms, and cart interactions adapt across viewport sizes. Responsive image sizing and reserved media space reduce unnecessary transfers and layout shifts, while critical storefront paths avoid depending on heavy client-side scripts.
Performance was reviewed through Lighthouse, including LCP and the wider set of loading, interactivity, and rendering signals relevant to the storefront experience. Mobile behavior was treated as a core release requirement rather than a reduced desktop layout.
Interaction and accessibility
Native controls and links remain the default. Menus expose their state, focus stays visible, and product information does not depend on hover alone. On mobile, content follows the same reading order instead of being visually rearranged away from the document structure.
Contrast was checked across text, controls, borders, icons, and interactive states to support customers with low vision. Keyboard navigation, semantic structure, alternative text, touch targets, and clear focus treatment were part of the accessibility review.
Theme editor settings were localized so merchants can configure sections and blocks in the supported editor languages without falling back to untranslated labels.
Review and quality assurance
The release was tested against Shopify’s Theme Store requirements across responsive layouts, browser behavior, storefront functionality, accessibility, and Lighthouse performance. Issues found during validation were resolved and retested before submission.
The theme passed the required Shopify checks and was approved for publication in the official Theme Store.
Result
The production theme, its library of 217 components, and both responsive presets passed Shopify’s review. Bricks and Tiles are published in the official Shopify Theme Store and use the same technical foundation while presenting clearly different storefront directions for merchants.
Lessons to carry forward
Theme flexibility works best when configuration choices are deliberate. A smaller, well-documented section vocabulary is easier for merchants to understand and easier for developers to test than an unlimited set of one-off options.
Visual showcase
Results
- Published
- Official Shopify Theme Store
- 2
- Bricks and Tiles presets
- 200+
- 217 total: 63 sections · 154 blocks
- Passed
- Performance, accessibility, and localization
Let's talk
Let's build something.
Have a project in mind or just want to say hello? I'm always up for a good conversation.
Let's talk
