@codenhub/styles 0.7.0 → 0.9.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.es.md +9 -8
- package/README.md +8 -7
- package/README.pt-BR.md +9 -8
- package/dist/aesthetics/chunky-tile.css +1 -1
- package/dist/aesthetics/cyber.css +1 -1
- package/dist/aesthetics/glass.css +1 -1
- package/dist/aesthetics/index.css +2 -2
- package/dist/aesthetics/neobrutalism.css +1 -1
- package/dist/aesthetics/pixel.css +1 -1
- package/dist/aesthetics/sketch.css +1 -1
- package/dist/cli.js +358 -0
- package/dist/components.css +50 -2
- package/dist/index.css +50 -2
- package/dist/index.d.ts +1 -0
- package/dist/native.css +50 -2
- package/dist/palette.css +1 -1
- package/dist/purge/classes.json +1 -0
- package/dist/purge/index.css +50 -0
- package/dist/theme.css +2 -2
- package/docs/accessibility.md +46 -27
- package/docs/changelog/0.8.0.md +70 -0
- package/docs/changelog/0.9.0.md +40 -0
- package/docs/changelog/index.md +2 -0
- package/docs/es/accessibility.md +47 -28
- package/docs/es/index.md +4 -3
- package/docs/es/integrating/index.md +38 -10
- package/docs/es/integrating/tailwind.md +79 -8
- package/docs/es/integrating/without-a-bundler.md +157 -5
- package/docs/es/setup.md +43 -34
- package/docs/es/usage/aesthetics.md +20 -14
- package/docs/es/usage/buttons.md +6 -2
- package/docs/es/usage/composing.md +6 -2
- package/docs/es/usage/content-and-layout.md +10 -4
- package/docs/es/usage/customizing.md +46 -26
- package/docs/es/usage/feedback.md +5 -1
- package/docs/es/usage/forms.md +30 -5
- package/docs/es/usage/index.md +7 -3
- package/docs/es/usage/presets.md +92 -0
- package/docs/es/usage/solo.md +4 -2
- package/docs/es/usage/theming.md +29 -16
- package/docs/es/usage/tooltips.md +2 -2
- package/docs/index.md +3 -2
- package/docs/integrating/index.md +38 -10
- package/docs/integrating/tailwind.md +78 -7
- package/docs/integrating/without-a-bundler.md +156 -4
- package/docs/pt-BR/accessibility.md +47 -28
- package/docs/pt-BR/index.md +4 -3
- package/docs/pt-BR/integrating/index.md +38 -10
- package/docs/pt-BR/integrating/tailwind.md +79 -8
- package/docs/pt-BR/integrating/without-a-bundler.md +157 -5
- package/docs/pt-BR/setup.md +43 -34
- package/docs/pt-BR/usage/aesthetics.md +20 -14
- package/docs/pt-BR/usage/buttons.md +6 -2
- package/docs/pt-BR/usage/composing.md +6 -2
- package/docs/pt-BR/usage/content-and-layout.md +10 -4
- package/docs/pt-BR/usage/customizing.md +46 -26
- package/docs/pt-BR/usage/feedback.md +5 -1
- package/docs/pt-BR/usage/forms.md +30 -5
- package/docs/pt-BR/usage/index.md +7 -3
- package/docs/pt-BR/usage/presets.md +92 -0
- package/docs/pt-BR/usage/solo.md +4 -2
- package/docs/pt-BR/usage/theming.md +22 -9
- package/docs/pt-BR/usage/tooltips.md +2 -2
- package/docs/setup.md +31 -22
- package/docs/usage/aesthetics.md +19 -13
- package/docs/usage/buttons.md +5 -1
- package/docs/usage/composing.md +5 -1
- package/docs/usage/content-and-layout.md +9 -3
- package/docs/usage/customizing.md +45 -25
- package/docs/usage/feedback.md +4 -0
- package/docs/usage/forms.md +29 -4
- package/docs/usage/index.md +6 -2
- package/docs/usage/presets.md +91 -0
- package/docs/usage/solo.md +3 -1
- package/docs/usage/theming.md +21 -8
- package/docs/usage/tooltips.md +1 -1
- package/llms-full.txt +695 -134
- package/llms.txt +3 -2
- package/package.json +117 -65
- package/{dist/tw → tw}/aesthetics/chunky-tile.css +43 -20
- package/{dist/tw → tw}/aesthetics/cyber.css +19 -25
- package/{dist/tw → tw}/aesthetics/glass.css +110 -36
- package/{dist/tw → tw}/aesthetics/neobrutalism.css +41 -21
- package/{dist/tw → tw}/aesthetics/pixel.css +3 -0
- package/tw/aesthetics/sketch.css +435 -0
- package/{dist/tw → tw}/box.css +109 -26
- package/tw/components/button.css +11 -0
- package/tw/components/button.rules.css +187 -0
- package/tw/components/feedback.css +11 -0
- package/{dist/tw/components/feedback.css → tw/components/feedback.rules.css} +156 -33
- package/tw/components/form.css +11 -0
- package/{dist/tw/components/form.css → tw/components/form.rules.css} +584 -141
- package/tw/components/index.css +16 -0
- package/tw/components/rules.css +41 -0
- package/tw/components/surface.css +11 -0
- package/tw/components/surface.rules.css +225 -0
- package/tw/components/tooltip.css +11 -0
- package/{dist/tw/components/tooltip.css → tw/components/tooltip.rules.css} +82 -61
- package/{dist/tw → tw}/corner.css +18 -12
- package/{dist/tw → tw}/elevation.css +27 -21
- package/{dist/tw → tw}/index.css +11 -9
- package/tw/index.d.ts +1 -0
- package/tw/intent.css +312 -0
- package/tw/modifiers.css +127 -0
- package/tw/native.css +323 -0
- package/tw/presentation.css +139 -0
- package/tw/reset.css +10 -0
- package/{dist/tw/reset.css → tw/reset.rules.css} +7 -8
- package/tw/size.css +34 -0
- package/tw/surface.css +9 -0
- package/tw/surface.rules.css +212 -0
- package/{dist/tw → tw}/theme.css +93 -29
- package/tw/typography.css +8 -0
- package/{dist/tw/typography.css → tw/typography.rules.css} +0 -3
- package/{dist/tw → tw}/utilities/content.css +248 -108
- package/tw/utilities/index.css +11 -0
- package/tw/utilities/layout.css +210 -0
- package/tw/utilities/rules.css +8 -0
- package/dist/tw/aesthetics/sketch.css +0 -398
- package/dist/tw/components/button.css +0 -139
- package/dist/tw/components/index.css +0 -35
- package/dist/tw/components/surface.css +0 -184
- package/dist/tw/intent.css +0 -229
- package/dist/tw/native.css +0 -203
- package/dist/tw/palette.css +0 -460
- package/dist/tw/presentation.css +0 -68
- package/dist/tw/surface.css +0 -61
- package/dist/tw/utilities/index.css +0 -6
- package/dist/tw/utilities/layout.css +0 -144
- /package/{dist/tw → tw}/aesthetics/index.css +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: Estéticas
|
|
3
3
|
description: Los seis aspectos opcionales, lo que cada uno cambia en un componente, sus controles y sus límites.
|
|
4
4
|
order: 6
|
|
5
|
-
source:
|
|
5
|
+
source: 52678f7a4588460f836ce64909526d77e73aa4c6
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Estéticas
|
|
@@ -71,8 +71,10 @@ La sombra se proyecta en la propia intención del componente, así que un botón
|
|
|
71
71
|
|
|
72
72
|
- Los chips de contenido también toman la estética. El borde de una tecla `.kbd` pasa del gris discreto de los bordes a la tinta, y de 1px a 2px, como cualquier otro borde. Un `.code` o un `.pre` no tiene borde por defecto, así que no recibe ninguno; añade `.edged` para darle un borde de tinta.
|
|
73
73
|
- Solo `.btn` y una `.card` que lo active responden al hover y a la pulsación. Una tarjeta lo activa con `.interactive`, o con una de sus dos mitades: `.hoverable` solo para la respuesta al hover, `.pressable` solo para la pulsación; una tarjeta simple, una alerta o un panel es un contenedor y se queda quieto.
|
|
74
|
-
- Una alerta se apoya sobre la sombra desplazada con esta estética, y con ninguna otra. Por lo demás una alerta es plana, pero aquí la sombra es un segundo contorno más que profundidad, y una alerta sin ella parece inacabada junto a todo lo demás. Esto incluye una alerta dentro de una región `.neobrutalism` anidada. `.flat` sigue quitándola y `.floating` sigue duplicándola.
|
|
74
|
+
- Una alerta se apoya sobre la sombra desplazada con esta estética, y con ninguna otra. Por lo demás una alerta es plana, pero aquí la sombra es un segundo contorno más que profundidad, y una alerta sin ella parece inacabada junto a todo lo demás. Esto incluye una alerta dentro de una región `.neobrutalism` anidada, y una alerta que lleva la clase ella misma, `.alert.neobrutalism`. `.flat` sigue quitándola y `.floating` sigue duplicándola.
|
|
75
75
|
- El disparador del tooltip toma la esquina cero como todo lo demás y se dibuja cuadrado; `.radio` conserva su círculo.
|
|
76
|
+
- Con `prefers-reduced-motion: reduce` la pulsación sigue ocurriendo, pero al instante: el elemento cae en su sombra sin recorrer la distancia. La pulsación es la señal de que un clic se registró, así que solo se quita su movimiento.
|
|
77
|
+
- No tiene fuente propia y define en la región la del tema, `--font-default`, así que una región neobrutalista anidada dentro de pixel, cyber, sketch o chunky tile no toma su tipografía. Una fuente que defines solo con `font-family`, en `body` o en un contenedor, no llega dentro de la región; defínela también en `--font-default`, como describe [Temas → Fuentes](./theming.md#fuentes).
|
|
76
78
|
|
|
77
79
|
## Glass
|
|
78
80
|
|
|
@@ -91,8 +93,9 @@ La sombra se proyecta en la propia intención del componente, así que un botón
|
|
|
91
93
|
- Toda superficie en una región glass es de vidrio, incluidas una `.card.soft`, un `.panel` y una `.alert` neutros.
|
|
92
94
|
- El vidrio es el fondo, no el relleno. Una presentación conserva todo su relleno, así que un botón `.solid`, un toggle marcado y una tarjeta o tabla `.solid` son opacos; los cristales esmerilados son los de por defecto, `.soft` y `.ghost`.
|
|
93
95
|
- El desenfoque solo se aplica a `.card`, `.panel`, `.alert`, la burbuja del tooltip y una `.data-table` por defecto o `.soft`. Los controles se quedan sólidos y se apoyan sobre el vidrio: un desenfoque bajo cada control de un grupo denso cuesta una capa compuesta por cada uno y se percibe como ruido. Los controles siguen tomando el radio, el borde y la sombra de la estética.
|
|
94
|
-
- Con `prefers-reduced-transparency: reduce`, las superficies de vidrio pierden el desenfoque y se vuelven opacas.
|
|
95
|
-
- Los botones y una `.card` que lo active se pulsan con el `scale(0.97)` simple;
|
|
96
|
+
- Con `prefers-reduced-transparency: reduce`, y con colores forzados, las superficies de vidrio pierden el desenfoque y se vuelven opacas. Los colores forzados reemplazan los colores pero conservan su transparencia, así que sin esto un panel dejaría ver la página a través del fondo del sistema.
|
|
97
|
+
- Los botones y una `.card` que lo active se pulsan con el `scale(0.97)` simple; con movimiento reducido la pulsación sigue ocurriendo, al instante.
|
|
98
|
+
- No tiene fuente propia y define en la región la del tema, `--font-default`, como hace neobrutalism.
|
|
96
99
|
- Los controles de texto y los toggles dibujan su línea con la tinta de la página al 55% en lugar del fino borde blanco, que borraría un checkbox sin marcar en una página clara. Es `--ui-control-ink`; defínelo en la región para elegir otro.
|
|
97
100
|
- El marco y las líneas divisorias de una tabla dibujan la tinta de la página al 20%, porque el borde fino desaparece sobre la placa de la tabla. Es `--ui-rule-ink`.
|
|
98
101
|
- Una tabla con un `<caption>` desenfoca detrás del caption además de detrás de sus filas en Chromium y Safari, cuya caja de tabla incluye el caption, y con `.glass-liquid` el borde y el reflejo también enmarcan el caption. Firefox deja el caption fuera del cristal. Donde importe, etiqueta la tabla desde un encabezado exterior con `aria-labelledby`.
|
|
@@ -111,13 +114,13 @@ La lente la dibuja un filtro SVG en `backdrop-filter`, que Chromium renderiza y
|
|
|
111
114
|
|
|
112
115
|
**Excepciones:**
|
|
113
116
|
|
|
114
|
-
- Llega a `.card`, `.panel`, `.alert`, la burbuja del tooltip y una `.data-table` por defecto o `.soft`. Los controles se quedan sólidos, como con glass, excepto un botón que lo pida: consulta [Botones liquid](#botones-liquid).
|
|
117
|
+
- Llega a `.card`, `.panel`, `.alert`, `.surface`, la burbuja del tooltip, un componente propio construido con `@apply surface` y una `.data-table` por defecto o `.soft`. Los controles se quedan sólidos, como con glass, excepto un botón que lo pida: consulta [Botones liquid](#botones-liquid).
|
|
115
118
|
- Dibuja su desenfoque y su lente en el `::before` y el `::after` de cada superficie, así que una superficie dentro de una región liquid no puede llevar un `::before` o `::after` propio. Cada superficie se convierte también en un contexto de apilamiento posicionado; una superficie que posiciones tú conserva tu colocación.
|
|
116
|
-
- Todo lo demás que se esmerila con glass conserva el desenfoque ligero y el fondo más claro de liquid, sin la lente ni el borde brillante: una `<table>` sin clase con `/native
|
|
119
|
+
- Todo lo demás que se esmerila con glass conserva el desenfoque ligero y el fondo más claro de liquid, sin la lente ni el borde brillante: una `<table>` sin clase con `/native`.
|
|
117
120
|
- La lente es una erosión de 8px desenfocada sobre 10px en cada superficie, y de 3px desenfocada sobre 3.5px en un botón; su intensidad es fija. Un filtro no puede leer una custom property, así que ninguno de los dos es un control. Las esquinas sí lo son, mediante `--glass-radius` y `--glass-radius-surface`, con valores por defecto mayores: una esquina continua parece más pequeña que una redondeada del mismo radio.
|
|
118
|
-
- Una región de otra estética anidada dentro de una región liquid, o de `.glass` simple, conserva su propio material y no toma capas.
|
|
121
|
+
- Decide la región más cercana. Una región de otra estética anidada dentro de una región liquid, o de `.glass` simple, conserva su propio material y no toma capas, y una región liquid anidada a su vez dentro de esa vuelve a tomarlas.
|
|
119
122
|
- Sin `.glass` en el ámbito, solo cambia las esquinas.
|
|
120
|
-
- Con `prefers-reduced-transparency: reduce
|
|
123
|
+
- Con `prefers-reduced-transparency: reduce`, y con colores forzados, desaparecen el desenfoque y la lente y la superficie es opaca, como con glass.
|
|
121
124
|
- El texto queda sobre un cristal más claro que con glass. Sobre contenido recargado, comprueba que tu texto se sigue leyendo: el fondo es el 30% del color de la página, frente al 45% de glass.
|
|
122
125
|
|
|
123
126
|
#### Botones liquid
|
|
@@ -152,8 +155,9 @@ Un botón es un cristal liquid cuando él mismo lleva `.glass-liquid`, dentro de
|
|
|
152
155
|
**Excepciones:**
|
|
153
156
|
|
|
154
157
|
- Las esquinas son una unidad o nada. Los chips pequeños son cuadrados en lugar de escalonados: badges, teclas, código en línea, checkboxes y switches. Una unidad menos en cada esquina de un badge de 24px parecería un mordisco, no una esquina.
|
|
158
|
+
- Las superficies también son cuadradas: una `.card`, un `.panel` o una `.alert` conserva el anillo interior, pero no recibe recorte ni recorta nada. Un recorte cortaría todo lo que contiene, así que un tooltip dentro de una tarjeta, una sombra o un anillo de foco quedarían recortados.
|
|
155
159
|
- Las tablas, las barras de progreso y los skeletons también son cuadrados. Una tabla no recibe recorte porque en Chromium y WebKit su caja incluye el caption, y el recorte caería en el caption en lugar de en las filas. Las barras de progreso y los skeletons solo toman la esquina cuadrada.
|
|
156
|
-
- Un bloque de código `.pre` es escalonado como
|
|
160
|
+
- Un bloque de código `.pre` es escalonado como un botón. No tiene borde por defecto, así que el recorte se ve sin contorno alrededor.
|
|
157
161
|
- El contorno es un anillo interior, porque un recorte elimina un borde real; por el mismo motivo, el anillo de foco es una segunda capa interior en lugar de un outline. Los dos son el propio borde del elemento y no una sombra, así que el borde responde a `.edged` y `.edgeless` como lo hace un borde: un badge `.edgeless` y un botón `.solid` no dibujan ninguno, una tarjeta `.edged` dibuja uno, y un campo conserva el suyo pida lo que pida un contenedor.
|
|
158
162
|
- El anillo de foco interior lleva dentro una línea de 2px del color de la página. El anillo es del color principal, así que en un botón `.solid.primary` se dibujaría sobre su propio color; la línea es lo que se ve ahí.
|
|
159
163
|
- Con colores forzados desaparecen tanto el anillo como el recorte, porque el sistema elimina todas las sombras de caja: los componentes dibujan un borde real de 2px y esquinas rectas, y `.pixel-solo` un outline hacia dentro.
|
|
@@ -177,7 +181,7 @@ La barra es un tono más oscuro del propio color del elemento y no una sombra de
|
|
|
177
181
|
|
|
178
182
|
**Excepciones:**
|
|
179
183
|
|
|
180
|
-
- Solo se
|
|
184
|
+
- Solo los botones y las tarjetas se apoyan sobre una barra, porque son los componentes que reposan por encima de la elevación cero. Un badge, un chip, un campo o un tooltip es plano hasta que pide profundidad con `.raised`, y `.flat` quita la barra a cualquier cosa:
|
|
181
185
|
|
|
182
186
|
```html
|
|
183
187
|
<div class="card soft edgeless info flat">Promo panel, deliberately flat</div>
|
|
@@ -187,7 +191,8 @@ La barra es un tono más oscuro del propio color del elemento y no una sombra de
|
|
|
187
191
|
- Las etiquetas se dibujan más gruesas y con algo más de espaciado entre letras, mediante `--ui-label-weight` y `--ui-label-tracking`, así que tu propia utilidad `font-*` o `tracking-*` sigue ganando. Llega a `.btn` y `.badge`, y a un `<button>` sin clase solo donde `/native` le da estilo. Las mayúsculas no se tocan: cómo se redacta una etiqueta es decisión de la aplicación, así que si quieres botones en mayúsculas, escribe esa regla en tu propia hoja de estilos.
|
|
188
192
|
- `.card.interactive` se pulsa como un `.btn`, así que una baldosa de respuesta chunky cae sobre su barra al hacer clic; `.card.pressable` obtiene la misma pulsación por sí sola. Una `.card` simple se queda quieta.
|
|
189
193
|
- El `.primary` incluido es casi negro en una página clara y casi blanco en una oscura, y la barra siempre se mezcla hacia el negro. En una página clara, la barra de un botón primario es casi invisible frente a su cara casi negra (medido `1.04:1`). En una página oscura, la cara casi blanca frente a la misma barra se distingue bien (`2.48:1`). Dale a `.primary` un matiz propio si es la llamada a la acción y necesita la señal de profundidad en los dos temas.
|
|
190
|
-
-
|
|
194
|
+
- Con `prefers-reduced-motion: reduce` la pulsación sigue ocurriendo, pero al instante, como con neobrutalism.
|
|
195
|
+
- En esta estética la profundidad es la barra, nunca una sombra desenfocada. Todo lo que reposa plano queda a ras de la página.
|
|
191
196
|
- Los controles dibujan un gris más intenso que las baldosas que los rodean, `neutral-600` en claro y `neutral-400` en oscuro, mediante `--ui-control-ink`, para que un campo se lea como campo dentro de una baldosa.
|
|
192
197
|
|
|
193
198
|
## Cyber
|
|
@@ -237,7 +242,7 @@ Contornos dibujados a mano: los controles toman esquinas elípticas largas e irr
|
|
|
237
242
|
|
|
238
243
|
La línea de tinta de 1px es continua; los checkboxes, los divisores y las líneas divisorias de las tablas son discontinuos. `--ui-line-style: dashed` hace discontinuo cualquier otro componente, y `--ui-rule-style: solid` devuelve un divisor o una tabla a continuo. La sombra dura de 2px es una pequeña señal neutra de profundidad.
|
|
239
244
|
|
|
240
|
-
`--sketch-radius`, `--sketch-radius-surface` y `--sketch-radius-pill` reemplazan los contornos de control, de superficie y de botón pill. Define uno y todas las posiciones toman ese único contorno. Para dar forma a un solo componente, define en él `--ui-radius` (`--ui-radius-surface` en una superficie).
|
|
245
|
+
`--sketch-radius`, `--sketch-radius-surface` y `--sketch-radius-pill` reemplazan los contornos de control, de superficie y de botón pill. Define uno en la región o en cualquier elemento dentro de ella, y todas las posiciones por debajo toman ese único contorno, en los componentes que rotan: `.btn`, `.ipt`, `.textarea`, `.select`, `.input-group`, `.pre` y `.tooltip-bubble` para el contorno de control, y `.card`, `.panel`, `.alert` y `.data-table` para el de superficie. Cualquier otro elemento que toma un contorno de control o de superficie, como un `.skeleton` o un control sin clase bajo `/native`, toma el contorno que resolvió la propia región, así que un control definido entre la región y ese elemento no lo alcanza; defínelo en la región. Los chips, como `.badge` y `.checkbox`, toman contornos pequeños propios que ningún control cambia. Para dar forma a un solo componente, define en él `--ui-radius` (`--ui-radius-surface` en una superficie).
|
|
241
246
|
|
|
242
247
|
```html
|
|
243
248
|
<section class="sketch" style='--font-sketch: "Comic Sans MS", cursive'>
|
|
@@ -260,11 +265,12 @@ El botón discontinuo es `ghost edged` porque un botón relleno no tiene una lí
|
|
|
260
265
|
|
|
261
266
|
**Excepciones:**
|
|
262
267
|
|
|
263
|
-
- Sketch nombra los componentes para rotar sus contornos, así que sus contornos solo llegan a los componentes de este paquete; una región de otra estética anidada dentro de una región sketch conserva las esquinas de esa estética.
|
|
268
|
+
- Sketch nombra los componentes para rotar sus contornos, así que sus contornos solo llegan a los componentes de este paquete; una región de otra estética anidada dentro de una región sketch conserva las esquinas de esa estética. Decide la región más cercana, así que una región sketch anidada a su vez dentro de esa rota.
|
|
264
269
|
- Los chips, como checkboxes, teclas, código, badges, switches y barras de progreso, rotan entre pequeños contornos irregulares definidos en `--ui-radius-tight`. Define ese token en un chip para elegir su forma.
|
|
265
270
|
- Un `.btn.pill` toma una píldora redondeada acotada a su propia altura, para que uno ancho no se convierta en un óvalo. Los badges, las barras de progreso y los switches toman su contorno de chip. Los radios y el icono del tooltip siguen siendo círculos, ligeramente irregulares, para que un radio nunca se confunda con un checkbox. Un `--ui-radius-pill` explícito en un elemento sigue ganando.
|
|
266
271
|
- La `--font-sketch` la aportas tú. El paquete no incluye ninguna fuente manuscrita y recurre a la familia `cursive` de la plataforma.
|
|
267
|
-
- Los botones se pulsan con el `scale(0.97)` simple;
|
|
272
|
+
- Los botones se pulsan con el `scale(0.97)` simple; con movimiento reducido la pulsación sigue ocurriendo, al instante.
|
|
273
|
+
- Con [`/native`](../setup.md#html-sin-clases), un `<hr>`, una `<table>` y un checkbox simples toman los detalles discontinuos de `.divider`, `.data-table` y `.checkbox`.
|
|
268
274
|
- El modo de colores forzados dibuja continuos los detalles discontinuos, como cualquier otra línea del material.
|
|
269
275
|
|
|
270
276
|
## Clases solo
|
package/docs/es/usage/buttons.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: Botones
|
|
3
3
|
description: Acciones destructivas y secundarias, botones de icono, tamaños, enlaces con aspecto de botón, estados deshabilitados e iconos de carga.
|
|
4
4
|
order: 1
|
|
5
|
-
source:
|
|
5
|
+
source: 54f7c8a1eee5a0f696dc60b9f60f42026d49c5d5
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Botones
|
|
@@ -40,7 +40,11 @@ Un botón acepta una intención, una clase de relleno y una clase de borde, toda
|
|
|
40
40
|
|
|
41
41
|
Un botón **neutro** nunca se rellena del todo. Su color es el propio color de texto de la página, así que un relleno completo sería un bloque negro o blanco, lo más llamativo de la página para la intención que no significa nada en particular. Un botón neutro `.solid` se queda en un relleno del 20%, un gris discreto un paso más oscuro que `.soft`. Todas las intenciones con nombre se rellenan al 100%.
|
|
42
42
|
|
|
43
|
-
Con hover, el relleno de un botón se intensifica en `--hover-step` (14%), así que un botón `.ghost` toma un tinte y uno `.solid` cambia al color de hover de su intención. Al pulsarlo se encoge un poco (`scale(0.97)`); una [estética](./aesthetics.md) puede reemplazarlo por su propia pulsación, y la preferencia de movimiento reducido del usuario
|
|
43
|
+
Con hover, el relleno de un botón se intensifica en `--hover-step` (14%), así que un botón `.ghost` toma un tinte y uno `.solid` cambia al color de hover de su intención. Al pulsarlo se encoge un poco (`scale(0.97)`); una [estética](./aesthetics.md) puede reemplazarlo por su propia pulsación, y con la preferencia de movimiento reducido del usuario sigue ocurriendo, al instante.
|
|
44
|
+
|
|
45
|
+
Un botón neutro `.soft` o `.ghost` dentro de una superficie con relleno, como un botón Cancelar en una `.card.solid.primary` o en una `.alert.solid.destructive`, imprime su etiqueta y su línea en el color de texto de esa superficie, así que sigue siendo legible sobre el relleno. Un campo de texto hace lo mismo. Un botón con intención conserva su propio color, y también uno neutro `.solid`, que se apoya en un relleno propio.
|
|
46
|
+
|
|
47
|
+
Cuando un botón con relleno tiene el foco del teclado, una línea de 2px del color de la página recorre el interior del anillo de foco, así que el anillo sigue visible sobre un botón relleno del mismo color, como `.solid.primary`.
|
|
44
48
|
|
|
45
49
|
## Tamaños y formas
|
|
46
50
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: Composición
|
|
3
3
|
description: Consulta de cómo se combinan la intención, la presentación, la estética y la elevación, el aspecto por defecto de cada componente y qué clases lee cada uno.
|
|
4
4
|
order: 8
|
|
5
|
-
source:
|
|
5
|
+
source: 2493c7c14124565b565b1226e99d4b3de3b087b2
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Composición
|
|
@@ -23,6 +23,9 @@ Esta es una página de consulta. [Construir una pantalla](../concepts.md) presen
|
|
|
23
23
|
- **Las estéticas y los [tokens de material](./customizing.md#tokens-de-material) se heredan** de la misma forma.
|
|
24
24
|
- **La intención no se hereda.** `.primary` y las demás clases de intención colorean solo el elemento en el que están. Un contenedor que recoloreara en silencio todo lo que contiene volvería rojo el botón neutro Cancelar de una tarjeta roja de zona de peligro. `.neutral` nombra el valor por defecto; úsalo donde un elemento tomaría si no una intención, como una fila de tabla dentro de una tabla `.success`. Consulta [Temas → Tokens de intención](./theming.md#tokens-de-intención).
|
|
25
25
|
- **La elevación no se hereda.** `.raised` eleva solo el elemento en el que está; consulta [Elevación](#elevación).
|
|
26
|
+
- **El tamaño no se hereda.** `.sm` y `.lg` cambian el tamaño solo del botón o del control en el que están, así que un formulario `.sm` no encoge los campos que contiene. Consulta [Botones → Tamaños y formas](./buttons.md#tamaños-y-formas) y [Formularios → Tamaños](./forms.md#tamaños).
|
|
27
|
+
|
|
28
|
+
Con los puntos de entrada de código fuente de Tailwind, cada clase anterior, salvo las clases de estética, es también una utilidad de Tailwind, así que variantes como `md:lg` y `dark:solid` funcionan y `@apply btn primary soft sm` le da a una clase tuya la combinación completa. Los modificadores documentados con cada componente, como `.tight` o `.interactive`, también son utilidades, así que `@apply stack tight` funciona. Las clases de estética, como `.glass`, siguen siendo CSS simple, así que `@apply glass` y `md:glass` no funcionan; escribe la clase en el marcado. Consulta [Tailwind CSS v4 → Construir tus propios componentes con `@apply`](../integrating/tailwind.md#construir-tus-propios-componentes-con-apply), y [Preajustes](./presets.md) para saber cuándo recurrir a ello.
|
|
26
29
|
|
|
27
30
|
## Valores por defecto de los componentes
|
|
28
31
|
|
|
@@ -78,6 +81,7 @@ Una `.card.soft`, un `.panel` y una `.alert` neutros no muestran tinte en reposo
|
|
|
78
81
|
|
|
79
82
|
- Una `.card.soft` con `.interactive` o `.hoverable` muestra el tinte con hover. Una `.card.soft` simple y un `.panel` no tienen estado de hover.
|
|
80
83
|
- Con una de las seis intenciones incluidas, los tres conservan el tinte normal del 12%, y una tarjeta lo intensifica con hover. Una intención que hayas definido tú se trata aquí como neutra; consulta [Temas → Tu propia intención](./theming.md#tu-propia-intención).
|
|
84
|
+
- La presentación puede venir del elemento o de un contenedor: `<div class="soft"><div class="card">` reposa como `.card.soft`, y un contenedor `.ghost` o `.solid` le da a un `.panel` o a una `.alert` la placa que le daría su propia clase.
|
|
81
85
|
- Un `.badge` conserva su tinte del 12% incluso cuando es neutro. No tiene borde, así que sin el tinte se perdería en el texto que lo rodea.
|
|
82
86
|
|
|
83
87
|
`.kbd`, `.code` y `.pre` funcionan de otra manera. Reposan sobre el tono subtle de su intención, `--intent-subtle`, que es `--color-surface` para la neutra, y una intención incluida añade encima un 12% de su color. Una intención que hayas definido tú muestra su propio tinte `--intent-subtle` sin ese 12% adicional.
|
|
@@ -139,7 +143,7 @@ Qué clases cambian cada componente. "Material" es lo que una [estética](./aest
|
|
|
139
143
|
| `.progress` | Relleno del carril, borde y grosor del borde. La parte rellena es siempre el color completo de la intención. |
|
|
140
144
|
| `.skeleton`, `.divider` | Solo intención. |
|
|
141
145
|
|
|
142
|
-
Las clases de estado y los modificadores como `.interactive`, `.hoverable`, `.pressable`, `.p-sm` y `.vertical` se documentan con su componente. Un control no válido se marca con `aria-invalid="true"`, no con una clase; consulta [Formularios](./forms.md#mostrar-un-error-de-validación).
|
|
146
|
+
Las clases de estado y los modificadores como `.interactive`, `.hoverable`, `.pressable`, `.p-sm` y `.vertical` se documentan con su componente. Cada uno tiene efecto en los componentes que lo leen, y en `/tw` son utilidades, así que `@apply card interactive` funciona. Un control no válido se marca con `aria-invalid="true"`, no con una clase; consulta [Formularios](./forms.md#mostrar-un-error-de-validación).
|
|
143
147
|
|
|
144
148
|
## Elevación
|
|
145
149
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: Contenido y layout
|
|
3
3
|
description: Consulta de cada helper de layout con su espaciado, la escala tipográfica con sus tamaños, las tarjetas y los paneles con su relleno interior, las tablas, las citas, el código y las teclas.
|
|
4
4
|
order: 10
|
|
5
|
-
source:
|
|
5
|
+
source: 160ae54be3321154eca2f1ce22b843aa6b87314c
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Contenido y layout
|
|
@@ -46,7 +46,7 @@ Un `.divider` acepta una intención, que lo colorea, e ignora las clases de pres
|
|
|
46
46
|
|
|
47
47
|
Los dos tamaños mayores crecen en el breakpoint `md` de Tailwind, 48rem por defecto. Con los puntos de entrada de código fuente de Tailwind, se aplica tu propio breakpoint `md`. El paquete no define ningún tamaño en el texto sin clase: el texto del cuerpo y los encabezados sin clase toman el tamaño del navegador, o el tamaño del texto que los rodea con el reset; consulta [Configuración inicial → HTML sin clases](../setup.md#html-sin-clases) para el mapeo sin clases.
|
|
48
48
|
|
|
49
|
-
`.text-body` mide 0.875rem, menos que el texto de la página de 1rem; úsalo para texto secundario o denso, no para el texto principal de la página.
|
|
49
|
+
`.text-body` mide 0.875rem, menos que el texto de la página de 1rem; úsalo para texto secundario o denso, no para el texto principal de la página. `/native` es la excepción: define `.text-body` en `body`, así que ahí es el texto de la página, y los párrafos y los elementos de lista lo heredan del elemento en el que estén. Consulta [HTML sin clases](../setup.md#html-sin-clases).
|
|
50
50
|
|
|
51
51
|
`.selection-contrast` en un elemento cambia los colores del texto seleccionado dentro de él a `--color-primary` sobre `--color-primary-contrast`. Úsalo en una zona `.solid.primary`, donde el color de selección por defecto coincidiría con el fondo.
|
|
52
52
|
|
|
@@ -89,7 +89,7 @@ Una `.card.soft` neutra y un `.panel` neutro no muestran tinte: reposan sobre el
|
|
|
89
89
|
| `.hoverable` | Solo el color de hover, sin cursor de puntero. |
|
|
90
90
|
| `.pressable` | Solo la pulsación y el cursor de puntero. |
|
|
91
91
|
|
|
92
|
-
Con el aspecto por defecto, una pulsación reduce ligeramente la tarjeta (`scale(0.97)`); una estética puede reemplazarla con su propia pulsación, y la preferencia de movimiento reducido
|
|
92
|
+
Con el aspecto por defecto, una pulsación reduce ligeramente la tarjeta (`scale(0.97)`); una estética puede reemplazarla con su propia pulsación, y con la preferencia de movimiento reducido sigue ocurriendo, al instante.
|
|
93
93
|
|
|
94
94
|
Usa una de las dos mitades para una tarjeta que responde solo a un gesto. Una tarjeta que contiene su propio botón lleva `.hoverable`, para que pulsar el botón no pulse toda la tarjeta.
|
|
95
95
|
|
|
@@ -104,6 +104,8 @@ Usa una de las dos mitades para una tarjeta que responde solo a un gesto. Una ta
|
|
|
104
104
|
|
|
105
105
|
Estas clases solo dan estilo. Ponlas en un enlace o un botón reales y dales un nombre accesible; un `<div class="card interactive">` no puede recibir el foco ni usarse con el teclado.
|
|
106
106
|
|
|
107
|
+
Una tarjeta `.interactive` o `.pressable` deshabilitada muestra el cursor de no permitido en lugar del puntero, tanto si es un `<button>` con `disabled` como si lleva `.disabled`, `aria-disabled="true"` o `data-disabled`.
|
|
108
|
+
|
|
107
109
|
## Tablas
|
|
108
110
|
|
|
109
111
|
La pantalla de ajustes enumera las claves de API en una tabla:
|
|
@@ -148,6 +150,8 @@ La pantalla de ajustes enumera las claves de API en una tabla:
|
|
|
148
150
|
|
|
149
151
|
Las filas de una tabla toman la intención de la tabla, así que `.data-table.success` colorea de verde su encabezado y sus líneas. Una fila con su propia clase de intención usa esa en su lugar, como hace el `<tr class="destructive">` de la clave revocada. `<tr class="neutral">` devuelve una fila a neutra dentro de una tabla de color. En una tabla `.solid`, una fila con su propia intención conserva el color de texto de la tabla para seguir siendo legible sobre el relleno de la tabla, y muestra su intención con su línea divisoria y su hover. Es el único lugar en el que una intención se hereda, porque las filas son partes de la tabla, no componentes separados.
|
|
150
152
|
|
|
153
|
+
Solo las seis intenciones incorporadas y `.neutral` cambian el color de una fila del cuerpo. Una fila con una intención que definiste tú, como `<tr class="beta">`, se ve como el resto de la tabla: su texto, su línea y su hover vienen de la intención de la tabla. Para marcar esa fila, escribe en ella una clase de intención incorporada y cambia en la fila la familia de colores de esa intención, como describe [Temas → Tu propia intención](./theming.md#tu-propia-intención), o pinta la fila con tus propias utilidades.
|
|
154
|
+
|
|
151
155
|
### Líneas divisorias de las tablas
|
|
152
156
|
|
|
153
157
|
Una tabla dibuja líneas debajo de su encabezado y encima de su pie. `.ruled` y `.ruleless` las cambian junto con las líneas entre las filas del cuerpo:
|
|
@@ -160,6 +164,8 @@ Una tabla dibuja líneas debajo de su encabezado y encima de su pie. `.ruled` y
|
|
|
160
164
|
|
|
161
165
|
`--ui-rule` es el token detrás de las dos clases, así que un contenedor puede poner líneas en todas las tablas que contiene: `style="--ui-rule: 100%"` actúa como `.ruled`, y `0%` como `.ruleless`.
|
|
162
166
|
|
|
167
|
+
Dos variables y un token ajustan el resto, en la tabla o en cualquier elemento que la rodee. `--table-cell-padding` define el padding de cada celda, así que `--table-cell-padding: 0.375rem 0.75rem` hace una tabla densa. `--table-hover` define el color de una fila del cuerpo bajo el puntero, y `transparent` desactiva el hover. `--ui-rule-ink` define el color de las líneas de una tabla neutra; una tabla con intención las dibuja en el color de la intención. Consulta [Personalización → Variables de componente](./customizing.md#variables-de-componente) para las dos variables y [Tokens de material](./customizing.md#tokens-de-material) para `--ui-rule-ink`.
|
|
168
|
+
|
|
163
169
|
El marco alrededor de la tabla es aparte: una tabla no tiene borde por defecto, y `.edged` le añade uno. Las tres elecciones no se afectan entre sí, así que `.data-table.ruleless.edged` es una tabla con marco y sin líneas dentro, y `.data-table.ruled` tiene todas las filas separadas y ningún marco.
|
|
164
170
|
|
|
165
171
|
### Presentación en las tablas
|
|
@@ -212,4 +218,4 @@ Un `.kbd`, un `.code` o un `.pre` reposa sobre el tono subtle de su intención,
|
|
|
212
218
|
|
|
213
219
|
## Siguiente paso
|
|
214
220
|
|
|
215
|
-
[Accesibilidad](../accessibility.md) enumera lo que el CSS hace por tus usuarios y lo que tu aplicación todavía les debe.
|
|
221
|
+
[Preajustes](./presets.md) muestra cómo definir un aspecto una sola vez en lugar de en cada elemento. [Accesibilidad](../accessibility.md) enumera lo que el CSS hace por tus usuarios y lo que tu aplicación todavía les debe.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Personalización
|
|
3
|
-
description: Consulta de los tokens de presentación y de material, los controles de las estéticas, las
|
|
3
|
+
description: Consulta de los tokens de presentación y de material, los controles de las estéticas, las variables públicas de componente, la paleta generada y los helpers para construir tus propios componentes.
|
|
4
4
|
order: 9
|
|
5
|
-
source:
|
|
5
|
+
source: bbbce0739bf5070955b0e2a96bdda84090c37195
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Personalización
|
|
@@ -12,7 +12,7 @@ Esta es una página de consulta para cambiar el paquete más allá de sus clases
|
|
|
12
12
|
- [Tokens de presentación](#tokens-de-presentación): cuánto de una intención muestra un componente.
|
|
13
13
|
- [Tokens de material](#tokens-de-material): de qué está hecho un componente.
|
|
14
14
|
- [Tokens de estética](#tokens-de-estética): los controles que expone cada estética.
|
|
15
|
-
- [Variables de componente](#variables-de-componente): las
|
|
15
|
+
- [Variables de componente](#variables-de-componente): las variables públicas que lee un único componente.
|
|
16
16
|
- [Paleta generada](#paleta-generada): valores de color fijos para el código que no puede cargar el paquete.
|
|
17
17
|
- [Helpers de composición](#helpers-de-composición): las clases con las que construir un componente propio.
|
|
18
18
|
|
|
@@ -76,7 +76,7 @@ La geometría de la sombra se divide en partes sin color, así que se heredan si
|
|
|
76
76
|
| `--ui-hover-shadow-y` | Desplazamiento vertical de la sombra con hover. | `--ui-shadow-y` |
|
|
77
77
|
| `--ui-active-shadow-x` | Desplazamiento horizontal de la sombra al pulsar. | `--ui-shadow-x` |
|
|
78
78
|
| `--ui-active-shadow-y` | Desplazamiento vertical de la sombra al pulsar. | `--ui-shadow-y` |
|
|
79
|
-
| `--ui-active-transform` | Transformación al pulsar.
|
|
79
|
+
| `--ui-active-transform` | Transformación al pulsar. Se conserva con `prefers-reduced-motion`, que solo quita su transición. | `scale(0.97)` |
|
|
80
80
|
| `--ui-active-translate-x` | Distancia que recorre una pulsación hacia la profundidad del elemento; `-y` a su lado. Se escala como la sombra. | `0px` |
|
|
81
81
|
| `--ui-shadow-ink` | Porcentaje del color de la sombra tomado de la tinta de la intención. | `0%` |
|
|
82
82
|
| `--ui-halo-blur` | Desenfoque de un halo alrededor del elemento; `--ui-halo-spread` a su lado. La elevación no lo escala. | `0px` |
|
|
@@ -93,7 +93,7 @@ La geometría de la sombra se divide en partes sin color, así que se heredan si
|
|
|
93
93
|
| `--ui-clip-tight` | Silueta compacta del componente. | `--ui-clip` |
|
|
94
94
|
| `--ui-focus-inset` | Grosor de la capa de foco interior. | Sin definir |
|
|
95
95
|
| `--ui-label-weight` | Grosor de la etiqueta de `.btn` (y, con `/native`, de un `<button>` sin clase) y de `.badge`. | Semibold en un botón, bold en un badge |
|
|
96
|
-
| `--ui-label-tracking` | Espaciado entre letras de la etiqueta. Sin definir, la
|
|
96
|
+
| `--ui-label-tracking` | Espaciado entre letras de la etiqueta. Sin definir, es `normal`, así que ni el espaciado de la página ni el de un contenedor llega a la etiqueta. | `normal` |
|
|
97
97
|
| `--ui-label-case` | `text-transform` de la etiqueta. | `none` en un botón; heredado en un badge |
|
|
98
98
|
| `--ui-label-shadow` | `text-shadow` de la etiqueta, escrito sin color para que tome el de la propia etiqueta. | `none` en un botón; heredado en un badge |
|
|
99
99
|
|
|
@@ -120,7 +120,7 @@ Qué esquinas toman la esquina es una elección aparte. `.cut-diagonal` conserva
|
|
|
120
120
|
|
|
121
121
|
`--ui-surface-image` pone cualquier `background-image` sobre la placa de una superficie: tarjetas, paneles, alertas y tooltips, no controles. Quien lo define es responsable del contraste del texto que queda encima, y tu propio `background-image` en una superficie sigue ganando.
|
|
122
122
|
|
|
123
|
-
`--ui-label-*` trata la etiqueta de un botón o de un badge: grosor, espaciado entre letras, mayúsculas y una sombra de texto. Escribe la sombra sin color, como `0 0 6px`, para que tome el color de la propia etiqueta y no pueda reducir su contraste. Tus propias utilidades `font-*`, `tracking-*` y de mayúsculas siguen ganando.
|
|
123
|
+
`--ui-label-*` trata la etiqueta de un botón o de un badge: grosor, espaciado entre letras, mayúsculas y una sombra de texto. Escribe la sombra sin color, como `0 0 6px`, para que tome el color de la propia etiqueta y no pueda reducir su contraste. Tus propias utilidades `font-*`, `tracking-*` y de mayúsculas siguen ganando. Una etiqueta no hereda el espaciado entre letras, así que una utilidad `tracking-*` en un contenedor deja sus botones y badges en `normal`; para espaciar todas las etiquetas de una región, define `--ui-label-tracking` en ella, que la heredan.
|
|
124
124
|
|
|
125
125
|
Con colores forzados, cada uno de estos dibuja su versión simple: una línea continua, sin halo, sin capa pintada y sin sombra de etiqueta. La silueta y el anillo de abajo también desaparecen. Los colores forzados eliminan todas las sombras de caja, así que `--ui-clip`, `--ui-clip-tight`, `--ui-border-max` y `--ui-shadow-edge` se anulan y un componente dibuja su borde real con `--ui-border-width`.
|
|
126
126
|
|
|
@@ -196,9 +196,9 @@ Los controles de todas las estéticas llegan de la misma forma: cada control se
|
|
|
196
196
|
</html>
|
|
197
197
|
```
|
|
198
198
|
|
|
199
|
-
Los controles y los tokens de material llegan en direcciones opuestas. Un control se lee una vez, en el elemento con la clase de estética, y el resultado se hereda. Así que define un control en ese elemento o en uno por encima; definido en un elemento dentro de la estética, no cambia nada, porque el valor ya se ha leído.
|
|
199
|
+
Los controles y los tokens de material llegan en direcciones opuestas. Un control se lee una vez, en el elemento con la clase de estética, y el resultado se hereda. Así que define un control en ese elemento o en uno por encima; definido en un elemento dentro de la estética, no cambia nada, porque el valor ya se ha leído. Los contornos de sketch son la excepción: `--sketch-radius` y sus hermanos se leen de nuevo en cada posición, así que funcionan también en cualquier elemento dentro de la región, como describe [Estéticas → Sketch](./aesthetics.md#sketch).
|
|
200
200
|
|
|
201
|
-
Cada componente lee `--ui-radius` y los demás tokens de material al dibujarse. Funcionan en el elemento en el que se definen y en todo lo que contiene, que es como redondeas una tarjeta de forma distinta a sus vecinas sin tocar el control.
|
|
201
|
+
Cada componente lee `--ui-radius`, `--ui-radius-surface` y los demás tokens de material al dibujarse. Funcionan en el elemento en el que se definen y en todo lo que contiene, que es como redondeas una tarjeta de forma distinta a sus vecinas sin tocar el control. Fíjate en cuál lee cada componente: una superficie (`.card`, `.panel`, `.alert`) toma `--ui-radius-surface`, y un control como `.btn` o `.ipt` toma `--ui-radius`. `style="--ui-radius-surface: 0"` deja cuadrada una tarjeta; `--ui-radius` en esa tarjeta deja cuadrados los botones que contiene y la tarjeta sigue redondeada.
|
|
202
202
|
|
|
203
203
|
Las estéticas incluidas definen los tokens de material compartidos de arriba. Todas las estéticas incluidas definen `--ui-ink` para su línea neutra. Todas definen también `--ui-control-ink`: `.glass` y `.chunky-tile` con una línea propia, más intensa que la de sus superficies, y las demás con `--color-control-border`, ya que su tinta es casi negra o casi blanca y un checkbox en reposo con ese contorno parecería marcado. `.glass` define además `--ui-rule-ink`, para que las líneas de una tabla se lean sobre su placa; las demás lo anulan. Las clases de intención siguen sobrescribiendo los huecos de intención de cada componente.
|
|
204
204
|
|
|
@@ -216,9 +216,9 @@ Los mismos controles ajustan la [clase solo](./solo.md) de cada estética, que l
|
|
|
216
216
|
|
|
217
217
|
```css
|
|
218
218
|
.my-badge {
|
|
219
|
-
background: var(--palette-success-soft-
|
|
219
|
+
background: var(--palette-success-soft-bg);
|
|
220
220
|
color: var(--palette-success-soft-fg);
|
|
221
|
-
border-color: var(--palette-success-soft-
|
|
221
|
+
border-color: var(--palette-success-soft-edge);
|
|
222
222
|
}
|
|
223
223
|
```
|
|
224
224
|
|
|
@@ -227,29 +227,46 @@ Cada valor es un color final, nunca una referencia a otra variable, así que el
|
|
|
227
227
|
Nombres: `--palette-<intent>-<presentation>-<slot>`, donde `<intent>` es una de las siete intenciones publicadas (`neutral`, `primary`, `secondary`, `success`, `warning`, `destructive`, `info`) y `<presentation>` es `solid`, `soft` o `ghost`. `<slot>` es `bg`, `fg` o `edge`. Dos calificadores se añaden solo donde aplican:
|
|
228
228
|
|
|
229
229
|
- Un calificador de fondo, `page` o `subtle`, antes del hueco. Solo aparece en el `bg` y el `edge` de `.soft` y `.ghost`, porque un relleno `.solid` cubre su fondo y el color del texto nunca depende de él.
|
|
230
|
-
- Sin calificador es
|
|
231
|
-
- `page` es
|
|
232
|
-
- `subtle` es
|
|
233
|
-
|
|
230
|
+
- Sin calificador es lo que dibujan `.badge` y `.btn`, sobre un fondo transparente: `--palette-success-soft-bg`.
|
|
231
|
+
- `page` es lo que dibuja `.alert`, sobre la página: `--palette-success-soft-page-bg`.
|
|
232
|
+
- `subtle` es lo que dibujan `.kbd`, `.code`, `.pre` y `.tooltip-icon`, sobre el propio tono sutil de la intención: `--palette-success-soft-subtle-bg`.
|
|
233
|
+
|
|
234
|
+
Cada valor se lee del propio componente, así que incluye lo que el componente hace por su cuenta. Un `.alert`, `.kbd`, `.code` o `.pre` neutral conserva un relleno más discreto que un `.badge` neutral, y sus valores `neutral-soft-page` y `neutral-soft-subtle` lo reflejan. Un `.tooltip-icon.soft` neutral conserva el relleno del badge, así que su placa se aleja más de la página de lo que indica `neutral-soft-subtle`. `.tooltip-bubble` no coincide con ninguno de los tres: sin intención se rellena con su propio tono de tooltip, y su borde es sólido en vez de atenuado.
|
|
235
|
+
|
|
236
|
+
- Un sufijo `-hover`, solo en `bg` y `edge`, porque el color del texto no cambia con hover: `--palette-success-soft-page-bg-hover`. `.alert`, `.kbd`, `.code` y `.pre` no tienen hover propio, así que sus valores de hover son lo que dibuja el componente cuando le añades `box-hover`.
|
|
234
237
|
|
|
235
238
|
Los valores claros se definen en `:root`. Los oscuros se aplican bajo `.dark`, `.theme-dark` o `[data-theme="dark"]` en el elemento o en uno por encima, los mismos selectores que usa el tema del paquete. Los valores claros también se aplican bajo `.light`, `.theme-light` y `[data-theme="light"]`, así que gana el tema explícito más cercano: una zona clara dentro de una oscura lee los valores claros.
|
|
236
239
|
|
|
237
240
|
El archivo no sigue `prefers-color-scheme`. El código que usa la paleta por sí sola ya cambia de tema por su cuenta, así que define una de esas clases o atributos.
|
|
238
241
|
|
|
242
|
+
Tampoco sigue `prefers-contrast: more`. Con esa preferencia, el paquete dibuja el borde de cada intención en su tono fuerte, así que un valor `-edge` es más tenue que el borde que dibuja el componente. El código que tiene que respetar la preferencia elige un color más fuerte por su cuenta.
|
|
243
|
+
|
|
239
244
|
Otros tres tokens no tienen intención, presentación, fondo ni hover: `--palette-border`, `--palette-surface` y `--palette-text`, valores fijos de `--color-border`, `--color-surface` y `--color-text`. Son para lo que no tiene color de intención, como el borde de un contenedor, el fondo de un diálogo y su texto.
|
|
240
245
|
|
|
241
246
|
## Variables de componente
|
|
242
247
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
| Variable
|
|
246
|
-
|
|
|
247
|
-
| `--progress-value`
|
|
248
|
-
| `--progress-color`
|
|
249
|
-
| `--progress-surface`
|
|
250
|
-
| `--progress-edge`
|
|
251
|
-
| `--input-group-gap`
|
|
252
|
-
| `--
|
|
248
|
+
Dieciocho variables las lee un único componente y son entradas soportadas. Un componente lee cada una donde se dibuja, así que un valor definido en el componente o en cualquier elemento que lo rodee le llega, y gana el valor más cercano: define `--switch-width` en un formulario y todos los switches que contiene lo toman. Cualquier otra variable que declare un componente, como `--surface-padding` o cualquier nombre que empiece por `--_`, es interna y puede cambiar en cualquier versión.
|
|
249
|
+
|
|
250
|
+
| Variable | Elemento | Valor | Valor por defecto | Efecto |
|
|
251
|
+
| ----------------------- | ----------------------------- | ------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
252
|
+
| `--progress-value` | `.progress` | Un porcentaje, de `0%` a `100%` | `0%` | Ancho de la parte rellena. No se limita; un valor sin `%` no es válido y se muestra vacío. |
|
|
253
|
+
| `--progress-color` | `.progress` | Un color | El color de la intención | Color de la parte rellena y del brillo de `.active`. |
|
|
254
|
+
| `--progress-surface` | `.progress` | Un color | El color de la intención con el relleno de la presentación: 12% por defecto | Color del carril. |
|
|
255
|
+
| `--progress-edge` | `.progress` | Un color | El color de borde de la intención con el borde de la presentación: ninguno por defecto | Color del borde del carril. Solo se ve donde el carril tiene grosor de borde, como con `.edged`. |
|
|
256
|
+
| `--input-group-gap` | `.input-group` | Una longitud | `0.5rem` | Espacio entre el control y su icono o texto. |
|
|
257
|
+
| `--input-group-padding` | `.input-group` | Una longitud | `0.75rem`; `0.625rem` con `.sm` y `1rem` con `.lg` | Espacio entre el borde del grupo y su contenido, a ambos lados. Un valor que definas reemplaza también los pasos de `.sm` y `.lg`. |
|
|
258
|
+
| `--field-gap` | `.field` | Una longitud | `0.35rem` | Espacio entre la etiqueta, el control y la pista de un campo. |
|
|
259
|
+
| `--switch-width` | `.switch` | Una longitud | `2.5rem` | Ancho del carril. La perilla conserva su tamaño y recorre más distancia. |
|
|
260
|
+
| `--switch-height` | `.switch` | Una longitud | `1.25rem` | Alto del carril. La perilla crece con él. |
|
|
261
|
+
| `--tooltip-gap` | `.tooltip` | Una longitud | `0.5rem` | Espacio entre el disparador y la burbuja. |
|
|
262
|
+
| `--tooltip-linger` | `.tooltip`, `.tooltip-bubble` | Un tiempo | `300ms` | Cuánto tiempo se queda la burbuja después de que el puntero sale del disparador. |
|
|
263
|
+
| `--divider-color` | `.divider` | Un color | El color de la intención | Color de la línea. Gana sobre una clase de intención en el divisor. |
|
|
264
|
+
| `--divider-width` | `.divider` | Una longitud | El grosor de borde: `1px` por defecto | Grosor de la línea. |
|
|
265
|
+
| `--skeleton-base` | `.skeleton` | Un color | Un tinte tenue del color de la intención | Color sobre el que descansa el placeholder. |
|
|
266
|
+
| `--skeleton-sheen` | `.skeleton` | Un color | Un tinte más intenso del color de la intención | Color del brillo que lo recorre. |
|
|
267
|
+
| `--quote-width` | `.quote` | Una longitud | El doble del grosor de borde más `1px`: `3px` por defecto | Grosor de la barra en el borde inicial de la cita. |
|
|
268
|
+
| `--table-cell-padding` | `.data-table` | Un valor de `padding` | `0.75rem 1rem` | Padding de cada celda de la cabecera, el cuerpo y el pie. Una utilidad de padding en una celda sigue ganando. |
|
|
269
|
+
| `--table-hover` | `.data-table` | Un color | Un paso del 12% hacia el color de hover de la intención | Fondo de una fila del cuerpo bajo el puntero. `transparent` lo desactiva. Definido en un `tbody` o en una fila, se aplica solo ahí. |
|
|
253
270
|
|
|
254
271
|
```html
|
|
255
272
|
<div class="progress" role="meter" aria-label="Storage used" aria-valuemin="0" aria-valuemax="100" aria-valuenow="92" style="--progress-value: 92%; --progress-color: var(--color-warning)"></div>
|
|
@@ -264,7 +281,7 @@ Los ejemplos en contexto están en [Feedback → Mostrar el progreso](./feedback
|
|
|
264
281
|
|
|
265
282
|
## Helpers de composición
|
|
266
283
|
|
|
267
|
-
Para construir un componente que el paquete no incluye, como un control segmentado o un chip de filtro, compónlo con las mismas clases con las que están construidos los componentes del paquete. Con CSS compilado, escríbelas como clases; con el código fuente de Tailwind, también puedes usarlas con `@apply`.
|
|
284
|
+
Para construir un componente que el paquete no incluye, como un control segmentado o un chip de filtro, compónlo con las mismas clases con las que están construidos los componentes del paquete. Con CSS compilado, escríbelas como clases; con el código fuente de Tailwind, también puedes usarlas con `@apply`, junto con las clases de intención, presentación, elevación y esquina, que en `/tw` también son utilidades: `@apply box box-hover neutral soft edgeless`. Para darle en cambio una receta fija a un componente del paquete, como un botón primario pequeño y suave, consulta [Tailwind CSS v4 → Construir tus propios componentes con `@apply`](../integrating/tailwind.md#construir-tus-propios-componentes-con-apply).
|
|
268
285
|
|
|
269
286
|
| Clase | Lo que le da a un elemento |
|
|
270
287
|
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
@@ -287,7 +304,10 @@ Chips de filtro para la lista de miembros, uno pulsado y otro no:
|
|
|
287
304
|
Qué darle a cada uno:
|
|
288
305
|
|
|
289
306
|
- **`box` necesita una clase de relleno y una de borde.** No tiene valores por defecto propios, así que sin `.solid`, `.soft` o `.ghost` y sin `.edged` o `.edgeless`, en el elemento o en un contenedor, no dibuja nada. `surface` y `text-control` tienen valores por defecto y funcionan solos.
|
|
290
|
-
- **Nombra la intención
|
|
307
|
+
- **Nombra la intención en `box`.** Un elemento `box` toma la intención del elemento más cercano a su alrededor que tenga una, a diferencia de los componentes del paquete. Ponle `.neutral` o una clase de intención. `surface` y `text-control` son neutrales salvo que el elemento tenga una clase de intención, como los componentes.
|
|
308
|
+
- **`@apply` lleva el helper completo.** `@utility my-field { @apply text-control; }` obtiene lo mismo que `class="text-control"`: la intención neutral y el borde del campo, `.soft`, `.solid` y `.edgeless` en el elemento, y el aspecto inválido con `aria-invalid="true"`. `@apply surface` es neutral de la misma forma. Una clase de intención que definas tú debe ser CSS plano o una utilidad para colorear un elemento así, no una regla en `@layer components`.
|
|
309
|
+
- **Escribe como utilidad la clase que aplica un helper.** Lo que copia `@apply` cae en la [capa de cascada](../setup.md#capas-de-cascada) de la regla en la que está escrito. Los helpers son utilidades, y `@utility my-field` mantiene tu clase en `utilities` junto a ellos, así que tus otras utilidades siguen alcanzándola. Escrita como CSS plano, `.my-field { @apply text-control; }` queda sin capa, y todo lo que declara el helper gana sobre cualquier utilidad en el elemento: una clase de intención que escribiste como utilidad deja el campo neutral, y `mt-8` no mueve un diálogo. Tu propio CSS sin capa sigue compitiendo con él, por especificidad y después por orden en el código, como dos reglas sin capa cualesquiera.
|
|
310
|
+
- **Un diálogo funciona con `@apply surface`.** Un `<dialog>` cerrado con tu propia clase que hace `@apply surface` permanece oculto, y uno abierto se centra, como con `.card`. Ocultar uno cerrado gana sobre una utilidad de display como `flex`; un margen que pongas sigue colocando uno abierto, y una utilidad de margen también lo hace cuando tu clase es una utilidad.
|
|
291
311
|
- **El tamaño y el espaciado son cosa tuya.** Ninguno de los helpers define el relleno interior, el ancho ni el alto; `text-control` no define la altura de 2.5rem que añade `.ipt`.
|
|
292
312
|
- **También el comportamiento y la semántica.** Usa un `<button>`, un `<input>` o un `<a href>` reales, o añade tú el rol y el manejo del teclado, y define estados como `aria-pressed` o `aria-invalid`. `box` dibuja el aspecto deshabilitado para `disabled`, `.disabled`, `aria-disabled="true"` y `data-disabled`, pero solo el atributo `disabled` impide la interacción.
|
|
293
313
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: Feedback
|
|
3
3
|
description: Un botón que indica que está guardando, alertas, badges, placeholders de carga y barras de progreso, y lo que tu código debe mantener sincronizado con ellos.
|
|
4
4
|
order: 3
|
|
5
|
-
source:
|
|
5
|
+
source: ce1defb7385bc009988d903fd895bcb7edb5ab3b
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Feedback
|
|
@@ -80,6 +80,8 @@ Un badge es una pequeña píldora para un estado o un recuento:
|
|
|
80
80
|
|
|
81
81
|
Un badge es soft y sin borde por defecto, y acepta las mismas clases de intención y presentación que un botón: `.badge.warning` para "Pago pendiente", `.badge.info.solid` para un "Nuevo" relleno. A diferencia de una alerta, un badge sin intención conserva su tinte claro, porque no tiene borde, y sin el tinte se perdería en el texto que lo rodea.
|
|
82
82
|
|
|
83
|
+
Un badge neutro que no es `.solid`, como un contador dentro de un `.btn.primary`, imprime en el color de texto del componente con relleno en el que está, así que sigue siendo legible sobre ese relleno. Un badge con intención conserva su propio color.
|
|
84
|
+
|
|
83
85
|
## Mostrar un placeholder mientras carga
|
|
84
86
|
|
|
85
87
|
Mientras la tarjeta de perfil espera los datos, muestra bloques grises donde irá el texto:
|
|
@@ -134,6 +136,8 @@ Cuando no sabes cuánto ha avanzado el trabajo, como mientras se prepara la expo
|
|
|
134
136
|
|
|
135
137
|
`.active` añade un brillo sobre el carril de una barra determinada, para mostrar que el trabajo sigue en marcha entre actualizaciones. Las dos animaciones se detienen cuando el usuario pide movimiento reducido; una barra indeterminada queda entonces en reposo con su relleno al principio.
|
|
136
138
|
|
|
139
|
+
Con la [hoja de estilos sin clases](../setup.md#html-sin-clases), un elemento `<progress>` simple se dibuja como `.progress`: lleno hasta su `value`, o con el barrido indeterminado cuando no tiene `value`. Anuncia su valor por sí mismo, así que no necesita `aria-valuenow`.
|
|
140
|
+
|
|
137
141
|
### Cómo se ven las barras de progreso
|
|
138
142
|
|
|
139
143
|
El relleno es el color de la intención con toda su intensidad, o `currentColor` sin intención. El carril es soft y sin borde por defecto: un tinte claro sin borde.
|
package/docs/es/usage/forms.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: Formularios
|
|
3
3
|
description: Campos con etiqueta, pistas y errores, iconos y prefijos fijos, selects y toggles de checkbox, radio y switch.
|
|
4
4
|
order: 2
|
|
5
|
-
source:
|
|
5
|
+
source: 6f92be07a240da16dfa5dc835b36a6981985bea9
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Formularios
|
|
@@ -28,6 +28,25 @@ Un campo es una etiqueta, un control y una pista opcional, apilados:
|
|
|
28
28
|
|
|
29
29
|
Un control de texto mide al menos 2.5rem de alto (`--control-height`), la misma altura que un botón por defecto, así que un campo y un botón quedan alineados en una fila. Su aspecto por defecto es sin relleno y con borde. Un `.textarea` mide al menos 7rem de alto y se puede redimensionar en vertical.
|
|
30
30
|
|
|
31
|
+
### Tamaños
|
|
32
|
+
|
|
33
|
+
`.ipt`, `.select`, `.textarea` e `.input-group` aceptan las clases de tamaño del botón, así que un campo pequeño y un botón pequeño quedan alineados en una fila:
|
|
34
|
+
|
|
35
|
+
| Clase | Altura | Relleno lateral | Texto |
|
|
36
|
+
| ----------- | ------ | --------------- | --------- |
|
|
37
|
+
| `.sm` | 2rem | 0.625rem | 0.875rem |
|
|
38
|
+
| por defecto | 2.5rem | 0.75rem | heredado |
|
|
39
|
+
| `.lg` | 3rem | 1rem | 1.0625rem |
|
|
40
|
+
|
|
41
|
+
Las esquinas escalan con el tamaño, como las de un botón. Un `.textarea` conserva su altura mínima de 7rem en todos los tamaños; la clase cambia su texto, su relleno y sus esquinas. Define el tamaño de un `.input-group` en el grupo, no en el control de dentro: el control y sus adornos toman el tamaño de texto del grupo.
|
|
42
|
+
|
|
43
|
+
```html
|
|
44
|
+
<div class="cluster tight">
|
|
45
|
+
<input class="ipt sm" aria-label="Coupon code" />
|
|
46
|
+
<button class="btn sm" type="button">Apply</button>
|
|
47
|
+
</div>
|
|
48
|
+
```
|
|
49
|
+
|
|
31
50
|
## Mostrar un error de validación
|
|
32
51
|
|
|
33
52
|
Marca el control como inválido con `aria-invalid="true"` y dale al mensaje de error `.hint.destructive`:
|
|
@@ -40,7 +59,13 @@ Marca el control como inválido con `aria-invalid="true"` y dale al mensaje de e
|
|
|
40
59
|
</div>
|
|
41
60
|
```
|
|
42
61
|
|
|
43
|
-
Un control inválido dibuja su borde, su anillo de foco y el texto escrito en el color destructivo, tenga la clase de intención que tenga. El texto usa el tono legible de ese color, `--intent-strong`, para que siga siendo legible sobre la página. El paquete solo pinta el estado: decidir que el valor es inválido, poner y quitar `aria-invalid` y escribir el mensaje es cosa de tu código. Quita `aria-invalid` en cuanto el valor vuelva a ser válido; si lo dejas puesto, el campo sigue en rojo.
|
|
62
|
+
Un control inválido dibuja su borde, su anillo de foco y el texto escrito en el color destructivo, tenga la clase de intención que tenga. El texto usa el tono legible de ese color, `--intent-strong`, para que siga siendo legible sobre la página. El paquete solo pinta el estado: decidir que el valor es inválido, poner y quitar `aria-invalid` y escribir el mensaje es cosa de tu código. Quita `aria-invalid` en cuanto el valor vuelva a ser válido; si lo dejas puesto, el campo sigue en rojo. En un checkbox, un radio o un switch, `aria-invalid="true"` dibuja el toggle exactamente igual que `.destructive`, marca de activado incluida.
|
|
63
|
+
|
|
64
|
+
Un `.hint` acepta cualquiera de las seis intenciones incorporadas, no solo `.destructive`: `.hint.success` confirma que se aceptó un valor, y `.hint.warning` señala uno que está permitido pero es inusual. Cada uno se muestra en el tono legible de su intención, `--intent-strong`, que mantiene 4.5:1 frente a la página en los dos temas. Un `.hint` sin intención, con `.neutral` o con una [intención que definiste tú](./theming.md#tu-propia-intención), se queda en el color secundario. Solo lo colorea una clase en el propio `.hint`; una intención en el campo o en un contenedor que lo rodee no lo hace.
|
|
65
|
+
|
|
66
|
+
```html
|
|
67
|
+
<input class="ipt success" id="username" value="ada" aria-describedby="username-hint" /> <span class="hint success" id="username-hint">That username is available.</span>
|
|
68
|
+
```
|
|
44
69
|
|
|
45
70
|
## Montar el formulario de perfil
|
|
46
71
|
|
|
@@ -84,7 +109,7 @@ Un `.select` dibuja su propia flecha. Con `multiple` o con un `size` mayor que 1
|
|
|
84
109
|
|
|
85
110
|
## Añadir un icono o un prefijo fijo
|
|
86
111
|
|
|
87
|
-
`.input-group` pone un icono o un fragmento de texto dentro del borde de un campo. El grupo dibuja el borde, el fondo, el anillo de foco y los estados inválido y deshabilitado; el control de dentro renuncia a los suyos, así que el borde se dibuja una sola vez. Coloca el adorno antes del control para ponerlo al principio, o después para ponerlo al final.
|
|
112
|
+
`.input-group` pone un icono o un fragmento de texto dentro del borde de un campo. El grupo dibuja el borde, el fondo, el anillo de foco y los estados inválido y deshabilitado; el control de dentro renuncia a los suyos, así que el borde se dibuja una sola vez. Coloca el adorno antes del control para ponerlo al principio, o después para ponerlo al final. Un grupo mide lo mismo que un campo solo, así que queda alineado con los campos y los botones que tiene al lado.
|
|
88
113
|
|
|
89
114
|
La dirección del perfil siempre empieza con el mismo host, así que es un prefijo fijo:
|
|
90
115
|
|
|
@@ -98,7 +123,7 @@ La dirección del perfil siempre empieza con el mismo host, así que es un prefi
|
|
|
98
123
|
</div>
|
|
99
124
|
```
|
|
100
125
|
|
|
101
|
-
La separación entre el control y su adorno es `--input-group-gap`, 0.5rem por defecto. Eso le va bien a un icono, pero un texto que debe leerse como parte del valor parece roto con un espacio detrás, así que el ejemplo la pone a `0`. Defínela en el
|
|
126
|
+
La separación entre el control y su adorno es `--input-group-gap`, 0.5rem por defecto. Eso le va bien a un icono, pero un texto que debe leerse como parte del valor parece roto con un espacio detrás, así que el ejemplo la pone a `0`. Defínela en el grupo, o una sola vez en un formulario para todos los grupos que contiene. Es una de las [variables públicas de componente](./customizing.md#variables-de-componente).
|
|
102
127
|
|
|
103
128
|
Una búsqueda de miembros, con un icono al principio (las clases `ic-lucide-*` necesitan `@codenhub/icons` cargado; consulta [Botones → Cargar los iconos](./buttons.md#cargar-los-iconos)):
|
|
104
129
|
|
|
@@ -116,7 +141,7 @@ Un `.select` también funciona en un grupo. El grupo quita el relleno lateral de
|
|
|
116
141
|
|
|
117
142
|
Cualquier elemento sirve como adorno: una clase de icono, un `<svg>` en línea, un `<img>` o texto. El paquete no incluye iconos para los campos, porque una imagen incorporada no podría seguir tu color de texto, tu tema ni tu estética.
|
|
118
143
|
|
|
119
|
-
El grupo lee la intención y la presentación igual que un `.ipt` solo: `.input-group.primary` colorea el borde, y `.input-group.soft.edgeless` es un campo hundido en la página. `aria-invalid="true"` o `disabled` en el control de dentro se aplica a todo el grupo, y lo mismo si cualquiera de los dos está en el propio grupo. El anillo de foco aparece cuando
|
|
144
|
+
El grupo lee la intención y la presentación igual que un `.ipt` solo: `.input-group.primary` colorea el borde y el texto escrito, y `.input-group.soft.edgeless` es un campo hundido en la página. Pon la intención en el grupo, no en el control de dentro: el grupo dibuja el campo, así que el texto del control toma la intención del grupo y una clase de intención en el control no tiene efecto. `aria-invalid="true"` o `disabled` en el control de dentro se aplica a todo el grupo, y lo mismo si cualquiera de los dos está en el propio grupo. El anillo de foco del grupo aparece cuando su campo tiene el foco, así que, a diferencia de un campo solo, también se muestra después de un clic con el ratón. Un botón dentro del grupo, como un botón para borrar, dibuja su propio anillo cuando tiene el foco, y el grupo no dibuja ninguno: un solo anillo marca siempre el único control que tiene el foco.
|
|
120
145
|
|
|
121
146
|
## Decoraciones del navegador
|
|
122
147
|
|
package/docs/es/usage/index.md
CHANGED
|
@@ -3,12 +3,12 @@ title: Visión general
|
|
|
3
3
|
description: Las guías que terminan la pantalla de ajustes y, después, las páginas de consulta con cada clase, token y valor por defecto.
|
|
4
4
|
group: Uso
|
|
5
5
|
order: 4
|
|
6
|
-
source:
|
|
6
|
+
source: 07b651854dab2e401235175521adae9360b33df2
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Uso
|
|
10
10
|
|
|
11
|
-
Estas guías terminan la pantalla de ajustes que empezó en [Construir una pantalla](../concepts.md). Lee las siete primeras en orden: cada una añade una parte de la pantalla y da por hechas las anteriores. Las tres
|
|
11
|
+
Estas guías terminan la pantalla de ajustes que empezó en [Construir una pantalla](../concepts.md). Lee las siete primeras en orden: cada una añade una parte de la pantalla y da por hechas las anteriores. Las tres siguientes son páginas de consulta; las guías te enviarán a ellas cuando necesiten la tabla completa, y puedes volver siempre que necesites un valor por defecto o una regla. La última, Preajustes, es para cuando la pantalla ya funciona y te has cansado de escribir las mismas clases.
|
|
12
12
|
|
|
13
13
|
Guías, en orden:
|
|
14
14
|
|
|
@@ -23,7 +23,11 @@ Guías, en orden:
|
|
|
23
23
|
Páginas de consulta:
|
|
24
24
|
|
|
25
25
|
- [Composición](./composing.md): las reglas completas para combinar intención, presentación y elevación, los valores por defecto de cada componente y qué ejes lee cada uno.
|
|
26
|
-
- [Personalización](./customizing.md): tokens de presentación y de material, controles de las estéticas, las
|
|
26
|
+
- [Personalización](./customizing.md): tokens de presentación y de material, controles de las estéticas, las variables públicas de componente, la paleta generada y los helpers de composición para construir tus propios componentes.
|
|
27
27
|
- [Contenido y layout](./content-and-layout.md): todos los helpers de layout, la escala tipográfica, tarjetas y paneles, tablas, citas, código y teclas.
|
|
28
28
|
|
|
29
|
+
Cuando la pantalla funcione:
|
|
30
|
+
|
|
31
|
+
- [Preajustes](./presets.md): define un aspecto una sola vez, con clases de eje en un contenedor, tokens de tema y de material, o tus propias clases de componente hechas con `@apply`.
|
|
32
|
+
|
|
29
33
|
Cuando termines, [Accesibilidad](../accessibility.md) reúne lo que el CSS hace por ti y lo que tu aplicación todavía les debe a sus usuarios.
|