Open source. Autor. React 19, Tailwind, Radix, Framer Motion. Publicado en npm.

DesignSystem

Un design system en React que sigue las guías de interfaz de Apple, entregado de dos formas a la vez: un paquete npm del que dependes, y un CLI con registro que copia los componentes a tu repositorio para que sean tuyos.

Rol
Autor
Componentes
220
Entrega
npm + CLI
Peer
React 19
Código en GitHub Índice
Fig. 01. smart-coder-labs.github.io/landing-ds, la documentación de componentes.

El problema

Un design system falla de dos maneras. Si se entrega como dependencia bloqueada, cada equipo que necesita un cambio pequeño hace fork o pelea. Si se entrega como copiar y pegar, no hay forma de propagar un arreglo a quien ya copió.

Este hace las dos cosas. Se publica como paquete npm versionado, y entrega un CLI con su propio registro para copiar un componente al repositorio. Lo que hace viable la segunda mitad es que el CLI recuerda lo que escribió.

React 19TypeScriptTailwind CSSRadix UIFramer MotionnpmCLI

El componente es tuyo y aun así recibes el arreglo

Los componentes copiados con el CLI siguen siendo editables en tu repositorio, y el CLI todavía puede decirte cuándo se movió la versión de arriba.

Actualizaciones que se pueden deshacer

El CLI tiene add, init, status, update y rollback. Una actualización que rompe una pantalla se revierte sin arqueología en el historial de git.

Una restricción en lugar de gusto personal

Las guías de interfaz de Apple son la referencia, así que las decisiones de componente se resuelven contra un estándar publicado y no contra una discusión.

Decisiones y el precio que pagué por ellas

Entregar como paquete y como registro

Los equipos que quieren una dependencia la tienen; los que necesitan poseer y editar el componente lo copian. La misma fuente produce ambos, así que ninguno es el camino descuidado.

Trade-off aceptado

Dos mecanismos de distribución que mantener sincronizados, y una construcción de registro que tiene que correr en cada publicación.

El CLI registra lo que escribió

Copiar un componente solo es seguro si algo recuerda de qué versión vino. Ese registro es lo que hace posibles status y rollback.

Trade-off aceptado

Estado adicional en el repositorio que consume, y una edición manual puede desviarse de lo que el CLI cree que hay.

Radix debajo, Apple encima

Las primitivas accesibles de Radix se encargan de foco, teclado y ARIA; el sistema pone encima el movimiento y la superficie estilo Apple en lugar de reimplementar comportamiento.

Trade-off aceptado

Una actualización de Radix es un asunto de todo el sistema, y las primitivas limitan hasta dónde se puede reestilizar un componente.