Icon-Centered Grid Cards

Platform

Everything you need

A complete toolkit for modern teams.

Cloud Native

Built for the cloud with automatic scaling.

Enterprise Security

Bank-level encryption and compliance.

Team Collaboration

Real-time editing and shared workspaces.

Advanced Analytics

Insights that drive better decisions.

Global CDN

Fast delivery anywhere in the world.

AI Powered

Smart automation and recommendations.

About this block

Icon-Centered Grid CardsFREE

3-column grid of centered feature cards with large icons and brief descriptions. Perfect for capability highlights, service features, or platform offerings.

Feature107: Icon-Centered Grid Cards

Simple centered feature grid: each card stacks a large icon above a title and a short description, all center-aligned inside a bordered card, with no hover-driven color transitions or stat rows.

Free block

This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.

Installation

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/feature107"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/feature107"

This installs the block to components/beste/block/feature107.tsx and the shadcn/ui badge and button components it depends on.

Quick start

The installed file exports feature107Demo alongside the block: the exact props behind the preview above. Spread it to get a working feature grid in one line.

tsx
import { Feature107, feature107Demo } from "@/components/beste/block/feature107";

export default function Page() {
  return <Feature107 {...feature107Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Cloud, Lock, Users } from "lucide-react";
import { Feature107 } from "@/components/beste/block/feature107";

export default function Page() {
  return (
    <Feature107
      badge={{ label: "Platform", variant: "default" }}
      heading="Everything you need"
      description="A complete toolkit for modern teams."
      items={[
        { icon: <Cloud className="size-8" />, title: "Cloud Native", description: "Built for the cloud with automatic scaling." },
        { icon: <Lock className="size-8" />, title: "Enterprise Security", description: "Bank-level encryption and compliance." },
        { icon: <Users className="size-8" />, title: "Team Collaboration", description: "Real-time editing and shared workspaces." },
      ]}
      buttons={[{ label: "Explore Features", href: "/features" }]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }–Badge above the heading
headingstring–Section heading
descriptionstring–Section intro text
itemsFeatureItem[][]Cards rendered in the grid
buttonsButtonItem[][]CTA buttons below the grid
classNamestring–Extra classes for the outer <section>
ts
type FeatureItem = {
  icon?: React.ReactNode;
  title: string;
  description?: string;
};

type ButtonItem = {
  label: string;
  href?: string;
  variant?: "default" | "secondary" | "outline" | "ghost" | "link" | "destructive";
};

Behavior notes

  • Unlike feature26 and feature29, cards here have no hover transition classes at all (no shadow lift, no icon color inversion, no group), so the grid is fully static.
  • The icon wrapper (text-primary, no background square) only renders when item.icon is present, and there is no fallback icon, so an item without one shows just the title and description, vertically re-centered.
  • The grid is a fixed md:grid-cols-2 lg:grid-cols-3, independent of items.length, so it does not shift column count dynamically the way feature126 does.
  • title is required by the FeatureItem type while description is optional, so a card can be icon-plus-title only; the description paragraph simply does not render when omitted.
  • Items are keyed by array index; FeatureItem carries no id field.

More Feature blocks

View all Feature
PRO

feature160

Centered Icon Cards Grid

FREE

feature3

Service Grid With Icons

PRO

feature161

Icon Row Feature Grid