Componente de Container
¿Qué es el componente de container?
El componente de container permite envolver otro componentes y agregar elementos esteticos como lo puede un background. Nota: Los colores y estilos mostrados en los ejemplos son ilustrativos, puedes personalizarlos según tus necesidades.
¿Cómo se utiliza el componente de container?
Para utilizar el componente de container, se debe importar y luego usar en el código.
import Container, { ContainerStyle } from "@seigenta/TypesCraft/widgets/containers/container";
import Color from "@seigenta/TypesCraft/widgets/utils/color";
// El resto de tu código
new Container({
child: ... // Aqui va el componente que quieres envolver,
style: new ContainerStyle({
backgroundColor: Color.red()
}),
styleHover: new ContainerStyle({
backgroundColor: Color.blue()
}),
id: "mi-container",
key: "container-1"
})
En el ejemplo anterior, se crea un nuevo componente de container con un background de color rojo. Dentro de este container puedes agregar cualquier otro componente, como un Text.
import Container, { ContainerStyle } from "@seigenta/TypesCraft/widgets/containers/container";
import Text from "@seigenta/TypesCraft/widgets/texts/text";
import Color from "@seigenta/TypesCraft/widgets/utils/color";
// El resto de tu código
new Container({
child: Text({
text: "Este es un texto dentro de un container de color rojo",
}),
style: new ContainerStyle({
background: Color.red()
})
})
Styles
Este elemento tiene sus propias variables de estilo.
- backgroundColor?: (Color) - Define el
color de fondo del container.
- Color - Puede ser un color en formato hexadecimal o un color de la paleta de colores. Se explico en Color.
- padding?: (EdgeSize) - Define el padding
del container. EdgeSize es un elemento especial que recibe como parametro un Size (Explicado
en Text), segun este parametro se define el padding.
- EdgeSize.all(Size.px(10)) - Define el padding en los 4 lados del container, en este caso 10px.
- EdgeSize.symetric({horizontal: Size.px(10), vertical: Size.percent(5)} }) - Define el padding horizontal y vertical del container, en este caso 10px horizontal y 5% vertical.
- EdgeSize.only({top: Size.percent(5), bottom: Size.percent(5)}) - Define el padding en la parte superior e inferior del container, en este caso 5%. tambien estan las variables left y right.
- height?: (Size) - Define la altura del container. Como recibe un elemento del tipo Size no requiere explicación adicional. Se explico en Size.
- width?: (Size) - Define el ancho del container. Como recibe un elemento del tipo Size no requiere explicación adicional. Se explico en Size.
-
containerAlingment?: (ContainerAlingment)
- Define la alineación del container. Tenemos una gran variedad de alineaciones,
las cuales son:
- ContainerAlingment.leftTop - Alinea el contenido en la esquina superior izquierda.
- ContainerAlingment.leftCenter - Alinea el contenido en el centro izquierdo.
- ContainerAlingment.leftBottom - Alinea el contenido en la esquina inferior izquierda.
- ContainerAlingment.centerTop - Alinea el contenido en el centro superior.
- ContainerAlingment.center - Alinea el contenido en el centro.
- ContainerAlingment.centerBottom - Alinea el contenido en el centro inferior.
- ContainerAlingment.rightTop - Alinea el contenido en la esquina superior derecha.
- ContainerAlingment.rightCenter - Alinea el contenido en el centro derecho.
- ContainerAlingment.rightBottom - Alinea el contenido en la esquina inferior derecha.
- border?: (BorderStyle) - Define el borde del
container. BorderStyle tiene tres constructores:
- BorderStyle.only({top, right, bottom, left}) - Define el borde en lados específicos.
- BorderStyle.all({border}) - Define el mismo borde en todos los lados.
- BorderStyle.symetric({vertical, horizontal}) - Define el borde vertical y horizontal.
- color: (Color) - Color del borde
- styleBorder: (StyleBorder) - Estilo del borde (solid, dotted, dashed, double, ridge, inset, outset, none)
- width: (Size) - Ancho del borde
- boxShadow?: (BoxShadow[]) - Define las
sombras del container. Cada BoxShadow tiene las siguientes propiedades:
- hOffset?: (Size) - Desplazamiento horizontal
- vOffset?: (Size) - Desplazamiento vertical
- blur?: (Size) - Desenfoque
- spread?: (Size) - Extensión
- color?: (Color) - Color de la sombra
- inset?: (boolean) - Si la sombra es interna
- css?: (Css) - Define estilos CSS personalizados para el container.
Ejemplo
import Container, { ContainerStyle, ContainerAlingment, BorderStyle, StyleBorder } from "@seigenta/TypesCraft/widgets/containers/container";
import Text from "@seigenta/TypesCraft/widgets/texts/text";
import Color from "@seigenta/TypesCraft/widgets/utils/color";
import Size from "@seigenta/TypesCraft/widgets/utils/size";
import EdgeSize from "@seigenta/TypesCraft/widgets/utils/edgeSize";
import BoxShadow from "@seigenta/TypesCraft/widgets/utils/boxShadow";
import { Css } from "@seigenta/TypesCraft/global/style";
new Container({
child: Text({
text: "Este es un texto dentro de un container con borde y sombra",
}),
style: new ContainerStyle({
backgroundColor: Color.red(),
padding: EdgeSize.all(Size.px(10)),
height: Size.percent(50),
width: Size.percent(50),
containerAlingment: ContainerAlingment.center(),
border: BorderStyle.all({
border: {
color: Color.black(),
styleBorder: StyleBorder.solid,
width: Size.px(2)
}
}),
boxShadow: [{
hOffset: Size.px(5),
vOffset: Size.px(5),
blur: Size.px(10),
color: Color.black(),
inset: false
}]
}),
styleHover: new ContainerStyle({
backgroundColor: Color.blue(),
border: BorderStyle.all({
border: {
color: Color.white(),
styleBorder: StyleBorder.dashed,
width: Size.px(3)
}
})
}),
id: "mi-container",
key: "container-1"
})
En el ejemplo anterior, se crea un nuevo componente de container con un background de color rojo, un padding de 10px, una altura y ancho del 50% y se alinea en el centro.
Compilador de container
Este compilador te permite crear un componente de container en tiempo real.