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

@chekinapp/tokens

v0.0.18

Published

Chekin design tokens — CSS variables, JSON, and Tailwind preset

Readme

@chekinapp/tokens

Design tokens for Chekin UI — CSS variables for colors, typography, spacing, and component primitives.

Architecture

One kit, surface-specific tokens

All UI components read from CSS variables. Different surfaces (dashboard, guest, marketing) load different token values, making the same component look appropriate for its context.

@chekin/tokens
  base/              ← shared foundation (minimal, grow on demand)
    colors.css       essential brand colors
    typography.css   font families, weights
    spacing.css      spacing scale (add as needed)
    radii.css        border radius
    shadows.css      focus and outline shadows
    components.css   component tokens (Button)

  surfaces/          ← surface-specific overrides
    dashboard.css    Montserrat, radius=6px, compact sizing
    guest.css        Poppins, radius=24px, larger touch targets

Philosophy: Start minimal, add tokens on demand. Don't add tokens until they're actually used by a component.

Usage

In consumer apps

Import the surface CSS file that matches your app:

// apps/dashboard/src/main.tsx
import '@chekinapp/tokens/surfaces/dashboard.css';
import {Button} from '@chekinapp/ui';

// Button automatically uses Montserrat, 6px radius, 40px height

// apps/guestapp/src/main.tsx
import '@chekinapp/tokens/surfaces/guest.css';
import {Button} from '@chekinapp/ui';

// Same Button component, now uses Poppins, 24px radius, 56px height

Legacy import

For backward compatibility, @chekinapp/tokens/tokens.css imports the dashboard surface by default:

import '@chekinapp/tokens/tokens.css'; // equivalent to dashboard.css

Component tokens

Components read from CSS variables defined in base/components.css and overridden in surfaces:

Button

/* Base defaults */
--button-radius: var(--chekin-radius-button); /* 12px */
--button-height-default: 40px;
--button-primary-bg: var(--chekin-color-brand-main-blue);
--button-primary-text: var(--chekin-color-white);

/* Dashboard override */
--button-radius: var(--chekin-radius-input); /* 6px */

/* Guest override */
--button-radius: 24px;
--button-height-default: 56px;

Adding new surfaces

  1. Create src/surfaces/marketing.css
  2. Import base tokens
  3. Override surface-specific values
  4. Export in package.json
  5. Document usage

Philosophy

  • Components are surface-neutral — they only read CSS variables
  • Surfaces are composable — base + overrides
  • No runtime overhead — pure CSS, no JS token resolution
  • Type-safe Tailwind utilities — optional preset for each surface