← 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.
| Feature | Chart.ts | Nivo |
|---|---|---|
| Bundle size | <15kb min+gzip (entire library) | ~40kb min+gzip (per chart package) |
| Tree-shaking | Full (import only what you use) | Good (separate packages) |
| TypeScript | Built-in, strict mode, full inference | Built-in types |
| SSR | Native SSR, works with any framework | Partial (canvas charts need client) |
| Accessibility | WCAG AA, keyboard nav, screen readers, pattern fills | Good (ARIA labels) |
| Tailwind CSS | Native className on every element, dark: variants | Not native (theme config object) |
| Chart types | 40+ built-in | ~20 built-in |
| Frameworks | React, Vue, Svelte, Solid, Angular, Vanilla JS | React only |
| License | MIT | MIT |
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