Four equal feature cards on a clean background, each with a large circular icon badge above a bold h3 title. Ideal for outlining the steps or pillars of a service offering.
Four equal-width cards on a plain background, each centering a large circular icon badge above a bold title. Suited to laying out the steps, pillars, or promises of a service offering rather than long-form feature descriptions.
Free block
This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.
Radix flavor
npx shadcn add "https://ui.beste.co/r/feature195"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/feature195"This installs the block to components/beste/block/feature195.tsx and the badge shadcn/ui primitive it depends on.
The installed file exports feature195Demo alongside the block: the exact props behind the preview above. Spread it to get a working four-card layout in one line.
import { Feature195, feature195Demo } from "@/components/beste/block/feature195";
export default function Page() {
return <Feature195 {...feature195Demo} />;
}Then replace the demo with your own props. Written out, the same setup looks like this:
import { FileText, Gem, ClipboardCheck, PointerIcon } from "lucide-react";
import { Feature195 } from "@/components/beste/block/feature195";
export default function Page() {
return (
<Feature195
badge={{ label: "Process", variant: "secondary" }}
heading="Let us guide you through your transformation"
features={[
{ icon: FileText, title: "Understanding your requirements" },
{ icon: Gem, title: "Strategy powered by expertise" },
{ icon: ClipboardCheck, title: "Fast implementation" },
{ icon: PointerIcon, title: "Effortless operations" },
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string; variant?: "default" | "secondary" | "outline" } | – | Optional eyebrow badge above the heading |
heading | string | – | Section heading |
description | string | – | Section intro text |
features | FeatureItem[] | [] | The icon and title cards rendered in the grid |
className | string | – | Extra classes for the outer <section> |
type FeatureItem = { icon: LucideIcon; title: string };sm:grid-cols-2 lg:grid-cols-4, not computed from item count like the dynamic-column formula used in sibling Feature blocks (feature144, feature146): a card count that is not a multiple of 2 or 4 simply leaves a gap in the last row instead of automatically re-balancing.size-9 inside a fixed size-20 circular bg-muted badge, with strokeWidth={1.75} explicitly set, a lighter stroke than lucide-react's default weight of 2.FeatureItem only has icon and title, no per-item description: each card is icon-plus-headline only, so longer copy has to live in the section-level description instead.heading, description, and every card's title carry text-balance for more even line wrapping at larger sizes.heading and omits badge and description.feature107
3-column grid of centered feature cards with large icons and brief descriptions. Perfect for capability highlights, service features, or platform offerings.
feature160
4-column grid of feature icons with titles and descriptions below. Perfect for capability highlights, feature icons, or simple feature grid.
feature190
Full-width feature cards separated by dividers with large icons and descriptions over background media
feature187
Alternating two-column feature cards with large icons over background media, left-right zigzag layout
feature191
Three-column feature cards with accent top bar, tag pills, and icon badges over background media
feature3
Centered header, three-column grid of capability cards, and an optional CTA with bottom text. Each card leads with a Lucide icon.