Skip to content →
Pillar guide · 3,580 words · ~14 min read

The Designer's Grid Bible — 12-column, baseline & 8pt grids explained

Three grid systems form the working vocabulary of every modern web and product designer: the 12-column responsive grid for horizontal page structure, the baseline grid for text rhythm, and the 8pt spacing grid for UI consistency. They cooperate — and most professional designers use all three even when they only consciously document one. This guide walks through each system, how they fit together, and how to ship them in your design tool, your CSS, and your design system.

Updated 2026-05-16 · By Sarah Chen, Founder & Lead Developer · Reviewed by web/product design contributors

TL;DR — the three grids in one sentence each

The 12-column grid handles horizontal placement of content blocks across the page. The baseline grid handles vertical rhythm of text lines so consecutive lines sit at predictable positions. The 8 px spacing scale handles every other spacing decision (margins, padding, component sizes, gaps between elements) by enforcing a small set of canonical values rather than letting each spacing be set independently. The three systems cooperate: 12-column sets the major layout regions, 8 px scales their internal spacing, baseline manages the text inside text-heavy regions.

0a. Why three grids and not one

The temptation is to look for "the one grid system" and apply it everywhere. The reason this fails is that horizontal placement, vertical text rhythm, and general spacing are different problems that respond best to different grid resolutions. The 12-column grid at typical 1200 px container with 24 px gutters resolves to ~76 px per column, which is the wrong scale for vertical text rhythm (which needs ~24 px per baseline) or for general spacing (which needs an 8 px multiple). Forcing everything to one grid resolution either produces a too-coarse text rhythm or a too-fine layout grid. Three coordinated grids at appropriate resolutions each handle their layer cleanly.

The three grids must coordinate with each other. The 12-column grid's gutter (24 px standard) is a multiple of the 8 px scale. The baseline grid (24 px standard) is also a multiple of 8 px and a fraction of typical column widths. The component-level sizes (32, 40, 48 px buttons; 16, 24, 32 px icons) all derive from the 8 px scale and fit within typical baseline divisions. When the three grids' values are chosen to be mutually compatible, the design system as a whole feels integrated; when they are chosen independently, the design system feels approximately right but never precisely so.

0. Where these grids come from — the Swiss school and its successors

The grid systems in contemporary web design trace back to a specific design movement: the Swiss International Typographic Style of the 1940s-60s, codified in print by Josef Müller-Brockmann, Karl Gerstner, Emil Ruder, and Armin Hofmann. The movement's central claim was that strict grid structure, sans-serif typography, and rigorous information hierarchy produced more honest and more usable design than the decorative traditions it succeeded. Grid Systems in Graphic Design (Müller-Brockmann, 1961) is the foundational text and remains in print as a working reference.

The Swiss-school grid was adapted for screen-based design across three waves. The first wave (1995-2000) attempted to reproduce print grids in HTML tables — clumsy, inflexible, and dependent on fixed canvas dimensions that the browser did not provide. The second wave (2005-2012) saw the 960 Grid System and Blueprint CSS introduce float-based 12-column grids that worked across the multi-resolution canvas of pre-responsive web design. The third wave (2012-present) added responsive behaviour: media-query breakpoints, fluid columns, and flexible gutters. Bootstrap, Foundation, and the Material Design grid all sit in this third wave.

The contemporary grid systems covered in this guide — 12-column layout, baseline typography rhythm, 8 px spacing scale — are the synthesis of all three waves. They preserve the Swiss school's structural rigor, add the responsive flexibility the medium requires, and codify component-level standardisation that print never needed because every print piece was a one-off. Understanding the lineage helps explain why the contemporary systems look the way they do and why their conventions are widely shared rather than each design team inventing its own.

1. Why grids exist (and why three of them)

A grid is a deliberate constraint on placement and spacing decisions. Instead of choosing each margin, gutter, and component size independently — which produces visually almost-aligned designs where the small misalignments accumulate into perceived sloppiness — a grid restricts the available choices to a small canonical set, and consistency follows automatically. The benefit is not aesthetic only; constraint-based design also reduces decision fatigue for the designer, simplifies developer implementation, and makes the design system maintainable across many contributors and many years.

