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

@cupped/tokens

v0.2.1

Published

Cupped design tokens — canonical DTCG source with generated CSS custom properties, Tailwind v4 @theme, React Native theme object, and raw JSON.

Readme

@cupped/tokens

Framework-agnostic design tokens for the Cupped design system — a community-first coffee-logging platform. The canonical source is platform-neutral DTCG-style JSON under tokens/; every consumable artifact in dist/ is generated from it and committed. The package is published public on npm (npm install @cupped/tokens — no auth), and because dist/ is committed it also works as a plain git dependency with no install-time build, for consumers that prefer pinning a commit.

Never hard-code a hex or pixel value that exists as a token.

Exports

| Import | What you get | |---|---| | @cupped/tokens | React Native theme object (tokens), literal-typed, unitless dp numbers, dual-shape shadows, Reanimated spring params | | @cupped/tokens/css | CSS custom properties (--ink, --space-base…), alias var() chains preserved, prefers-reduced-motion / prefers-reduced-transparency blocks built in | | @cupped/tokens/css/components | Canonical web component classes (.btn, .input, .chip-flavor, .banner, .chrome…) — optional reference styles | | @cupped/tokens/tailwind | Tailwind v4 @theme file → utilities (bg-canvas, text-ink-secondary, rounded-lg, shadow-primary, p-base, text-card-title…) | | @cupped/tokens/json | Flat resolved map keyed by CSS names | | @cupped/tokens/json/dtcg | The merged DTCG source tree |

No components, no icons, no font binaries — components stay app-specific; fonts are self-hosted per platform (documented).

Consuming

  • Phoenix LiveView (Tailwind v4): docs/phoenix.md — pinned CSS from the GitHub Release, npm dependency, or zero-npm vendor mode; fonts, lint recipe.
  • Expo / React Native (SDK 53+): docs/expo.md — the theme.ts pattern, expo-font, ESLint recipe.
  • Brand & a11y invariants: docs/rules.md.

Complete copy-paste examples live in examples/.

Architecture

tokens/primitive/*.tokens.json      raw palettes & scales (never consumed directly)
tokens/semantic/*.tokens.json       the public API — every token aliases a primitive
        │
        ▼  Style Dictionary v5 + custom formats (build/)
dist/css/tokens.css                 var() chains preserved (--xp: var(--sweet))
dist/tailwind/theme.css             @theme namespaces, fully resolved
dist/native/index.{js,cjs,d.ts}     resolved literals, as-const types
dist/json/tokens.{flat,dtcg}.json

Aliases use DTCG {dot.path} references; the build fails on unresolved or circular references. Accessibility requirements are encoded as data ($extensions["app.cupped"].contrast) and machine-checked in CI, alongside name-collision checks and a parity test against the frozen source-export/ (the refreshed design-system export this package mirrors — kept as reference, never edited).

Developing

Building requires Node 22+ (the build uses node:fs/promises glob). Consuming the published package has no Node version requirement.

npm install
npm run build   # tokens/ → dist/  (dist is committed)
npm test        # parity + contrast + collisions + snapshots + type-checks
npm run check   # build, fail on dist/ drift, then test — what CI runs

Releasing & versioning

Releases are automated with Changesets and published to public npm; each release also attaches version-pinned CSS to its GitHub Release. Add a changeset with npx changeset in any PR that changes tokens.