Hero
The opening section of a landing page. Twenty-two finished layouts, from the product hero over a bleeding component collage and realistic device shots to full-bleed media, scroll stages and editorial openings.
Built from#
All nineteen variants are built on the Hero component: one layout prop swaps the composition between a centered column, a two-column split, a full-bleed background, and a full-viewport cover, with HeroHighlight marking a keyword and HeroMedia holding the visual. Variant 1 is the product hero the home ships: a HeroTitle size="xl" display headline (72px) in a column wide enough to hold it on two lines, three CTAs, six benefits broken 3 + 3, the reviewers with their rating, and a component collage wider than the page that the band clips at both edges; its multiplayer cursors wait for an 80rem hero, where the gutters can hold them. Variants 3 through 6 fill HeroMedia with a product shot: Variant 3 hand-frames a browser mockup (window dots and an address bar) around a screenshot, while Variants 4, 5, and 6 drop finished device renders (iPad and iPhone PNGs from /public/devices, each with its bezel and shadow baked in) that float on the band with no wrapper. Variant 8 takes the split parts into a full-viewport slab (100svw × 100svh): a bottom-left-anchored copy column beside a photo that bleeds to the section's own edges. Variants 9 and 10 set layout="background": a HeroBackground covers the band with a video or a photo under a legibility scrim and the copy flips to white. Variant 11 returns to the centered column and fills HeroMedia with a masonry collage of four room photos: a fixed-height grid where the two side images span both rows while the middle column stacks a pair, folding to a 2×2 below the sm breakpoint. Variant 12 keeps the centered column but pares the wall down to two large photos, a wider near-square frame beside a taller portrait one on a 1.7fr : 1fr grid, stacking below sm. Variant 15 is the only one to use HeroFeatures' second shape: layout="columns" promotes the inline check row into three capability columns, each a bare brand-tinted mark over a title and a sentence, separated by nothing but the gutter, sitting between the CTAs and a chrome-less framed screenshot. The poster-wall variant is the only one with no HeroMedia at all: a HeroScatter layer of twelve tilted HeroScatterTile prints fills the band around the copy (the band's edges crop the outermost ones) while the copy itself stays the house stack under a plain headline: the wall is the colour here, so no keyword marker. The wall is a size container, so cards appear as the hero earns the room for them. The editorial card variant is the only one that opens a page rather than a section: a Navbar rides inside the Hero, and a .dark class on the band re-declares every token for the slab and its children, so the bar's links, both CTAs, the logo wall and every focus ring resolve their dark values with no bespoke colours on a light site. Its copy sits in normal flow inside the photo card rather than as an absolute overlay, so the card grows to whatever the words need and the headline is never clipped on a narrow frame. The parallax cover variant is the fourth layout: cover makes the band a whole viewport (100svh) and stands the caption along its bottom edge, the HeroTitle size="2xl" poster cut (96px) in one corner and the HeroSubtitle in the other, so the picture keeps its whole frame. Its drift is one prop, <HeroBackground parallax>: the media travels slower than the band while the caption travels a little faster. On the same timeline the frame itself pulls in from full bleed to the page's own 90rem container and rounds its corners, with the caption stepping in beside it, so the opening shot hands the page back to its grid instead of ending at a hard seam. All of it is scrubbed by a CSS view timeline rather than a scroll listener, so there is no GSAP, no Lenis and no rAF loop in it, it runs backwards on the way up, and it holds still under reduced motion. All are finished, copy-pasteable slabs ready to open a marketing page.
Responsive#
Each preview renders inside an iframe, so the slab's own breakpoints respond to the frame width. Drag the handle or pick Mobile, Tablet, or Desktop on any variant to watch it recompose, and switch the per-frame theme to check it in dark or moonlight.