A grid is a shared frame of reference that lets multiple decisions look like one decision. Without a grid, every margin, padding, column width, and spacing value is a small judgment call by whoever designed that screen — and across a product with hundreds of screens, those judgment calls accumulate into a visible chaos. The Swiss school's argument for grids in print (Müller-Brockmann, 1961) translates directly to digital: a grid frees the designer from layout decisions so attention can go to content, hierarchy, and craft.

So why three grids and not one? Because the three live at different scales. The 12-column grid governs regions: where the hero ends and the feature row starts. The baseline grid governs text lines: how reading rhythm holds across paragraphs. The 8pt grid governs spacing units: the increments from which all margins, padding, gaps, and component dimensions are built. Trying to express all three with a single grid forces compromises — too coarse for spacing, too fine for layout. Three cooperating systems are easier than one over-stressed one.

The historical accident

It's worth noting that we ended up with three grids partly by accident. The 12-column grid arrived first (Nathan Smith's 960.gs in 2008, Bootstrap in 2011) because float-based CSS desperately needed a layout primitive. The baseline grid was an inheritance from print (medieval scribes through Tschichold and Bringhurst), reluctantly adopted by web designers who realised long-form reading actually needs vertical rhythm. The 8pt grid came last (Material Design 2014, popularised by Bryn Jackson 2015) when product design hit a complexity wall and needed a system-level answer to "how big is the gap between this card and the next?"

If web design were being designed today from scratch, we might end up with two grids — or one — but we have three, every modern designer knows them, and they actually do cooperate well.

2. The 12-column grid in 5 minutes

The 12-column grid divides the available horizontal canvas into twelve equal columns separated by uniform gutters. A content block can span one column, two columns, three columns, and so on up to twelve. Common spans: a hero section spans 12 (full width); a sidebar layout uses 4 + 8 or 3 + 9; a three-column card row uses 4 + 4 + 4; a four-column features section uses 3 + 3 + 3 + 3. The 12-column choice (rather than 8, 10, or 16) is what makes all these common subdivisions clean — see section 5a below for why this matters in practice.

Twelve equal columns, separated by consistent gutters, inside a fixed-width container. Layouts compose by spanning some number of columns: a hero block at col-span-12, a main+sidebar pattern at col-span-8 + col-span-4, a card row at three col-span-4 blocks. Because 12 divides cleanly into 1, 2, 3, 4, 6, and 12, almost every common layout pattern resolves to whole-number column counts.

Why 12, not some other number

12 is the smallest highly-composite number that divides cleanly into halves, thirds, quarters, sixths, and twelfths. 8 doesn't give you thirds. 16 doesn't give you thirds. 24 gives you everything but is over-granular. 12 hits the sweet spot — and Bootstrap's 2011 standardisation locked it in for the next decade and counting. (See 12-column web grid for the full overlay reference.)

Container widths and breakpoints

Bootstrap's defaults: 1200px (XL), 992px (LG), 768px (MD), 576px (SM). Below SM, content collapses to single-column. Modern designs often extend XL to 1280 or 1440px. Tailwind uses similar breakpoints (640, 768, 1024, 1280, 1536) without a fixed container, controlling layout via per-breakpoint utility classes. Pick one system and stick with it across a product — engineers cannot translate "Figma had a 1240 grid" to a Tailwind config without rebuilding the breakpoints.

What the 12-column grid is not

It is not a constraint on creativity; it is a vocabulary. Grid-respecting designs feel orderly; grid-breaking designs feel emphasised precisely because the grid was respected everywhere else. A design that ignores the 12-column grid throughout reads as chaotic, not creative.

3. The baseline grid in 5 minutes

Horizontal lines spaced at a consistent interval — typically equal to your body-text line-height — that every text baseline sits on. When all text aligns to the same baseline grid, the page reads with unified vertical rhythm. (See the baseline grid overlay reference.)

The math

