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

@milpa/design

v0.9.0

Published

Milpa Design System — dark-first design tokens, motion, and component contracts. The visual face of the Milpa framework.

Readme

Milpa Design System · @milpa/design

La cara visual del framework Milpa. Tokens dark-first, motion, y contratos de componente introspectables. Siembra módulos, cosecha aplicaciones.

Repo hermano del framework Milpa (core PHP + CLI coa). Este paquete se desarrolla y versiona por separado y el framework lo consume por versión (@milpa/[email protected]) — así ambos avanzan en paralelo sin pisarse. La costura entre los dos es un contrato: los tokens (DTCG) + los *.contract.json de cada componente. (Milpa aplicado a sí mismo.)

  • Framework / plan maestro: VISION.md (repo teamx / futuro github.com/getmilpa).
  • La constitución de este DS: DESIGN.md — léela primero. Describe el alma y las reglas, no solo los valores.

Estado

v0.9 — el almácigo: primitivas didácticas. Cuatro piezas nuevas en el elote para material educativo de arquitectura, destiladas del battle-test de Milpa Academy: mui-plot (la parcela: módulos con contrato visible, estados slot/germinating/sown/wilted), mui-pipeline (el tubo de etapas con canica --_pipeline-progress y salidas tempranas denied/failed/skipped), mui-gate (la compuerta tri-estado — aprobar/rechazar/exonerar — con audit role="log" append-only y self-denied por construcción) y mui-replay (el log reproducible: eventos + corte con <input range> nativo + proyección). Cero JS publicado: estados por atributos y el comportamiento del consumidor documentado en a11y.behavior (lógica de referencia testeada en el repo hermano academy). Paleta didáctica desde la semántica existente (olivo=germinando, oro=sembrado, success=completado, danger=marchito, warning=exonerado). Contratos 68 → 72 · 193/193 AA — audit de cierre: 0 pares nuevos. Battle-test: proof/almacigo.html.

