← All comparisons

Chart.ts vs Nivo

Nivo provides beautiful React chart components built on D3. It has great defaults but is React-only and the D3 dependency makes bundles large.

FeatureChart.tsNivo
Bundle size<15kb min+gzip (entire library)~40kb min+gzip (per chart package)
Tree-shakingFull (import only what you use)Good (separate packages)
TypeScriptBuilt-in, strict mode, full inferenceBuilt-in types
SSRNative SSR, works with any frameworkPartial (canvas charts need client)
AccessibilityWCAG AA, keyboard nav, screen readers, pattern fillsGood (ARIA labels)
Tailwind CSSNative className on every element, dark: variantsNot native (theme config object)
Chart types40+ built-in~20 built-in
FrameworksReact, Vue, Svelte, Solid, Angular, Vanilla JSReact only
LicenseMITMIT

Why switch from Nivo?

Chart.ts advantages

  • Under 15kb gzipped, full library
  • Tailwind className on every chart element
  • WCAG AA accessible by default
  • Works with React, Vue, Svelte, Solid, Vanilla
  • Native SSR, zero config

Nivo limitations

  • React only
  • Large per-chart bundles due to D3
  • Theme system is separate from Tailwind
  • No className prop on chart elements
  • Cannot use dark: variants directly

Ready to switch?

Get started with Chart.ts in 30 seconds.

$npm install @chartts/core