Set the baseline interval equal to your body-text line-height. If body text is 16px with line-height 1.5, baseline = 24px. Headings should use line-heights that are integer multiples of 24 (24, 48, 72) so they align to the same grid. A baseline grid used for vertical rhythm and a column grid solve different problems: the column grid places blocks horizontally, the baseline grid keeps text lines on a predictable vertical interval. The 4px or 8px subgrid is sometimes used as a finer alignment helper for non-text elements — an 8pt baseline gives a coarser, more forgiving rhythm than a 4pt baseline, which divides the interval in half for tighter type.

Why baseline alignment is harder on the web

CSS doesn't expose true font-baseline metrics directly — line-height sets the line box, not the baseline position within it. Different fonts at the same line-height have visibly different baseline positions because their internal metrics (cap height, x-height, descender depth) differ. The pragmatic answer: pick one body font, set unitless line-heights that produce integer pixel values at your base size, and accept that strict pixel-perfect baseline alignment is achievable only with effort. Editorial frameworks (Compass's Vertical Rhythm mixin, Tailwind's leading scale) help.

Where baseline rhythm earns its keep

Long-form reading. A novel, a magazine feature, a documentation site. Readers respond to vertical rhythm even when they don't notice it consciously — text that drifts from the baseline reads as slightly amateur even when nothing is technically wrong. For UI work (dashboards, forms, settings screens) baseline alignment matters less; the 8pt grid usually handles vertical spacing well enough.

4. The 8pt spacing grid in 5 minutes

The 8pt grid system in UX design constrains every margin, padding, gap, component height, and icon size to multiples of 8 pixels — 8, 16, 24, 32, 48, 64, 96. Working in multiples of 8 means margins and padding stay consistent without per-element judgment, and 8px spacing maps cleanly onto design tokens. Use 4pt as a half-step for finer control. The result is system-wide rhythm that holds across hundreds of screens. (See the 8pt spacing grid overlay reference.)

Why 8

8 is divisible by 1, 2, 4, and 8, giving you 8pt for major spacing, 4pt for medium, 2pt for fine. It scales cleanly across common display densities (1×, 1.5×, 2×, 3×) without producing fractional pixel values. Bryn Jackson's "The 8-Point Grid" article (2015) made the case explicit and the system stuck.

What the 8pt grid actually constrains

  • Margins and paddings inside components.
  • Gaps between sibling elements (CSS gap).
  • Component heights (button at 32, 40, or 48; input at 40 or 48; nav bar at 56 or 64).
  • Icon sizes (16, 20, 24, 32, 48px — all 8pt-friendly).
  • Horizontal spacing inside the 12-column grid's gutters.

What the 8pt grid does not constrain

Element widths inside the 12-column system (those follow column units, not 8pt). Text line-heights (those follow the baseline grid). Image aspect ratios (those follow content). The 8pt grid is a spacing system, not a global ruler.

5a. Why 12 columns specifically

The 12-column choice is not arbitrary. Twelve divides cleanly by 2, 3, 4, and 6 — which means a 12-column grid can be subdivided into halves (2 × 6), thirds (3 × 4), quarters (4 × 3), and sixths (6 × 2) without any column rounding. Eight columns divides only by 2 and 4; 10 columns only by 2 and 5; 16 columns only by 2, 4, and 8. The 12-column divisibility makes it the most flexible standard subdivision for content layouts, and it converged across major frameworks (Bootstrap, Foundation, Material Design, the Skeleton CSS framework, the 960 Grid System that preceded all of them) because of this property.

The 12-column grid is also a good fit for typical content patterns: a 2 + 10 layout works for a sidebar; a 4 + 8 works for a two-column with weighted sides; a 6 + 6 works for an even split; a 3 + 6 + 3 works for centred content with flanking elements. Almost every page layout you can describe in plain language maps to a clean 12-column division. Eight columns or 10 columns force compromises on most of these.

Some teams use 24-column grids for more granular control, but the trade-off is harder mental arithmetic and more designer-by-designer drift. For most product and marketing work, 12 columns is the sweet spot.

5. How the three systems cooperate

The three grids govern different axes:

  • 12-column grid = horizontal block placement.
  • Baseline grid = vertical text rhythm.
  • 8pt grid = all other spacing increments.

