orbital-ds 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +60 -0
- package/README.md +28 -14
- package/components.manifest.json +1255 -0
- package/contract.json +162 -38
- package/dist/styles.css +486 -427
- package/dist/themes/qratia.css +14 -14
- package/dist/themes/qratia.fonts.css +2 -0
- package/dist/themes/qratia.scoped.css +247 -0
- package/dist/themes/twitter.css +290 -0
- package/dist/themes/twitter.fonts.css +6 -0
- package/dist/themes/twitter.scoped.css +290 -0
- package/dist/themes/zyro.css +252 -60
- package/dist/themes/zyro.fonts.css +2 -0
- package/dist/themes/zyro.scoped.css +381 -0
- package/dist/ui/attachment.d.ts +1 -1
- package/dist/ui/badge.d.ts +1 -1
- package/dist/ui/bubble.d.ts +1 -1
- package/dist/ui/button.d.ts +2 -2
- package/dist/ui/input-group.d.ts +1 -1
- package/dist/ui/item.d.ts +2 -2
- package/dist/ui/sidebar.js +4 -4
- package/dist/ui/tabs.d.ts +1 -1
- package/docs/CONTRACT.md +44 -5
- package/package.json +15 -8
- package/scripts/doctor.mjs +110 -28
- package/scripts/init.mjs +55 -0
- package/scripts/manifest.mjs +79 -0
package/AGENTS.md
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# orbital-ds — guía para agentes de IA
|
|
2
|
+
|
|
3
|
+
Sistema de diseño: **estructura común + temas + componentes** sobre Base UI y Tailwind v4.
|
|
4
|
+
Todo está pensado para que un agente pueda usarlo, ampliarlo y comprobar su trabajo sin
|
|
5
|
+
adivinar. Lee antes: `README.md`, `docs/CONTRACT.md`, `contract.json` y
|
|
6
|
+
`components.manifest.json` (qué componentes hay, cómo se importan y qué `data-slot` exponen).
|
|
7
|
+
|
|
8
|
+
## Reglas (obligatorias)
|
|
9
|
+
|
|
10
|
+
1. **Solo variables.** Un componente no escribe colores, medidas, sombras, z-index ni
|
|
11
|
+
duraciones: pide un hueco a una variable (`--ds-*` o las de color de shadcn). Si falta el
|
|
12
|
+
hueco, **añade el token** con un valor que deje el aspecto como estaba y úsalo.
|
|
13
|
+
2. **Añadir, nunca sustituir.** Un componente nuevo es un fichero nuevo en `src/ui/`. No se
|
|
14
|
+
reescribe ni se renombra uno existente para otro fin. No uses `--overwrite` de la CLI de
|
|
15
|
+
shadcn sin aprobación expresa. Quitar o renombrar algo público = versión **mayor**.
|
|
16
|
+
3. **Nombres en inglés.** Tokens, props y valores de variantes. Variables propias con el
|
|
17
|
+
prefijo `--ds-`; las que Tailwind convierte en utilidades (`--color-*`, `--radius-*`,
|
|
18
|
+
`--shadow-*`) siguen su convención. Las privadas de un tema llevan el prefijo del tema
|
|
19
|
+
(`--zy-*`).
|
|
20
|
+
4. **Un solo motor: Base UI.** Nada de Radix. `asChild` no existe: se usa `render`.
|
|
21
|
+
5. **«Sin sombra» es `0 0 #0000`**, nunca `none` (invalida todo el `box-shadow`, anillo de
|
|
22
|
+
foco incluido).
|
|
23
|
+
6. **Un tema cumple el contrato completo** (`contract.json`) y define en `:root` todo
|
|
24
|
+
`--ds-*` que defina el tema base.
|
|
25
|
+
7. **La marca de una app vive en SU `brand.css`**, no en el tema del paquete. Para
|
|
26
|
+
personalizar una app (color, radio, fuentes) edita ese fichero; nunca `node_modules` ni
|
|
27
|
+
los temas. `pnpm exec orbital-ds-init` lo crea sin sobrescribir.
|
|
28
|
+
|
|
29
|
+
## Cómo cambiar el aspecto
|
|
30
|
+
|
|
31
|
+
- **Valores** (color, forma, fuentes, escala, sombras, espaciado, materiales, sidebar):
|
|
32
|
+
variables del tema en `src/themes/<tema>.css`.
|
|
33
|
+
- **Personalidad de un elemento** (por ejemplo, botones en píldora con degradado): reglas en
|
|
34
|
+
la sección «PERSONALIDAD» del tema, dirigidas a los ganchos del DOM —`data-slot`,
|
|
35
|
+
`data-variant`, `data-size`, `data-active`, `data-state`— y escritas solo con variables. Van
|
|
36
|
+
**sin capa** para ganar a las utilidades; define también hover y active.
|
|
37
|
+
- **Estructura** distinta de un componente (otro layout): variante del componente, no tema.
|
|
38
|
+
|
|
39
|
+
## Cómo comprobar tu trabajo
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
pnpm check:ds # contrato de tema, repetidos, sombras, fugas, valores fijos y API pública
|
|
43
|
+
pnpm verify # doctor + typecheck + build
|
|
44
|
+
pnpm manifest # regenera components.manifest.json tras añadir componentes
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Si `pnpm check:ds` falla, **corrige la causa**; no lo desactives ni lo rodees.
|
|
48
|
+
|
|
49
|
+
## Añadir un componente
|
|
50
|
+
|
|
51
|
+
1. Fichero en `src/ui/<nombre>.tsx` (un componente = un fichero; sin barril).
|
|
52
|
+
2. `data-slot="<nombre>"` en su raíz y en las partes relevantes.
|
|
53
|
+
3. Solo tokens. Importa `cn` de `../lib/utils`; los demás componentes, de `./<otro>`.
|
|
54
|
+
4. Dependencias de terceros: opcionales (`peerDependenciesMeta`), nunca obligatorias.
|
|
55
|
+
5. `pnpm manifest`, `pnpm verify`; versión **menor** (añadido compatible).
|
|
56
|
+
|
|
57
|
+
## Crear un tema
|
|
58
|
+
|
|
59
|
+
Copia `themes/qratia.css` (o `zyro.css`), cambia valores, no quites ninguno, añade
|
|
60
|
+
`<tema>.fonts.css` con el `@import url()` de sus fuentes y ejecuta `pnpm check:ds`.
|
package/README.md
CHANGED
|
@@ -1,49 +1,63 @@
|
|
|
1
1
|
# orbital-ds
|
|
2
2
|
|
|
3
|
-
Sistema de diseño genérico
|
|
4
|
-
sobre [Base UI](https://base-ui.com) y Tailwind v4.
|
|
3
|
+
Sistema de diseño genérico: **estructura común + temas intercambiables + ~60 componentes**
|
|
4
|
+
sobre [Base UI](https://base-ui.com) y Tailwind v4 (los de shadcn en su versión Base UI).
|
|
5
5
|
|
|
6
6
|
- `styles.css` — la ESTRUCTURA: mapea variables de tema a utilidades de Tailwind y define los
|
|
7
|
-
tokens semánticos (radios, alturas
|
|
8
|
-
No lleva colores ni fuentes.
|
|
7
|
+
tokens semánticos (radios, alturas, sombras, espaciado, capas, movimiento, foco, materiales)
|
|
8
|
+
y la capa base. No lleva colores ni fuentes.
|
|
9
9
|
- `themes/<tema>.css` — un TEMA: paleta (claro/oscuro), radio base y tipografía.
|
|
10
|
-
Hoy: `qratia
|
|
11
|
-
- `
|
|
12
|
-
|
|
10
|
+
Hoy: `qratia` y `zyro` (cristal). Añadir otro = añadir otro fichero.
|
|
11
|
+
- `themes/<tema>.fonts.css` — las fuentes del tema (un `@import url()`; va el primero).
|
|
12
|
+
- `ui/*` — componentes, uno por fichero (`orbital-ds/ui/button`, …): quien no usa gráficos
|
|
13
|
+
no necesita `recharts`, quien no usa el calendario no necesita `react-day-picker`.
|
|
14
|
+
- `contract.json` + `pnpm check:ds` — el contrato de tema y su comprobación.
|
|
13
15
|
|
|
14
16
|
## Uso en una app (Tailwind v4)
|
|
15
17
|
|
|
16
18
|
```css
|
|
19
|
+
@import 'orbital-ds/themes/qratia.fonts.css'; /* fuentes: lo primero */
|
|
17
20
|
@import 'tailwindcss';
|
|
18
21
|
@plugin '@tailwindcss/typography';
|
|
19
22
|
@import 'tw-animate-css';
|
|
20
|
-
@import 'orbital-ds/
|
|
21
|
-
@import 'orbital-ds/
|
|
22
|
-
@source '../node_modules/orbital-ds/dist';
|
|
23
|
+
@import 'orbital-ds/styles.css'; /* estructura */
|
|
24
|
+
@import 'orbital-ds/themes/qratia.css'; /* tema (después de la estructura) */
|
|
25
|
+
@source '../node_modules/orbital-ds/dist'; /* que Tailwind vea las clases del paquete */
|
|
23
26
|
```
|
|
24
27
|
|
|
25
28
|
```tsx
|
|
26
29
|
import { Button } from 'orbital-ds/ui/button';
|
|
27
30
|
```
|
|
28
31
|
|
|
32
|
+
Cambiar de identidad = cambiar `qratia` por `zyro` en esas dos líneas de tema/fuentes.
|
|
33
|
+
Detalle del contrato, tokens y reglas de nombres en [`docs/CONTRACT.md`](docs/CONTRACT.md).
|
|
34
|
+
|
|
35
|
+
## Marca de una app
|
|
36
|
+
|
|
37
|
+
Lo propio de cada app (color principal, acento, radio, fuentes) va en **su** `src/brand.css`,
|
|
38
|
+
importado después del tema. Ninguna actualización de orbital-ds lo toca. `pnpm exec orbital-ds-init`
|
|
39
|
+
lo crea la primera vez. Detalle en [`docs/CONTRACT.md`](docs/CONTRACT.md).
|
|
40
|
+
|
|
29
41
|
## Regla
|
|
30
42
|
|
|
31
43
|
Ningún componente lleva valores propios (colores, medidas, sombras, z-index, duraciones):
|
|
32
44
|
pide un hueco a una variable. Para cambiar el aspecto se cambia el tema, no el componente.
|
|
33
45
|
Si un componente necesita un hueco nuevo, se AÑADE el token con un valor que deje el aspecto
|
|
34
|
-
como estaba.
|
|
46
|
+
como estaba. `pnpm check:ds` lo comprueba.
|
|
35
47
|
|
|
36
48
|
## Desarrollo
|
|
37
49
|
|
|
38
50
|
```bash
|
|
39
51
|
pnpm install
|
|
40
|
-
pnpm verify # typecheck + build
|
|
41
|
-
pnpm
|
|
52
|
+
pnpm verify # doctor + typecheck + build
|
|
53
|
+
pnpm check:ds # solo el contrato de tema y los valores fijos
|
|
42
54
|
```
|
|
43
55
|
|
|
44
56
|
Peers obligatorios: `react`, `react-dom`, `@base-ui/react`, `tailwindcss`, `tailwind-merge`,
|
|
45
57
|
`class-variance-authority`, `clsx`, `lucide-react`, `tw-animate-css`.
|
|
46
|
-
Opcionales (solo si usas ese
|
|
58
|
+
Opcionales (solo si usas ese componente): `recharts`, `sonner`, `next-themes`, `cmdk`,
|
|
59
|
+
`date-fns` + `react-day-picker`, `embla-carousel-react`, `input-otp`,
|
|
60
|
+
`react-resizable-panels`, `@shadcn/react`.
|
|
47
61
|
|
|
48
62
|
## Licencia
|
|
49
63
|
|