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

@page-speed/venn-diagram

v0.0.8

Published

Dynamic, data-driven Venn diagram component for React. Renders area-proportional Venn and Euler diagrams with interactive hover/click events.

Readme

@page-speed/venn-diagram

PageSpeed Venn Diagram React Component

Dynamic, data-driven Venn diagram component for React applications. Renders area-proportional Venn and Euler diagrams with interactive hover/click events, perfect for competitive analysis dashboards, keyword gap analysis, and data visualization applications.

Features

  • Area-Proportional Rendering - Circle sizes automatically scale to represent data values
  • Customizable Styling - Full control over colors, fonts, and appearance
  • Accessible - WCAG 2.1 AA friendly patterns with keyboard navigation and ARIA labels
  • Interactive - Hover effects, click handling, and dynamic updates
  • Responsive - Automatically scales to container size
  • Performance - Optimized rendering with isolated D3/@upsetjs/venn.js dependency
  • Unlimited Circles - Support for 2+ sets with automatic layout optimization

Installation

npm install @page-speed/venn-diagram react react-dom

If you use pnpm:

pnpm add @page-speed/venn-diagram react react-dom

Quick Start

import { VennDiagram } from "@page-speed/venn-diagram";

const data = {
  sets: [
    { name: "A", label: "Set A", size: 100 },
    { name: "B", label: "Set B", size: 80 },
  ],
  intersections: [{ sets: ["A", "B"], size: 20 }],
};

export function MyDashboard() {
  return (
    <div style={{ width: 600, height: 400 }}>
      <VennDiagram data={data} interactive showLegend />
    </div>
  );
}

Styling

This component uses Tailwind utility classes for its default styling. Make sure your Tailwind content config includes this package so the classes are generated (for example, ./node_modules/@page-speed/venn-diagram/dist/**/*.{js,ts,jsx,tsx}).

API Overview

VennDiagram Props (high level)

  • data: VennData - sets + intersections
  • width, height: base dimensions (ignored when responsive is true)
  • renderer: "svg" | "canvas" (currently SVG is implemented)
  • showLabels, showValues, showLegend
  • colorScheme: override default color palette
  • animated, hoverOpacity, interactive, responsive
  • padding, textFill, strokeWidth
  • formatValue, formatLabel for custom formatting
  • onSetHover, onClick callbacks

See the TypeScript definitions in src/types/venn.types.ts for the full, strongly-typed API.

Examples

See the src/examples/ directory for real-world use cases including:

  • Keyword gap analysis (KeywordGapDashboard)
  • Competitor overlap visualization
  • Multi-set comparisons
  • Interactive dashboards

Development

Common scripts (see package.json for the complete list):

pnpm build        # Build library with Rollup
pnpm test         # Run Jest test suite
pnpm lint         # Run ESLint on src
pnpm storybook    # Run Storybook (if configured)

Browser Support

  • Chrome (latest)
  • Firefox (latest)
  • Safari (latest)
  • Edge (latest)
  • Mobile browsers (iOS Safari, Chrome Android)

License