v0.8 — el rocío: cierra los huecos de theming de marca (bordes, superficies, blur) + glass. Grupo effect nuevo: --border-style (default solid — los ~83 bordes del bundle lo usan, dashed/double/none por token), --surface-backdrop (default none, expuesto en .mui-card/ .mui-modal/.mui-drawer — un skin glass activa backdrop-filter sin CSS propio) y --blur-sm/base/lg (tokenizan los blurs frosted que ya existían en header/topbar/drawer). Invariante nueva: --bg debe ser opaco (referencia de composición). npm run verify:theme ahora parsea color con alpha (#RRGGBBAA/rgba) y compone superficies translúcidas sobre --bg antes de medir contraste AA — el gate valida glassmorphism de verdad, no solo lo deja pasar. Glass se suma como 3er flavor del proof de theme-swap (junto a Nopal y Brutalist). Todo aditivo — cero cambio visual por defecto (solid/none/mismos blurs). Paleta cerrada sin cambios: oro (primario) + olivo (secundario / la milpa viva) + tierra (neutro); cielo = info; y --syntax-* (highlighting AA-verificado) y --viz-* (charts, colorblind-safe) — semánticos de las mismas rampas. 193/193 pares WCAG AA (dark + light, npm test) — audit de cierre: 0 pares nuevos (release sin color). 68 piezas con contrato en cuatro capas (sin cambio de conteo): primitivas (el grano), componentes admin + commerce (el frijol), artefactos de contenido (el elote: code, terminal, chart, prose, api, search, kit de versionado…) y layouts (la parcela: el shell de docs versionadas, hero, pricing, faq, footer, media-grid, lightbox, mui-header…). Tres headers, tres contextos: mui-topbar (shell admin) / mui-docs__topbar (shell docs) / mui-header (sitio público — marketing, con variante overlay); el off-canvas móvil de mui-header y del shell docs es un <dialog class="mui-drawer"> nativo abierto con showModal() (top layer: focus trap/Esc/backdrop gratis). Todo el CSS publicado vive en @layer milpa.*: el CSS de un plugin/consumidor gana sin !important — el theming es contrato, theming-capable hasta glass (THEMING.md + theme.contract.json generado). Battle-tests en proof/: docs, blog, commerce, gallery, saas, themed (skin Nopal) y theme-swap (Milpa⇄Brutalist⇄Glass, los tres flavors contra el mismo gate).

Estructura

tokens/milpa-tokens.json    # DTCG — FUENTE DE VERDAD
dist/                       # salidas consumibles (CSS vars + preset Tailwind) — GENERADAS (npm run build, drift-gated en CI)
motion/                     # "el viento": easings + primitivas + contrato reduced-motion
primitives/                 # el grano: Button, Input, Field, controles… (+ *.contract.json)
components/                 # el frijol: Card, Table, Modal, Shell admin, commerce… (+ *.contract.json)
artifacts/                  # el elote: Code, Terminal, Chart, Prose, Api, Search, versionado… (+ *.contract.json)
layouts/                    # la parcela: Docs shell, Hero, Pricing, Faq, Footer, MediaGrid, Lightbox… (+ *.contract.json)
theme.contract.json         # contrato de theming — GENERADO (tokens requeridos + pares AA + invariantes)
THEMING.md                  # cómo un plugin inyecta su look & feel (3 niveles, cascade layers)
logo/                       # kit: símbolo Grano, wordmark grano-i, lockups, app icon
proof/                      # battle-tests: admin, docs, blog, commerce, gallery, saas, themed
DESIGN.md                   # la constitución
HANDOFF.md                  # brief para retomar el trabajo (otra sesión/agente)

Uso

npm i @milpa/design    # publicado en npm
@import "@milpa/design/css";             /* tokens semánticos (dark-first) */
@import "@milpa/design/motion.css";      /* el viento + contrato reduced-motion */
@import "@milpa/design/primitives.css";  /* el grano: mui-btn, mui-input, … */
@import "@milpa/design/components.css";  /* el frijol: mui-card, mui-table, mui-shell, … */
@import "@milpa/design/artifacts.css";   /* el elote: mui-code, mui-chart, mui-prose, … */
@import "@milpa/design/layouts.css";     /* la parcela: mui-docs, mui-hero, mui-pricing, … */
// tailwind.config.js
export { default } from "@milpa/design/tailwind";

El <html> siempre lleva data-theme ("dark" | "light").

Theming (plugins)

Todo el CSS publicado vive en @layer milpa.*tu CSS sin layer siempre gana, sin !important. Tres niveles: retokenizar (override de custom properties), reskin (tu CSS reemplaza la piel de cualquier mui-*) o reemplazo total (traés tu design system y honrás theme.contract.json). Validá tu skin: npm run verify:theme -- mi-skin.css — corre los mismos 193 pares AA del gate (hard-gate, ahora con soporte de alpha: parsea #RRGGBBAA/rgba y compone superficies translúcidas sobre --bg antes de medir contraste, así que un skin glass se valida de verdad) y valida por forma (tipo + no-vacío) cualquier otro token no-color que tu skin setee, de los 8 grupos del contrato (form-gate) — incluido el grupo effect (--border-style/--surface-backdrop/--blur-*) que hace tu skin glass-capable sin CSS propio. Ejemplos vivos: proof/themed.html (Nopal) y proof/theme-swap.html (Milpa⇄Brutalist⇄ Glass). Leé THEMING.md.

Desarrollo

npm run build      # genera dist/ desde tokens/milpa-tokens.json (cero dependencias)
npm test           # triple gate: contraste AA (193) + gobernanza del molde y las capas + drift de dist/ y theme.contract.json
npm run proof      # sirve el repo en http://localhost:4321 → /proof/milpa-admin-proof.html

Flujo de tokens: editar tokens/milpa-tokens.jsonnpm run buildnpm test. Editar dist/ a mano no tiene sentido: CI falla si driftea del JSON.

Licencia

Apache-2.0 — alineada con el core (VISION.md D10).