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

@warmbros/warmbros-components

v0.2.0

Published

React component library by WarmBros — pricing, footer, scroll-reveal frame, 3D logo forge, and brand primitives. CSS Modules, themeable via CSS variables, zero Tailwind dependency.

Readme

@warmbros/components

React component library by WarmBros. CSS Modules, themeable via CSS custom properties, no Tailwind dependency, zero global style pollution.

Install

npm install @warmbros/components framer-motion

Then import the stylesheet once at your app root:

import '@warmbros/components/styles.css';

Components

| Component | Description | |---|---| | Button | Accessible <button> with primary / secondary / ghost variants and sm / md / lg sizes | | Pricing | 3-tier pricing section with monthly/annual toggle | | Footer | Branded footer with socials, nav, legal links, copyright | | ContainerScroll | Scroll-driven 3D reveal — a framed card that tilts flat as you scroll | | SplineScene (subpath) | Lazy wrapper around @splinetool/react-spline | | Receipt3D (subpath) | 3D receipt animation with physics |

Button

import { Button } from '@warmbros/components';

<Button variant="primary" size="md" onClick={() => alert('Clicked!')}>
  Click me
</Button>

Pricing

import { Pricing } from '@warmbros/components';

const plans = [
  { name: 'STARTER', price: '50', yearlyPrice: '40', period: 'per month',
    features: ['Up to 10 projects', 'Community support'],
    description: 'Perfect for individuals', buttonText: 'Start Free Trial',
    href: '#', isPopular: false },
  // ...
];

<Pricing plans={plans} />

Footer

import { Footer } from '@warmbros/components';
import { Github } from 'lucide-react';

<Footer
  brandName="WarmBros"
  socialLinks={[
    { icon: <Github />, href: 'https://github.com/...', label: 'GitHub' },
  ]}
  mainLinks={[{ href: '#about', label: 'About' }]}
  copyright={{ text: '© 2026 WarmBros. All rights reserved.' }}
/>

ContainerScroll

Scroll-driven 3D reveal: a "laptop lid"-style card tilts flat, scales down, and docks into frame as the user scrolls.

import { ContainerScroll } from '@warmbros/components';

<ContainerScroll
  titleComponent={<h1>Unleash <span>Scroll Animations</span></h1>}
>
  <img src="/hero.png" alt="" />
</ContainerScroll>

Heavy components (subpath imports)

These pull large runtimes — import from their subpath so consumers who don't use them don't pay the cost:

// Pulls ~2MB of Spline runtime — install peers first:
//   npm install @splinetool/react-spline @splinetool/runtime
import { SplineScene } from '@warmbros/components/SplineScene';

// Pulls ~2MB of Rapier physics:
import { Receipt3D }  from '@warmbros/components/Receipt3D';

Theming

All components read from a small set of CSS custom properties. Set them once on an ancestor (e.g. <body> or an app-root wrapper):

:root {
  --wb-accent: #B51A2B;        /* brand color */
  --wb-surface: rgba(255, 255, 255, 0.03);
  --wb-border: rgba(255, 255, 255, 0.08);
  --wb-fg: #ffffff;
  --wb-fg-muted: rgba(218, 212, 212, 0.7);

  --wb-font-sans: 'Inter', system-ui, sans-serif;
  --wb-font-display: 'Space Grotesk', system-ui, sans-serif;
  --wb-font-brand: 'Righteous', cursive;
}

Peer dependencies

Required:

  • react ^18 or ^19
  • react-dom ^18 or ^19
  • framer-motion ^11 or ^12

Optional (only if you use the SplineScene subpath):

  • @splinetool/react-spline ^4
  • @splinetool/runtime ^1

License

MIT © Norayr Avetisyan