Component reference

Bundle Size

Package size with gzip, brotli and the change from the previous version.

<BundleSize variant="minimal" />Clean surfaces and measured motion.

Installation

Use the shadcn CLI to copy the component source and its dependencies into your own project. Installs motion and @number-flow/react, plus the Ovio theme, world, motion, rolling-number, toy, keys, format items.

npx shadcn add JanaSundar/ovio/bundle-size
↳You own the source. Ovio components arrive in your codebase so you can edit any part of their style, behavior, or data flow.

Usage

Set the visual world on the component, or wrap the page in an OvioProvider to set a default for everything inside it.

TSXvariant="minimal"
import { BundleSize } from "@/components/ovio/bundle-size/bundle-size"

<BundleSize
  variant="minimal"
  packageName="lumen"
  versions={versions}
/>

Built with: CSS · Motion for React
Motion in Minimal: Small springs, opacity and layout shifts that show state.

Data

Fetch it on the server with getBundleSizes(packageName, versions?) and pass the result as props. The helper is lib/npm.ts, added with the CLI.

npx shadcn add JanaSundar/ovio/npm
Sourcebundlephobia, an unofficial service: minified and gzipped sizes. It doesn't measure brotli.
AuthNone.
Limitsbundlephobia answers 429 after a few quick requests. Leave out versions to read its history in one request; each listed version costs one.
CachingCached for an hour by default (revalidate: 3600), so traffic adds no API calls. A failed refresh keeps serving the last good data, and a spent limit throws RateLimitError with the time it resets.
This demoLive data from sonner, through the same helper. If the API fails, the sample shows instead.

Props

Control the data, selected world, animation behavior, and callbacks.

PropTypeDescription
packageNamestringnpm package name.
versions{ version; raw; gzip; brotli?; dependencies? }[]Sizes in bytes, newest first.
variant| "minimal" | "craft" | "retro" | "toy"Which world to render. Defaults to the nearest OvioProvider, then minimal.
budgetnumberBudget in kB. The bar scales to the largest version without it.
classNamestringMerged onto the root.