Feature Card Grid with Hover Effects

Features

Why Wellory?

We simplify complex health data. A lifestyle plan that is actionable, sustainable, and unique to you.

Holistic Nutrition

Beyond counting calories. Smart meal plans that optimize your hormone balance and energy levels.

Smart Activity

Adaptive workouts that push limits when you're energetic and respect your rest when you're tired.

Data Privacy

Your health data is personal. End-to-end encryption ensures your data stays in your control.

Cardio Analysis

Measure and manage stress levels with Heart Rate Variability (HRV) analysis.

Sleep Coaching

Sleep windows aligned with your circadian rhythm to increase deep sleep duration.

Habit Tracking

Small steps, big changes. Build new habits without breaking the chain.

About this block

Feature Card Grid with Hover EffectsFREE

Six-card grid with icons in rounded containers that animate on hover, plus titles and descriptions. Perfect for wellness platforms, health apps, or service benefit showcases.

Feature26: Feature Card Grid with Hover Effects

Six-card feature grid where each card's icon sits in a rounded square that inverts from a tinted background to a solid primary fill on hover, alongside a title and description. A centered badge, heading, and description sit above the grid.

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/feature26"

Base UI flavor

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

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

Quick start

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

tsx
import { Feature26, feature26Demo } from "@/components/beste/block/feature26";

export default function Page() {
  return <Feature26 {...feature26Demo} />;
}

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

tsx
import { Leaf, Shield, Heart } from "lucide-react";
import { Feature26 } from "@/components/beste/block/feature26";

export default function Page() {
  return (
    <Feature26
      badge={{ label: "Features", variant: "default" }}
      heading="Why Wellory?"
      description="A lifestyle plan that is actionable, sustainable, and unique to you."
      features={[
        {
          id: "feature-1",
          icon: <Leaf className="size-6" />,
          title: "Holistic Nutrition",
          description: "Smart meal plans that optimize your energy levels.",
        },
        {
          id: "feature-2",
          icon: <Shield className="size-6" />,
          title: "Data Privacy",
          description: "End-to-end encryption keeps your data in your control.",
        },
        {
          id: "feature-3",
          icon: <Heart className="size-6" />,
          title: "Cardio Analysis",
          description: "Manage stress levels with HRV analysis.",
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Badge above the heading
headingstringSection heading
descriptionstringSection intro text
featuresFeature[][]Cards rendered in the grid; the grid wrapper itself is omitted when empty
classNamestringExtra classes for the outer <section>
ts
type Feature = {
  id: string;
  icon?: React.ReactNode;
  title: string;
  description: string;
};

Behavior notes

  • Each card carries its own named hover group (group/feature26), so the icon's background/text inversion (bg-primary/10 text-primary to bg-primary text-background) is scoped to that card and does not leak to sibling cards.
  • A card with no icon falls back to a Check icon rather than an empty square, so the icon slot is never blank.
  • Hovering a card lifts it (hover:-translate-y-1) and expands its shadow (hover:shadow-xl) over a 300ms transition, in addition to the icon color inversion.
  • The description paragraph uses text-balance on the intro copy so multi-line headers/descriptions wrap more evenly, but individual card descriptions do not use text-balance.
  • The grid section itself has overflow-hidden, which clips the -translate-y-1 hover lift's shadow slightly at the section edges on cards in the outer columns.

More Feature blocks

View all Feature
FREE

feature29

Platform Feature Cards with Metrics

Six-card grid featuring icons, descriptions, and highlighted stats (latency, uptime, user counts) with animated hover effects. Perfect for showcasing SaaS capabilities or enterprise platform features.

PRO

feature196

Module Cards Grid With Hover Lift

Three-column grid of clickable feature cards. Each card has a top-left icon, top-right diagonal arrow, title, and description. Cards lift on hover with a configurable accent color (emerald, primary, foreground, rose, blue, amber, violet, sky, orange, teal). Two-tone heading splits a primary phrase from a colored highlight.

PRO

feature160

Centered Icon Cards Grid

4-column grid of feature icons with titles and descriptions below. Perfect for capability highlights, feature icons, or simple feature grid.

FREE

feature107

Icon-Centered Grid Cards

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

PRO

feature74

Interactive Feature Cards with Dual CTAs

2-column grid of feature cards with icons and two action buttons per card for demos and documentation. Perfect for interactive feature showcases with try-it-now options.

PRO

feature166

Spotlight Glow Card Grid

Interactive card grid with mouse-tracking radial gradient glow effect. Each card illuminates with a primary-colored spotlight that follows the cursor. Premium hover aesthetic inspired by Stripe and Vercel.