The Material Components for the web layout grid component
94
Classes for controlling how many columns a cell spans across different screen sizes.
Apply the same column span across all screen sizes.
.mdc-layout-grid__cell--span-1 /* 1 column */
.mdc-layout-grid__cell--span-2 /* 2 columns */
.mdc-layout-grid__cell--span-3 /* 3 columns */
.mdc-layout-grid__cell--span-4 /* 4 columns (default) */
.mdc-layout-grid__cell--span-5 /* 5 columns */
.mdc-layout-grid__cell--span-6 /* 6 columns */
.mdc-layout-grid__cell--span-7 /* 7 columns */
.mdc-layout-grid__cell--span-8 /* 8 columns */
.mdc-layout-grid__cell--span-9 /* 9 columns */
.mdc-layout-grid__cell--span-10 /* 10 columns */
.mdc-layout-grid__cell--span-11 /* 11 columns */
.mdc-layout-grid__cell--span-12 /* 12 columns (full width) */Usage:
<div class="mdc-layout-grid__inner">
<div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-6">
Half width on all screens
</div>
<div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-6">
Half width on all screens
</div>
</div>Control column spans for specific screen sizes.
/* Desktop-specific spans (840px+) */
.mdc-layout-grid__cell--span-1-desktop
.mdc-layout-grid__cell--span-2-desktop
/* ... through span-12-desktop */
/* Tablet-specific spans (600px-839px) */
.mdc-layout-grid__cell--span-1-tablet
.mdc-layout-grid__cell--span-2-tablet
/* ... through span-8-tablet */
/* Phone-specific spans (0px-599px) */
.mdc-layout-grid__cell--span-1-phone
.mdc-layout-grid__cell--span-2-phone
/* ... through span-4-phone */Usage:
<div class="mdc-layout-grid__cell
mdc-layout-grid__cell--span-6-desktop
mdc-layout-grid__cell--span-4-tablet
mdc-layout-grid__cell--span-4-phone">
Responsive cell: 6 cols desktop, 4 cols tablet, 4 cols phone
</div>When a span exceeds available columns, the cell behaves as if it spans all available columns:
<!-- On phone (4 columns available) -->
<div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-8">
<!-- Acts as span-4 on phone -->
</div>Cells without explicit span classes default to 4-column span:
<div class="mdc-layout-grid__cell">
<!-- Spans 4 columns on all screen sizes -->
</div>Device-specific classes override universal classes:
<div class="mdc-layout-grid__cell
mdc-layout-grid__cell--span-12
mdc-layout-grid__cell--span-6-desktop">
<!-- 12 columns on tablet/phone, 6 columns on desktop -->
</div><div class="mdc-layout-grid__inner">
<div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-4">Column 1</div>
<div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-4">Column 2</div>
<div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-4">Column 3</div>
</div><div class="mdc-layout-grid__inner">
<div class="mdc-layout-grid__cell
mdc-layout-grid__cell--span-8-desktop
mdc-layout-grid__cell--span-6-tablet
mdc-layout-grid__cell--span-4-phone">
Main content
</div>
<div class="mdc-layout-grid__cell
mdc-layout-grid__cell--span-4-desktop
mdc-layout-grid__cell--span-2-tablet
mdc-layout-grid__cell--span-4-phone">
Sidebar
</div>
</div><div class="mdc-layout-grid__inner">
<div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-12">
Hero section (full width)
</div>
<div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-4">Card 1</div>
<div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-4">Card 2</div>
<div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-4">Card 3</div>
</div>Install with Tessl CLI
npx tessl i tessl/npm-material--layout-griddocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10