Saltar al contenido
Alea0.1
Pro
  1. Alea
  2. Componentes
  3. Maquetación
  4. Stack, Inline, Grid

Maquetación

Stack, Inline, Grid

Organiza el espacio con la escala: columnas, filas que saltan de línea, grillas responsive, el contenedor de página y divisores.

import { Stack, Inline, Grid, Container, Divider } from '@alea/ui';

Ejemplos

Stack e Inline

Stack pone los hijos en una columna, Inline en una fila que se acomoda. El espacio viene de la escala de espaciado.

Stack with gap 4 (16 px)

TokensAccessibleAccessible

Grid

columns="auto" mete tantas columnas como permite minItemWidth: responsive sin breakpoints.

Palette

Figma plugin

Contrast

Figma plugin

Type scale

Figma plugin

Color vision

Figma plugin

Tokens

Figma plugin

A11y

Figma plugin

Divider

Un separador entre grupos, horizontal o vertical.

Above

Left

Right

Divisores con etiqueta

label pone texto en la línea (al inicio, centro o final); variant la hace discontinua o punteada. Text lineClamp recorta el texto largo a un número de líneas.

or
Today
End of results

Alea is a design system with motion built in: tokens, components and patterns that look and move the same in code and in Figma, with accessibility checked on every page and both themes from the start.

Tokens

Los tokens de diseño que usa este componente, con su valor en el tema actual. Cambia cualquiera para darle otro estilo.

Component

  • --alea-gap-base…
  • --alea-gap-lg…
  • --alea-gap-md…
  • --alea-gap-sm…
  • --alea-gap-xl…

Props

Stack props

Hijos en una columna con el mismo espacio entre ellos.

PropTipoPor defectoDescripción
align"start" | "end" | "center" | "stretch" | "baseline"-Alineación en el eje cruzado: start, center, end, stretch o baseline.
asElementType'div'El elemento a usar. Por defecto div.
gapResponsive<Space>4Espacio entre hijos, de la escala de espaciado. Por defecto 4 (16 px). Puede cambiar por breakpoint.
justify"start" | "end" | "center" | "between"-Distribución en el eje principal: start, center, end o between.

Inline props

Hijos en una fila, que se acomodan en varias líneas por defecto.

PropTipoPor defectoDescripción
align"start" | "end" | "center" | "stretch" | "baseline"'center'Alineación en el eje cruzado: start, center, end, stretch o baseline.
asElementType'div'El elemento a usar. Por defecto div.
gapResponsive<Space>2Espacio entre hijos, de la escala de espaciado. Por defecto 4 (16 px). Puede cambiar por breakpoint.
justify"start" | "end" | "center" | "between"-Distribución en el eje principal: start, center, end o between.
wrapbooleantruePasa a nuevas líneas cuando no hay espacio. Por defecto true.

Grid props

Una grilla responsive: columnas fijas, tantas como quepan, o una cantidad distinta por breakpoint.

PropTipoPor defectoDescripción
asElementType'div'El elemento a usar. Por defecto div.
columnsResponsive<number | "auto">'auto'Columnas: un número, 'auto' para meter tantas como permita minItemWidth, o una por breakpoint: { base: 1, md: 2, lg: 4 }. Usa 12 con spans de GridItem para el diseño de páginas.
gapResponsive<Space>4Espacio entre celdas, de la escala de espaciado. Por defecto 4 (16 px). Puede cambiar por breakpoint.
minItemWidthnumber240Ancho mínimo de columna con columns='auto'. Por defecto 240 px.

Container props

Centra el contenido con un ancho máximo y los márgenes de la página.

PropTipoPor defectoDescripción
asElementType'div'El elemento a usar. Por defecto div.
size"sm" | "md" | "lg" | "xl" | "full"'xl'Ancho máximo: sm 640, md 768, lg 1024, xl 1280 (el ancho de página por defecto), full.

Divider props

Una línea fina entre grupos, con una etiqueta opcional; sólida, discontinua o punteada.

PropTipoPor defectoDescripción
labelReactNode-Texto o un ícono en la línea ("o", "Hoy"). Solo horizontal.
labelPosition"start" | "end" | "center"'center'Dónde va la etiqueta: center (por defecto), start o end.
spacing0 | 2 | 3 | 4 | 5 | 6 | 1 | 12 | 24 | 0.5 | 7 | 8 | 10 | 16 | 200Espacio alrededor de la línea, de la escala de espaciado.
variant"dashed" | "solid" | "dotted"-solid (por defecto), dashed o dotted.

Especificaciones

Generado desde el código: las variantes de los tipos, los estados y tokens del CSS, y los patrones de motion que aplican. Las grillas muestran el componente real en ambos temas; los números se miden en la página.

Stack

Variantes
alignstartendcenterstretchbaseline
justifystartendcenterbetween
Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-stack.alea-r-gap.alea-gap
Atributos data
data-align=startdata-align=centerdata-align=enddata-align=stretchdata-align=baselinedata-justify=startdata-justify=centerdata-justify=enddata-justify=between

Inline

Variantes
alignstartendcenterstretchbaseline
justifystartendcenterbetween
Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-inline.alea-r-gap.alea-gap
Atributos data
data-wrapdata-align=startdata-align=centerdata-align=enddata-align=stretchdata-align=baselinedata-justify=startdata-justify=centerdata-justify=enddata-justify=between

Grid

Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-grid.alea-r-gap.alea-r-cols.alea-gap.alea-cols

Container

Variantes
sizesmmdlgxlfull
Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-container
Atributos data
data-size=smdata-size=mddata-size=lgdata-size=xl

Divider

Variantes
labelPositionstartendcenter
variantdashedsoliddotted
Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-divider-labeled.alea-divider.alea-divider-label
Atributos data
data-variant=dasheddata-variant=dotteddata-position=startdata-position=end

Accesibilidad

  • Los componentes de layout no agregan roles, salvo Divider, que es un separador.
  • Elige el elemento con as (section, ul, nav) para que la estructura signifique algo.

Qué hacer y qué evitar

Hacer

  • Usa gap de la escala en lugar de márgenes en los hijos.

Evitar

  • No uses Grid para tablas de datos: usa una tabla.
Probado con axe, teclado y roles de lector de pantalla