Layout Block Intelligence — 500+ Production Section Patterns
Mental model
A page is a sequence of blocks, and each block has exactly one job. When a page
feels wrong it is usually not the styling — it is two blocks doing the same job,
or a block doing none.
- One block, one argument. A hero makes a claim. Social proof supports it. A
feature grid explains it. Pricing converts it. If you cannot name a block's
argument, delete it.
- Alternate density. Dense, then open, then dense. Uniform density reads as
a wall regardless of how good the individual blocks are.
- Every block needs a mobile form, and it is rarely "the same but narrower".
A four-column feature grid becomes a two-by-two, not a four-high stack.
- Spacing carries the grouping. Space between blocks must exceed space
within them, or the eye cannot find the seams.
For ordering blocks into a whole page, that is page-composition-engine. This
skill is the blocks themselves.
Index
| Block |
Variants |
Reference |
| Hero |
centered, split, full-bleed, video, gradient |
hero-section-patterns.md |
| Feature grid |
3-col, 4-col, alternating, icon-led |
content-section-patterns.md |
| Content section |
prose, media-left, media-right, stat row |
content-section-patterns.md |
| CTA banner |
simple, email capture, split, full-bleed |
cta-pricing-patterns.md |
| Pricing table |
2-tier, 3-tier, comparison matrix, toggle |
cta-pricing-patterns.md |
| Testimonials |
card grid, carousel, single quote, video |
social-proof-patterns.md |
| Logo wall, ratings, review display |
— |
social-proof-patterns.md |
| Top nav as a page block |
standard, mega, transparent-over-hero |
navigation-footer-patterns.md |
| Footer |
minimal, sitemap, newsletter, mega |
navigation-footer-patterns.md |
| KPI card row, data widgets, chart cards |
— |
dashboard-data-patterns.md |
Reference architecture
| File |
Covers |
Lines |
references/hero-section-patterns.md |
hero anatomy, breakpoints, variants |
926 |
references/content-section-patterns.md |
feature and content blocks |
810 |
references/navigation-footer-patterns.md |
nav and footer blocks |
638 |
references/cta-pricing-patterns.md |
conversion blocks |
635 |
references/social-proof-patterns.md |
testimonials, logos, ratings |
616 |
references/dashboard-data-patterns.md |
dashboard blocks |
571 |
What every reference file contains
- The block's job in one sentence
- Universal anatomy — the parts every variant shares
- Breakpoint specifications, not just a mobile note
- Each variant with the condition that selects it
- Production HTML/CSS or TSX
- The anti-pattern that variant invites
Routing
For heroes — anatomy, breakpoint specs, and variants from centered and split
to full-bleed: read references/hero-section-patterns.md.
For content sections — universal block specs plus the 3-column, 4-column and
alternating feature-grid variants: read references/content-section-patterns.md.
For conversion blocks — CTA banners, email-capture CTAs, and pricing tables
with the psychology behind each: read references/cta-pricing-patterns.md.
For social proof — testimonial grids and carousels, logo walls, and review
displays: read references/social-proof-patterns.md.
For navigation and footers as page blocks — standard top nav, mega menu,
transparent-over-hero, and footer variants: read
references/navigation-footer-patterns.md.
For dashboard blocks — layout patterns, the dashboard spacing system, KPI
card rows and data-widget variants: read references/dashboard-data-patterns.md.
Cross-References
- component-patterns-code — Individual component implementation (buttons, inputs, modals, cards)
- screen-flow-patterns — Full page types and navigation flows between pages
- ui-pattern-intelligence — 200+ UI interaction patterns with benchmarks
- visual-design-mastery — Color, typography, and composition scoring
- platform-visual-standards — Platform-specific adaptations (iOS 26, Material 3, CSS)
- performance-states-patterns — Loading, error, skeleton states for every block
- accessibility-inclusive-design — WCAG requirements per block type
- sector-style-intelligence — Industry-specific block styling and sequencing
- interaction-motion-design — Animation and transition patterns for blocks
- page-composition-engine — How to stack blocks into complete pages
- responsive-block-patterns — Detailed breakpoint transformations for every block
- conversion-optimization-patterns — Which blocks convert best and where to place them
Production Code Patterns
Section Wrapper (React/TSX + Tailwind)
interface SectionProps {
children: React.ReactNode;
background?: 'white' | 'gray' | 'dark' | 'brand' | 'gradient';
padding?: 'sm' | 'md' | 'lg' | 'xl';
maxWidth?: 'narrow' | 'standard' | 'wide' | 'full';
id?: string;
}
const paddingMap = { sm: 'py-8 md:py-12 lg:py-16', md: 'py-12 md:py-16 lg:py-20', lg: 'py-16 md:py-20 lg:py-24', xl: 'py-20 md:py-28 lg:py-32' };
const maxWidthMap = { narrow: 'max-w-3xl', standard: 'max-w-6xl', wide: 'max-w-7xl', full: 'max-w-full' };
const bgMap = { white: 'bg-white text-gray-900', gray: 'bg-gray-50 text-gray-900', dark: 'bg-gray-900 text-white', brand: 'bg-blue-600 text-white', gradient: 'bg-gradient-to-br from-blue-600 to-purple-700 text-white' };
export function Section({ children, background = 'white', padding = 'lg', maxWidth = 'standard', id }: SectionProps) {
return (
<section id={id} className={bgMap[background]}>
<div className={`mx-auto px-4 sm:px-6 lg:px-8 ${maxWidthMap[maxWidth]} ${paddingMap[padding]}`}>{children}</div>
</section>
);
}
Section Header
export function SectionHeader({ label, title, description, align = 'center' }: { label?: string; title: string; description?: string; align?: 'left' | 'center' }) {
const cls = align === 'center' ? 'text-center mx-auto' : 'text-left';
return (
<div className={`max-w-2xl mb-12 lg:mb-16 ${cls}`}>
{label && <p className="text-sm font-semibold uppercase tracking-wider text-blue-600 mb-3">{label}</p>}
<h2 className="text-3xl sm:text-4xl lg:text-5xl font-bold tracking-tight">{title}</h2>
{description && <p className="mt-4 text-lg text-gray-600 leading-relaxed">{description}</p>}
</div>
);
}
CSS Custom Properties
:root {
--section-py: clamp(3rem, 8vw, 7.5rem);
--section-px: clamp(1rem, 5vw, 5rem);
--section-max-width: 72rem;
--section-title-size: clamp(1.875rem, 4vw, 3rem);
--section-header-gap: clamp(2rem, 4vw, 4rem);
}
.section { padding: var(--section-py) var(--section-px); }
.section__inner { max-width: var(--section-max-width); margin-inline: auto; }
Block Quality Checklist
1---2name: layout-block-intelligence3description: 500+ individual section patterns — heroes, feature grids, pricing tables, testimonials, CTAs, footers, FAQs, stats, timelines — each with specs, spacing, and code. Use when choosing or building one section. For ordering sections into a whole page, use page-composition-engine.4---56# Layout Block Intelligence — 500+ Production Section Patterns78## Mental model910A page is a sequence of blocks, and each block has exactly one job. When a page11feels wrong it is usually not the styling — it is two blocks doing the same job,12or a block doing none.1314- **One block, one argument.** A hero makes a claim. Social proof supports it. A15 feature grid explains it. Pricing converts it. If you cannot name a block's16 argument, delete it.17- **Alternate density.** Dense, then open, then dense. Uniform density reads as18 a wall regardless of how good the individual blocks are.19- **Every block needs a mobile form**, and it is rarely "the same but narrower".20 A four-column feature grid becomes a two-by-two, not a four-high stack.21- **Spacing carries the grouping.** Space *between* blocks must exceed space22 *within* them, or the eye cannot find the seams.2324For ordering blocks into a whole page, that is `page-composition-engine`. This25skill is the blocks themselves.2627## Index2829| Block | Variants | Reference |30|---|---|---|31| Hero | centered, split, full-bleed, video, gradient | `hero-section-patterns.md` |32| Feature grid | 3-col, 4-col, alternating, icon-led | `content-section-patterns.md` |33| Content section | prose, media-left, media-right, stat row | `content-section-patterns.md` |34| CTA banner | simple, email capture, split, full-bleed | `cta-pricing-patterns.md` |35| Pricing table | 2-tier, 3-tier, comparison matrix, toggle | `cta-pricing-patterns.md` |36| Testimonials | card grid, carousel, single quote, video | `social-proof-patterns.md` |37| Logo wall, ratings, review display | — | `social-proof-patterns.md` |38| Top nav as a page block | standard, mega, transparent-over-hero | `navigation-footer-patterns.md` |39| Footer | minimal, sitemap, newsletter, mega | `navigation-footer-patterns.md` |40| KPI card row, data widgets, chart cards | — | `dashboard-data-patterns.md` |4142## Reference architecture4344| File | Covers | Lines |45|---|---|---|46| `references/hero-section-patterns.md` | hero anatomy, breakpoints, variants | 926 |47| `references/content-section-patterns.md` | feature and content blocks | 810 |48| `references/navigation-footer-patterns.md` | nav and footer blocks | 638 |49| `references/cta-pricing-patterns.md` | conversion blocks | 635 |50| `references/social-proof-patterns.md` | testimonials, logos, ratings | 616 |51| `references/dashboard-data-patterns.md` | dashboard blocks | 571 |5253## What every reference file contains54551. The block's job in one sentence562. Universal anatomy — the parts every variant shares573. Breakpoint specifications, not just a mobile note584. Each variant with the condition that selects it595. Production HTML/CSS or TSX606. The anti-pattern that variant invites6162## Routing6364For **heroes** — anatomy, breakpoint specs, and variants from centered and split65to full-bleed: read `references/hero-section-patterns.md`.6667For **content sections** — universal block specs plus the 3-column, 4-column and68alternating feature-grid variants: read `references/content-section-patterns.md`.6970For **conversion blocks** — CTA banners, email-capture CTAs, and pricing tables71with the psychology behind each: read `references/cta-pricing-patterns.md`.7273For **social proof** — testimonial grids and carousels, logo walls, and review74displays: read `references/social-proof-patterns.md`.7576For **navigation and footers** as page blocks — standard top nav, mega menu,77transparent-over-hero, and footer variants: read78`references/navigation-footer-patterns.md`.7980For **dashboard blocks** — layout patterns, the dashboard spacing system, KPI81card rows and data-widget variants: read `references/dashboard-data-patterns.md`.8283## Cross-References8485- **component-patterns-code** — Individual component implementation (buttons, inputs, modals, cards)86- **screen-flow-patterns** — Full page types and navigation flows between pages87- **ui-pattern-intelligence** — 200+ UI interaction patterns with benchmarks88- **visual-design-mastery** — Color, typography, and composition scoring89- **platform-visual-standards** — Platform-specific adaptations (iOS 26, Material 3, CSS)90- **performance-states-patterns** — Loading, error, skeleton states for every block91- **accessibility-inclusive-design** — WCAG requirements per block type92- **sector-style-intelligence** — Industry-specific block styling and sequencing93- **interaction-motion-design** — Animation and transition patterns for blocks94- **page-composition-engine** — How to stack blocks into complete pages95- **responsive-block-patterns** — Detailed breakpoint transformations for every block96- **conversion-optimization-patterns** — Which blocks convert best and where to place them9798---99100## Production Code Patterns101102### Section Wrapper (React/TSX + Tailwind)103```tsx104interface SectionProps {105 children: React.ReactNode;106 background?: 'white' | 'gray' | 'dark' | 'brand' | 'gradient';107 padding?: 'sm' | 'md' | 'lg' | 'xl';108 maxWidth?: 'narrow' | 'standard' | 'wide' | 'full';109 id?: string;110}111112const paddingMap = { sm: 'py-8 md:py-12 lg:py-16', md: 'py-12 md:py-16 lg:py-20', lg: 'py-16 md:py-20 lg:py-24', xl: 'py-20 md:py-28 lg:py-32' };113const maxWidthMap = { narrow: 'max-w-3xl', standard: 'max-w-6xl', wide: 'max-w-7xl', full: 'max-w-full' };114const bgMap = { white: 'bg-white text-gray-900', gray: 'bg-gray-50 text-gray-900', dark: 'bg-gray-900 text-white', brand: 'bg-blue-600 text-white', gradient: 'bg-gradient-to-br from-blue-600 to-purple-700 text-white' };115116export function Section({ children, background = 'white', padding = 'lg', maxWidth = 'standard', id }: SectionProps) {117 return (118 <section id={id} className={bgMap[background]}>119 <div className={`mx-auto px-4 sm:px-6 lg:px-8 ${maxWidthMap[maxWidth]} ${paddingMap[padding]}`}>{children}</div>120 </section>121 );122}123```124125### Section Header126```tsx127export function SectionHeader({ label, title, description, align = 'center' }: { label?: string; title: string; description?: string; align?: 'left' | 'center' }) {128 const cls = align === 'center' ? 'text-center mx-auto' : 'text-left';129 return (130 <div className={`max-w-2xl mb-12 lg:mb-16 ${cls}`}>131 {label && <p className="text-sm font-semibold uppercase tracking-wider text-blue-600 mb-3">{label}</p>}132 <h2 className="text-3xl sm:text-4xl lg:text-5xl font-bold tracking-tight">{title}</h2>133 {description && <p className="mt-4 text-lg text-gray-600 leading-relaxed">{description}</p>}134 </div>135 );136}137```138139### CSS Custom Properties140```css141:root {142 --section-py: clamp(3rem, 8vw, 7.5rem);143 --section-px: clamp(1rem, 5vw, 5rem);144 --section-max-width: 72rem;145 --section-title-size: clamp(1.875rem, 4vw, 3rem);146 --section-header-gap: clamp(2rem, 4vw, 4rem);147}148.section { padding: var(--section-py) var(--section-px); }149.section__inner { max-width: var(--section-max-width); margin-inline: auto; }150```151152---153154## Block Quality Checklist155156- [ ] Content flexibility: handles short AND long content without breaking?157- [ ] Responsive at 5 breakpoints (1440, 1024, 768, 480, 320)?158- [ ] Empty state: what renders with 0 items?159- [ ] Overflow state: what happens with 50+ items?160- [ ] Heading hierarchy: H2 section, H3 items, no skipping?161- [ ] ARIA landmarks: section + aria-labelledby?162- [ ] Keyboard navigation: all elements reachable?163- [ ] Images lazy-loaded below fold?164- [ ] prefers-reduced-motion respected?165- [ ] Consistent spacing, no magic numbers?166- [ ] Type scale followed, no orphaned heading words?167- [ ] Color contrast WCAG AA (4.5:1 text, 3:1 UI)?168- [ ] Visible focus indicators on interactive elements?169- [ ] Skeleton loading state for async content?170- [ ] Print styles render reasonably?171- [ ] RTL language support considered?