They overlap in two productive places. First, gutter widths in the 12-column grid (typically 16, 24, or 32px) are 8pt multiples — so 8pt rhythm holds even at the column boundary. Second, common baseline intervals (24px = 3×8pt; 32px = 4×8pt) are 8pt multiples too — so vertical text rhythm and UI spacing rhythm reinforce each other.

The mental model that works: 8pt is the unit, baseline is the text-line specialisation, 12-column is the page-region overlay. Every spacing decision goes through 8pt; text-block heights additionally snap to baseline; section widths additionally snap to columns.

An example

A marketing-site feature row: container at 1200px (12-col XL), three feature cards each spanning 4 columns, 32px gap between cards (4×8pt), each card 24px internal padding (3×8pt), card title 24px line-height (1×24px baseline), card body 16px text on 24px line-height (1×baseline), 16px gap between title and body (2×8pt). Every measurement is an 8pt multiple; every column placement is a 12-col span; every text line snaps to the 24px baseline. The three systems agree on every pixel.

6. Setting up the three grids in Figma

Figma's Layout Grid feature handles the 12-column grid natively but requires manual setup for baseline and 8pt grids.

12-column grid in Figma

On a frame, add a Layout Grid → Columns. Set Count: 12, Type: Stretch (responsive) or Center (fixed), Margin: 24, Gutter: 24. Save as a Style so you can reuse on every frame. For multiple breakpoints, create one frame per breakpoint with its own 12-col config (1200px container with 24px gutter at XL; 768px container with 16px gutter at MD; etc.).

Baseline grid in Figma

Add a Layout Grid → Rows. Set Count: Auto, Gutter: 0, Height: 24 (or your baseline interval). Set the colour to a faint blue at 30% opacity so it's visible without dominating. Save as a Style. The grid won't snap text to baseline automatically (that's a known Figma gap), but it makes baseline alignment visible and verifiable.

8pt grid in Figma

Two approaches. (1) Add a Layout Grid → Grid with Size: 8 — this puts 8×8 squares everywhere, useful for component-level work. (2) Use Figma's nudge settings: small nudge = 1px, large nudge = 8px. The second approach is better for general use because the grid stays invisible while still constraining spacing. Set up Auto Layout components with 8pt gap and padding tokens (8, 16, 24, 32, 48, 64) as variables.

7. Implementing the three grids in CSS

12-column grid in CSS Grid

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 24px;
}
.main { grid-column: span 8; }
.sidebar { grid-column: span 4; }

Baseline grid via line-height multiples

html { font-size: 16px; }
body { line-height: 1.5; }   /* 24px baseline */
h1 { font-size: 2rem; line-height: 3; margin: 1.5rem 0; }   /* 96px line, 2-baseline margin */
h2 { font-size: 1.5rem; line-height: 2; margin: 1.5rem 0; }
p { margin: 0 0 1.5rem; }   /* 24px = one baseline unit */

8pt grid via spacing tokens

:root {
  --space-1: 4px;   --space-2: 8px;   --space-3: 16px;
  --space-4: 24px;  --space-5: 32px;  --space-6: 48px;
  --space-7: 64px;  --space-8: 96px;
}
.card { padding: var(--space-4); gap: var(--space-3); }

Tailwind's defaults follow exactly this pattern: p-4 = 16px, p-6 = 24px, gap-2 = 8px, etc. The Tailwind spacing scale is a 4pt grid by default, which gives you 8pt rhythm via every-other token.

8. Encoding the grids in a design system

A design system that ships the three grids as tokens (not just documentation) prevents drift across teams. The minimum token set:

  • Layout tokens: container.xl (1200), container.lg (992), gutter.lg (24), gutter.sm (16).
  • Spacing tokens: space.1 through space.8 in 8pt multiples (or 4pt with every-other being 8pt).
  • Typography tokens: body line-height (1.5 for 24px baseline), heading line-heights (multiples of baseline), heading sizes (snap to baseline-multiple line-heights).
  • Component sizing tokens: button heights (32, 40, 48), input heights (40, 48), icon sizes (16, 20, 24, 32, 48).

