← All layouts · Commerce
Category grid
Faceted catalogue: filter rail, sort bar, product grid.
Filters in a left rail rather than a modal, so the shopper can see what they have narrowed and undo it. The count of results sits beside the sort control where it answers the question the filters just raised.
- .ms-card
- .ms-btn
- .ms-thumb
- .ms-chip
- .ms-checkbox
- .ms-label
Live
The layout as it renders, in a frame at its own width. Resize the window to watch it respond — the frame is a real viewport.
How to build it
This is the layout's template, read from disk — the same file the frame
above renders, so it cannot drift out of date. Copy it into your own page
and replace the content; every class in it ships in
mcgowan.css.
<header class="ms-topbar">
<div class="ms-logo"><a class="u-link" href="#">Northbound</a></div>
<nav class="ms-topbar__nav">
<a href="#">New in</a><a href="#">Men</a><a href="#">Women</a><a href="#">Sale</a>
</nav>
<div class="ms-toolbar">
<input class="ms-input ms-input--sm" placeholder="Search" style="max-width:180px">
<a class="ms-btn ms-btn--ghost ms-btn--icon" href="#"><span class="material-icons">shopping_cart</span></a>
</div>
</header>
<div class="u-container u-py-6">
<div class="u-grid u-grid-cols-12">
<aside class="u-col-12 u-col-lg-3">
<div class="ms-card">
<h2>Filter</h2>
<fieldset style="border:0;padding:0;margin:0 0 1rem">
<legend class="ms-label">Size</legend>
<div class="ms-chip-set">
<button class="ms-chip" type="button">XS</button>
<button class="ms-chip ms-chip--active" type="button">S</button>
<button class="ms-chip" type="button">M</button>
<button class="ms-chip" type="button">L</button>
</div>
</fieldset>
<fieldset style="border:0;padding:0;margin:0 0 1rem">
<legend class="ms-label">Price</legend>
<label class="ms-checkbox"><input type="checkbox"> Under £100</label><br>
<label class="ms-checkbox"><input checked type="checkbox"> £100 to £200</label><br>
<label class="ms-checkbox"><input type="checkbox"> Over £200</label>
</fieldset>
<fieldset style="border:0;padding:0">
<legend class="ms-label">Availability</legend>
<label class="ms-toggle">
<input checked type="checkbox">
<span class="ms-toggle__track"><span class="ms-toggle__thumb"></span></span>
In stock only
</label>
</fieldset>
</div>
</aside>
<div class="u-col-12 u-col-lg-9">
<div class="ms-toolbar">
<h1 style="margin:0">Outerwear</h1>
<span class="ms-badge">28 results</span>
<span class="ms-toolbar__spacer"></span>
<select class="ms-select" style="max-width:200px">
<option>Sort: Most popular</option>
<option>Price: low to high</option>
<option>Newest</option>
</select>
</div>
<div class="ms-chip-set u-mb-4">
<button class="ms-chip ms-chip--active" type="button">Size: S ×</button>
<button class="ms-chip ms-chip--active" type="button">£100–200 ×</button>
<a class="u-link" href="#">Clear all</a>
</div>
<div class="u-grid u-grid-cols-12">
<div class="u-col-6 u-col-md-4"><div class="ms-card ms-card--media ms-card--fill">
<span class="ms-thumb ms-card__media ms-thumb--portrait"></span>
<div class="ms-card__body"><p><strong>Fell Jacket</strong><br>£189.00</p></div></div></div>
<div class="u-col-6 u-col-md-4"><div class="ms-card ms-card--media ms-card--fill">
<span class="ms-thumb ms-card__media ms-thumb--portrait"></span>
<div class="ms-card__body"><p><strong>Tarn Overshirt</strong><br>£95.00</p></div></div></div>
<div class="u-col-6 u-col-md-4"><div class="ms-card ms-card--media ms-card--fill">
<span class="ms-thumb ms-card__media ms-thumb--portrait"></span>
<div class="ms-card__body"><p><strong>Moor Anorak</strong><br>£145.00</p></div></div></div>
<div class="u-col-6 u-col-md-4"><div class="ms-card ms-card--media ms-card--fill">
<span class="ms-thumb ms-card__media ms-thumb--portrait"></span>
<div class="ms-card__body"><p><strong>Crag Gilet</strong><br>£110.00</p></div></div></div>
<div class="u-col-6 u-col-md-4"><div class="ms-card ms-card--media ms-card--fill">
<span class="ms-thumb ms-card__media ms-thumb--portrait"></span>
<div class="ms-card__body"><p><strong>Beck Smock</strong><br>£120.00</p></div></div></div>
<div class="u-col-6 u-col-md-4"><div class="ms-card ms-card--media ms-card--fill">
<span class="ms-thumb ms-card__media ms-thumb--portrait"></span>
<div class="ms-card__body"><p><strong>Dale Parka</strong><br>£199.00</p></div></div></div>
</div>
<nav class="ms-pagination u-mt-6">
<a class="ms-btn ms-btn--sm ms-btn--outline" href="#">Previous</a>
<a class="ms-btn ms-btn--sm ms-btn--primary" href="#">1</a>
<a class="ms-btn ms-btn--sm ms-btn--outline" href="#">2</a>
<a class="ms-btn ms-btn--sm ms-btn--outline" href="#">3</a>
<a class="ms-btn ms-btn--sm ms-btn--outline" href="#">Next</a>
</nav>
</div>
</div>
</div>