vue-data-ui is an open source, MIT-licensed Vue 3 component library for data visualization and data storytelling, built for Vue and Nuxt developers who need to render charts, gauges, tables and dashboard widgets without writing each one from scratch.
What it is
vue-data-ui is a component library published to npm as vue-data-ui and developed in the open at graphieros/vue-data-ui. It belongs to the Vue 3 ecosystem, and its documentation site states that it offers 69 components, most of them charts. Everything is written in Vue and distributed under the MIT licence, with 2,448 stars and 129 forks on GitHub at the time of writing. A companion repository, vue-data-ui-doc, holds the interactive documentation, and the same documentation is deployed at https://vue-data-ui.graphieros.com/.
The concrete problem it solves is fragmentation. A team building a reporting screen in Vue normally has to either hand-write SVG components for each visual or pull in several single-purpose chart packages that do not share styling, props or theming. vue-data-ui replaces that assembly work with one dependency that covers standard chart types and less common ones side by side, so a dashboard can mix a VueUiXy line chart, a VueUiHeatmap and a VueUiGauge without reconciling three APIs.
Key capabilities
- One npm package supplies the whole component set, with every component documented on the deployed documentation site.
- Chart coverage spans common families and unusual ones:
VueUiXy, VueUiDonut, VueUiRadar, VueUiScatter, VueUiHeatmap, VueUiTreemap, VueUiQuadrant, VueUiGauge, VueUiStackbar, VueUiHorizontalBar, and also VueUiChord, VueUiCirclePack, VueUiRidgeline, VueUiParallelCoordinatePlot, VueUiWordCloud and VueUiAgePyramid.
- Chart variants cover relational and comparative displays such as
VueUiNestedDonuts, VueUiDonutEvolution, VueUiRelationCircle, VueUiMoodRadar, VueUiDumbbell and VueUiStripPlot.
- Small-format and KPI parts are included, including sparkline, rating-stars, thermometer, tiremarks and wheel, alongside
VueUiQuickChart.
- A table component is provided for tabular data, and a skeleton-loader topic indicates loading placeholders for pending data.
- A screenshot topic indicates that visualizations can be captured as images, which suits reports and exported dashboards.
- Components are Vue 3 first and carry a Nuxt badge, so they fit both plain Vue 3 applications and Nuxt projects.
Who uses it and how
- Product teams building internal dashboards use it to compose a page from several chart components rather than maintaining a private chart toolkit.
- Analytics and reporting interfaces in the Data and Analytics category use the table component and chart components together to show figures and their visual context on one screen.
- Teams that need to hand a chart to a stakeholder as an image use the screenshot capability instead of asking recipients to open a live dashboard.
- Applications that load data asynchronously use the skeleton-loader support to hold layout while requests resolve.
- Vue and Nuxt developers evaluating a single dependency use the hosted documentation to preview each component before installing anything.
Getting started
Install the package as vue-data-ui from npm and import the components needed, or browse every component on the deployed documentation site at https://vue-data-ui.graphieros.com/ and in the vue-data-ui-doc repository.
How it compares
No comparable tools are named in the facts available for this entry, so vue-data-ui stands alone in this registry. It is not contrasted here with any paid product, because no such list was supplied.
When to use it — and when not to
This is a client-side component library, so there is no database, object storage or SMTP service to operate; the work is limited to installing the package and wiring props to your own data. Do not choose it if your application is not built on Vue 3 or Nuxt, since the components are Vue components rather than framework-agnostic wrappers. The available README excerpt is largely a component inventory and gives little setup detail, so teams with unusual SSR or build constraints should confirm behaviour against the documentation site before committing.
project readme (upstream, from github) — read inline

vue-data-ui

A user-empowering data visualization Vue component library for eloquent data storytelling.
Interactive Documentation:
Available components
Charts
Mini charts
3d
Tables
Rating
Maps
Productivity
Utilities
Installation
npm i vue-data-ui
You can declare components globally in your main.js:
import { createApp } from 'vue';
import App from './App.vue';
// Include the css;
import 'vue-data-ui/style.css';
// You can declare Vue Data UI components globally
import { VueUiRadar } from 'vue-data-ui';
const app = createApp(App);
app.component('VueUiRadar', VueUiRadar);
app.mount('#app');
Or you can import just what you need into your files:
<script setup>import {(VueUiRadar, VueUiXy)} from "vue-data-ui";</script>
You can also use the "VueDataUi" universal component, just specifying which component you are using. You can of course use the slots provided, if the target component has them.
<script setup>
import { ref } from "vue";
import { VueDataUi } from "vue-data-ui";
// Include the css;
import "vue-data-ui/style.css";
const config = ref({...});
const dataset = ref([...]);
</script>
<template>
<VueDataUi
component="VueUiXy"
:config="config"
:dataset="dataset"
/>
</template>
Note that the following utility components are not supported by the universal VueDataUi component and must be imported individually:
- Arrow
- VueUiIcon
- VueUiPattern
Typescript
Types are available in the 'vue-data-ui.d.ts' file under the types directory of the package.
Vue Data UI version2 -> version3 migration
Vue Data UI v3 does not contain breaking changes.
However, some charts have their padding configs modified, which can lead to excessive padding with a v2 config.
Version 3 features
config.loading (default: false) toggle loading state manually, to display a beautiful skeleton loader which uses the same chart component and shares layout features derived from your config. This skeleton loader is also triggered automatically if the provided dataset is undefined.
config.debug (default: false) set to true to show warning messages during development, turn off for production.
smart label resizing and auto-rotating features
more charts support responsive mode
config event callbacks
Nuxt
[This repo contains a boilerplate imp