Staaarter

Feature Manifesto Grid

Pure typographic feature manifesto: an optional eyebrow and heading sit above a hairline-bordered grid of short statements. Each cell holds a bold title and a single explanatory line, with no photos, icons, or imagery anywhere in the block.

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

npx shadcn add https://staaarter.com/r/feature-manifesto-grid.json

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

Usage

The file also exports feature33Demo, 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 { Feature33, feature33Demo } from "@/components/blocks/feature/feature33";

export default function Page() {
  return <Feature33 {...feature33Demo} />;
}

Props

PropTypeDefaultDescription
eyebrowstringundefinedKicker label above the heading; omitted entirely when unset.
headingReactNodeundefinedSection heading; omitted entirely when unset.
itemsManifestoItem[]noneStatement cells rendered in the hairline-bordered grid.
classNamestringnoneExtra classes for the outer section element.

Types

type ManifestoItem = { title: string; description: string };

Behavior notes

  • Purely presentational: there is no client-side state, and no imagery of any kind, matching the brief's "pure typographic grid" description.
  • The header block (eyebrow + heading) only renders when at least one of the two is set.
  • Hairlines come from `divide-x`/`divide-y` plus an outer `border` on the grid container, not individual per-cell borders, so the lines stay crisp regardless of item count.
  • Any number of items works; the grid is 1 column on mobile, 2 on small screens, and 3 from the lg breakpoint up.