Staaarter

Image Feature Cards Grid over Media

A full-bleed background photo behind a dark scrim holds a glass-morphism header (eyebrow, heading, description) and a three-column grid of glass feature cards, each topped with its own thumbnail photo. On large screens the header uses native CSS position: sticky to stay pinned near the top of the section while the grid scrolls beneath it.

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 dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/image-feature-cards-grid-over-media.json

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

Usage

The file also exports feature82Demo, 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 { Feature82, feature82Demo } from "@/components/blocks/feature/feature82";

export default function Page() {
  return <Feature82 {...feature82Demo} />;
}

Props

PropTypeDefaultDescription
eyebrowstringundefinedSmall label above the heading, inside the sticky header panel.
headingstringnoneSection heading, inside the sticky header panel.
descriptionstringundefinedSupporting copy under the heading.
imageMediaSlotImagenoneFull-bleed background photo behind the whole section.
itemsFeature82Item[]noneGrid cards, each with its own thumbnail photo, title, and description.
classNamestringnoneExtra classes for the outer section element.

Types

interface Feature82Item {
  image: { src: string; alt: string };
  title: string;
  description: string;
}

Behavior notes

  • Plain server component, no client-side state.
  • The sticky header is real native CSS (lg:sticky lg:top-6), not client JS: it only visibly stays pinned when the card grid below is tall enough to scroll past it within the page, which needs more than the three demo cards to be obvious in a short preview iframe.
  • Each card's thumbnail photo comes from the item's own image field, independent of the section's full-bleed background photo.