Skip to content
Neon UI
Esc
navigateopen⌘Jpreview
On this page

StatusBadge

The shared status vocabulary for apps and branches, plus a billing plan companion.

StatusBadge is the status vocabulary every dashboard surface reuses: a colored dot and a quiet mono word. Color lives only in the dot — ready is green, error is red, stopped is muted, and provisioning breathes on a slow glow cycle while work is in flight. PlanBadge is the billing companion with the same footprint; paid plans get primary ink.

book-trackerreadypaid
invoice-searchprovisioningfree
standup-noteserrorfree
recipe-boxstoppedfree

Install

npx shadcn@latest add https://ui.neon.com/r/status-badge.json

Usage

import { PlanBadge, StatusBadge } from "@/components/neon-ui/status-badge";

<StatusBadge status="provisioning" />;
<PlanBadge plan="paid" />;

Wiring to Neon

Map a Neon compute endpoint (GET /projects/{id}/endpoints) onto the vocabulary: a pending_state or init state is provisioning, active is ready, idle is stopped. The typed example ships the full mapping.

Props

StatusBadge

PropType
status"ready" | "provisioning" | "error" | "stopped"

Lifecycle state of the app or branch.

Type"ready" | "provisioning" | "error" | "stopped"
label?string

Override the default status text.

Typestring

PlanBadge

PropType
plan"free" | "paid"

Billing plan of the tenant.

Type"free" | "paid"
label?string

Override the default plan text.

Typestring

Accessibility

The dot is decorative (aria-hidden); the status is always conveyed by the visible text. The provisioning breathe stops (dot holds fully lit) under prefers-reduced-motion.