Staaarter

AI Prompt Starter Grid

A grid of AI prompt template cards, each showing an icon, title, category badge, and short description, organized into filterable category tabs (Writing, Coding, Ideas, Analysis, Marketing, Learning). Cards lift slightly on hover for a light interactive feel while the underlying tab switching stays fully native.

By Staaarter Team
Chat
Docs
Live preview

Docs

Installation

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

npx shadcn add https://staaarter.com/r/prompt-starter-grid.json

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

Usage

The file also exports chat8Demo, 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 { Chat8, chat8Demo } from "@/components/blocks/chat/chat8";

export default function Page() {
  return <Chat8 {...chat8Demo} />;
}

Props

PropTypeDefaultDescription
headingstring"Start from a template"Section heading.
descriptionstring"Browse prompt templates by category..."Section subheading.
categoriesChat8Category[]noneCategory tabs, each with its own list of prompt templates.
defaultCategorystringundefinedValue of the category tab selected by default; falls back to the first category.
classNamestringnoneExtra classes for the outer section element.

Types

export interface PromptTemplate {
  id: string;
  title: string;
  description: string;
}

export interface Chat8Category {
  value: string;
  label: string;
  templates: PromptTemplate[];
}

Behavior notes

  • Fully static and server-rendered: category filtering uses the real Tabs/TabsList/TabsTrigger/TabsContent primitives with an uncontrolled defaultValue, no client-side state needed in this component.
  • The card hover lift and shadow are pure CSS (hover:), no JS.
  • Category icons are chosen from a fixed lookup by category value, not passed as prop data (icons can't cross the client boundary as props, and this block doesn't need to be a client component anyway).