Once the tokens exist, every component built from them inherits grid compliance. Designers and engineers can use space.4 without thinking about whether 24 is an 8pt multiple — the token guarantees it.

Material, Carbon, Polaris

Google Material Design, IBM Carbon, and Shopify Polaris all ship the three-grid system as tokens. The systems differ in defaults (Material's 4dp baseline grid, Carbon's 8px grid with 16-column layout, Polaris's mobile-first scale) but all encode the same three-axis idea: layout × text rhythm × spacing increments. If you're starting a system from scratch, copy one of them — the wheel is round.

9a. Three case studies in grid use

Stripe — the disciplined product site

Stripe's marketing site is the most-cited contemporary example of grid-disciplined web design. Every section snaps to a 12-column grid with consistent gutters; every spacing decision is on the 8 px scale; the baseline grid is enforced across long-form content. The site's polish is largely a result of this discipline rather than of any single visually striking move. The takeaway: a strict grid is not boring; it is the foundation on which more interesting moves register as deliberate.

Apple — the marketing-led grid

Apple's marketing pages use the 12-column grid for layout structure but allow large hero imagery to break full-width past the container. Typography is grid-locked at the content level (paragraphs and headings on a baseline) but display type breaks the grid intentionally to land at specific positions in the hero. The result reads as "premium" specifically because the grid is mostly enforced and the breaks are rare. Half the design is the breaks; half is everything else staying in place.

The New York Times — the editorial baseline

The Times's web design enforces the baseline grid more rigorously than almost any other major site. Body text, headlines, captions, and pull quotes all snap to the same vertical rhythm. The 12-column grid is enforced at the section level but individual articles flow within wider single-column text blocks for readability. The takeaway: editorial content benefits more from baseline discipline than from column discipline, and editorial sites should weight their grid system accordingly.

9. When to break the grid

The Swiss-school answer: when the break carries meaning. A pull quote that crosses the column line; a hero image that bleeds full-width past the container; a headline whose size jumps two baseline units to land at the top of the page. These breaks register as design moves precisely because the grid is consistent everywhere else.

What doesn't work: ad-hoc breaks throughout, where the grid is visibly violated for no clear reason. The reader still feels the violations even without naming them; the result feels sloppy rather than expressive. The rule: break the grid intentionally and rarely, and let the surrounding compliance do the visual work.

Cases where breaking is normal

  • Marketing hero sections — full-bleed background images, oversized type.
  • Editorial features — pull quotes, art-directed inserts, full-page imagery.
  • Empty states and onboarding — large illustrations don't snap to columns.
  • Marketing-site footers — often span container fully even if the rest of the page is grid-bounded.

10. Responsive grid behaviour across breakpoints

The 12-column grid as taught in the Swiss-school tradition assumes a fixed canvas. Web design assumes the opposite — the canvas can be anywhere from a 320 px mobile screen to a 2560 px desktop monitor. The grid has to behave well across that range, and the rules for how it does so are the most consequential design-system decisions you will make.

The standard Bootstrap-inherited breakpoint set is 576 / 768 / 992 / 1200 / 1440. Below 576 px the grid collapses to a single column with everything stacked. From 576 to 768 the grid runs as 6 columns (most layouts use 12-column logic but pair up to two-content-blocks-per-row). From 768 to 992 it runs as 8 columns. From 992 upward it runs as the full 12 columns. The container width also changes at each breakpoint to provide consistent margin on either side.

The two design decisions inside this scheme are (a) what scales — does the gutter scale with viewport width, does the column width scale, or does the container width scale? — and (b) what the maximum container width is at the largest breakpoint. The standard answers: gutter stays fixed (24 px), columns scale to fit the container width, container has a maximum that caps text-line-length comfortably (~1200 px for most sites; larger for image-heavy designs).

The implications for content placement. A button placed in column 5 of 12 at desktop will be roughly centred but slightly left of centre; the same button on tablet (8-column rendering) shifts noticeably; the same button on mobile (single column) becomes full-width. If the button's role in the design depends on its position (off-centre as a hierarchy signal, for example), you need to think about how the role survives the breakpoint transitions. Most designers handle this by setting up component-level breakpoint rules in addition to the layout-level grid rules.

11. Component-level alignment to the grid

The grid governs the page; component-level rules govern what fits into the grid cells. The two rule sets must agree, and the alignment is where most design-system documentation lives.

Button heights, by convention, snap to 8 px multiples: 32, 40, 48, 56 px. Text-input heights match (so buttons and inputs in the same row align). Icon sizes snap to 8 or 16 px multiples: 16, 24, 32, 48 px. Card padding snaps to the 8 px scale: usually 16 or 24 px inside, with 24 or 32 px gap between cards. Avatar sizes snap to either 8 px multiples (32, 40, 48, 56, 64 px) or to a custom scale (some systems use 20, 28, 36, 44, 52 — but these break 8 px alignment and require explicit justification).

The implications for design-system documentation. A well-documented system specifies every component's size and padding in 8 px multiples, so the system enforces grid alignment automatically. A poorly documented system leaves these as designer-by-designer choices, and the grid alignment drifts. Material Design, Atlassian Design System, and Apple Human Interface Guidelines all enforce 8 px multiples in their component specifications precisely because the alternative is unmanageable drift.

12. Grid systems and design tokens

Modern design systems express grid values as named design tokens rather than as raw numbers, and the naming convention matters. The current best practice is a small set of named scale steps — usually 9 to 12 steps from "xs" through "5xl" or numbered 100 / 200 / 300 ... 900 — that map to specific pixel values. The 8 px scale becomes spacing-1 (8 px), spacing-2 (16 px), spacing-3 (24 px), spacing-4 (32 px), spacing-6 (48 px), spacing-8 (64 px), spacing-12 (96 px). Typography sizes follow a parallel scale: text-xs through text-5xl. Colours, radii, and shadows follow similar named scales.

The benefit. When you change "what spacing-4 means" centrally (perhaps you want 32 px to become 36 px to match a new brand spec), the change cascades to every component that uses that token. When you write "padding: 32 px" as a literal value, the change requires hunting through the entire codebase. The token system is the engineering substrate for keeping the grid coherent at scale.

The cost. Token systems require discipline. Designers who add new spacing values outside the token scale ("just this one time we need 14 px here") accumulate technical debt fast. Engineering reviewers should reject pull requests that use raw spacing values instead of tokens, and design reviewers should reject Figma frames that use spacing outside the documented scale. The discipline is the entire point of having a system.

12a. Grid systems and accessibility

Strict grid alignment is one of the cheaper accessibility wins available. Three reasons.

Consistent spacing aids scannability for low-vision users. Users with low vision, dyslexia, or other reading-related conditions rely heavily on spatial consistency to predict where the next content item will appear. A grid that consistently places similar content at similar positions is significantly easier to scan than a freeform layout, regardless of how visually striking either looks.

Baseline grids improve reading flow for users with attention difficulties. The eye returning to the start of the next line is easier when consecutive lines sit at predictable vertical positions. Baseline grids ensure this; freeform line spacing degrades it. Users with ADHD, mild traumatic brain injury, or simply fatigue benefit measurably from baseline-locked text.

8 px spacing aligns with most users' screen-reading defaults. Tap targets at least 44 × 44 px (Apple's HIG recommendation) snap naturally onto the 8 px scale (44 = 40 + 8 = 6 × 8 = a near-multiple of 8). Touch targets that don't snap to the 8 px scale tend to be either too small for comfortable touch use or oversized in a way that wastes screen real estate; the 8 px scale represents a converged compromise.

