A centered hero whose main action is a search field rather than a button, with the week's most looked-up terms as chips beneath it and the size of the archive stated at the bottom.
A centered hero whose main action is a search field rather than a button, with the week's most looked-up terms as chips beneath it and the size of the archive stated at the bottom.
Upgrade to Pro
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/hero171?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/hero171?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/hero171.tsx, the badge6 component used for the eyebrow, and the shadcn/ui input and button primitives behind the search row.
The installed file exports hero171Demo alongside the block: the exact props behind the preview above. Spread it to get a working search hero in one line.
import { Hero171, hero171Demo } from "@/components/beste/block/hero171";
export default function ArchivePage() {
return <Hero171 {...hero171Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Hero171 } from "@/components/beste/block/hero171";
export default function ArchivePage() {
return (
<Hero171
eyebrow="The archive"
heading="Four years of studio writing, one search box"
description="Every essay, teardown and template we have published, searchable in full."
placeholder="Search for a problem you are having"
submitLabel="Search"
suggestionsLabel="Looked up most this week"
suggestions={[
{ label: "estimates", href: "/search?q=estimates" },
{ label: "handover", href: "/search?q=handover" },
]}
note="186 pieces published, none of them removed."
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
eyebrow | string | – | Badge6 label above the headline |
heading | string | – | Hero headline |
description | string | – | Supporting paragraph under it |
placeholder | string | – | Placeholder in the search field |
submitLabel | string | – | Label on the submit button |
suggestionsLabel | string | – | Words before the suggestion chips |
suggestions | SuggestedSearch[] | [] | Linked chips under the field |
note | string | – | Line stating the size of the archive |
className | string | – | Extra classes for the outer section |
type SuggestedSearch = {
label: string;
href: string;
};preventDefault, which is the seam to replace with your own search route.pointer-events-none and the input carries pl-12, so the icon never eats a click and the caret starts clear of it.sm up and stacks below it, with both the field and the button at h-14.py-20 md:py-32, since it is meant to open a page rather than sit inside one.hero46
Centered hero with prominent search input field and popular search suggestion pills below. Perfect for documentation sites, knowledge bases, and support centers.
hero7
Centered hero with optional badge, heading, description, dual action buttons, and a featured image below. Perfect for product launches and landing pages.
hero162
A hero that sets a light display heading and one action against a column of numbered hairline rows, then closes on a full-bleed image band with a live approval request pinned into its corner.
hero168
A hero pairing a light display heading with an offset paragraph and action, then a wide image tile floating a live search results panel over four hairline columns explaining what the search covers.