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.
Full-bleed hero whose background crossfades to the active item, paired with an infinitely auto-scrolling marquee of clickable thumbnails along the bottom edge and a giant heading with the active item's caption above the strip.
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/hero136?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/hero136?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/hero136.tsx and its dependencies.
The installed file exports hero136Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.
import { Hero136, hero136Demo } from "@/components/beste/block/hero136";
export default function Page() {
return <Hero136 {...hero136Demo} />;
}Then replace the demo with your own props. Written out, the same setup looks like this:
import { Hero136 } from "@/components/beste/block/hero136";
export default function Page() {
return (
<Hero136
heading="Everything in one grey."
items={[
{
image: {
src: "https://images.unsplash.com/photo-1492691527719-9d1e07e534b4?w=1920&h=1200&fit=crop",
alt: "Concrete stair detail under flat daylight",
},
name: "Stair, study in shadow",
href: "/work/stair-study",
},
{
image: {
src: "https://images.unsplash.com/photo-1554907984-15263bfd63bd?w=1920&h=1200&fit=crop",
alt: "Folded paper sculpture on a plain surface",
},
name: "Paper, folded once",
href: "/work/paper-fold",
},
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
heading | string | – | Giant display heading above the marquee |
items | MarqueeFrame[] | [] | Frames rendered as background slides and marquee thumbnails |
className | string | – | Extra classes for the outer <section> |
type MarqueeFrame = {
image: MarqueeImage;
name: string;
href: string;
};
type MarqueeImage = { src: string; alt: string };items is duplicated ([...items, ...items]) and the doubled track runs a scoped hero136-marquee keyframe animation (translateX(0) to translateX(-50%)) over 32 seconds, linear, infinite, producing a seamless loop.group-hover/marquee:[animation-play-state:paused]; hovering an individual thumbnail also sets it active, which crossfades the section background.aria-hidden with tabIndex={-1}, so keyboard and screen-reader users only encounter each thumbnail once despite the doubled DOM used for the loop.setInterval, independent of the marquee's own 32-second scroll cycle.hero141
Full-bleed monochrome hero with a giant display heading, short description, and a continuous bottom marquee of capability chips that pauses on hover.
hero131
Full-bleed hero whose background crossfades between frames, with a clickable filmstrip of thumbnails pinned along the bottom and an auto-advancing active tile.
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.
hero99
Cinematic fullscreen hero with scrolling marquee keyword band over inset background video
hero127
Full-bleed background-driven slideshow hero. The active item's image fills the section and crossfades on selection, with a giant fixed heading and a floating card whose thumbnail, category, numbered pagination, name, and location swap to match the active slide. Auto-loops.
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.