Origin is out. See it
HomeBlocksRadial gauge
Free · MITMetricsmetricsgaugescoresvg

Radial gauge

A 240° radial gauge with a self-drawing arc, a sweeping needle whose tip is a lens glint dot, tick marks around the dial, a count-up score, and a label with a delta beneath.

Full preview

Preview

Resize it, switch the theme, replay the entrance — or read the source.

05010082of 100
Health score
+4.2 ptsvs last month

Installation

Add the block to a project that already uses shadcn/ui.

bash
npx shadcn@latest add https://prequelui.terravidhal.me/r/radial-gauge.json

Requires a project that already uses shadcn/ui on React and Tailwind CSS v4. The block is copied into your project as a single file you own and can edit.

Usage

Import the named export and render it with your own data.

Every prop is optional and ships with deterministic demo data, so a bare render shows the block at its default. Pass props to plug in your own data and formatters.

import { RadialGauge } from "@/components/prequel/radial-gauge/radial-gauge";

export default function DashboardPage() {
  return <RadialGauge />;
}

Props

Every prop is optional and ships with demo-data defaults.

PropTypeDescription
classNamestringExtra classes merged onto the root element.
valuenumberScore, clamped to [0, max].
maxnumberDenominator of the score. Defaults to 100.
labelstringCaption shown under the number, e.g. "Health score".
deltanumberSigned change, e.g. 4.2 for "+4.2". 0 renders a neutral badge.
deltaSuffixstringUnit after the delta, e.g. " pts" or "%". Defaults to " pts".
deltaDecimalsnumberDecimals on the delta value. Defaults to 1.
deltaLabelstringContext after the delta badge, e.g. "vs last month".
goodWhenDownbooleanWhen true a negative delta is good (e.g. churn going down).
tonenumberChart colour token 1–5. Defaults to 1.
formatValue(value: number) => string—
formatDelta(delta: number) => string—

Accessibility

The rules every PrequelUI block follows, verified against this block's source.

Charts and graphics expose a text summary via role="img" and an aria-label describing the data.

Interactive charts respond to arrow keys, Home and End, and show tooltips on keyboard focus.

Every button carries a visible focus ring so keyboard users can always see where they are.

The block honours prefers-reduced-motion: animations are skipped and content is fully visible.

Live updates run on timers inside effects and pause when the block is off-screen or hovered.

More blocks