Tessina UI
ConfiguratorGitHubIntroduction
InstallationUsageTheming
ComponentsAccordionAction SheetAlertAlertDialogArea ChartAspectRatioAvatarBadgeBannerBar ChartBottom NavBreadcrumbButtonButtonGroupCalendarCardCarouselChartChatBubbleCheckboxChipCodeBlockCollapsibleColor PickerComboboxCommandContainerContextMenuDate PickerDividerDrawerDropdown MenuEmptyStateFABFieldFieldsetFile UploadFile Upload 2FlexFormGridHoverCardIconButtonLabelLine ChartLinkMenubarMeterModalNavigation MenuNumberFieldOTP InputPaginationPie ChartPopoverProgressPromptInputRadar ChartRadial ChartRadioRatingScroll AreaSearchSegmentedControlSelectShortcutSidebarSkeletonSliderSpacerSpinnerSplit ButtonStackStatusStepperSurfaceSwitchTableTabsTextareaTime PickerToastToggleButtonToggleGroupToolbarTooltipTop Header DesktopTop Header Mobile
Contributing
Components

Radial Chart

Token-driven radial bar chart built on Recharts v3 — one ring per category with a muted track, configurable sweep angle, and full light/dark theming.

Playground

Installation

pnpm add @tessinaui/ui recharts

Usage

import { RadialChart } from "@tessinaui/ui";
import type { ChartConfig } from "@tessinaui/ui";

const config: ChartConfig = {
  chrome: { label: "Chrome", color: "var(--chart-1)" },
  safari: { label: "Safari", color: "var(--chart-2)" },
  firefox: { label: "Firefox", color: "var(--chart-3)" },
};

const data = [
  { browser: "chrome", visitors: 275 },
  { browser: "safari", visitors: 200 },
  { browser: "firefox", visitors: 187 },
];

<RadialChart data={data} config={config} dataKey="visitors" nameKey="browser" />

Set startAngle / endAngle for a half-circle gauge (e.g. 180 → 0).

Examples

Default

A multi-ring radial chart with one ring per category in brand tones.

Half circle

Set startAngle and endAngle (e.g. 180 → 0) to sweep a half circle.

In-bar labels

Enable showLabels to render category names inside each ring.

Rounded

Control the arc end-cap rounding with rounded — from none to pill-shaped full.

Sizes

Three square size caps via size — sm, md, and lg.

States

Built-in loading skeleton and empty state.

Core props

PropTypeDefaultDescription
dataRecord<string, string | number | null>[]—One row per ring.
configChartConfig—Ring metadata keyed by nameKey value.
dataKeystring—Datum key holding each ring's value.
nameKeystring—Datum key holding the ring name (matches a config key).
radiusnumber4Bar corner radius.
showBackgroundbooleantrueMuted track behind each bar.
startAngle / endAnglenumber90 / -270Sweep angles (degrees).
size"sm" | "md" | "lg""md"Square size cap.
showLegend / showTooltipboolean—Toggle chart chrome.
loadingbooleanfalseRender the skeleton.
errorReactNode—Render an error message instead of the chart.
emptyStateReactNode"No data to display"Shown when data is empty.

Radar Chart

Token-driven radar (spider) chart built on Recharts v3 for comparing multiple metrics across one or more series, with full light/dark theming.

Radio

A form control that lets users select exactly one option from a group. Five sizes, five intents, label/description/error patterns, RadioGroup compound component, and RadioCard full-surface variant.

On this page

PlaygroundInstallationUsageExamplesDefaultHalf circleIn-bar labelsRoundedSizesStatesCore props