Getting started | Staying up to date with Dawn changes | Developer tools | Contributing | Code of conduct | Theme Store submission | License
Dawn represents a HTML-first, JavaScript-only-as-needed approach to theme development. It's Shopify's first source available theme with performance, flexibility, and Online Store 2.0 features built-in and acts as a reference for building Shopify themes.
- Web-native in its purest form: Themes run on the evergreen web. We leverage the latest web browsers to their fullest, while maintaining support for the older ones through progressive enhancement—not polyfills.
- Lean, fast, and reliable: Functionality and design defaults to “no” until it meets this requirement. Code ships on quality. Themes must be built with purpose. They shouldn’t support each and every feature in Shopify.
- JavaScript not required, fails gracefully: We extract every bit of speed and functionality out of HTTP, semantic HTML, and CSS before writing our first line of JavaScript. JavaScript can only be used to progressively enhance features.
- Server-rendered: HTML must be rendered by Shopify servers using Liquid. Business logic and platform primitives such as translations and money formatting don’t belong on the client. Async and on-demand rendering of parts of the page is OK, but we do it sparingly as a progressive enhancement.
- Functional, not pixel-perfect: The Web doesn’t require each page to be rendered pixel-perfect by each browser engine. Using semantic markup, progressive enhancement, and clever design, we ensure that themes remain functional regardless of the browser.
You can find a more detailed version of our theme code principles in the contribution guide.
- Fork the repository and clone it:
git clone git@github.com:your-username/dawn.git
cd dawn
- Install the Shopify CLI by following these steps.
- Launch a development server in the
dawn/
folder:
shopify theme serve
ℹ️ You'll need access to a Shopify store in order to get started with theme development. If you don't already have one, you can set up a development store.
Say you're building a new theme off Dawn but you still want to be able to pull in the latest changes, you can add a remote upstream
pointing to this Dawn repository.
- Navigate to your local theme folder.
- Verify the list of remotes and validate that