@hiscovega/grisso 1.0.6 → 1.0.7

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,9 @@
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.
4
7
 
5
8
  ## Instalación
6
9
 
@@ -230,6 +233,13 @@ export default {
230
233
  lg: "24px",
231
234
  },
232
235
 
236
+ // States: reemplaza los 5 defaults (hover, focus, focus-visible, active, disabled)
237
+ // Solo genera variantes para los estados listados
238
+ states: {
239
+ hover: ":hover",
240
+ focus: ":focus",
241
+ },
242
+
233
243
  // `extend` MERGEA con los defaults (arrays se concatenan)
234
244
  extend: {
235
245
  foregroundColors: {
@@ -246,6 +256,8 @@ export default {
246
256
 
247
257
  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
258
 
259
+ 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.
260
+
249
261
  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
262
 
251
263
  Los defaults se pueden consultar importando `@hiscovega/grisso/config`.
@@ -288,10 +300,10 @@ Importa los tokens antes que Grisso en tu CSS global:
288
300
  ### Nomenclatura
289
301
 
290
302
  ```
291
- {breakpoint}-{propiedad}-{escala}
303
+ {breakpoint}-{state}-{propiedad}-{escala}
292
304
  ```
293
305
 
294
- Ejemplos: `flex`, `tablet-flex`, `p-md`, `desktop-mt-lg`, `text-center`, `w-1/2`, `z-10`, `tracking-tight`
306
+ Ejemplos: `flex`, `tablet-flex`, `p-md`, `hover-bg-1`, `focus-border-1`, `tablet-hover-p-sm`, `desktop-mt-lg`, `w-1/2`
295
307
 
296
308
  ### Breakpoints (mobile-first)
297
309
 
@@ -302,6 +314,22 @@ Ejemplos: `flex`, `tablet-flex`, `p-md`, `desktop-mt-lg`, `text-center`, `w-1/2`
302
314
  | `desktop-` | 1024px+ |
303
315
  | `ultrawide-` | 1680px+ |
304
316
 
317
+ ### State variants
318
+
319
+ Todas las utilidades generan variantes de estado automáticamente. El tree-shaking elimina las no usadas.
320
+
321
+ | Prefijo | Pseudo-clase |
322
+ | ------------------ | ---------------- |
323
+ | `hover-` | `:hover` |
324
+ | `focus-` | `:focus` |
325
+ | `focus-visible-` | `:focus-visible` |
326
+ | `active-` | `:active` |
327
+ | `disabled-` | `:disabled` |
328
+
329
+ Se combinan con breakpoints: `tablet-hover-bg-1`, `desktop-focus-p-sm`.
330
+
331
+ Orden del cascade: base → state → responsive → responsive+state.
332
+
305
333
  ### Categorías
306
334
 
307
335
  | Categoría | Ejemplos |
@@ -319,7 +347,7 @@ Ejemplos: `flex`, `tablet-flex`, `p-md`, `desktop-mt-lg`, `text-center`, `w-1/2`
319
347
  ## Build
320
348
 
321
349
  ```bash
322
- npm run build # Compila TS + genera dist/grisso.css (~154 KB)
350
+ npm run build # Compila TS + genera dist/grisso.css (~800 KB)
323
351
  npm run typecheck # Type-check sin emitir (tsc --noEmit)
324
352
  npm run lint # Lint con Biome
325
353
  npm test # Tests con Vitest
@@ -331,7 +359,7 @@ npm run playground # Build + tree-shake + abre playground/index.html
331
359
 
332
360
  El CLI se usa internamente y está disponible para consumidores via `npx grisso build`. Ver [CLI](#cli) para detalles completos.
333
361
 
334
- Con `--content`, se usa PurgeCSS para eliminar clases no usadas (~154 KB → ~4 KB en el playground).
362
+ Con `--content`, se usa PurgeCSS para eliminar clases no usadas (~800 KB → ~4 KB en el playground).
335
363
 
336
364
  ## Desarrollo: Añadir nuevas utilities
337
365
 
@@ -343,11 +371,11 @@ Con `--content`, se usa PurgeCSS para eliminar clases no usadas (~154 KB → ~4
343
371
  // src/partials/layout.ts
344
372
  import { simpleClass, complexClass } from "../generators.js";
345
373
 
346
- // Clase simple — genera .flex + variantes responsive
347
- simpleClass("flex", "display", "flex", breakpoints);
374
+ // Clase simple — genera .flex + variantes de estado y responsive
375
+ simpleClass("flex", "display", "flex", breakpoints, states);
348
376
 
349
- // Clase basada en tokens — genera .p-xs, .p-sm, etc. + variantes responsive
350
- complexClass("p-", "padding", spacing, breakpoints);
377
+ // Clase basada en tokens — genera .p-xs, .hover-p-xs:hover, .tablet-p-xs, etc.
378
+ complexClass("p-", "padding", spacing, breakpoints, states);
351
379
  ```
352
380
 
353
381
  ## Publicación (release)