Staaarter

Split Image Card with Feature Stack

A two-column split layout: a tall rounded image card fills the left column, and a glass-morphism panel on the right overlaps its edge on large screens, holding a heading, description, a stack of feature rows each with an icon badge, and an optional CTA button.

By Staaarter Team
Feature
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its media-slot, button dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/split-image-card-feature-stack.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/feature/feature80.tsx instead.

Usage

The file also exports feature80Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.

import { Feature80, feature80Demo } from "@/components/blocks/feature/feature80";

export default function Page() {
  return <Feature80 {...feature80Demo} />;
}

Props

PropTypeDefaultDescription
eyebrowstringundefinedSmall label above the heading.
headingstringnoneSection heading inside the glass panel.
descriptionstringundefinedSupporting copy under the heading.
imageMediaSlotImagenoneTall image filling the left column.
itemsFeature80Item[]noneStacked feature rows, each with an icon, title, and description.
ctaFeature80CtaundefinedOptional link-styled button rendered at the bottom of the panel.
classNamestringnoneExtra classes for the outer section element.

Types

interface Feature80Item {
  icon: LucideIcon;
  title: string;
  description: string;
}

interface Feature80Cta {
  label: string;
  href: string;
}

Behavior notes

  • Plain server component, no client-side state.
  • The negative margin that pulls the glass panel over the image edge (lg:-ml-16) only applies on large screens; the two columns stack with normal spacing on mobile.
  • The cta is an inert link-styled button when provided, there is no real form submission or navigation logic beyond the href.
  • Card icons are real lucide-react components passed by reference, safe here since this is a server component.