orbital-ds 0.5.0 → 0.6.2

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/README.md CHANGED
@@ -1,64 +1,73 @@
1
- # orbital-ds
2
-
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
-
6
- - `styles.css` — la ESTRUCTURA: mapea variables de tema a utilidades de Tailwind y define los
7
- tokens semánticos (radios, alturas, sombras, espaciado, capas, movimiento, foco, materiales)
8
- y la capa base. No lleva colores ni fuentes.
9
- - `themes/<tema>.css` — un TEMA: paleta (claro/oscuro), radio base y tipografía.
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.
15
-
16
- ## Uso en una app (Tailwind v4)
17
-
18
- ```css
19
- @import 'orbital-ds/themes/qratia.fonts.css'; /* fuentes: lo primero */
20
- @import 'tailwindcss';
21
- @plugin '@tailwindcss/typography';
22
- @import 'tw-animate-css';
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 */
26
- ```
27
-
28
- ```tsx
29
- import { Button } from 'orbital-ds/ui/button';
30
- ```
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
-
41
- ## Regla
42
-
43
- Ningún componente lleva valores propios (colores, medidas, sombras, z-index, duraciones):
44
- pide un hueco a una variable. Para cambiar el aspecto se cambia el tema, no el componente.
45
- Si un componente necesita un hueco nuevo, se AÑADE el token con un valor que deje el aspecto
46
- como estaba. `pnpm check:ds` lo comprueba.
47
-
48
- ## Desarrollo
49
-
50
- ```bash
51
- pnpm install
52
- pnpm verify # doctor + typecheck + build
53
- pnpm check:ds # solo el contrato de tema y los valores fijos
54
- ```
55
-
56
- Peers obligatorios: `react`, `react-dom`, `@base-ui/react`, `tailwindcss`, `tailwind-merge`,
57
- `class-variance-authority`, `clsx`, `lucide-react`, `tw-animate-css`.
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`.
61
-
62
- ## Licencia
63
-
64
- MIT © Fractalia Systems
1
+ # orbital-ds
2
+
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
+
6
+ - `styles.css` — la ESTRUCTURA: mapea variables de tema a utilidades de Tailwind y define los
7
+ tokens semánticos (radios, alturas, sombras, espaciado, capas, movimiento, foco, materiales)
8
+ y la capa base. No lleva colores ni fuentes.
9
+ - `themes/<tema>.css` — un TEMA: paleta (claro/oscuro), radio base y tipografía.
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.
15
+
16
+ ## Uso en una app (Tailwind v4)
17
+
18
+ ```css
19
+ @import 'orbital-ds/themes/qratia.fonts.css'; /* fuentes: lo primero */
20
+ @import 'tailwindcss';
21
+ @plugin '@tailwindcss/typography';
22
+ @import 'tw-animate-css';
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 */
26
+ ```
27
+
28
+ ```tsx
29
+ import { Button } from 'orbital-ds/ui/button';
30
+ ```
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
+ ## Guía de cada tema
36
+
37
+ Cada tema lleva su documentación, que viaja con el paquete:
38
+
39
+ - `orbital-ds/themes/<tema>.guide.md` — guía de diseño: esencia, gesto firma, principios, referencias (qué se tomó de cada una), paleta, tipografía, formas, accesibilidad y estado de los valores (confirmados, aproximados o de diseño propio).
40
+ - `orbital-ds/themes/<tema>.meta.json` — la misma ficha legible por máquina.
41
+
42
+ `pnpm check:ds` falla si a un tema le falta alguna de las dos. Un tema nuevo debe nacer con ambas.
43
+
44
+ ## Marca de una app
45
+
46
+ Lo propio de cada app (color principal, acento, radio, fuentes) va en **su** `src/brand.css`,
47
+ importado después del tema. Ninguna actualización de orbital-ds lo toca. `pnpm exec orbital-ds-init`
48
+ lo crea la primera vez. Detalle en [`docs/CONTRACT.md`](docs/CONTRACT.md).
49
+
50
+ ## Regla
51
+
52
+ Ningún componente lleva valores propios (colores, medidas, sombras, z-index, duraciones):
53
+ pide un hueco a una variable. Para cambiar el aspecto se cambia el tema, no el componente.
54
+ Si un componente necesita un hueco nuevo, se AÑADE el token con un valor que deje el aspecto
55
+ como estaba. `pnpm check:ds` lo comprueba.
56
+
57
+ ## Desarrollo
58
+
59
+ ```bash
60
+ pnpm install
61
+ pnpm verify # doctor + typecheck + build
62
+ pnpm check:ds # solo el contrato de tema y los valores fijos
63
+ ```
64
+
65
+ Peers obligatorios: `react`, `react-dom`, `@base-ui/react`, `tailwindcss`, `tailwind-merge`,
66
+ `class-variance-authority`, `clsx`, `lucide-react`, `tw-animate-css`.
67
+ Opcionales (solo si usas ese componente): `recharts`, `sonner`, `next-themes`, `cmdk`,
68
+ `date-fns` + `react-day-picker`, `embla-carousel-react`, `input-otp`,
69
+ `react-resizable-panels`, `@shadcn/react`.
70
+
71
+ ## Licencia
72
+
73
+ MIT © Fractalia Systems
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "package": "orbital-ds",
3
- "version": "0.3.0",
3
+ "version": "0.6.1",
4
4
  "engine": "@base-ui/react",
5
5
  "docs": [
6
6
  "README.md",
@@ -582,6 +582,17 @@
582
582
  ],
583
583
  "optionalPeers": []
584
584
  },
585
+ "icon-tile": {
586
+ "import": "orbital-ds/ui/icon-tile",
587
+ "exports": [
588
+ "IconTile",
589
+ "iconTileVariants"
590
+ ],
591
+ "slots": [
592
+ "icon-tile"
593
+ ],
594
+ "optionalPeers": []
595
+ },
585
596
  "input-group": {
586
597
  "import": "orbital-ds/ui/input-group",
587
598
  "exports": [
package/dist/styles.css CHANGED
@@ -134,6 +134,7 @@
134
134
  */
135
135
  --ds-z-raised: 10;
136
136
  --ds-z-sticky: 20;
137
+ --ds-z-sidebar: 21; /* por encima de la cabecera sticky: su filete no debe quedar tapado */
137
138
  --ds-z-overlay: 50;
138
139
 
139
140
  --ds-motion-fast: 100ms;
@@ -192,9 +193,21 @@
192
193
  --ds-sidebar-shadow: var(--ds-shadow-raised);
193
194
  --ds-sidebar-ring: 1px;
194
195
  --ds-sidebar-edge: 0 solid transparent;
196
+ --ds-sidebar-rail-w: 4rem; /* ancho del lateral contraído (raíl de iconos) */
195
197
  --ds-sidebar-item-radius: var(--ds-radius-md);
196
198
  --ds-sidebar-item-h: 2.5rem;
197
199
 
200
+ /* ── BALDOSA DE ICONO ───────────────────────────────────────────────────
201
+ * Un icono grande (Lucide) dentro de una baldosa tintada: la «mascota» barata.
202
+ * sm / md / lg: lado de la baldosa; radius: su esquina; fill: cuánto relleno
203
+ * lleva el icono (0 = solo trazo; 0.2 = aspecto duotono suave).
204
+ */
205
+ --ds-icon-tile-sm: 2rem;
206
+ --ds-icon-tile-md: 2.75rem;
207
+ --ds-icon-tile-lg: 3.75rem;
208
+ --ds-icon-tile-radius: var(--ds-radius-lg);
209
+ --ds-icon-tile-fill: 0;
210
+
198
211
  /* ── COLOR (mapeo de las variables del tema a utilidades) ─────────────── */
199
212
  --color-background: var(--background);
200
213
  --color-foreground: var(--foreground);
@@ -484,3 +497,10 @@
484
497
  }
485
498
  }
486
499
  }
500
+
501
+ /* Baldosa de icono: el relleno del icono lo decide el tema (--ds-icon-tile-fill). */
502
+ @layer base {
503
+ [data-slot='icon-tile'] svg {
504
+ fill: color-mix(in oklch, currentColor calc(var(--ds-icon-tile-fill) * 100%), transparent);
505
+ }
506
+ }