The corollary: when a designer breaks the grid for "visual interest," they are often also breaking accessibility properties that the grid was incidentally supporting. The breaks need to be intentional and rare, as Section 9 covers; the accessibility implications give an additional reason for that discipline beyond pure visual coherence.

13. The one-page cheat sheet

GridGovernsDefault
12-columnHorizontal block placement1200px / 24px gutter / XL breakpoint
BaselineText-line vertical rhythm24px baseline = 16px body × 1.5
8pt spacingAll other margins, padding, gaps8, 16, 24, 32, 48, 64, 96
Component sizesButtons, inputs, icons32/40/48 buttons, 16/24/32/48 icons
BreakpointsWhere layout reflows576 / 768 / 992 / 1200 / 1440

Open Grid Maker Pro to try the three grids together →

Frequently asked questions

Do I need all three grid systems?

For serious product or marketing-site work, yes. The 12-column grid governs horizontal layout (where blocks live across the page). The baseline grid governs text rhythm inside text-heavy regions. The 8pt grid governs every other spacing decision (margins, padding, gaps, component sizes). They cooperate: 12-column places sections, 8pt scales their internal spacing, baseline handles long-form text rhythm. Most modern design systems use all three implicitly even when they only document one or two.

How do these grids translate to CSS?

12-column grid → CSS Grid (grid-template-columns: repeat(12, 1fr)) or framework class (.col-md-8 in Bootstrap, col-span-8 in Tailwind). Baseline grid → consistent line-height multipliers in Sass mixins or Tailwind's leading-* utilities. 8pt grid → spacing scale tokens (Tailwind's spacing-1 through spacing-96 are 4px increments, all 8pt-friendly multiples). All three are first-class concerns in modern frameworks.

