Full-bleed monochrome hero with a giant display heading, short description, and a continuous bottom marquee of capability chips that pauses on hover.
Full-bleed hero with a badge, giant display heading, short description, and outline CTA stacked over a dark-scrim background photo, closed by a continuously scrolling horizontal marquee of capability tag pills that pauses the moment the pointer enters the section.
Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.
Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.
Radix flavor
npx shadcn add "https://ui.beste.co/r/hero141?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/hero141?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/hero141.tsx, the badge7 and button12 components it uses for the eyebrow label and CTA button, and its dependencies.
The installed file exports hero141Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.
import { Hero141, hero141Demo } from "@/components/beste/block/hero141";
export default function Page() {
return <Hero141 {...hero141Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Hero141 } from "@/components/beste/block/hero141";
export default function Page() {
return (
<Hero141
badge={{ label: "Studio Auralis" }}
heading="Quiet, exact."
description="A monochrome practice for brands that prefer restraint over noise."
backgroundImage={{
src: "https://images.unsplash.com/photo-1725354282080-cf7e4b7325bc?w=1920&h=1200&fit=crop",
alt: "Folded paper architecture in soft grey light",
}}
button={{ label: "Start a project", href: "https://beste.co" }}
tags={[
{ label: "Brand systems", href: "https://beste.co" },
{ label: "Editorial design", href: "https://beste.co" },
{ label: "Art direction", href: "https://beste.co" },
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
heading | string | – | Giant display heading |
description | string | – | Short supporting paragraph under the heading |
backgroundImage | { src: string; alt: string } | – | Full-bleed background photo |
badge | { label: string } | – | Eyebrow label rendered as a Badge7 |
button | { label: string; href: string } | – | Outline CTA below the description, rendered via Button12 |
tags | Tag[] | [] | Capability chips scrolled in the bottom marquee |
className | string | – | Extra classes for the outer <section> |
type Tag = { label: string; href: string };tags duplicated end to end ([...tags, ...tags]), which is what makes the loop read as seamless; the duplicated second half is marked aria-hidden and tabIndex={-1} so it never shows up in the tab order or to screen readers.@keyframes block (hero141-marquee, defined in a scoped <style jsx> tag) that translates the track from 0 to -50% over 38 seconds, linear and infinite.group-hover/hero141:[animation-play-state:paused]; there is no per-pill hover pause.mask-image: linear-gradient(...), so pills entering or leaving the visible strip soften out instead of clipping hard.max-w-7xl column, while the marquee itself runs full width with no side padding, so it visually bleeds to both edges of the viewport.hero136
Full-bleed hero whose background crossfades to the active item, with an auto-scrolling marquee of clickable thumbnails along the bottom and a giant heading above the strip.
hero137
Full-bleed monochrome hero that crossfades across a set of slides, navigated by explicit previous/next arrows and clickable dots with an auto-loop, plus a caption linking the active slide.
hero119
Full-bleed image hero with an oversized three-word display heading, a row of monospace meta labels, a bold sub-headline, and a featured card with thumbnail, category, paginated index, and title.
hero139
Full-bleed monochrome hero with a giant display heading over a static image, paired with a card that auto-cycles through testimonials and click-to-select dots.
hero130
Full-bleed hero with a static background image, a giant display heading, and a slim bordered bar that auto-rotates through short, clickable announcement messages with position dots.
hero140
Full-bleed monochrome hero with a giant heading and a row of clickable tab chips that fade between text panels (title, description, stat), auto-advancing on a timer with no background swap.