Packages

@tanstack/charts

1.1.0 · 9 Oct 2026MIT352.7k / weekRepositoryHomepagenpmAtom feed

36 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.

  1. 1.x · latest line
  2. 1.1.0

    9 Oct 2026
    • Add opt-in fit: 'compress' for crowded dodge layouts and axis.ticks.line for styling or hiding tick stubs independently of labels. Preserve existing layout and tick defaults.

    • Pass brushX format a context naming the start or end handle it is labeling, so values that mark boundaries between items can produce correct value text for each handle.

    • Keep the number of selected values when dragging a brushX selection with explicit values, including when the drag stops at the edge of the plot.

  3. 1.0.0

    3 Oct 2026
    • breaking

      Establish the TanStack Charts 1.0 compatibility contract for documented public
      APIs, extension protocols, framework support, and renderer behavior. Keep
      optional capabilities behind their existing import boundaries. React Native
      remains experimental with its documented validation limits.

    • Allow custom datum groups to own focus paint and transitions with states.target: 'group', avoiding repeated state styling on every child. Evaluate geometry styles only for the scene kinds that support them.

    • Allow tick-label opacity callbacks to read live focus and pointer state without
      re-running layout. Preserve inline states and point-set ownership on decorative
      marks without adding interaction targets.

  4. 0.18.x
  5. 0.18.0

    10 Sep 2026
    • Add renderer-neutral radial gradient resources with SVG and React Native fill
      and stroke support, plus exact objectBoundingBox Canvas fills. Normalize
      linear coordinates and authored stop order consistently across renderers.

    • Allow Cartesian axis titles to configure font size, font weight, fill, and
      opacity while retaining automatic guide layout.

    • Allow definitions and themes to configure the built-in focus ring's radius,
      stroke width, fill, and stroke while preserving the existing boolean behavior
      and defaults.

  6. 0.17.x
  7. 0.17.0

    9 Sep 2026
    • Add physical per-corner and semantic value-end radii for Cartesian bar, rect,
      and cell marks across SVG, Canvas, and React Native renderers.

    • Relayout DOM charts when a CSS-owned container height changes, including when
      the chart uses a fixed width.

    • Support React 18 and React 19 in the web React adapter peer dependencies, and
      avoid layout-effect warnings when rendering either React entry point on the
      server.

  8. 0.16.x
  9. 0.16.2

    9 Sep 2026
    • Reduce chart mounting work by creating default SVG focus indicators only when needed and avoiding duplicate React client rendering. Speed up SVG serialization and categorical domain inference while preserving server rendering, hydration, chart appearance, and interactions.

  10. 0.16.1

    8 Sep 2026
    • Highlight the active series in grouped tooltips. Custom tooltip content can use context.primaryPoint and row.active to show the same highlight when series colors repeat.

  11. 0.16.0

    26 Aug 2026
    • Move TanStack Charts into official Alpha on the regular 0.x release line.

      Chart definitions now require Cartesian scales under scales.x and scales.y.
      Polar definitions require scales.angle and scales.radius. The temporary
      pre-Alpha root properties, runtime adapters, and development warnings have been
      removed. Custom mark types should replace ChartMarkX and ChartMarkY with
      ChartMarkPointX and ChartMarkPointY, imported from
      @tanstack/charts/mark/scale-values. Polar layout callbacks should read the
      reserved mappings from layout.scales.

      Reserved scale entries are checked against the marks that use them at the
      precise authored type boundary. A materialized dimension requires a configured
      scale, while an unused dimension requires an explicit null entry. Runtime
      validation still checks required reserved entries and channels that actually
      materialize, but type-only scale ownership cannot be recovered after a custom
      mark or stored definition has been erased.

      Fresh built-in mark option literals now reject unsupported properties while
      preserving typed channels, named scale IDs, and generic mark wrappers.

      Exact-zero cells in diverging stacks now stay on their running positive or
      negative baseline instead of drawing false spikes through lower area layers.
      Pinned tooltips now dismiss when the pointer is pressed outside the chart and
      tooltip, so pointer inspection resumes after focus leaves the chart.

  12. 0.15.x
  13. 0.15.0

    26 Aug 2026
    • Add named Cartesian and polar scale registries with multiple axes, guided
      legacy scale migration, and opt-in per-mark Canvas rendering that composes with
      the default renderer across DOM framework adapters, SSR, focus, and image
      export.

  14. 0.14.x
  15. 0.14.0

    15 Aug 2026
    • Improve definition-driven inference for optional motion renderers, raw chart specs with separate behaviors, responsive chart factories, and decorative marks.

    • Inject tooltip motion through a structural renderer capability so motion works across separately bundled package entrypoints.

  16. 0.13.x
  17. 0.13.0

    14 Aug 2026
    • Add ShadCN-compatible chart catalog support with renderer-owned tooltip and
      entrance motion, composable stagger timing, motion cascade opt-outs, and
      expanded polar presentation controls.

  18. 0.12.x
  19. 0.12.0

    12 Aug 2026
    • Add angular grouped focus for radial charts and geometry-backed arc tooltips.

  20. 0.11.x
  21. 0.11.2

    12 Aug 2026
    • Ship scenario-driven TanStack Charts skills for visualization design, responsive behavior, migration, interaction, accessibility, debugging, extension, and coordination with the TanStack data and application ecosystem.

  22. 0.11.1

    12 Aug 2026
    • Keep animated SVG arc flags valid throughout path interpolation and prevent the
      Angular adapter from mounting its browser host during server rendering.

  23. 0.11.0

    11 Aug 2026
    • Add controlled sunburst drill-down roots, bounded visible depth, and hierarchy-aware polar motion that keeps animated sectors centered. Add funnel and drillable sunburst catalog examples.

  24. 0.10.x
  25. 0.10.0

    11 Aug 2026
    • Let chart containers theme the built-in DOM tooltip surface through inherited
      --ts-chart-tooltip-* CSS variables while preserving the existing defaults.

  26. 0.9.x
  27. 0.9.0

    9 Aug 2026
    • Install @tanstack/charts once and import compact scales and framework adapters
      from exact package subpaths. Existing package names remain supported for
      compatibility.

  28. 0.8.x
  29. 0.8.0

    9 Aug 2026
    • Harmonize the pre-alpha public API: tighten compact scales, rename responsive,
      control, focus, color, SVG animation, export, reducer, and rolling-window
      contracts, standardize transform callbacks, type composable views and
      host-owned tooltip tokens, share DOM/native interaction policy, and add one
      platform-default runtime theme. DOM and React Native definitions now reject
      cross-host tooltip tokens, while synchronous text measurement receives the
      complete host typography and font scale. Every DOM adapter now exposes the
      host-refined definition type at its chart boundary.

  30. 0.7.x
  31. 0.7.2

    7 Aug 2026
    • Keep the scatterplot with marginal histograms visible in compact catalog previews by omitting its color legend only in preview mode.

  32. 0.7.1

    7 Aug 2026
    • Pin packaged documentation and comparison protocol links to the immutable tag
      for the same package version. Release automation now advances those tag links
      together with every visible release-version reference.

  33. 0.7.0

    7 Aug 2026
    • Expose pinned state to tooltip content and item callbacks so built-in and
      framework-rendered tooltips can expand with additional detail when pinned.
      Keep dismissing clicks owned by the tooltip when a framework body unmounts
      during event propagation.

      Standardize public callback parameters as primary data plus a context bag.
      Tooltip format and formatGroup now receive the same content context as
      content; channel accessors use (datum, { index, data }); facet, focus,
      legend, and spatial-index extension callbacks move their supporting values
      into named context objects. Controlled signals now receive change reasons in
      { reason }; keyed-selection keys and focus-guide label formatters receive
      their point in { point }; interactive legend item labels receive
      { visible }.

      ruleX and ruleY now expose axis-specific presentation-only focus anchors, so
      whenFocused(..., { match: 'x' }) and whenFocused(..., { match: 'y' }) can
      reveal focused guide rules without making them interaction or tooltip targets.

      Update the published pinned-tooltip catalog case to show the energy overview,
      compact hover summary, and animated pinned detail.

      Preserve distinct source rows in the linear-regression, framed-scatter, and
      many-point-scatter catalog examples when car names and years repeat.

      Keep React Native chart-host focusability aligned with the shared definition
      contract and toggle sticky activation exactly once per accessibility action.

    • Add renderer-native crosshair rules, categorical cursor bands, labels, and optional intersection markers plus shared focus/free cursor controllers across SVG, Canvas, motion, and React Native rendering. Focus-filtered rule marks now use non-interactive semantic anchors, built-in axis focus modes select the painted mark under the pointer before grouping or snapping, and keyed motion guides remain active through scene updates.

    • Add native waffle, optional spatial hexbin, Delaunay link, Voronoi,
      scalar-grid contour, density contour, responsive treemap and sunburst marks,
      responsive Sankey composition, dot dodge layouts, typed wide-to-long fold and
      polar pie transforms, and optional static force-layout and tidy-tree
      transforms. Polar charts add radius- and angle-extending bar marks, responsive
      radius scale ranges, post-scale text and rule offsets, and automatic outside
      text anchors. These marks, layouts, and transforms own their data- or
      plot-space geometry, so examples no longer need to copy scales, author D3
      paths, flip hierarchy coordinates, manually pivot metric fields, calculate
      responsive label radii or bar rings, or hide hierarchy and settled network
      coordinates in case utilities. The exact Sankey entry accepts semantic graph
      rows and composes ordinary child marks over immutable final-pixel node and link
      values without exposing D3 mutation cleanup.

      Resolved dot placement is also extensible through createDotLayout, which
      receives final plot bounds, measured coordinates, and radii while Charts keeps
      row identity, interaction, state, and motion ownership. Treemap tiling, Sankey
      alignment, and named static-force factories accept D3-compatible callables in
      addition to the built-in shorthands; all operate over private layout copies and
      retain validation, immutability, and source lineage.

      Cartesian bars add an orientation-neutral maxThickness constraint that caps
      their final painted categorical size after grouping and inset, without asking
      definitions to estimate responsive chart bounds. Absolute inline-state inset
      overrides retain their existing semantics without escaping the cap.

      Add eager boxRows preparation plus raw-row boxX and boxY marks with Tukey
      quartiles, observed whiskers, outlier lineage, transposed orientation, and one
      summary interaction target per category. The marks reuse the public semantic
      rows without exposing presentation keys. Add compositeMark for namespaced
      composition of ordinary child marks with preserved datum, channel,
      interaction, and motion ownership.

      Stack layouts add inside-out series order and a zero-origin wiggle policy.
      Areas, bars, and row transforms now share D3 inside-out ordering, dense sparse
      cell handling, and a single global baseline translation, so streamgraphs can
      consume tidy source rows without case-owned pivoting or interval generation.
      Anchored stacks additionally translate ordered nonnegative series around a
      named series fraction, so diverging Likert charts can keep counts in ordinary
      bar definitions without manually materializing signed endpoints.

      Add an eager waterfall transform for ordered signed contributions, cumulative
      start/end intervals, increase/decrease classification, optional grouped net
      totals, and direct source lineage.

      Add eager mosaicY and mosaicX transforms for two-dimensional proportional
      intervals over explicitly aggregated category pairs. They preserve semantic
      categories, both normalization totals, stable source order, and direct lineage
      for ordinary rectangle and text marks. Mosaic and pie share an overflow-safe
      proportional interval allocator; waffle keeps its distinct rounded unit-fragment
      and resolved packing policy.

      Add lineX as the strict transposed counterpart to lineY, sharing grouping,
      keys, gaps, styling, interaction, motion, and renderer-neutral path output.

      Add eager linearRegressionRowsY and linearRegressionRowsX preparation plus
      linearRegressionY and linearRegressionX composite marks with centered
      least-squares fits, optional grouped Student-t confidence bands, semantic-domain
      sampling, aggregate lineage, transposed geometry, and one interactive fitted
      line per group. The marks reuse the public semantic rows without exposing
      presentation keys.

      Add differenceY and differenceX composite marks that split two source-row
      series at exact interpolated crossings, paint stable positive and negative
      lobes, preserve derived lineage, and keep both raw boundary lines interactive.

      Add semantic ridgelineY / ridgelineX and violinY / violinX marks for
      prepared normalized profiles. Both derive responsive displacement from complete
      point or band category domains without numeric category surrogates. Ridgelines
      own one-sided overlap and optional outlines; violins own mirrored envelopes
      while binning, normalization, density estimation, and summaries remain explicit
      definition concerns. Tick marks add an optional category-step-relative span
      for responsive summary bars without authored endpoint coordinates.

      Add exact-subpath focus guide marks with renderer-neutral rules, markers,
      measured labels, raw datum identity, and stable retargeting keys. Retargetable
      whenFocused marks now enter at the active geometry, update through ordinary
      mark motion, preserve interrupted spring velocity, and exit on focus clear
      across SVG, Canvas, and React Native surfaces. Candidate ownership is
      collision-safe for delimiter-containing keys, primitive rows match by value
      and source position, and mark-state transitions no longer override another
      mark's focus motion.

      Add an exact-subpath controlled signal and a controlled interactive categorical
      legend. Applications retain the visible-series snapshot while Charts owns
      domain-ordered toggling, post-domain geometry and focus filtering, responsive
      top or bottom layout, stable native browser buttons, and static SVG fallback.
      Static color and gradient legends also support top or bottom placement.

      Add exact-subpath controlled keyed selection with keyedSelection and
      whenSelected. Host activation maps ordinary chart points to application keys
      through a controlled signal. Selected marks keep their complete domain
      contribution, then paint only matching point-owned geometry as a decorative
      overlay without duplicate focus or activation targets.

      Add exact-subpath decorative(mark) composition. It keeps an ordinary or
      resolved-layout mark's scale contribution, layout measurement, motion,
      post-domain work, and painted geometry while removing interaction ownership and
      exposing never point types. This lets one layer in a line-plus-dot composition
      own focus, tooltips, and activation without changing pointer affinity.

      Add exact-subpath brushX as a controlled chart behavior. It resolves against
      the final x scale and plot bounds, owns D3 pointer/touch lifecycle, semantic
      snapping, reverse normalization, cancellation, keyboard slider handles, host
      teardown, and a renderer-neutral static fallback. Applications retain the
      accepted range, fixed-window policy, linked-view layout, and persistence.

      Add exact-subpath continuousCursor as a controlled chart behavior for an
      unsnapped numeric or temporal x/y position. It resolves both final scales and
      plot bounds, paints rules, a marker, and optional axis labels, owns transient
      pointer/touch previews, click or tap pinning, leave/cancel cleanup, Escape and
      toggle clearing, host teardown, and a renderer-neutral static fallback.
      Applications retain semantic sliders, status text, formatting policy, and
      persistence.

      Add exact-subpath zoomX as a controlled continuous horizontal-window
      behavior. It owns focus-gated pointer-anchored wheel zoom, horizontal-wheel and
      drag pan, touch and pinch gestures, keyboard zoom/pan/reset, final-scale
      inversion, clamping, cancellation, accessibility, and host teardown while D3
      Zoom remains private to the optional subpath. Applications retain the accepted
      semantic window, visible-row and y-domain policy, status, reset controls, and
      persistence.

      Add exact-subpath handleX as a controlled, candidate-bound horizontal scale
      handle. It owns final-scale track, rule and handle painting, nearest-candidate
      snapping, pointer and touch capture, preview, commit and cancellation, keyboard
      slider semantics, resize synchronization, and host teardown without a D3
      runtime. Applications retain playback or editing state, controls, validation,
      status, and persistence.

      Tooltip definitions add visibility: 'pinned' for focusable charts whose rich
      detail should mount only after activation. Pointer pinning now repaints inline
      pinned mark states, and SVG and Canvas restore base paint when tooltip
      dismissal clears focus completely.

      Facet definitions now preserve the datum type and identity emitted by their
      child marks, type group rows as nonempty, and apply motion to the child datum.
      Facets and the new exact-subpath viewGrid definition factory share one
      full-chart scene adoption kernel with stable point and mark namespaces.
      viewGrid arranges normal child definitions in named fixed/flexible tracks and
      can align or strictly share resolved plot ranges without reserved-domain
      coordinates or manual scene plotting.

      Add exact-subpath composeViews for heterogeneous complete chart definitions.
      Opaque fill, grid, layer, and anchored inset utilities compose responsive
      frames, while shareX, shareY, alignX, and alignY keep scale coordination
      separate from layout. viewGrid remains as concise grid syntax over the same
      composition engine. Child pointer and cursor settings now fail explicitly
      instead of disappearing at the adoption boundary; the outer definition owns
      that lifecycle.

      Controlled brush, cursor, and handle behaviors repaint the application-accepted
      snapshot after a rejected terminal proposal. Continuous cursor axes invert the
      resolved scale by default while retaining explicit value mapping and
      coordinate-only overrides. Keyboard-disabled zoom no longer advertises or
      enters focus for keyboard semantics it does not implement.

      Interrupted motion removes exact stale exit nodes and presentation state while
      preserving live replacements. Composite motion inheritance retains authored
      path timing, including rolling-path policy.

      Axis tick labels now accept per-candidate font size, font weight, opacity,
      anchor, and x/y offset values. Accessors receive the semantic tick value,
      stable pre-thinning index, resolved position, and bandwidth; resolved
      presentation participates in thinning, automatic margins, facets, and motion.

  34. 0.6.x
  35. 0.6.5

    5 Aug 2026
    • Publish the complete 109-case conformance catalog as per-case React components that render their complete SVG during SSR. Catalog data parsing is compatible with runtimes that prohibit string code generation, case-local D3 imports are declared runtime dependencies, and bundled datasets include source and license notices.

      Add focus: false for charts that should omit generated focus geometry and native focus work. Responsive definitions now retain outer definition options, and catalog descriptors and custom views respond to measured width changes after SSR. d3-scale is declared as a core runtime dependency.

      Catalog components accept the same responsive aspectRatio sizing contract as React Charts while retaining deterministic initial dimensions for SSR. React chart hosts serialize proportional CSS sizing as a unitless value. Legend-heavy preview definitions now dedicate their compact layout to the plot.

  36. 0.6.4

    3 Aug 2026
    • Accept configured D3 scale instances for union-valued axes.

  37. 0.6.3

    3 Aug 2026
    • Keep the built-in primary focus ring when authored focus marks are present, and
      add focusRing: false for charts that replace the indicator explicitly.

  38. 0.6.2

    2 Aug 2026
    • Clarify that each chart host has one animation owner: the default SVG renderer
      uses animate, while motion() ignores it and uses definition-level motion
      declarations.

  39. 0.6.1

    2 Aug 2026
    • Correct SVG pointer hit testing when the rendered viewport and chart scene use
      different aspect ratios.

  40. 0.6.0

    2 Aug 2026
    • Add the optional motion() SVG renderer with tween and physical spring
      transitions, definition-local chart, mark, datum, guide, and focus timing,
      retained interruption velocity, reduced-motion handling, and aligned
      presentation geometry. Add the standalone createChartSpring sampler.

  41. 0.5.x
  42. 0.5.1

    2 Aug 2026
    • Resolve default pointer focus against painted mark geometry before applying a
      mark's natural x, y, or two-dimensional fallback. Interaction metadata now
      lives on the resolved scene primitive, so built-in and custom marks share the
      same rectangle, circle, polygon, line, or area geometry used by renderers after
      layout, facets, transforms, clipping, and inline state resolution.

      Facet-local default markers now stay bound to the primary point even when
      another panel has identical channel values; explicit x/y focus marks remain the
      opt-in synchronized-cursor path. Animated bar inset states also preserve the
      quantitative axis and baseline while changing only categorical width or height.

  43. 0.5.0

    2 Aug 2026
    • Add the experimental React Native SVG host with responsive scene rendering,
      focus, selection, accessibility actions, and an optional native tooltip entry.
      Ship compiled ESM and declarations, and verify the packed package in bare React
      Native and Expo Metro consumers.

  44. 0.4.x
  45. 0.4.0

    1 Aug 2026
    • Order grouped tooltip rows by rendered mark position by default: top-to-bottom
      for x groups and left-to-right for y groups. Add visual as an explicit sort
      policy while preserving color-domain, focus, and custom comparator ordering.

  46. 0.3.x
  47. 0.3.1

    31 Jul 2026
    • Remove incidental d3-array usage from nearest-point lookup, quantile legend
      thresholds, and compact numeric ticks. These paths now use package-owned
      implementations with D3 parity coverage, and compact scales no longer have a
      production D3 dependency.

      Numeric-bin and stack transforms, polar and curve features, and geo features
      continue to own their tree-shakable d3-array, d3-shape, or d3-geo
      implementations as normal dependencies. No peer dependency, caller-supplied
      capability, or public API migration is required.

  48. 0.3.0

    31 Jul 2026
    • Replace the flat axis guide options with composable axis, grid, tick, and
      responsive label configuration. Add shared focus-layer marks, animated inline
      mark states, coordinate-based tooltip anchoring, and unified stack/group
      layouts with inferred stacking.
      Add data-first group, numeric/calendar/two-dimensional bin, window, cumulative,
      rank, normalize, select, and row-stack transforms. Results use named group
      fields, flat row extension, explicit reducers and ordering, source lineage,
      object-bag callbacks, ordinary-function escape hatches, and granular entry
      points.

    • Allow link marks to resolve stroke width and opacity per datum and configure
      their line caps. This supports proportional D3 Sankey links through native mark
      composition instead of a custom scene renderer.

  49. 0.2.x
  50. 0.2.0

    31 Jul 2026
    • Rename the environment-safe /portable entry from 0.1.0 to /universal. Replace @tanstack/charts/portable imports with @tanstack/charts/universal. The /types entry and browser-oriented root exports remain unchanged. The universal type surface now includes generic tooltip-extension token contracts for non-DOM hosts.

  51. 0.1.x
  52. 0.1.0

    31 Jul 2026
    • Add environment-safe /portable and /types entry points while preserving the existing browser-oriented root exports.

    • Make native tooltips and tooltip portals explicit extensions. Import tooltip from @tanstack/charts/tooltip; replace tooltip: true with tooltip, dynamic booleans with enabled ? tooltip : false, and configured objects with { use: tooltip, ...options }. Complete definition values use ChartTooltipInput; ChartTooltipOptions remains the options-only type.

      Import portal from @tanstack/charts/tooltip/portal; replace portal: true with portal, omit portal: false, and replace dynamic booleans with enabled ? portal : undefined inside the configured tooltip object.

  53. 0.0.x
  54. 0.0.2

    31 Jul 2026
    • Keep long Cartesian axis titles contained on compact charts.

  55. 0.0.1

    31 Jul 2026
    • breaking

      Remove input from DOM-host and framework-adapter options.

    • breaking

      Move transforms beside defineChart, or into the framework memo or computed
      primitive that creates the definition.

    • breaking

      Replace prepare, prepareEqual, and inputEqual. Prepared-data caching
      and the preparation AbortSignal no longer exist.

  56. 0.0.0

    29 Jul 2026
    • breaking

      Remove input from DOM-host and framework-adapter options.

    • breaking

      Move transforms beside defineChart, or into the framework memo or computed
      primitive that creates the definition.

    • breaking

      Replace prepare, prepareEqual, and inputEqual. Prepared-data caching
      and the preparation AbortSignal no longer exist.