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

@vadimcomanescu/nadicode-design-system

v10.1.0

Published

A package-backed design system for AI-integrated Next.js apps. The repo contains the published package, `@vadimcomanescu/nadicode-design-system`, and the in-repo showcase app used to exercise it.

Readme

Seed Design System

A package-backed design system for AI-integrated Next.js apps. The repo contains the published package, @vadimcomanescu/nadicode-design-system, and the in-repo showcase app used to exercise it.

Quick Start

npm install
npm run dev

The dev server runs on http://localhost:5001 and serves the showcase routes under src/app/(showcase)/.

Using Seed In Apps

Consumer apps install Seed through an exact released package version. For unpublished local work, stage a tarball under .nadicode/packages/ and install that committed relative artifact instead. Do not point apps at a live DS repo directory.

Component discovery and consumption go through the catalog. Catalog blocks have no individual subpath exports.

All catalog components implement BaseComponentProps<SeedProps<'Name'>> from @json-render/react. Consumer apps wire defineCatalog() (from @json-render/core) and defineRegistry() (from @json-render/react) to render pages from JSON specs. See docs/json-render-contract.md for the full consumer wiring pattern.

Canonical consumer docs:

Canonical Sources

The repo treats structured truth and prose differently.

  • Operational truth lives in package.json scripts and .husky/*.
  • The catalog is the single machine-readable component surface. Server-safe discovery (Zod-only, no React): @vadimcomanescu/nadicode-design-system/catalog. Client-side components via seedComponents: @vadimcomanescu/nadicode-design-system. Mirrors upstream @json-render/shadcn — ADR 0027 supersedes ADR 0011.
  • Public package surface lives in package.json exports, src/catalog/catalog.ts, and bin/shipped-files.json.
  • Consumer ownership and package-backed runtime rules live in docs/nadicode/SCAFFOLDING_PROCESS.md.
  • Release steps live in docs/releasing-package.md.

Use prose docs for guidance and rationale. Use scripts, manifests, and generated artifacts for anything that must stay machine-accurate.

Maintainer Workflow

Start with:

Commands

| Command | Purpose | |---------|---------| | npm run dev | Start the showcase dev server | | npm run typecheck | Generate Next types and run tsc --noEmit | | npm run lint | Run ESLint across source, scripts, and custom rules | | npm run test | Run Vitest | | npm run build | Build the showcase app | | npm run build:lib | Build package artifacts, generated CSS, types, and catalog | | npm run contracts:generate | Regenerate the full shipped contract surface from source | | npm run contracts:check | Verify the shipped contract surface is in sync | | npm run ds:check | Run package/scaffold contract checks | | npm run docs:check | Run docs/reference drift checks | | npm run release:check | Full release gate | | npm run test:visual | Playwright visual regression suite |

Theming

Seed uses two independent axes (see ADR 0020):

  • Style (default, glass, neobrutalism) — surface model, radii, shadow philosophy
  • Theme (light, dark) — color palette

| Style | Surface | Radii | Dark mode | Personality | |-------|---------|-------|-----------|-------------| | default | Flat, opaque | 6-10 px | light + dark | shadcn baseline — clean and familiar | | glass | Translucent, frosted | 8-16 px | light + dark | Translucent panels, backdrop-filter, ambient glow | | neobrutalism | Flat, solid fills | 0 px | light only | Zero shadows, 2px borders carry structure, heavy weights, uncompromising contrast |

DOM contract: ThemeProvider writes data-style and data-theme attributes on <html>. Absence = default. Nested containers can scope both axes independently using the same attributes.

<html data-style="glass" data-theme="dark">
  <!-- scoped override inside a page section -->
  <div data-style="neobrutalism" data-theme="light">...</div>
</html>
import { ThemeProvider, type Style } from '@vadimcomanescu/nadicode-design-system/theme-provider'

<ThemeProvider defaultTheme="system" defaultStyle="glass">
  {children}
</ThemeProvider>

Consumer brand-accent override: --accent, --accent-foreground, and --ring are consumer-overrideable in seed-palette.css. Derived tokens (shadow-glow-accent, shaders, gradients) follow automatically via oklch(from var(--color-accent) l c h / α) relative-color syntax:

:root {
  --accent: oklch(0.541 0.281 293.0);
  --accent-foreground: oklch(0.985 0 0);
  --ring: oklch(0.541 0.281 293.0);
}

Token values live in one place: src/index.css. Every --token-name is declared there in an allowlisted scope block (:root / [data-style="..."] / [data-theme="..."]), with composites colocated next to their atomic tokens. No codegen, no JS config, no regeneration step. See ADR 0019 for the canonical token vocabulary, ADR 0023 for the move to CSS-as-source, and ADR 0024 for the enforcement suite that locks the invariant.

Chart Chrome Tokens

8 dedicated --color-chart-* CSS custom properties control chart chrome (axes, grids, legends, tooltips, cursors) independently from generic UI tokens. This ensures charts maintain WCAG-compliant contrast even on varied backgrounds.

| Token | Purpose | |-------|---------| | --color-chart-surface | Chart canvas background | | --color-chart-axis | Axis tick labels | | --color-chart-grid | Grid lines | | --color-chart-legend | Legend text | | --color-chart-tooltip-bg | Tooltip background | | --color-chart-tooltip-border | Tooltip border | | --color-chart-tooltip-text | Tooltip text | | --color-chart-cursor | Hover cursor fill |

See ADR 0013 for rationale.