@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 +58 -9
- package/dist/grisso.css +1 -1
- package/lib/defaults.js +7 -0
- package/lib/generators.d.ts +7 -7
- package/lib/generators.js +49 -9
- package/lib/partials/backgrounds.js +8 -8
- package/lib/partials/borders.js +19 -19
- package/lib/partials/effects.js +4 -4
- package/lib/partials/flex-and-grid.js +46 -46
- package/lib/partials/icons.js +2 -2
- package/lib/partials/layout.js +23 -23
- package/lib/partials/sizing.js +9 -9
- package/lib/partials/spacing.js +15 -15
- package/lib/partials/typography.js +17 -17
- package/lib/purge.js +1 -1
- package/lib/tokens.js +1 -0
- package/lib/types.d.ts +3 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
# Grisso
|
|
2
2
|
|
|
3
|
-
> Librería de utility CSS de Griddo con
|
|
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`, `
|
|
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 (~
|
|
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 (~
|
|
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-
|
|
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)
|