f5/unovis

Modular data visualization framework for React, Angular, Svelte, Vue, and vanilla TypeScript or JavaScript

TypeScript

2,856

1,369 commits

updated Oct 8, 2026

See the code

README

https://user-images.githubusercontent.com/755708/205744216-5e9efd10-794b-4ce1-9aca-580c34fad193.mp4

🟨 Unovis is a modular data visualization framework for React, Angular, Svelte, Vue, Solid and vanilla TypeScript or JavaScript:

  • 📈 🗺 It has charts, maps, network graphs, and more!
  • 🌳 Tree-shakable and supports individual component imports to reduce your bundle size;
  • 🎨 Highly customizable, thanks to the CSS-variables support.

Learn more about Unovis on unovis.dev

Quick Start

You can install the core of the library @unovis/ts and framework-specific packages (if you use React, Angular, Svelte, Vue or Solid) from NPM:

npm install -P @unovis/ts @unovis/<react|angular|svelte|vue|solid>

Now you can import components and create your first chart! Here's how to build a simple line chart uising Unovis and React:

import React, { useCallback } from 'react'
import { VisXYContainer, VisLine, VisAxis } from '@unovis/react'

type DataRecord = { x: number; y: number }
const data: DataRecord[] = [
  { x: 0, y: 0 },
  { x: 1, y: 2 },
  { x: 2, y: 1 },
]

export function BasicLineChart (): JSX.Element {
  return (
    <VisXYContainer data={data}>
      <VisLine<DataRecord>
        x={useCallback(d => d.x, [])}
        y={useCallback(d => d.y, [])}
      ></VisLine>
      <VisAxis type="x"></VisAxis>
      <VisAxis type="y"></VisAxis>
    </VisXYContainer>
  )
}

Looking for Angular, Svelte, Vue, Solid or TypeScript examples? Check out the Quick Start page on our website.

Examples and Documentation

Unovis Examples

📖 Unovis has an extensive documentation with code snippets for React, Angular, Svelte and TypeScript.

🖼 Also there's a growing gallery of examples, from where you can copy the code over to your project or try it live on StackBlitz.

Repository structure

License

PackageDescriptionVersionDownloads
@unovis/tsCore TypeScript packageVersionDownloads
@unovis/reactReact componentsVersionDownloads
@unovis/angularAngular componentsVersionDownloads
@unovis/svelteSvelte componentsVersionDownloads
@unovis/vueVue componentsVersionDownloads
@unovis/solidSolid componentsVersionDownloads
@unovis/ssrServer-side rendering: charts to SVG/PNG in NodeVersionDownloads
@unovis/mcpMCP server generating charts as SVGVersionDownloads
packages/websiteWebsite, docs and examples——

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. For more information, please read CONTRIBUTING.

Maintainers

Nikita Rokotyan Qian Liu Surya Hanumandla

Contributors

Rebecca Bol Olga Stukova Sumit Kumar Gaurav Mukherjee Beverly Ackah Dmitriy Gutman zernonia Yann イーベス Eves Michael Josh Larsen

License

Unovis is licensed under Apache-2.0

angular
charts
data-visualization
graphs
maps
react
solid
svelte
vue

f5/unovis

Modular data visualization framework for React, Angular, Svelte, Vue, and vanilla TypeScript or JavaScript

TypeScript

2,856

1,369 commits

updated Oct 8, 2026

See the code

README

https://user-images.githubusercontent.com/755708/205744216-5e9efd10-794b-4ce1-9aca-580c34fad193.mp4

🟨 Unovis is a modular data visualization framework for React, Angular, Svelte, Vue, Solid and vanilla TypeScript or JavaScript:

  • 📈 🗺 It has charts, maps, network graphs, and more!
  • 🌳 Tree-shakable and supports individual component imports to reduce your bundle size;
  • 🎨 Highly customizable, thanks to the CSS-variables support.

Learn more about Unovis on unovis.dev

Quick Start

You can install the core of the library @unovis/ts and framework-specific packages (if you use React, Angular, Svelte, Vue or Solid) from NPM:

npm install -P @unovis/ts @unovis/<react|angular|svelte|vue|solid>

Now you can import components and create your first chart! Here's how to build a simple line chart uising Unovis and React:

import React, { useCallback } from 'react'
import { VisXYContainer, VisLine, VisAxis } from '@unovis/react'

type DataRecord = { x: number; y: number }
const data: DataRecord[] = [
  { x: 0, y: 0 },
  { x: 1, y: 2 },
  { x: 2, y: 1 },
]

export function BasicLineChart (): JSX.Element {
  return (
    <VisXYContainer data={data}>
      <VisLine<DataRecord>
        x={useCallback(d => d.x, [])}
        y={useCallback(d => d.y, [])}
      ></VisLine>
      <VisAxis type="x"></VisAxis>
      <VisAxis type="y"></VisAxis>
    </VisXYContainer>
  )
}

Looking for Angular, Svelte, Vue, Solid or TypeScript examples? Check out the Quick Start page on our website.

Examples and Documentation

Unovis Examples

📖 Unovis has an extensive documentation with code snippets for React, Angular, Svelte and TypeScript.

🖼 Also there's a growing gallery of examples, from where you can copy the code over to your project or try it live on StackBlitz.

Repository structure

License

PackageDescriptionVersionDownloads
@unovis/tsCore TypeScript packageVersionDownloads
@unovis/reactReact componentsVersionDownloads
@unovis/angularAngular componentsVersionDownloads
@unovis/svelteSvelte componentsVersionDownloads
@unovis/vueVue componentsVersionDownloads
@unovis/solidSolid componentsVersionDownloads
@unovis/ssrServer-side rendering: charts to SVG/PNG in NodeVersionDownloads
@unovis/mcpMCP server generating charts as SVGVersionDownloads
packages/websiteWebsite, docs and examples——

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. For more information, please read CONTRIBUTING.

Maintainers

Nikita Rokotyan Qian Liu Surya Hanumandla

Contributors

Rebecca Bol Olga Stukova Sumit Kumar Gaurav Mukherjee Beverly Ackah Dmitriy Gutman zernonia Yann イーベス Eves Michael Josh Larsen

License

Unovis is licensed under Apache-2.0

angular
charts
data-visualization
graphs
maps
react
solid
svelte
vue

Significant stargazers

(top 24 of 43)

Turiiya

106 followers · starred Jun 2024

Eduardo San Martin Morote

6,580 followers · starred Sep 2024

Alexander Lichter

2,026 followers · starred Mar 2025

Aslak Hellesøy

819 followers · starred Apr 2023