Componente Column

¿Qué es el componente Column?

El componente Column es un contenedor que organiza sus hijos en una columna vertical. Permite controlar la alineación, espaciado y dimensiones de los elementos hijos.

¿Cómo se utiliza el componente Column?

Para usar el componente Column, importa la clase y configura sus propiedades:


import Column, { ColumnStyle } from "@seigenta/TypesCraft/widgets/column";
import { MainAxisAlign, CrossAxisAlign } from "@seigenta/TypesCraft/widgets/properties_flexs";
import { Size, EdgeSize } from "@seigenta/TypesCraft/widgets/utils";

// Uso básico
new Column({
    children: [widget1, widget2],
    style: new ColumnStyle({
        mainAxisAlign: MainAxisAlign.center(),
        crossAxisAlign: CrossAxisAlign.center()
    })
})
          

Propiedades del componente

El componente Column acepta las siguientes propiedades:

  • children: (Widget[]) - Lista de widgets hijos (requerido)
  • style?: (ColumnStyle) - Estilo del column
  • styleHover?: (ColumnStyle) - Estilo al pasar el mouse
  • id?: (string) - Identificador único
  • key?: (string) - Clave para reconciliación

ColumnStyle - Propiedades de estilo

El objeto ColumnStyle 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 espaciado y alineación:


new Column({
    children: [widget1, widget2],
    style: new ColumnStyle({
        spacing: Size.px(10),
        crossAxisAlign: CrossAxisAlign.center(),
        padding: EdgeSize.all(Size.px(40))
    })
})
          

Ejemplo con efectos hover:


new Column({
    children: [widget1, widget2],
    style: new ColumnStyle({
        backgroundColor: Color.hex('#fff')
    }),
    styleHover: new ColumnStyle({
        backgroundColor: Color.hex('#f0f0f0')
    })
})
          

Comportamiento

El componente Column:

  • Organiza los hijos en una columna vertical (flex-direction: column)
  • Permite múltiples opciones de alineación y distribución
  • Genera estilos CSS eficientes reutilizables
  • Soporta estilos hover para efectos interactivos