Two-column hero with heading, description, icon-only feature list, and CTA on one side and a square image on the other. Image position is configurable.
Two-column hero pairing a heading, description, and a short list of icon-led proof points with a square product or facility image. The image side can swap to either column through displayPosition, and the heading supports an inline highlighted phrase.
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/hero111?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/hero111?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/hero111.tsx and the button shadcn/ui primitive it depends on.
The installed file exports hero111Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.
import { Hero111, hero111Demo } from "@/components/beste/block/hero111";
export default function Page() {
return <Hero111 {...hero111Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { ShieldCheck, Users, Zap } from "lucide-react";
import { Hero111 } from "@/components/beste/block/hero111";
export default function Page() {
return (
<Hero111
heading="Infrastructure built to <strong>outlast</strong> the warranty."
description="Twenty years of commercial electrical and network installs, backed by a certified in-house crew."
displayPosition="left"
features={[
{ title: "Licensed and insured on every job", icon: ShieldCheck },
{ title: "24/7 emergency response team", icon: Zap },
{ title: "Dedicated project manager", icon: Users },
]}
buttons={[{ label: "Request a quote", href: "https://beste.co" }]}
image={{
src: "https://images.unsplash.com/photo-1581092160562-40aa08e78837?w=1200&h=1200&fit=crop",
alt: "Electrician inspecting server room wiring",
}}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
heading | string | – | Headline HTML; wrap a phrase in <strong> to highlight it in the primary color |
description | string | – | Supporting paragraph under the heading |
features | FeatureItem[] | [] | Icon-led proof points listed under the description |
buttons | ButtonItem[] | [] | CTA row rendered below the feature list |
image | { src: string; alt: string } | – | Square image for the opposite column |
displayPosition | "left" | "right" | "right" | Which side the image renders on; the copy column takes the other side |
className | string | – | Extra classes for the outer <section> |
type FeatureItem = {
title: string;
icon: LucideIcon;
};
type ButtonItem = {
label: string;
href?: string;
variant?: "default" | "secondary" | "outline" | "ghost";
};heading is rendered with dangerouslySetInnerHTML, so any <strong> tag inside it picks up text-primary styling; there is no separate highlight prop.displayPosition flips the lg:order-* classes on both the copy column and the image column, so at desktop widths either column can lead; below the lg breakpoint the layout always stacks copy first, image second.aspect-square box with object-cover, so non-square source images get cropped rather than letterboxed.hero68
Centered hero with three feature highlights displayed as icon cards with descriptions below the CTA. Perfect for platform and infrastructure products.
hero120
Centered editorial hero with eyebrow, large heading, description, dual dark and outline CTAs, and a wide 16:9 image with a mono caption below.
hero121
Split hero with a big headline and CTA on the left, a divided vertical stat rail on the right, and a full-width wide image strip below.
hero7
Centered hero with optional badge, heading, description, dual action buttons, and a featured image below. Perfect for product launches and landing pages.
hero122
Centered typographic hero on a muted card with an oversized heading, inline CTA, and a bottom monospace meta row of three labels.
hero91
50/50 split hero with muted content panel and feature list left, video/image right