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

@stem_dev/periodic-table

v1.0.8

Published

A modern, interactive periodic table library for React and standalone web applications. Explore the elements with high-fidelity 3D Bohr atom visualizations, emission spectra, and detailed physical properties.

Readme

3D Periodic Table Explorer

A modern, interactive periodic table library for React and standalone web applications. Explore the elements with high-fidelity 3D Bohr atom visualizations, emission spectra, and detailed physical properties.

🚀 Live Demo

Periodic Table Preview

Features

  • Interactive 3D Bohr Models: Real-time 3D visualization of electron shells using React Three Fiber.
  • Emission Spectra: Visual representation of atomic emission lines for each element.
  • Responsive Design: Fluid layout that works seamlessly on mobile, tablet, and desktop.
  • Advanced Search: Quickly find elements by name, symbol, atomic number, or category.
  • Category Highlighting: Interactive legend to highlight specific groups of elements.
  • Dark Mode Support: Native dark mode detection and manual toggle support.
  • Dual Build System:
    • Standard Library: Optimized ESM/CJS builds for React projects.
    • Standalone UMD: Full bundle with all dependencies for direct browser use.

Screenshots

Light & Dark Modes

| Light Mode | Dark Mode | | :---: | :---: | | Light Mode | Dark Mode |

Interactive Features

| 3D Bohr Model | Emission Spectrum | | :---: | :---: | | Bohr Model | Emission Spectrum |

Installation

npm install @stem_dev/periodic-table

Usage

React Integration

The library exports a PeriodicTable component that can be dropped into any React application.

import { PeriodicTable } from '@stem_dev/periodic-table';

function App() {
  return (
    <div style={{ height: '100vh' }}>
      <PeriodicTable 
        darkMode={true} 
        showSpectrum={true} 
        showBohrModel={true} 
      />
    </div>
  );
}

Standalone (UMD)

For projects without a build system, use the standalone UMD build.

<div id="periodic-table-root" style="height: 100vh;"></div>

<script src="https://cdn.jsdelivr.net/npm/@stem_dev/periodic-table/dist/build/index.umd.js"></script>
<script>
  const { init } = window.PeriodicTable;
  init('#periodic-table-root', { 
    darkMode: true 
  });
</script>

Props

| Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | darkMode | boolean | false | Force dark mode (overrides system/root detection). | | showSpectrum | boolean | true | Show/hide the emission spectrum in the element modal. | | showBohrModel | boolean | true | Show/hide the 3D Bohr model in the element modal. |

Project Structure

  • src/components/: React components (BohrModel, Spectrum, etc.)
  • src/data.ts: Element data and coordinate mapping.
  • src/types.ts: TypeScript interfaces and types.
  • vite.config.ts: Library build configuration.
  • vite.umd.config.ts: Standalone bundle configuration.

Development

# Install dependencies
npm install

# Start development server
npm run dev

# Build library (ESM/CJS)
npm run build

# Build standalone bundle (UMD)
npm run build:umd

# Build interactive demo (outputs to /public)
npm run build:demo

# Linting
npm run lint

License

MIT © STEM Dev