Bklit UI
Composable chart components for React, distributed via the @bklit shadcn registry. Charts are installed as source into the user's project.
IMPORTANT: Run shadcn CLI commands with the project's package runner: npx shadcn@latest, pnpm dlx shadcn@latest, or bunx --bun shadcn@latest.
Current Project Context
Before adding charts, run npx shadcn@latest info --json in the project and use its JSON output for framework, aliases, Tailwind version, installed components, and resolved paths. Confirm the @bklit registry is configured before adding charts.
Principles
- Install before inventing. Use
npx shadcn@latest add @bklit/<chart> — charts are registry components, not hand-rolled SVG.
- Compose, don't flatten. Root chart →
Grid → series → axes → ChartTooltip. See composition.md.
- Theme with tokens. Use
chartCssVars and --chart-* variables — never hardcode one-off colors. See theming.md.
- Read the doc page first. Each chart has props, data shape, and examples at
https://ui.bklit.com/docs/components/<slug>.
- Browse variants. Gallery:
https://ui.bklit.com/charts/<slug> — Studio: https://ui.bklit.com/studio?chart=<slug>.
Critical Rules
These rules are always enforced. Each links to Incorrect/Correct examples.
- Series and axes live inside the root chart —
LineChart, BarChart, AreaChart, etc.
- One root per chart — use
ComposedChart for mixed series types.
- Grid before series so lines/bars render above grid lines.
ChartTooltip as a chart child — required for crosshair and hover context.
- Use
chartCssVars from @bklitui/ui/charts instead of raw "var(--chart-…)" strings.
- Series palette:
--chart-1 … --chart-5 for multi-series charts.
- Tooltip surfaces:
bg-popover text-popover-foreground — avoids white-on-white in light mode.
- Default duration ~1100ms for cartesian enter animations unless the doc specifies otherwise.
- Replay: change
revealSignature or remount with a new key.
- Live charts: use
paused on LiveLineChart to debug without stopping the rAF loop manually.
- Custom content via
ChartTooltip content prop or children patterns from docs.
indicatorColor function for candlestick / dynamic crosshair colors.
- Custom indicators: use
useChart() — do not track mouse globally outside chart context.
- Require
@bklit registry in components.json.
- Install:
npx shadcn@latest add @bklit/<slug>.
- Let the CLI install peer dependencies — do not pin
@visx/* / motion manually unless resolving a conflict.
Chart Catalog
Workflow
- Run
npx shadcn@latest info --json — verify @bklit registry and aliases.
- Pick a chart from the catalog (or ask the user what story the data tells).
- Open the doc URL for data shape and props.
- If not installed:
npx shadcn@latest add @bklit/<slug>.
- Compose with grid, series, axes, tooltip — apply theming tokens.
- Point the user to the gallery or Studio URL for variant inspiration.
Quick Reference
# Project info
npx shadcn@latest info --json
# Add a chart
npx shadcn@latest add @bklit/line-chart
# Search registries (if configured)
npx shadcn@latest search @bklit
import { LineChart, Line, Grid, XAxis, ChartTooltip, chartCssVars } from "@bklitui/ui/charts";
<LineChart data={data} xDataKey="date">
<Grid horizontal />
<Line dataKey="users" stroke={chartCssVars.linePrimary} />
<XAxis />
<ChartTooltip />
</LineChart>
Utility docs
Detailed References
1---2name: bklit-ui3description: Bklit UI charts and data visualization for any project using the @bklit shadcn registry. Install, compose, theme, and animate charts correctly. Triggers when working with @bklitui/ui/charts, @bklit components, data visualization, dashboards, or chart theming. Also invoke manually for chart tasks.4---56# Bklit UI78Composable chart components for React, distributed via the `@bklit` shadcn registry. Charts are installed as source into the user's project.910> **IMPORTANT:** Run shadcn CLI commands with the project's package runner: `npx shadcn@latest`, `pnpm dlx shadcn@latest`, or `bunx --bun shadcn@latest`.1112## Current Project Context1314Before adding charts, run `npx shadcn@latest info --json` in the project and use its JSON output for framework, aliases, Tailwind version, installed components, and resolved paths. Confirm the `@bklit` registry is configured before adding charts.1516## Principles17181. **Install before inventing.** Use `npx shadcn@latest add @bklit/<chart>` — charts are registry components, not hand-rolled SVG.192. **Compose, don't flatten.** Root chart → `Grid` → series → axes → `ChartTooltip`. See [composition.md](./rules/composition.md).203. **Theme with tokens.** Use `chartCssVars` and `--chart-*` variables — never hardcode one-off colors. See [theming.md](./rules/theming.md).214. **Read the doc page first.** Each chart has props, data shape, and examples at `https://ui.bklit.com/docs/components/<slug>`.225. **Browse variants.** Gallery: `https://ui.bklit.com/charts/<slug>` — Studio: `https://ui.bklit.com/studio?chart=<slug>`.2324## Critical Rules2526These rules are **always enforced**. Each links to Incorrect/Correct examples.2728### Composition → [composition.md](./rules/composition.md)2930- **Series and axes live inside the root chart** — `LineChart`, `BarChart`, `AreaChart`, etc.31- **One root per chart** — use `ComposedChart` for mixed series types.32- **Grid before series** so lines/bars render above grid lines.33- **`ChartTooltip` as a chart child** — required for crosshair and hover context.3435### Theming → [theming.md](./rules/theming.md)3637- **Use `chartCssVars`** from `@bklitui/ui/charts` instead of raw `"var(--chart-…)"` strings.38- **Series palette:** `--chart-1` … `--chart-5` for multi-series charts.39- **Tooltip surfaces:** `bg-popover text-popover-foreground` — avoids white-on-white in light mode.4041### Animation → [animation.md](./rules/animation.md)4243- **Default duration ~1100ms** for cartesian enter animations unless the doc specifies otherwise.44- **Replay:** change `revealSignature` or remount with a new `key`.45- **Live charts:** use `paused` on `LiveLineChart` to debug without stopping the rAF loop manually.4647### Tooltips → [tooltips.md](./rules/tooltips.md)4849- **Custom content via `ChartTooltip` `content` prop** or children patterns from docs.50- **`indicatorColor` function** for candlestick / dynamic crosshair colors.51- **Custom indicators:** use `useChart()` — do not track mouse globally outside chart context.5253### Installation → [installation.md](./rules/installation.md)5455- **Require `@bklit` registry** in `components.json`.56- **Install:** `npx shadcn@latest add @bklit/<slug>`.57- **Let the CLI install peer dependencies** — do not pin `@visx/*` / `motion` manually unless resolving a conflict.5859## Chart Catalog6061| Slug | Use when | Install | Docs | Gallery |62|------|----------|---------|------|---------|63| `area-chart` | Trends with filled regions under lines | `@bklit/area-chart` | [/docs/components/area-chart](https://ui.bklit.com/docs/components/area-chart) | [/charts/area-chart](https://ui.bklit.com/charts/area-chart) |64| `bar-chart` | Category comparisons, stacked or grouped bars | `@bklit/bar-chart` | [/docs/components/bar-chart](https://ui.bklit.com/docs/components/bar-chart) | [/charts/bar-chart](https://ui.bklit.com/charts/bar-chart) |65| `line-chart` | Time series, multi-line trends, markers | `@bklit/line-chart` | [/docs/components/line-chart](https://ui.bklit.com/docs/components/line-chart) | [/charts/line-chart](https://ui.bklit.com/charts/line-chart) |66| `live-line-chart` | Streaming / real-time data | `@bklit/live-line-chart` | [/docs/components/live-line-chart](https://ui.bklit.com/docs/components/live-line-chart) | [/charts/live-line-chart](https://ui.bklit.com/charts/live-line-chart) |67| `composed-chart` | Mixed bar + line (or similar) on one axis | `@bklit/composed-chart` | [/docs/components/composed-chart](https://ui.bklit.com/docs/components/composed-chart) | [/charts/composed-chart](https://ui.bklit.com/charts/composed-chart) |68| `scatter-chart` | Correlation, distribution, bubble sizing | `@bklit/scatter-chart` | [/docs/components/scatter-chart](https://ui.bklit.com/docs/components/scatter-chart) | [/charts/scatter-chart](https://ui.bklit.com/charts/scatter-chart) |69| `candlestick-chart` | OHLC financial data, brushes | `@bklit/candlestick-chart` | [/docs/components/candlestick-chart](https://ui.bklit.com/docs/components/candlestick-chart) | [/charts/candlestick-chart](https://ui.bklit.com/charts/candlestick-chart) |70| `pie-chart` | Part-to-whole slices | `@bklit/pie-chart` | [/docs/components/pie-chart](https://ui.bklit.com/docs/components/pie-chart) | [/charts/pie-chart](https://ui.bklit.com/charts/pie-chart) |71| `ring-chart` | Donut / ring KPIs | `@bklit/ring-chart` | [/docs/components/ring-chart](https://ui.bklit.com/docs/components/ring-chart) | [/charts/ring-chart](https://ui.bklit.com/charts/ring-chart) |72| `radar-chart` | Multi-axis comparison | `@bklit/radar-chart` | [/docs/components/radar-chart](https://ui.bklit.com/docs/components/radar-chart) | [/charts/radar-chart](https://ui.bklit.com/charts/radar-chart) |73| `gauge-chart` | Single-value KPI dial | `@bklit/gauge-chart` | [/docs/components/gauge-chart](https://ui.bklit.com/docs/components/gauge-chart) | [/charts/gauge-chart](https://ui.bklit.com/charts/gauge-chart) |74| `funnel-chart` | Stage conversion funnels | `@bklit/funnel-chart` | [/docs/components/funnel-chart](https://ui.bklit.com/docs/components/funnel-chart) | [/charts/funnel-chart](https://ui.bklit.com/charts/funnel-chart) |75| `sankey-chart` | Flow between nodes | `@bklit/sankey-chart` | [/docs/components/sankey-chart](https://ui.bklit.com/docs/components/sankey-chart) | [/charts/sankey-chart](https://ui.bklit.com/charts/sankey-chart) |76| `choropleth-chart` | Geo regions colored by value | `@bklit/choropleth-chart` | [/docs/components/choropleth-chart](https://ui.bklit.com/docs/components/choropleth-chart) | [/charts/choropleth-chart](https://ui.bklit.com/charts/choropleth-chart) |7778## Workflow79801. Run `npx shadcn@latest info --json` — verify `@bklit` registry and aliases.812. Pick a chart from the catalog (or ask the user what story the data tells).823. Open the doc URL for data shape and props.834. If not installed: `npx shadcn@latest add @bklit/<slug>`.845. Compose with grid, series, axes, tooltip — apply theming tokens.856. Point the user to the gallery or Studio URL for variant inspiration.8687## Quick Reference8889```bash90# Project info91npx shadcn@latest info --json9293# Add a chart94npx shadcn@latest add @bklit/line-chart9596# Search registries (if configured)97npx shadcn@latest search @bklit98```99100```tsx101import { LineChart, Line, Grid, XAxis, ChartTooltip, chartCssVars } from "@bklitui/ui/charts";102103<LineChart data={data} xDataKey="date">104 <Grid horizontal />105 <Line dataKey="users" stroke={chartCssVars.linePrimary} />106 <XAxis />107 <ChartTooltip />108</LineChart>109```110111## Utility docs112113- Theming: https://ui.bklit.com/docs/theming114- Grid: https://ui.bklit.com/docs/utility/grid115- Legend: https://ui.bklit.com/docs/utility/legend116- Tooltip: https://ui.bklit.com/docs/utility/tooltip117- Custom indicator: https://ui.bklit.com/docs/utility/custom-indicator118- useChart: https://ui.bklit.com/docs/utility/use-chart119120## Detailed References121122- [composition.md](./rules/composition.md)123- [theming.md](./rules/theming.md)124- [animation.md](./rules/animation.md)125- [tooltips.md](./rules/tooltips.md)126- [installation.md](./rules/installation.md)