Unlock Advanced Product Layouts in Shopify's Dawn Theme: A Community Masterclass
Hey store owners! As your friendly Shopify migration expert and community analyst, I spend a lot of time sifting through discussions to find those golden nuggets of wisdom. Recently, a thread titled "Main product layout (dawn)" caught my eye, and it touched on a challenge many of you face: customizing your product pages beyond the default theme options.
Our fellow merchant, veluxe1, kicked things off, asking how to achieve a specific, more advanced desktop layout for their main product page in the popular Dawn theme. They even shared an example image, which looked like a clean, multi-column setup. This is a common desire – we all want our products to shine in a unique way!

The Dawn Theme: Flexibility vs. Deep Customization
Initial responses from the community, like SectionKit, correctly pointed out that the Dawn theme's customizer offers some layout options (left, right, size, grid, or slider for images). However, as Hardeep and Muhammad_Daniyal quickly added, achieving a truly specific, custom layout – especially one that involves rearranging content blocks into multiple columns – usually goes beyond what the theme editor can do. It requires diving into the code: modifying Liquid files and updating CSS.
This is a crucial insight: while Dawn is incredibly flexible, for pixel-perfect or unique structural changes, you often need to roll up your sleeves and get into the theme's core files. veluxe1 was working on a draft theme, which is always the smartest move when making code changes! Never mess with your live theme directly.
The Mobile Conundrum: Desktop Layouts Breaking Mobile Views
After trying some desktop changes, veluxe1 hit a common snag: "Sir, i tried and everything went well for desktop as i desire, however how to make the mobile view/version stacked as usual and didn't change". This is the Achilles' heel of custom layouts! You get it looking great on desktop, only for it to be a jumbled mess on a phone screen.
This is where the community really shone. Muhammad_Daniyal immediately highlighted the need for "media queries (e.g. @media (min-width: 990px))" to ensure that desktop-specific grid or flex styles are reset for smaller screens, allowing the layout to revert to a single-column stack.
The Solution: A 3-Column Desktop Layout with Mobile Responsiveness
The most comprehensive and actionable solution came from Ajay from PinFlow, who shared a detailed code snippet to create a 3-column product layout for desktop that gracefully stacks on mobile. This is exactly what veluxe1 (and many others!) needed. Here's a breakdown of how it works and how you can implement it:

Step-by-Step Implementation Guide:
IMPORTANT: Always duplicate your theme before making any code changes! This gives you a safe rollback point.
1. Create a New Snippet: snippets/product-info-block.liquid
This snippet will house the logic for individual product information blocks. Go to your Shopify admin, navigate to "Online Store" > "Themes", find your duplicated theme, click "Actions" > "Edit code". Under the "Snippets" directory, click "Add a new snippet" and name it product-info-block.liquid. Paste the following code into it:
{% comment %}
Renders a single main-product info block by type.
Accepts:
- block: {Object}
- product: {Object}
- product_form_id: {String}
{% endcomment %}
{%- case block.type -%}
{# ...paste the original case/when block here, unchanged... #}
{%- endcase -%}
Now, you need to populate the {# ...paste the original case/when block here, unchanged... #} section. Find your sections/main-product.liquid file. Locate the entire {%- case block.type -%} ... {%- endcase -%} block (it starts right after {%- for block in section.blocks -%}). Cut this entire block and paste it into your new product-info-block.liquid snippet, replacing the comment placeholder.
2. Modify sections/main-product.liquid
In the same "Edit code" section, open sections/main-product.liquid. Replace the markup between with this code. This new structure creates three distinct columns:
{%- assign product_form_id = 'product-form-' | append: section.id -%}
{%- assign right_col_block_types = 'variant_picker,quantity_selector,buy_buttons' | split: ',' -%}
{%- for block in section.blocks -%}
{%- unless right_col_block_types contains block.type -%}
{%- render 'product-info-block', block: block, product: product, product_form_id: product_form_id -%}
{%- endunless -%}
{%- endfor -%}
{% render 'product-media-gallery', variant_images: variant_images %}
{%- for block in section.blocks -%}
{%- if right_col_block_types contains block.type -%}
{%- render 'product-info-block', block: block, product: product, product_form_id: product_form_id -%}
{%- endif -%}
{%- endfor -%}
{{ 'products.product.view_full_details' | t }}
{{- 'icon-arrow.svg' | inline_asset_content -}}
Everything else in the main-product.liquid file (like media modal, popups, structured data) should remain untouched.
3. Append CSS to assets/section-main-product.css
Open assets/section-main-product.css and append the following CSS code. This is where the magic happens for desktop layout and, crucially, for mobile responsiveness:
/* 3-column desktop product layout: info | media | buy box */
/* Selectors go 4 class-selectors deep so they reliably beat Dawn's own
.product--large:not(.product--no-media) rules (3 class-selectors, since
:not() counts its argument toward specificity). */
@media screen and (max-width: 989px) {
.product--3col-desktop.product .product__media-wrapper,
.product--3col-desktop.product .product__info-wrapper.product__info-wrapper--left,
.product--3col-desktop.product .product__info-wrapper.product__info-wrapper--right {
max-width: 100%;
width: 100%;
}
}
@media screen and (min-width: 990px) {
.product--3col-desktop.product .product__media-wrapper,
.product--3col-desktop.product .product__info-wrapper.product__info-wrapper--left,
.product--3col-desktop.product .product__info-wrapper.product__info-wrapper--right {
max-width: none;
}
.product--3col-desktop.product .product__info-wrapper.product__info-wrapper--left {
width: calc(28% - var(--grid-desktop-horizontal-spacing) / 2);
order: 1;
padding: 0 4rem 0 0;
}
.product--3col-desktop.product .product__media-wrapper {
width: calc(38% - var(--grid-desktop-horizontal-spacing));
order: 2;
}
.product--3col-desktop.product .product__info-wrapper.product__info-wrapper--right {
width: calc(34% - var(--grid-desktop-horizontal-spacing) / 2);
order: 3;
padding: 0 0 0 4rem;
}
}
Understanding the CSS and Mobile Responsiveness
This CSS is key. Notice the use of @media screen and (max-width: 989px) and @media screen and (min-width: 990px). These are media queries. They tell the browser to apply different styles based on screen width.
- For screens 989px and narrower (mobile/tablet): The columns revert to
max-width: 100%; width: 100%;, forcing them to stack vertically, as you'd expect on a phone. This directly addresses veluxe1's mobile issue! - For screens 990px and wider (desktop): The columns are given specific widths (
28%,38%,34%) and ordered usingorder: 1,order: 2,order: 3to create the desired three-column layout. You can easily adjust these percentages to customize your column widths.
The code also smartly separates "buy box" blocks (variant picker, quantity, buy buttons) into their own column, providing a clean separation of content.
When to Seek Expert Help
As you saw in the thread, several experts (Hardeep, devcoders) offered to help veluxe1 directly by requesting collaborator access. If you're not comfortable digging into code, don't hesitate to leverage the Shopify community or hire a developer. It's a common practice, and they can often implement these changes quickly and efficiently, ensuring everything works perfectly across devices. Remember, a stunning, functional store is paramount for your business on Shopify.
This discussion really highlighted how the Shopify community empowers store owners to push the boundaries of their themes. While Dawn is fantastic out-of-the-box, knowing how to tap into its underlying code, or knowing when to ask for help, opens up a world of possibilities for creating truly unique and effective online stores. Happy customizing!