Changelog

New charts, primitives and fixes shipped to Bklit UI.

Fixes and improvements

Alongside the bigger releases, a long list of things that now simply work the way you'd expect.

Charts

  • Bar charts handle negative values. The scale always includes zero and bars grow from the zero line in both orientations — profit and loss charts now just work.
  • Stacked horizontal bars draw every segment at the right width and grow from their own position instead of overlapping while they animate.
  • Line charts morph smoothly when their data changes, rather than snapping to the new values.
  • Markers and edge points are no longer clipped at the edge of the plot.
  • Ring charts no longer flicker when you hover near the inner edge of a ring.
  • Custom PieCenter content shows at rest, not only while hovering a slice.
  • Persian, Arabic and Hebrew labels animate as a single run so letters stay joined and in order, and the date ticker only scrolls the part of the date that changed.

Installing with shadcn

  • Charts installed from the registry keep their imports valid in your project's folder layout.
  • Theme tokens map correctly into your @theme variables.
  • Every chart passes the React Compiler lint rules.

Docs and site

  • A new Markers page, and an up-to-date Theming guide.
  • "New" badges in the sidebar and mobile menu, which now share one navigation.
  • Better page titles, social cards and structured data across the site.

Multi-hue palettes, Weekends and Deadline

Palettes

Charts now default to a primary palette — indigo, yellow, fuchsia, mist and black-and-white — and come with a set of curated multi-hue palettes shared by the docs and Studio. Pick one from the palette menu, fine-tune any colour with the Studio colour picker, and export the result as CSS variables.

Trend charts get semantic --chart-positive and --chart-negative tokens, so gains and losses stay meaningful in any palette. The heatmap scale now derives from your first chart colour.

Weekends and Deadline

Two small primitives that make time-series charts easier to read at a glance. Weekends shades weekend days behind the series, with stripes or a solid fill. Deadline marks a due date with a line and a fading region after it — striped, gradient or solid.

A faster chart catalogue

/charts has been rebuilt around a sticky sidebar that tracks where you are and links straight to any variation. Charts only mount as they scroll into view, so the page stays fast however many examples it holds.

Read more in the Weekends and Deadline docs.

Band and TrendLine

Two new layers for showing what's around and underneath your data.

Band

Band fills the space between an upper and a lower value — confidence intervals, min–max ranges, forecasts. Fill it solid, with a gradient or with a pattern, style each edge on its own, and fade any of its four sides. It draws in with the line it sits behind.

Bands also work on their own as range areas. The tooltip shows each band's low–high range with a dot on both edges, and the chart's scale fits the bands even when there's no line. For finance charts, withBollingerBands works the bands out for you.

TrendLine

TrendLine draws the straight line of best fit through a series, so the direction of noisy data is obvious at a glance. Make it solid, dashed or a gradient, with optional faded ends. It works in line, area and composed charts, and in bar charts in either orientation.

Both are layers in Studio. See the Band and TrendLine docs.

A new look, built on coss ui

Bklit UI has a new home. The site, docs and Studio now use coss ui components and its colour palette in place of our shadcn primitives.

Frames and rails

Pages sit between two thin rails that now run all the way up through the header, with small square rivets where section dividers meet them. Docs pages sit in frames on a tinted canvas, and every component has its own illustration.

Cal Sans

Headings and body text now use Cal Sans, the same typeface as coss ui, for a tighter and friendlier voice.

A simpler homepage

The homepage hero has been pared back, and the community showcase has moved to its own Showcase page.

Studio keeps its square, tool-like chrome. The navigation and every URL stay the same.

Chart benchmarks, in your browser

Performance claims are easy to make and hard to check. Benchmarks lets you check ours: it runs Bklit UI, Recharts and TanStack Charts against the same seeded data — line, area, bar and scatter — in your own browser.

What it measures

Each run reports how long a chart takes to mount, to update and to respond to hover, how many DOM nodes it creates, and how much it adds to your bundle, then combines them into a score. Enter animations are timed for reference but never scored, so no library is penalised for animating.

Smaller tooltip dates

Building it, we also made the tooltip's date pill fit its label: it measures the current date and springs its width as you move, instead of sizing itself to the longest month.

Agent skills for design and migration

Bklit UI ships agent skills — instructions your coding agent loads so it uses the right components and props instead of guessing. Two new ones join the core skill.

npx skills add bklit/bklit-ui

bklit-ui-design

Describe the look you want in plain words — "faded pattern background", "squircle bars", "3D glass bars", "hatched area", "skeleton loading", "match our brand" — and the agent maps it to real Bklit components and props. It checks your Tailwind version, colour format, dark mode and corner radius first, so the result fits your app.

bklit-ui-migrate

Point your agent at a codebase using Recharts, directly or through shadcn's chart component. It finds every chart, sorts them into ones that convert cleanly, ones that need a workaround, and ones to leave on Recharts, then converts them to Bklit UI and checks the result.

The core bklit-ui skill has been rewritten alongside them.

Linear gauges

Gauge has a new orientation="linear" mode that lays its notches along a horizontal bar — the same geometry, fills, gradients and enter animations as the arc, in a shape that fits table rows and cards.

The center label is optional. In linear mode, place it above or below the track with labelPlacement and align it with labelAlign — the same six positions as a chart legend.

See the Gauge docs.

Heatmap chart

HeatmapChart is here. Cells animate smoothly between the loading and ready states, and every level from Less to More shares one style — a base color plus an optional pattern, used by both the cells and the legend.

In Studio, the levels live in collapsible panes with the same pattern controls as Background.

The heatmap is in the docs, the gallery and the shadcn registry. See the heatmap chart docs.