Footers anchor marketing pages with sitemap grids, trust rows, and closing CTAs. Compose them with Column, Grid, SmartLink, and Logo — match Footer1–4 Pro blocks for production structure.
What this pattern covers
Once UI footers range from minimal bars to multi-column sitemaps:
Footer1 — compact icon + copyright row
Footer2 — centered CTA above links
Footer3 — five-column responsive sitemap grid
Footer4 — premium footer with ambient effects (describe TypeFx and Particle in prose)
Footer1 pattern: one Row with social IconButtons and muted copyright Text.Use horizontal="between" so copyright and icons pin to opposite edges. Icon names must come from the Once UI icon spec — never invent names.
CTA footer
Footer2 adds a closing headline and Button above the link row — common on landing pages after the final feature section:Describe in prose: replace plain Text link labels with SmartLink when routes are known.
Multi-column sitemap
Footer3 uses Grid with responsive column collapse:
Keep the trust strip visually lighter than the footer — smaller text, more whitespace above the sitemap.
Premium footer effects
Footer4 combines Background, Particle, TypeFx, and Mask for animated wordmarks. These are decoration layers — follow Decoration layers:
Absolute Background on the footer wrapper
pointerEvents="none" on all effect layers
Content Column with zIndex={1}
Describe in prose: load Footer4 from packages/core/ai/examples/blocks/Footer4.tsx when you need particle + typewriter effects. Budget one animated footer per page, not per section.
Write this / not this
✅ Once UI way
❌ Common mistake
Grid with breakpoint column overrides
Single-column stack of 20 links
`paddingTop="80"` section rhythm
Footer glued to last section with no gap
SmartLink for internal routes
Raw anchor tags with custom styles
Muted `neutral-weak` link text
Links same weight as section titles
Check yourself
Sitemap Grid sets columns at s / m breakpoints
CTA footer has one primary Button, not three competing actions
Copyright and legal links are present on marketing pages
Decoration effects use absolute layers with pointerEvents="none"