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

@structuralists/scaffolding

v0.4.1

Published

[![npm](https://img.shields.io/npm/v/@structuralists/scaffolding.svg)](https://www.npmjs.com/package/@structuralists/scaffolding) [![publish](https://github.com/structuralists/scaffolding/actions/workflows/publish.yml/badge.svg)](https://github.com/struct

Readme

@structuralists/scaffolding

npm publish bundle size

@structuralists/scaffolding is a bundle of react components that can make scaffolding a UI quick and efficient. Unlike component libraries like a material UI, it does not target being used for production grade applications, but instead targets getting "something" up and running, where you don't care what exactly it looks like.

It is not designed to be customized. it's not pluggable. It is not designed to composed into another design system (though it is react, you can write you own components and pass them as children or whatever to your heart's content.)

It is designed to get you something working, and if you then do care what that looks like, build or import a design system and convert to that.

Install

npm install @structuralists/scaffolding
# or: bun add / pnpm add / yarn add

Peer deps (you almost certainly already have these): react@^19, react-dom@^19, react-router@^7.

Setup

Import the design tokens once, at your app entry. They define the CSS custom properties every component reads:

import '@structuralists/scaffolding/tokens.css';

That's it — no provider, no theme object. Theme switching is driven by data-theme on any ancestor (typically <html>):

<html data-theme="dark-warm">

Available themes: light-warm, light-paper, light-sepia, dark-warm, dark-neutral, dark-dimmed. Omit the attribute to follow system preference.

Use it

import { Stack, Heading, Button, Input, Field } from '@structuralists/scaffolding';

export const SignupCard = () => {
  return (
    <Stack gap={3}>
      <Heading level={1}>Sign up</Heading>
      <Field label="Email">
        <Input type="email" />
      </Field>
      <Button variant="primary">Continue</Button>
    </Stack>
  );
};

Browse every component (with live controls) in the Storybook: bun run storybook.

Consumer notes

This package ships TypeScript source directly — main and types both point at ./index.ts. Modern bundlers handle that out of the box:

  • Vite / Remix / Bun / Astro: works with no config.
  • Next.js: add the package to transpilePackages:
    // next.config.js
    module.exports = {
      transpilePackages: ['@structuralists/scaffolding'],
    };
  • Plain Node / CRA: not supported — you need a bundler that understands .ts/.tsx and CSS Modules.

Releasing

Releases are fully automated. Open a PR, merge it, done — CI bumps the version, publishes to npm with provenance, and creates a GitHub release with auto-generated notes.

The repo is configured for squash-only merging, and the PR title becomes the squash-commit title. That title drives the version bump:

| PR title pattern | Bump | | ----------------------------------------------- | --------- | | feat: ... or feat(scope): ... | minor | | feat!: ... or any commit with BREAKING CHANGE in the body | major | | anything else (fix:, chore:, docs:, etc.) | patch |

Match the conventional commits style when writing PR titles.

To skip a release for a specific merge, include [skip ci] in the PR title.