npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

michi-vz

v0.6.0

Published

A React + D3 chart library: ready-made line, area, bar, radar, and scatter charts with shared theming.

Downloads

1,792

Readme

michi-vz

Ready-made charts for React. Drop in a component, pass your data, get a polished chart powered by D3 and TypeScript.

npm GitHub

Repository: https://github.com/beany-vu/michi-vz


Why use it?

  • Just works. No glue code between React and D3 — pass data, get a chart.
  • Looks consistent. A single MichiVzProvider themes every chart in your app.
  • Built for dashboards. Cross-chart highlighting, shared color mappings, and disabled-item filtering are first-class.
  • Typed end-to-end. Full TypeScript types for every prop and data shape.

Charts included

| Chart | Use it for | | --- | --- | | LineChart | Trends over time | | AreaChart | Filled trends, stacked totals | | BarBellChart | Comparing two values per category | | RadarChart | Multi-axis comparisons | | RangeChart | Min/max ranges over a series | | RibbonChart | Flowing band visualizations | | ScatterPlotChart | Two-variable distributions | | VerticalStackBarChart | Stacked bars over time | | ComparableHorizontalBarChart | Side-by-side ranking | | DualHorizontalBarChart | Two-direction comparisons | | GapChart | Gap-between-values displays |

Install

npm install michi-vz

Quick start

import { LineChart, MichiVzProvider } from "michi-vz";

<MichiVzProvider>
  <LineChart
    dataSet={[
      {
        seriesKey: "Sales",
        series: [
          { date: "2024", Sales: 120 },
          { date: "2025", Sales: 180 },
          { date: "2026", Sales: 240 },
        ],
      },
    ]}
    width={600}
    height={300}
  />
</MichiVzProvider>

That's the whole quickstart — see Storybook for live examples of every chart.

Color control

Three ways to color your charts, pick what fits:

  1. Auto — pass nothing, the chart picks colors for you.
  2. Explicit — pass colorsMapping={{ Sales: "#1f77b4" }}.
  3. External — pass skipColorMappingDispatch when something else (CSS rules, Redux, etc.) owns colors. The chart then waits for your colors instead of flashing wrong ones on first paint.
<LineChart
  dataSet={...}
  colorsMapping={externalColors}
  skipColorMappingDispatch  // chart will not emit its own mapping
/>

Cross-chart sync

For dashboards where hovering one chart highlights every chart, lift state up — either with MichiVzProvider, Redux, or your own context — and pass highlightItems / disabledItems to each chart. See the Storybook examples for working patterns.

Requirements

  • React 19+
  • A bundler that handles ESM (Vite, Next.js, webpack 5, etc.)

Contributing

npm install
npm run storybook    # play with components on :6006
npm run test         # run the test suite
npm run build        # produce dist/

Issues and PRs welcome at github.com/beany-vu/michi-vz.

License

ISC © Hoang VQ