@hiscovega/grisso 1.0.6 → 1.1.0-rc.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/README.md CHANGED
@@ -1,6 +1,30 @@
1
1
  # Grisso
2
2
 
3
- > Librería de utility CSS de Griddo con valores basados en CSS custom properties (design tokens).
3
+ > Librería de utility CSS de Griddo con variantes responsive y de estado, basada en CSS custom properties (design tokens).
4
+
5
+ > [!WARNING]
6
+ > En la versión estable 2.0, el paquete se moverá a `@griddo/grisso`. El nombre actual `@hiscovega/grisso` dejará de recibir actualizaciones a partir de ese momento.
7
+
8
+ ## Tabla de contenido
9
+
10
+ - [Instalación](#instalación)
11
+ - [Uso](#uso)
12
+ - [CLI](#cli)
13
+ - [`grisso tokens`](#grisso-tokens)
14
+ - [API programática](#api-programática)
15
+ - [Ejemplos](#ejemplos)
16
+ - [`extractTokens()`](#extracttokens--scaffold-de-tokens)
17
+ - [Configuración personalizada](#configuración-personalizada)
18
+ - [Design Tokens (CSS custom properties)](#design-tokens-css-custom-properties)
19
+ - [Clases disponibles](#clases-disponibles)
20
+ - [Nomenclatura](#nomenclatura)
21
+ - [Breakpoints](#breakpoints-mobile-first)
22
+ - [State variants](#state-variants)
23
+ - [Categorías](#categorías)
24
+ - [Build](#build)
25
+ - [Desarrollo: Añadir nuevas utilities](#desarrollo-añadir-nuevas-utilities)
26
+ - [Publicación (release)](#publicación-release)
27
+ - [grisso-reduce (tree-shaking alternativo)](#grisso-reduce-tree-shaking-alternativo)
4
28
 
5
29
  ## Instalación
6
30
 
@@ -230,6 +254,13 @@ export default {
230
254
  lg: "24px",
231
255
  },
232
256
 
257
+ // States: reemplaza los 5 defaults (hover, focus, focus-visible, active, disabled)
258
+ // Solo genera variantes para los estados listados
259
+ states: {
260
+ hover: ":hover",
261
+ focus: ":focus",
262
+ },
263
+
233
264
  // `extend` MERGEA con los defaults (arrays se concatenan)
234
265
  extend: {
235
266
  foregroundColors: {
@@ -246,6 +277,8 @@ export default {
246
277
 
247
278
  La `safelist` controla qué clases se protegen del tree-shaking. Por defecto está vacía. En top-level reemplaza, en `extend` se concatena. Acepta `RegExp` y `string`.
248
279
 
280
+ Los `states` controlan qué variantes de estado se generan. Cada entrada es `nombre: pseudo-clase`. Top-level reemplaza completamente; `extend.states` mergea con los defaults.
281
+
249
282
  Si no se pasa `config` a `buildCSS()`, busca automáticamente `grisso.config.mjs` en el directorio de trabajo. Si no existe, usa los defaults.
250
283
 
251
284
  Los defaults se pueden consultar importando `@hiscovega/grisso/config`.
@@ -288,10 +321,10 @@ Importa los tokens antes que Grisso en tu CSS global:
288
321
  ### Nomenclatura
289
322
 
290
323
  ```
291
- {breakpoint}-{propiedad}-{escala}
324
+ {breakpoint}-{state}-{propiedad}-{escala}
292
325
  ```
293
326
 
294
- Ejemplos: `flex`, `tablet-flex`, `p-md`, `desktop-mt-lg`, `text-center`, `w-1/2`, `z-10`, `tracking-tight`
327
+ Ejemplos: `flex`, `tablet-flex`, `p-md`, `hover-bg-1`, `focus-border-1`, `tablet-hover-p-sm`, `desktop-mt-lg`, `w-1/2`
295
328
 
296
329
  ### Breakpoints (mobile-first)
297
330
 
@@ -302,6 +335,22 @@ Ejemplos: `flex`, `tablet-flex`, `p-md`, `desktop-mt-lg`, `text-center`, `w-1/2`
302
335
  | `desktop-` | 1024px+ |
303
336
  | `ultrawide-` | 1680px+ |
304
337
 
338
+ ### State variants
339
+
340
+ Todas las utilidades generan variantes de estado automáticamente. El tree-shaking elimina las no usadas.
341
+
342
+ | Prefijo | Pseudo-clase |
343
+ | ------------------ | ---------------- |
344
+ | `hover-` | `:hover` |
345
+ | `focus-` | `:focus` |
346
+ | `focus-visible-` | `:focus-visible` |
347
+ | `active-` | `:active` |
348
+ | `disabled-` | `:disabled` |
349
+
350
+ Se combinan con breakpoints: `tablet-hover-bg-1`, `desktop-focus-p-sm`.
351
+
352
+ Orden del cascade: base → state → responsive → responsive+state.
353
+
305
354
  ### Categorías
306
355
 
307
356
  | Categoría | Ejemplos |
@@ -319,7 +368,7 @@ Ejemplos: `flex`, `tablet-flex`, `p-md`, `desktop-mt-lg`, `text-center`, `w-1/2`
319
368
  ## Build
320
369
 
321
370
  ```bash
322
- npm run build # Compila TS + genera dist/grisso.css (~154 KB)
371
+ npm run build # Compila TS + genera dist/grisso.css (~800 KB)
323
372
  npm run typecheck # Type-check sin emitir (tsc --noEmit)
324
373
  npm run lint # Lint con Biome
325
374
  npm test # Tests con Vitest
@@ -331,7 +380,7 @@ npm run playground # Build + tree-shake + abre playground/index.html
331
380
 
332
381
  El CLI se usa internamente y está disponible para consumidores via `npx grisso build`. Ver [CLI](#cli) para detalles completos.
333
382
 
334
- Con `--content`, se usa PurgeCSS para eliminar clases no usadas (~154 KB → ~4 KB en el playground).
383
+ Con `--content`, se usa PurgeCSS para eliminar clases no usadas (~800 KB → ~4 KB en el playground).
335
384
 
336
385
  ## Desarrollo: Añadir nuevas utilities
337
386
 
@@ -343,11 +392,11 @@ Con `--content`, se usa PurgeCSS para eliminar clases no usadas (~154 KB → ~4
343
392
  // src/partials/layout.ts
344
393
  import { simpleClass, complexClass } from "../generators.js";
345
394
 
346
- // Clase simple — genera .flex + variantes responsive
347
- simpleClass("flex", "display", "flex", breakpoints);
395
+ // Clase simple — genera .flex + variantes de estado y responsive
396
+ simpleClass("flex", "display", "flex", breakpoints, states);
348
397
 
349
- // Clase basada en tokens — genera .p-xs, .p-sm, etc. + variantes responsive
350
- complexClass("p-", "padding", spacing, breakpoints);
398
+ // Clase basada en tokens — genera .p-xs, .hover-p-xs:hover, .tablet-p-xs, etc.
399
+ complexClass("p-", "padding", spacing, breakpoints, states);
351
400
  ```
352
401
 
353
402
  ## Publicación (release)