, 60 min
9/12Vinyasa Flow
con Ana GarcíaTodos los niveles
Fundamentos
Densidad, aire entre piezas, alturas de control y anchos de página.
En Eclipse UI hay dos clases de espacio. El aire de componente (rellenos, separación entre piezas y alto de los controles) sigue el dial de densidad de cada marca: una personalidad aireada respira, una compacta aprieta. El aire de composición (cuánto separa un título de su contenido o una sección de otra) es la escala fija de Tailwind, en pasos de —, igual en todas las personalidades.
--eui-density (0.85 a 1.2) multiplica rellenos, separaciones y alturas de control.
No toca la escala de Tailwind: p-4 siempre es p-4. Por eso un componente que
debe respirar con la marca usa los tokens (p-[var(--eui-pad-md)],
gap-[var(--eui-gap)], h-control-md) y no un paso fijo.
--eui-pad-sm —
--eui-pad-md —
--eui-pad-lg —
--eui-gap —
--eui-pad-sm: Relleno de piezas compactas: filas, avisos, menús, el botón chico.--eui-pad-md: Relleno de tarjetas y del botón mediano.--eui-pad-lg: Relleno de paneles, modales y del botón grande.--eui-gap: Separación entre piezas de una rejilla o una lista de tarjetas.--eui-control-sm: Alto de controles chicos (h-control-sm): filtros, acciones de fila.--eui-control-md: Alto de controles (h-control-md): botones y campos de formulario.--eui-control-lg: Alto de controles grandes (h-control-lg): la acción principal en el teléfono.Los mismos tokens en las seis personalidades, calculados aquí mismo con la fórmula de tokens.css:
| Token | Carbón | Eclipse | Alba | Brisa | Umbra | Terra |
|---|---|---|---|---|---|---|
--eui-densityel dial |
— | — | — | — | — | — |
--eui-pad-sm
—
|
— | — | — | — | — | — |
--eui-pad-md
—
|
— | — | — | — | — | — |
--eui-pad-lg
—
|
— | — | — | — | — | — |
--eui-gap
—
|
— | — | — | — | — | — |
--eui-control-sm
—
|
— | — | — | — | — | — |
--eui-control-md
—
|
— | — | — | — | — | — |
--eui-control-lg
—
|
— | — | — | — | — | — |
Entre piezas y dentro de una composición se usan los pasos de Tailwind. No hacen falta todos: estos nueve cubren la interfaz, y la regla para elegir es la de proximidad: lo que va junto se separa poco, y el espacio entre grupos es al menos el doble del que hay dentro de ellos.
| Paso | Medida | Entre… | Muestra |
|---|---|---|---|
1 |
— | Un punto de estado y su texto. | |
1.5 |
— | Ícono y texto dentro de un botón; título y su meta. | |
2 |
— | Ícono y etiqueta; pastillas en fila. | |
3 |
— | Elementos de una fila; campos de un mismo grupo. | |
4 |
— | Bloques dentro de una tarjeta; título de sección y su contenido. | |
6 |
— | Grupos de un formulario. | |
8 |
— | Encabezado de la página y la primera sección. | |
12 |
— | Secciones de una vista. | |
16 |
— | Secciones editoriales y de documentación. |
Con densidad, una pieza real: la tarjeta de clase usa --eui-pad-lg por dentro y la
rejilla gap-[var(--eui-gap)] entre tarjetas. Prueba Alba (más aireada) y Umbra (más
compacta) en la barra de arriba.
, 60 min
9/12con Ana GarcíaTodos los niveles
, 50 min
6/10con Iván LópezIntermedio
Tres alturas para todo lo que se toca: botones, campos, selects, grupos segmentados. Un botón y un campo de la misma talla miden lo mismo, así se alinean en una fila sin ajustes. Las tres siguen la densidad.
h-control-sm —
h-control-md —
h-control-lg —
md es la talla por defecto de botones y campos en formularios y barras.sm para acciones dentro de una fila o una tarjeta, y filtros.lg para la acción principal en el teléfono: es la única que se acerca a los 44px que pide un dedo.py-*: el texto cambia de tamaño, la altura no.
Una página centra su contenido con mx-auto max-w-* y un margen lateral que crece con la
pantalla. Esta tabla se arma leyendo las vistas: cada contenedor con mx-auto, un
max-w-* y px-*.
| Ancho | Medida | Margen lateral | Dónde |
|---|---|---|---|
max-w-[96rem]1 vista |
— | px-4 sm:px-6 |
Catálogo: ui/workshop |
max-w-6xl5 vistas |
— | px-4 sm:px-6px-6 |
Catálogo: layouts/ui, ui/home, ui/index, ui/personalities y 1 más |
max-w-5xl1 vista |
— | px-4 sm:px-6 |
Catálogo: ui/show |
max-w-3xl1 vista |
— | px-4 sm:px-6 |
Catálogo: ui/home |
max-w-2xl2 vistas |
— | px-4 sm:px-6 |
Catálogo: ui/terms, ui/thanks |
max-w-3xl o menos; un párrafo nunca pasa de max-w-2xl (~70 caracteres).px-4 en el teléfono y más a partir de sm:; el contenido nunca toca el borde de la pantalla. El más común en las vistas: px-4 sm:px-6 (14 contenedores).
La regla: la página responde a la pantalla; el componente responde a su lugar. Las
columnas de una vista, la barra lateral que se vuelve tira, el menú que se esconde: eso es
sm:, md:, lg:. Un componente vive en una tarjeta de 330px del
catálogo, en una columna del horario o a todo lo ancho, con la misma pantalla: por eso decide su
forma con @container y @sm:, @md:… y nunca con el ancho de la
ventana.
| Pantalla | Desde | Usos | Contenedor | Desde | Usos |
|---|---|---|---|---|---|
sm: |
— | 106 | @3xs: |
— | 0 |
md: |
— | 13 | @2xs: |
— | 0 |
lg: |
— | 35 | @xs: |
— | 13 |
xl: |
— | 0 | @sm: |
— | 8 |
2xl: |
— | 1 | @md: |
— | 7 |
@lg: |
— | 7 | |||
@xl: |
— | 15 | |||
@2xl: |
— | 9 |
Hoy usan container queries: Ui::ActivityFeedComponent, Ui::BarChartComponent, Ui::DataTableComponent, Ui::RadioCardsComponent, Ui::ToasterComponent.
Para uno nuevo: pon @container en la raíz del componente (con nombre,
@container/slot, si hay contenedores anidados) y escribe el diseño angosto primero.
contenedor — · — (desde —)
Una vista se lee de arriba abajo en saltos cada vez más grandes: poco entre un título y su
descripción, más entre bloques, mucho entre secciones. Usa space-y-* en el contenedor
(o mt-* en el que sigue), nunca márgenes inferiores sueltos que se suman.
| Entre… | Clase | Medida |
|---|---|---|
| Un título y su meta o descripción | mt-1 a mt-1.5 |
— a — |
| Bloques dentro de una pieza | mt-3 a mt-4 |
— a — |
| Un título de sección y su contenido | mt-4 a mt-5 |
— a — |
| El encabezado de la página y la primera sección | mt-8 |
— |
| Secciones de una vista | mt-12 |
— |
| Secciones editoriales o de documentación | mt-16 |
— |
| Piezas de una rejilla o una lista de tarjetas | gap-[var(--eui-gap)] |
— (con la densidad) |
Reservas
Lo que viene esta semana en Luna Estudio.
Hoy
07:00
Vinyasa Flow
19:30
Reformer
Mañana
09:00
Mat Pilates
18:00
Power Yoga