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

witty-design-system

v1.0.9

Published

Witty design system runtime — React bouwblokken, design tokens, fonts, and demo assets for the Witty lesson system. Hosted as an npm package so the witty-lessons skill artifacts can load shared runtime files via jsDelivr.

Readme

Witty Design System — hosted runtime

Public runtime for the Witty design system: React bouwblokken, tokens, fonts, and demo assets. Published to npm so jsDelivr can serve it on a CSP-allowlisted CDN — used by the witty-lessons skill so generated lesson artifacts on claude.ai can load shared runtime files from one canonical URL.

Base URL (production)

https://cdn.jsdelivr.net/npm/witty-design-system@1/

@1 resolves to the latest 1.x.x version (semver-range pin) — patches and minor updates propagate automatically; major bumps require explicit URL change.

Distribution chain

Local working copy: ~/Downloads/witty-design-system/
   ↓  git push
GitHub:    github.com/bespeakbv/witty-design-system   (source of truth)
   ↓  npm publish
NPM:       npmjs.com/package/witty-design-system     (registry, immutable versions)
   ↓  automatic mirror
jsDelivr:  cdn.jsdelivr.net/npm/witty-design-system@1/   (CDN, CSP-allowlisted)
   ↓  HTTPS over CDN
Claude artifact (end user)

GitHub Pages is not part of this chain — it was disabled as redundant. jsDelivr serves directly from the published NPM tarball.

To update: edit locally → git pushnpm publish (the prepublishOnly hook runs ./build-jsx.sh automatically). Within ~10 minutes jsDelivr serves the new version under @1.

Structure

  • components/*.js — 13 bouwblok-componenten (Tekst, Quote, Chat, Hotspot, Stepper, Vraag·*…) plus shared helpers, pre-compiled from JSX to plain JS via esbuild and IIFE-wrapped to keep top-level helpers from colliding.
  • components/*.jsx — original sources, kept for reference. Artifacts use the .js files.
  • app.js, app-tweaks.js, app-main.js — shell that renders blocks and mounts the live tweaks panel.
  • assets.jswindow.WITTY_ASSETS = { ... } with placeholder images as base64 data: URIs (artifacts can't fetch external images under most CSPs).
  • colors_and_type.css — Witty tokens with Google Fonts @import for Atkinson Hyperlegible Next + Lexend.
  • colors_and_type_artifact.css — same tokens, but with Atkinson Hyperlegible Next inlined as base64 woff2 data: URIs. Use this in claude.ai artifacts where font-src may not allow fonts.gstatic.com.
  • fonts/*.ttf — Atkinson Hyperlegible Next sources (all weights + italics). Licensed under the SIL Open Font License 1.1 — see fonts/OFL.txt.
  • assets/*.jpg — demo images at full resolution.

Typical usage (claude.ai artifact)

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/witty-design-system@1/colors_and_type_artifact.css" />
<script src="https://cdn.jsdelivr.net/npm/witty-design-system@1/assets.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/umd/react.development.js" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/umd/react-dom.development.js" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/witty-design-system@1/components/TekstBouwblok.js"></script>
<!-- …other components, then app.js, app-tweaks.js, app-main.js -->

See the witty-lessons skill for the full skeleton.

Build scripts

  • ./build-jsx.sh — esbuild-transforms every .jsx to .js (IIFE-wrapped). Runs automatically on npm publish via prepublishOnly.
  • ./build-artifact-css.sh — converts fonts/*.ttf → woff2, base64-embeds them into colors_and_type_artifact.css. Run manually whenever fonts or colors_and_type.css change.

CORS

jsDelivr serves all files with Access-Control-Allow-Origin: *.

Credits

  • Atkinson Hyperlegible Next — © Braille Institute of America, Inc. — https://www.brailleinstitute.org/freefont/ — licensed under SIL OFL 1.1.
  • All other code and assets — © Bespeak BV.