Componente Row
¿Qué es el componente Row?
El componente Row es un contenedor que organiza sus hijos en una fila horizontal. Permite controlar la alineación, espaciado y dimensiones de los elementos hijos.
¿Cómo se utiliza el componente Row?
Para usar el componente Row, importa la clase y configura sus propiedades:
import Row, { RowStyle } from "@seigenta/TypesCraft/widgets/row";
import { MainAxisAlign, CrossAxisAlign } from "@seigenta/TypesCraft/widgets/properties_flexs";
import { Size, EdgeSize } from "@seigenta/TypesCraft/widgets/utils";
// Uso básico
new Row({
children: [widget1, widget2],
style: new RowStyle({
mainAxisAlign: MainAxisAlign.center(),
crossAxisAlign: CrossAxisAlign.center()
})
})
Propiedades del componente
El componente Row acepta las siguientes propiedades:
- children: (Widget[]) - Lista de widgets hijos (requerido)
- style?: (RowStyle) - Estilo del row
- styleHover?: (RowStyle) - Estilo al pasar el mouse
- id?: (string) - Identificador único
- key?: (string) - Clave para reconciliación
RowStyle - Propiedades de estilo
El objeto RowStyle permite configurar:
- crossAxisAlign?: (CrossAxisAlign) - Alineación en el eje cruzado
- mainAxisAlign?: (MainAxisAlign) - Alineación en el eje principal
- mainAxisJustify?: (MainAxisJustify) - Justificación en el eje principal
- mainAxisSize?: (MainAxisSize) - Tamaño en el eje principal
- spacing?: (Size) - Espaciado entre hijos
- padding?: (EdgeSize) - Relleno interno
- backgroundColor?: (Color) - Color de fondo
- width?: (Size) - Ancho del contenedor
- height?: (Size) - Alto del contenedor
Ejemplos de uso
Ejemplo básico con alineación centrada:
new Row({
children: [widget1, widget2],
style: new RowStyle({
mainAxisAlign: MainAxisAlign.center(),
crossAxisAlign: CrossAxisAlign.center(),
padding: EdgeSize.all(Size.px(10)),
backgroundColor: Color.hex("#f0f0f0")
})
})
Ejemplo avanzado con espaciado y justificación:
new Row({
children: [widget1, widget2, widget3],
style: new RowStyle({
mainAxisJustify: MainAxisJustify.spaceBetween(),
spacing: Size.px(20),
width: Size.percent(100),
padding: EdgeSize.symmetric({
horizontal: Size.px(15),
vertical: Size.px(10)
})
})
})
Comportamiento
El componente Row:
- Organiza los hijos en una fila horizontal (flex-direction: row)
- Permite múltiples opciones de alineación y distribución
- Genera estilos CSS eficientes reutilizables
- Soporta estilos hover para efectos interactivos