Should marketing sites and product apps use the same grid?

They share the same primitives but at different intensities. Marketing sites prioritise visual hierarchy and lean on the 12-column grid heavily; baseline rhythm matters less because text blocks are shorter. Product apps prioritise consistency across hundreds of screens; 8pt grid adherence is critical because deviation accumulates visibly across the product. Marketing can break the grid for a hero section without consequence; product cannot.

What is the 8 point grid system in UX design?

The 8pt grid system is a spacing convention that sets every margin, padding, gap, and component dimension to a multiple of 8 pixels — 8, 16, 24, 32, 48, 64, 96. Because 8 is divisible by 2 and 4, you can drop to a 4px half-step where you need finer control. Constraining spacing to a small set of canonical values, rather than choosing each one independently, is what produces consistent visual hierarchy and lets the same values map directly onto design tokens. It scales cleanly across display densities (1×, 1.5×, 2×, 3×) without fractional pixels.

Why are grids 12 columns?

Twelve is the smallest number that divides cleanly into halves, thirds, quarters, and sixths, so a 12-column grid resolves common layouts — 6 + 6, 4 + 4 + 4, 3 + 3 + 3 + 3, 8 + 4 — to whole-number column spans with no rounding. Eight columns gives no thirds; 10 gives no thirds or quarters; 24 works but adds arithmetic and drift. The 12-column math, plus Bootstrap's 2011 standardisation, is why it converged as the default.

What is the difference between a baseline grid and a column grid?

They govern different axes. A column grid (typically 12 columns with gutters) controls horizontal placement — where blocks, sidebars, and card rows sit across the page. A baseline grid is a set of evenly spaced horizontal lines that text baselines snap to, controlling vertical rhythm so consecutive lines sit at predictable positions. A page usually runs both at once: the column grid places regions, the baseline grid keeps the text inside them on a steady reading rhythm.

Notes from the studio · Three designers on the grids beneath the screen

Illustrative composites of how the tool gets used in practice — not quotes from named individuals.

12-column is the lingua franca. Every framework, every handoff, every developer assumes it. Fighting it is unproductive.
Product designerIllustrative scenario
Baseline grid is what separates a good typographic layout from a great one. The rhythm at the leading is invisible until it's not there.
Editorial designerIllustrative scenario
8pt spacing system is non-negotiable on mobile. Everything snaps. Padding, gutter, type scale — all derive from the 8pt step.
Mobile UI designerIllustrative scenario
Open the tool

Open the web-design overlays

12-column, baseline, 8pt, column, modular, manuscript, hierarchical — all the typography + web design grids, free.

Launch Grid Maker Pro →
Issue №01 · Newsletter

One brief every other Tuesday.

One overlay, one historical reference, one workflow note. Studio notes from working artists, photographers, and designers. No spam, unsubscribe in two clicks.

Join 10,000+ artists receiving weekly tips