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 🙏

© 2025 – Pkg Stats / Ryan Hefner

maitrid-react-theme-toggle

v0.1.0

Published

Light/Dark theme toggle for React

Readme

@your-scope/react-theme-toggle

Small React component to toggle between light and dark themes.

Install

npm i @your-scope/react-theme-toggle

Usage

import { useState } from "react";
import { ThemeToggle, Theme } from "@your-scope/react-theme-toggle";

export default function App() {
  const [theme, setTheme] = useState<Theme>("light");
  return (
    <div data-theme={theme}>
      <ThemeToggle theme={theme} onToggle={setTheme} />
    </div>
  );
}

13) Add a LICENSE
- Create `LICENSE` (MIT is common). You can copy an MIT template and add your name/year.

14) Build the package
```bash
npm run build
  • This should create a dist folder with index.cjs, index.mjs, and index.d.ts.
  1. Test locally using npm pack
npm pack
  • This creates a .tgz file like your-scope-react-theme-toggle-0.1.0.tgz.
  1. Try it in a sample app
  • In another test React app:
cd path\to\your\test-app
npm i ..\path\to\react-theme-toggle\your-scope-react-theme-toggle-0.1.0.tgz
  • Import the component and ensure it renders and toggles.
  1. Prepare to publish
  • Double-check:
    • name is available.
    • version is correct.
    • files includes dist, README.md, LICENSE.
    • peerDependencies has React and ReactDOM.
    • No secrets in your repo.
  1. Publish to npm
  • If scoped and public:
npm publish --access public
  • If unscoped:
npm publish
  • If you enabled 2FA on npm, enter your OTP.
  1. Verify on npm
  • Visit your package page (e.g., https://www.npmjs.com/package/@your-scope/react-theme-toggle).
  • Try installing via:
npm i @your-scope/react-theme-toggle
  1. Update versions later
  • For changes:
npm version patch   # or minor/major
npm publish

Common gotchas (read this)

  • Keep React in peerDependencies, not dependencies.
  • Ensure dist exists before publish (prepublishOnly runs build).
  • If “You do not have permission to publish” appears, the name is taken or scope permissions are missing.
  • For monorepos with workspaces, add the package path to the root workspaces if you use them (optional).
  • If using GitHub, tag versions automatically when running npm version (it creates a git tag).

If you want, I can generate the folder structure and files in your repo and run the build/publish commands for you.