En esta página, se proporciona una referencia completa de todos los componentes disponibles de A2UI, incluidos los componentes de diseño, visualización, interactivos y de contenedor, así como las propiedades comunes.
Componentes del catálogo de materiales y componentes del catálogo básico
A2UI proporciona dos catálogos de componentes distintos para compilar interfaces de usuario de agentes: el catálogo de materiales y el catálogo básico.
El catálogo de Material contiene componentes diseñados específicamente para cumplir con los lineamientos de Material Design de Google, lo que ofrece un conjunto más enriquecido y con más estilo de elementos de la IU que se admiten en las configuraciones de A2UI v0.9.
El catálogo básico contiene elementos básicos de la IU estándar y que no dependen del sistema de diseño, como diseños, acciones y entradas, que se admiten en las configuraciones de A2UI v0.9 y v0.8.
Componentes del catálogo de Material
En esta sección, se proporciona una referencia de los componentes de Material Design de A2UI disponibles, incluidos los componentes de diseño, visualización, navegación y entrada.
Propiedades comunes del catálogo de materiales
Todos los componentes, independientemente de su tipo específico, comparten un conjunto de propiedades comunes que se pueden configurar:
| Propiedad | Obligatorio | Descripción |
|---|---|---|
id |
Sí | Es un identificador único para el componente dentro de la plataforma actual. |
accessibility |
No | Atributos para mejorar la accesibilidad, como etiquetas y roles |
weight |
No |
Es un valor que se usa en los diseños MaterialRow o MaterialColumn para controlar cuánto espacio ocupa el componente en relación con sus elementos hermanos, de manera similar a flex-grow.
|
Componentes de diseño del catálogo de Material
Los componentes de diseño se usan para estructurar y organizar otros componentes dentro de la interfaz de usuario.
MaterialCard
Contenedor de tarjetas de Material Design.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialCard:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
children |
Sí | - | Define los IDs de los elementos secundarios. |
appearance |
No | raised |
Es el estilo de apariencia de la tarjeta. Puede ser "outlined" o "raised". |
align |
No | start |
Alineación de los elementos secundarios. Uno de los siguientes valores: "center", "end", "start", "stretch". |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
href |
No | - | Es la URL opcional a la que se navegará cuando se haga clic en la tarjeta. Cuando se establece, la tarjeta se vuelve interactiva y abre la URL en una pestaña nueva. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Peso de diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialCard",
"appearance": "outlined",
"children": [
"card-content"
]
},
{
"id": "card-content",
"component": "MaterialText",
"text": "Card content"
}
]
MaterialColumn
Es un contenedor de diseño que organiza los elementos de forma vertical según los lineamientos de Material.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialColumn:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
children |
Sí | - | Define los IDs de los elementos secundarios. |
justify |
No | start |
Define la disposición de los elementos secundarios a lo largo del eje principal (verticalmente). Uno de los siguientes valores: "start", "center", "end", "spaceBetween", "spaceAround", "spaceEvenly". |
align |
No | stretch |
Es la alineación horizontal de los elementos secundarios ("start", "center", "end", "stretch"). |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Peso de diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialColumn",
"children": [
"demo-column-header",
"demo-column-content",
"demo-column-footer"
],
"justify": "start",
"align": "stretch"
},
{
"id": "demo-column-header",
"component": "MaterialText",
"text": "Header",
"usageHint": "h2"
},
{
"id": "demo-column-content",
"component": "MaterialText",
"text": "Content goes here",
"usageHint": "body"
},
{
"id": "demo-column-footer",
"component": "MaterialText",
"text": "Footer",
"usageHint": "caption"
}
]
MaterialDialog
Contenedor de diálogo del menú de Material Design.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialDialog:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
open |
No | false |
Indica si el diálogo está abierto. Puede ser un literal booleano o una referencia de vinculación de datos. |
title |
No | - | Es el título del diálogo. |
disableClose |
No | false |
Indica si el usuario puede cerrar el diálogo haciendo clic fuera de él o presionando Escape. |
width |
No | - | Ancho del diálogo (p.ej., "500px"). |
height |
No | - | Es la altura del diálogo (p.ej., "400px"). |
children |
Sí | - | Define los IDs de los elementos secundarios. |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
ariaDescribedby |
No | - | Identifica el elemento (o los elementos) que describe el elemento actual. Se usa para la accesibilidad. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Es el peso del diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialColumn",
"children": [
"open-button",
"confirmation-dialog"
],
"justify": "start",
"align": "start"
},
{
"id": "open-button",
"component": "MaterialButton",
"label": "Delete Item",
"variant": "raised",
"action": {
"event": {
"name": "requestDelete"
}
}
},
{
"id": "confirmation-dialog",
"component": "MaterialDialog",
"open": {
"path": "/app/dialogOpen"
},
"title": "Delete Confirmation",
"children": [
"dialog-layout"
]
},
{
"id": "dialog-layout",
"component": "MaterialColumn",
"children": [
"dialog-text",
"dialog-actions"
],
"justify": "start",
"align": "stretch"
},
{
"id": "dialog-text",
"component": "MaterialText",
"text": "Are you sure you want to permanently delete this item?"
},
{
"id": "dialog-actions",
"component": "MaterialRow",
"children": [
"cancel-button",
"confirm-button"
],
"justify": "end",
"align": "center"
},
{
"id": "cancel-button",
"component": "MaterialButton",
"label": "Cancel",
"variant": "basic",
"action": {
"event": {
"name": "closeDialog"
}
}
},
{
"id": "confirm-button",
"component": "MaterialButton",
"label": "Delete",
"variant": "raised",
"action": {
"event": {
"name": "confirmDelete"
}
}
}
]
MaterialDivider
Línea divisoria de Material Design.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialDivider:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
inset |
No | false |
Indica si el divisor está insertado. |
vertical |
No | false |
Indica si el divisor es vertical. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Es el peso del diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialColumn",
"children": [
"text-above",
"divider",
"text-below"
],
"justify": "start",
"align": "stretch"
},
{
"id": "text-above",
"component": "MaterialText",
"text": "This is the content above the divider."
},
{
"id": "divider",
"component": "MaterialDivider",
"inset": false,
"vertical": false
},
{
"id": "text-below",
"component": "MaterialText",
"text": "This is the content below the divider."
}
]
MaterialExpansionPanel
Es un contenedor del panel de expansión de Material Design.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialExpansionPanel:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
title |
No | - | Es el título que se muestra en el encabezado del panel de expansión. |
description |
No | - | Es la descripción que se muestra en el encabezado del panel de expansión. |
expanded |
No | false |
Indica si el panel está expandido. Puede ser un literal booleano o una referencia de vinculación de datos. |
disabled |
No | false |
Indica si el panel de expansión está inhabilitado. |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
ariaDescribedby |
No | - | Identifica el elemento (o los elementos) que describe el elemento actual. Se usa para la accesibilidad. |
children |
Sí | - | Define los IDs de los elementos secundarios. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Es el peso del diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialExpansionPanel",
"title": "Advanced Options",
"description": "Configure advanced settings",
"expanded": false,
"children": [
"panel-content"
]
},
{
"id": "panel-content",
"component": "MaterialText",
"text": "Advanced settings content goes here"
}
]
MaterialGridList
Es un componente de contenedor de A2UI para el diseño de cuadrícula. Usa la lista de cuadrícula de Angular Material para organizar los componentes secundarios en tarjetas.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialGridList:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
children |
Sí | - | Define los IDs de los elementos secundarios. |
cols |
No | 2 |
Cantidad de columnas en la lista de cuadrícula. Puede ser un número literal o una referencia de vinculación de datos. |
rowHeight |
No | 1:1 |
Es la proporción de altura de la fila o la altura fija (p.ej., "100px"). Puede ser un literal de string o una referencia de vinculación de datos. |
gutterSize |
No | 1px |
Es el tamaño del canalón de la cuadrícula. Puede ser un literal de cadena o una referencia de vinculación de datos. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Peso del diseño para el elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialGridList",
"cols": 2,
"rowHeight": "1:1",
"gutterSize": "8px",
"children": [
"card-a",
"card-b",
"card-c",
"card-d"
]
},
{
"id": "card-a",
"component": "MaterialCard",
"children": [
"text-a"
]
},
{
"id": "text-a",
"component": "MaterialText",
"text": "Card A"
},
{
"id": "card-b",
"component": "MaterialCard",
"children": [
"text-b"
]
},
{
"id": "text-b",
"component": "MaterialText",
"text": "Card B"
},
{
"id": "card-c",
"component": "MaterialCard",
"children": [
"text-c"
]
},
{
"id": "text-c",
"component": "MaterialText",
"text": "Card C"
},
{
"id": "card-d",
"component": "MaterialCard",
"children": [
"text-d"
]
},
{
"id": "text-d",
"component": "MaterialText",
"text": "Card D"
}
]
MaterialRow
Es un contenedor de diseño que organiza los elementos de forma horizontal según los lineamientos de Material.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialRow:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
children |
Sí | - | Define los IDs de los elementos secundarios. |
justify |
No | start |
Define la disposición de los elementos secundarios a lo largo del eje principal (horizontalmente). Puede ser uno de los siguientes valores: "start", "center", "end", "spaceAround", "spaceBetween", "spaceEvenly". |
align |
No | stretch |
Alineación vertical de los elementos secundarios ("start", "center", "end", "stretch"). |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Es el peso del diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialRow",
"children": [
"item-icon",
"item-details",
"item-action"
],
"justify": "spaceBetween",
"align": "center"
},
{
"id": "item-icon",
"component": "MaterialIcon",
"icon": "shopping_bag",
"color": "primary"
},
{
"id": "item-details",
"component": "MaterialColumn",
"children": [
"item-title",
"item-subtitle"
],
"justify": "start",
"align": "start"
},
{
"id": "item-title",
"component": "MaterialText",
"text": "Premium Wireless Headphones",
"usageHint": "subtitle1"
},
{
"id": "item-subtitle",
"component": "MaterialText",
"text": "$299.99 \u2022 Active Noise Cancelling",
"usageHint": "caption"
},
{
"id": "item-action",
"component": "MaterialButton",
"label": "Buy Now",
"variant": "raised",
"action": {
"event": {
"name": "buy_clicked"
}
}
}
]
Componentes de contenido del catálogo de Material
Los componentes de visualización y contenido se usan para presentar información, contenido multimedia y estado al usuario.
MaterialBadge
Muestra una insignia de Material Design sobre un elemento secundario.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialBadge:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
text |
No | - | Es el contenido de texto que se mostrará en la insignia. |
color |
No | - | Es la paleta de colores de la insignia ("primary", "accent", "warn"). |
position |
No | above after |
Posición de la insignia en relación con el contenedor ("above after", "above before", "below after", "below before"). |
size |
No | medium |
Es el tamaño de la insignia ("small", "medium", "large"). |
overlap |
No | true |
Indica si la insignia debe superponerse a su contenedor. |
disabled |
No | false |
Indica si la insignia está inhabilitada. |
hidden |
No | false |
Indica si la insignia está oculta. |
description |
No | - | Es la descripción accesible de la insignia. |
children |
Sí | - | Define los IDs de los elementos secundarios. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Es el peso del diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialBadge",
"text": "42",
"color": "warn",
"children": [
"badge-content"
]
},
{
"id": "badge-content",
"component": "MaterialButton",
"label": "Notifications"
}
]
MaterialIcon
Muestra un ícono de Material Design.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialIcon:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
icon |
Sí | - | Nombre del ícono de Material que se mostrará. |
color |
No | - | Es la paleta de colores del ícono (principal, de acento, de advertencia). |
tooltip |
No | - | Es el texto opcional de la información sobre herramientas que se muestra cuando se coloca el cursor sobre el elemento o cuando se enfoca. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Peso del diseño para el elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialIcon",
"icon": "favorite",
"color": "warn"
}
]
MaterialImage
Es un componente de A2UI para renderizar una imagen en un contexto de Material Design. Admite esquinas redondeadas, relación de aspecto y propiedades de ajuste de objetos.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialImage:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
url |
Sí | - | Es la URL de la imagen que se mostrará. |
alt |
No | - | Es el texto alternativo accesible para la imagen. |
fit |
No | - | Especifica cómo se debe cambiar el tamaño de la imagen para que se ajuste a su contenedor. Puede ser uno de los siguientes: "fill", "contain", "cover", "scaleDown", "none". |
width |
No | - | Es el ancho personalizado de la imagen (p.ej., "100px", "100%"). |
height |
No | - | Altura personalizada de la imagen (p.ej., "100px", "100%"). |
aspectRatio |
No | - | Relación de aspecto personalizada de la imagen (p.ej., "16/9", "1"). |
roundedCorners |
No | false |
Indica si se deben aplicar las esquinas redondeadas estándar de Material Design. |
borderRadius |
No | - | Es el radio del borde personalizado de la imagen (p.ej., "50%", "12px"). Anula roundedCorners. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Peso del diseño para el elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialImage",
"url": "https://www.gstatic.com/marketing-cms/assets/images/c5/3a/200414104c669203c62270f7884f/google-wordmarks-2x.webp=n-w100-h32-fcrop64=1,00000000ffffffff-rw",
"width": "100px",
"height": "32px",
"fit": "scaleDown",
"roundedCorners": true,
"alt": "Google Wordmark"
}
]
MaterialProgressBar
Wrapper de A2UI para el componente de barra de progreso de Angular Material. Admite los modos determinado, indeterminado, de búfer y de consulta.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialProgressBar:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
value |
No | 0 |
Es el valor de progreso (de 0 a 100) en los modos determinado y de búfer. |
mode |
No | determinate |
Es el modo de la barra de progreso. Uno de los siguientes: "determinate", "indeterminate", "buffer", "query". |
bufferValue |
No | 0 |
Es el valor del búfer (de 0 a 100) en el modo de búfer. |
color |
No | - | Paleta de colores de la barra de progreso ("primary", "accent", "warn"). |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Es el peso del diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialProgressBar",
"mode": "determinate",
"value": 75,
"bufferValue": 90,
"color": "primary",
"ariaLabel": "Loading progress"
}
]
MaterialProgressSpinner
Es un wrapper de A2UI para el componente de indicador de progreso de Angular Material. Admite modos determinados e indeterminados, y dimensiones personalizadas.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialProgressSpinner:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
value |
No | 0 |
Es el valor de progreso (de 0 a 100) en el modo determinado. |
mode |
No | determinate |
Es el modo del selector. Uno de los siguientes: "determinate", "indeterminate". |
diameter |
No | 40 |
Es el diámetro del ícono giratorio de progreso en píxeles. |
strokeWidth |
No | 4 |
Es el ancho del trazo del ícono giratorio en píxeles. |
color |
No | - | Es la paleta de colores del indicador de progreso ("primary", "accent", "warn"). |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Es el peso del diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialProgressSpinner",
"mode": "indeterminate",
"diameter": 40,
"strokeWidth": 4,
"color": "accent",
"ariaLabel": "Loading data"
}
]
MaterialTable
Wrapper de A2UI para el componente de tabla de Angular Material. Renderiza datos estructurados en columnas y filas.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialTable:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
columns |
Sí | - | Un array de definiciones de columnas, cada una de las cuales especifica un objeto {header, field}. |
rows |
Sí | - | Es la lista de filas de datos. Puede ser un array de registros de par clave-valor o una referencia de vinculación de datos. |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
caption |
No | - | Es una leyenda o descripción accesible para la tabla. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Peso de diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialTable",
"columns": [
{
"header": "ID",
"field": "id"
},
{
"header": "Name",
"field": "name"
},
{
"header": "Role",
"field": "role"
}
],
"rows": {
"path": "/company/users"
}
}
]
MaterialText
Muestra texto con la tipografía de Material.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialText:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
text |
Sí | - | Es el texto que se mostrará. Puede ser una cadena literal o una referencia a un valor en el modelo de datos. |
usageHint |
No | body |
Es una sugerencia para el estilo de tipografía. Uno de los siguientes: "h1", "h2", "h3", "h4", "h5", "subtitle1", "subtitle2", "body1", "body2", "body", "caption". |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Es el peso del diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialText",
"text": "Headline Large (H1)",
"usageHint": "h1"
}
]
Componentes de navegación del catálogo de Material
Los componentes de navegación y acción permiten a los usuarios realizar acciones o navegar entre vistas.
MaterialButton
Botón de Material Design.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialButton:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
label |
No | - | Es la etiqueta de texto que se mostrará en el botón. |
leadingIcon |
No | - | Es el nombre del ícono de material que se mostrará antes de la etiqueta. |
trailingIcon |
No | - | Es el nombre del ícono de Material que se mostrará después de la etiqueta. |
variant |
No | basic |
Es la variante de estilo del botón. Uno de los siguientes: "raised", "flat", "stroked", "icon", "fab", "mini-fab", "basic". |
appearance |
No | - | Es la apariencia visual del botón. Uno de los siguientes: "text", "filled", "elevated", "outlined", "tonal". |
disabled |
No | false |
Indica si el botón está inhabilitado. |
action |
No | - | Es la acción que se enviará cuando se haga clic en el botón. |
tooltip |
No | - | Es el texto de la información que se mostrará cuando se coloque el cursor sobre el elemento. |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
disableRipple |
No | false |
Indica si el efecto de ondulación al hacer clic está inhabilitado. |
extended |
No | false |
Indica si el botón se extiende con espacio adicional para la etiqueta o el ícono. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Peso de diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialButton",
"label": "Raised Button",
"variant": "raised",
"tooltip": "Click me!",
"action": {
"event": {
"name": "click"
}
}
}
]
MaterialIconButton
Es un botón de ícono de Material Design.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialIconButton:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
icon |
Sí | - | Es el nombre del ícono de Material que se mostrará. |
action |
Sí | - | Es la acción del cliente que se enviará cuando se haga clic en el botón de ícono. |
ariaLabel |
Sí | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad, ya que el botón solo contiene un ícono. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
ariaDescribedby |
No | - | Identifica el elemento (o los elementos) que describe el elemento actual. Se usa para la accesibilidad. |
color |
No | - | Es la paleta de colores del botón (principal, de acento, de advertencia). |
disabled |
No | false |
Indica si el botón está inhabilitado. |
tooltip |
No | - | Es el texto de la información que se mostrará cuando se coloque el cursor sobre el elemento. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Es el peso del diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialIconButton",
"icon": "favorite",
"ariaLabel": "Favorite",
"color": "warn",
"action": {
"event": {
"name": "click"
}
}
}
]
MaterialMenu
Es un wrapper de A2UI para el componente Menu de Angular Material. Proporciona un botón de activación y elementos de menú desplegable.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialMenu:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
label |
No | - | Es la etiqueta de texto que se muestra en el botón de activación del menú. |
icon |
No | - | Nombre del ícono de Material que se mostrará en el botón de activación. |
disabled |
No | false |
Indica si el botón de activación del menú está inhabilitado. |
value |
No | - | Es el valor seleccionado actualmente. Puede ser un literal de string o una referencia de vinculación de datos. |
options |
Sí | - | Es la lista de opciones de menú disponibles. Puede ser un array de objetos {label, value} o una referencia de vinculación de datos. |
action |
No | - | Es la acción del cliente que se enviará cuando se seleccione un elemento del menú. |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
ariaDescribedby |
No | - | Identifica el elemento (o los elementos) que describe el elemento actual. Se usa para la accesibilidad. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Es el peso del diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialMenu",
"label": "Options",
"icon": "more_vert",
"value": {
"path": "/menu/selectedOption"
},
"options": [
{
"label": "Settings",
"value": "settings"
},
{
"label": "Help",
"value": "help"
},
{
"label": "Logout",
"value": "logout"
}
],
"action": {
"event": {
"name": "menuSelection"
}
}
}
]
MaterialTabs
Wrapper de A2UI para el componente Angular Material Tabs. Renderiza la navegación por pestañas y administra la selección de pestañas activas.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialTabs:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
tabs |
Sí | - | Es un array de definiciones de pestañas, cada una de las cuales especifica un objeto {label, content}. |
activeTab |
No | 0 |
Es el índice basado en 0 de la pestaña activa actualmente. Puede ser un número literal o una referencia de vinculación de datos. |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Es el peso del diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialTabs",
"activeTab": {
"path": "/app/selectedTab"
},
"tabs": [
{
"label": "Overview",
"content": "Overview content"
},
{
"label": "Details",
"content": "Details content"
},
{
"label": "Reviews",
"content": "Reviews content"
}
]
}
]
Componentes de entrada del catálogo de Material
Los componentes de entrada y formulario permiten que los usuarios ingresen texto, realicen selecciones y activen o desactiven opciones.
MaterialButtonToggle
Grupo de botones de activación de Material Design para una sola selección.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialButtonToggle:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
value |
No | - | Es el valor seleccionado actualmente. Puede ser una cadena literal o una referencia a un valor en el modelo de datos. |
options |
Sí | - | Es la lista de opciones disponibles para la selección. Puede ser un array de objetos {label, value} o una referencia de vinculación de datos. |
disabled |
No | false |
Indica si el grupo de botones para activar o desactivar está inhabilitado. |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
ariaDescribedby |
No | - | Identifica el elemento (o los elementos) que describe el elemento actual. Se usa para la accesibilidad. |
appearance |
No | standard |
Es el estilo de apariencia del grupo de botones para activar o desactivar. Puede ser "legacy" o "standard". |
vertical |
No | false |
Indica si el grupo de botones para activar o desactivar está dispuesto verticalmente. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Peso del diseño para el elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialButtonToggle",
"ariaLabel": "Text alignment",
"value": {
"path": "/user/alignment"
},
"options": [
{
"label": "Left",
"value": "left"
},
{
"label": "Center",
"value": "center"
},
{
"label": "Right",
"value": "right"
}
]
}
]
MaterialCheckbox
Es el componente de casilla de verificación de Material Design para el estado booleano. Para una accesibilidad óptima, proporciona una etiqueta descriptiva o usa ariaLabel para las tecnologías de accesibilidad.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialCheckbox:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
label |
No | - | Es la etiqueta de texto que se muestra junto a la casilla de verificación. |
checked |
No | false |
Indica si la casilla de verificación está marcada. Puede ser un valor booleano literal o una referencia a un valor en el modelo de datos. |
disabled |
No | false |
Indica si la casilla de verificación está inhabilitada. |
color |
No | - | Es la paleta de colores de la casilla de verificación ("primary", "accent", "warn"). |
labelPosition |
No | after |
Posición de la etiqueta en relación con la casilla de verificación ("before", "after"). |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
ariaDescribedby |
No | - | Identifica el elemento (o los elementos) que describe el elemento actual. Se usa para la accesibilidad. |
tooltip |
No | - | Es el texto de la información que se mostrará cuando se coloque el cursor sobre el elemento. |
checks |
No | - | Un array de reglas de validación (cada una con una condición booleana dinámica y un mensaje de error) que se evalúan de forma reactiva para determinar la validez de la entrada. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Es el peso del diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialCheckbox",
"label": "Agree to Terms and Conditions",
"ariaLabel": "Agree to Terms and Conditions",
"checked": {
"path": "/user/agreedToTerms"
},
"color": "primary"
}
]
MaterialChips
Componente de cuadro de lista de chips de Material Design para una sola selección.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialChips:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
value |
No | - | Es el valor seleccionado actualmente. Puede ser una cadena literal o una referencia a un valor en el modelo de datos. |
options |
Sí | - | Es la lista de opciones de chips. Puede ser un array de objetos {label, value} o una referencia de vinculación de datos. |
disabled |
No | false |
Indica si el cuadro de lista de chips está inhabilitado. |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
ariaDescribedby |
No | - | Identifica el elemento (o los elementos) que describe el elemento actual. Se usa para la accesibilidad. |
action |
No | - | Es la acción que se enviará cuando se seleccione un chip. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Es el peso del diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialChips",
"ariaLabel": "Filter by status",
"value": {
"path": "/user/status"
},
"options": [
{
"label": "All",
"value": "all"
},
{
"label": "Active",
"value": "active"
},
{
"label": "Completed",
"value": "completed"
}
]
}
]
MaterialDatepicker
Componente de selector de fecha de Material Design.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialDatepicker:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
label |
No | - | Es la etiqueta del campo del selector de fecha. |
placeholder |
No | - | Es el texto del marcador de posición. |
value |
No | - | Es la fecha seleccionada actual en formato ISO. |
ariaDescribedby |
No | - | Identifica el elemento (o los elementos) que describe el elemento actual. Se usa para la accesibilidad. |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
disabled |
No | false |
Indica si el selector de fecha está inhabilitado. |
checks |
No | - | Un array de reglas de validación (cada una con una condición booleana dinámica y un mensaje de error) que se evalúan de forma reactiva para determinar la validez de la entrada. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Peso del diseño para el elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialDatepicker",
"label": "Appointment Date",
"placeholder": "Choose a date",
"ariaLabel": "Appointment Date",
"value": {
"path": "/appointment/date"
}
}
]
MaterialInput
Campo de entrada de texto de Material Design.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialInput:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
label |
No | - | Es la etiqueta del campo de entrada. |
placeholder |
No | - | Es el texto del marcador de posición. |
value |
No | - | Es el valor actual de la entrada. Puede ser una cadena literal o una referencia a un valor en el modelo de datos. |
disabled |
No | false |
Indica si la entrada está inhabilitada. |
name |
No | - | Es el nombre del elemento de entrada. |
readonly |
No | false |
Indica si la entrada es de solo lectura. |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
ariaDescribedby |
No | - | Identifica el elemento (o los elementos) que describe el elemento actual. Se usa para la accesibilidad. |
type |
No | text |
Es el tipo de control de entrada que se mostrará. Uno de los siguientes: "text", "number", "email", "tel", "date". No se permite "contraseña". |
validationRegexp |
No | - | Es la expresión regular para la validación de entrada. |
checks |
No | - | Un array de reglas de validación (cada una con una condición booleana dinámica y un mensaje de error) que se evalúan de forma reactiva para determinar la validez de la entrada. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Peso del diseño para el elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialInput",
"label": "First Name",
"placeholder": "John",
"value": {
"path": "/user/firstName"
}
}
]
MaterialRadioButton
Es un wrapper de A2UI para el componente de botón de selección de Angular Material. Admite la selección única de una lista de opciones dentro de un grupo de botones de selección.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialRadioButton:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
value |
No | - | Es el valor seleccionado actualmente. Puede ser un literal de string o una referencia de vinculación de datos. |
options |
Sí | - | Es la lista de opciones de radio disponibles. Puede ser un array de objetos {label, value} o una referencia de vinculación de datos. |
disabled |
No | false |
Indica si el grupo de botones de selección está inhabilitado. |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
ariaDescribedby |
No | - | Identifica el elemento (o los elementos) que describe el elemento actual. Se usa para la accesibilidad. |
color |
No | - | Paleta de colores del botón de selección ("primary", "accent", "warn"). |
labelPosition |
No | after |
Es la posición de la etiqueta en relación con el botón de selección. Uno de los siguientes: "before", "after". |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Es el peso del diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialRadioButton",
"ariaLabel": "Delivery options",
"value": {
"path": "/order/deliverySpeed"
},
"options": [
{
"label": "Standard",
"value": "standard"
},
{
"label": "Express",
"value": "express"
},
{
"label": "Next Day",
"value": "nextDay"
}
],
"color": "primary",
"labelPosition": "after"
}
]
MaterialSelect
Componente de selección (menú desplegable) de Material Design para una sola selección. Para obtener una accesibilidad óptima, siempre proporciona una etiqueta descriptiva o usa aria-label para las tecnologías de accesibilidad.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialSelect:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
label |
No | - | Es la etiqueta del campo de selección. |
placeholder |
No | - | Es el texto de marcador de posición que se muestra cuando no se selecciona ningún valor. |
value |
No | - | Es el valor seleccionado actual. Puede ser una cadena literal o una referencia a un valor en el modelo de datos. |
options |
Sí | - | Es la lista de opciones disponibles para la selección. Puede ser un array de objetos {label, value} o una referencia de vinculación de datos. |
disabled |
No | false |
Indica si el componente de selección está inhabilitado. |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
ariaDescribedby |
No | - | Identifica el elemento (o los elementos) que describe el elemento actual. Se usa para la accesibilidad. |
checks |
No | - | Un array de reglas de validación (cada una con una condición booleana dinámica y un mensaje de error) que se evalúan de forma reactiva para determinar la validez de la entrada. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Peso de diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialSelect",
"label": "Favorite Color",
"placeholder": "Choose a color",
"ariaLabel": "Select your favorite color",
"value": {
"path": "/user/favoriteColor"
},
"options": [
{
"label": "Red",
"value": "red"
},
{
"label": "Green",
"value": "green"
},
{
"label": "Blue",
"value": "blue"
}
]
}
]
MaterialSlideToggle
Wrapper de A2UI para el componente de activación/desactivación de diapositivas de Angular Material. Admite vinculaciones de activación o desactivación booleanas y atributos de accesibilidad personalizados.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialSlideToggle:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
label |
No | - | Es la etiqueta de texto que se muestra junto al botón de activación. |
checked |
No | false |
Indica si el botón de activación deslizante está marcado. Puede ser un literal booleano o una referencia de vinculación de datos. |
disabled |
No | false |
Indica si el botón de activación deslizante está inhabilitado. |
required |
No | false |
Indica si el botón de activación deslizante es obligatorio. |
color |
No | - | Paleta de colores de la activación (puede ser "primary", "accent" o "warn"). |
labelPosition |
No | after |
Posición de la etiqueta en relación con el botón de activación ("before", "after"). |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
ariaDescribedby |
No | - | Identifica el elemento (o los elementos) que describe el elemento actual. Se usa para la accesibilidad. |
tooltip |
No | - | Es el texto de la información que se mostrará cuando se coloque el cursor sobre el elemento. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Es el peso del diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialSlideToggle",
"label": "Enable notifications",
"ariaLabel": "Enable notifications toggle",
"checked": {
"path": "/settings/notifications"
},
"color": "accent",
"labelPosition": "after"
}
]
MaterialSlider
Wrapper de A2UI para el componente de control deslizante de Angular Material. Admite la selección de valores numéricos y restricciones de rango.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialSlider:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
value |
No | 0 |
Es el valor actual del control deslizante. Puede ser un número literal o una referencia de vinculación de datos. |
min |
No | 0 |
Es el valor mínimo del control deslizante. |
max |
No | 100 |
Es el valor máximo del control deslizante. |
step |
No | 1 |
Es el incremento del paso del control deslizante. |
disabled |
No | false |
Indica si el control deslizante está inhabilitado. |
color |
No | - | Paleta de colores del control deslizante ("primary", "accent", "warn"). |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
ariaDescribedby |
No | - | Identifica el elemento (o los elementos) que describe el elemento actual. Se usa para la accesibilidad. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Peso del diseño para el elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialSlider",
"min": 0,
"max": 100,
"step": 5,
"value": {
"path": "/audio/volume"
},
"color": "primary",
"ariaLabel": "Volume adjustment"
}
]
MaterialTimepicker
Wrapper de A2UI para el componente Timepicker de Angular Material. Admite la selección de hora y la integración de campos de formulario.
En la siguiente tabla, se describen las propiedades disponibles para el componente MaterialTimepicker:
| Propiedad | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|
label |
No | - | Es la etiqueta de texto del campo del selector de fecha y hora. |
placeholder |
No | - | Es el texto del marcador de posición. |
value |
No | - | Es la hora seleccionada actualmente en formato ISO. Puede ser un literal de cadena o una referencia de vinculación de datos. |
ariaLabel |
No | - | Texto discernible para lectores de pantalla. Se recomienda para la accesibilidad cuando no hay una etiqueta visible. |
ariaLabelledby |
No | - | Identifica el elemento (o los elementos) que etiqueta el elemento actual. Se usa para la accesibilidad. |
ariaDescribedby |
No | - | Identifica el elemento (o los elementos) que describe el elemento actual. Se usa para la accesibilidad. |
disabled |
No | false |
Indica si el selector de hora está inhabilitado. |
checks |
No | - | Un array de reglas de validación (cada una con una condición booleana dinámica y un mensaje de error) que se evalúan de forma reactiva para determinar la validez de la entrada. |
style |
No | - | Son los estilos intercalados que se aplicarán al elemento. |
weight |
No | - | Es el peso del diseño del elemento cuando se coloca en un contenedor flexible. |
[
{
"id": "root",
"component": "MaterialTimepicker",
"label": "Set Alarm",
"placeholder": "Select time",
"ariaLabel": "Set Alarm Time",
"value": {
"path": "/alarm/time"
}
}
]
Componentes básicos del catálogo
En esta sección, se proporciona una referencia de los componentes básicos del catálogo de A2UI disponibles.
Archivos de esquema de catálogo básicos
Para obtener más información sobre estas propiedades, consulta los siguientes recursos:
- Definición básica del catálogo de v0.9 (esquema JSON)
- Definición del catálogo estándar v0.8 (esquema JSON)
Propiedades comunes básicas del catálogo
Todos los componentes, independientemente de su tipo específico, comparten un conjunto de propiedades comunes que se pueden configurar:
| Propiedad | Obligatorio | Descripción |
|---|---|---|
id |
Sí | Es un identificador único para el componente dentro de la plataforma actual. |
accessibility |
No | Atributos para mejorar la accesibilidad, como etiquetas y roles |
weight |
No |
Es un valor que se usa en los diseños de Row o Column para controlar cuánto espacio ocupa el componente en relación con sus elementos secundarios, de manera similar a flex-grow.
|
Componentes básicos del diseño de catálogos
Los componentes de diseño se usan para estructurar y organizar otros componentes dentro de la interfaz de usuario. Están disponibles los siguientes componentes de diseño:
Fila
Un Row es un componente de diseño que se usa para organizar sus componentes secundarios de forma horizontal, de izquierda a derecha. Actúa como un contenedor en el que puedes colocar varios
componentes uno al lado del otro. El espaciado y el posicionamiento exactos de los elementos secundarios dentro de la fila se pueden controlar con las propiedades justify/distribution y align/alignment.
En la siguiente tabla, se describen las propiedades disponibles para el componente Row:
| Propiedad | Tipo/valores | Descripción |
|---|---|---|
children |
v0.9: Array de IDs de componentes o definición de plantilla v0.8: explicitList o template
|
Son los componentes secundarios que se organizarán de forma horizontal dentro de la fila. |
justify (v0.9)distribution (v0.8)
|
start, center, end,
spaceBetween, spaceAround, spaceEvenly |
Controla cómo se distribuyen los componentes secundarios a lo largo del eje horizontal. |
align (v0.9)alignment (v0.8)
|
start, center, end, stretch |
Controla cómo se alinean los componentes secundarios en el eje vertical. |
JSON v0.9
{
"id": "toolbar",
"component": "Row",
"children": ["btn1", "btn2", "btn3"],
"justify": "spaceBetween",
"align": "center"
}
JSON v0.8
{
"id": "toolbar",
"component": {
"Row": {
"children": { "explicitList": ["btn1", "btn2", "btn3"] },
"distribution": "spaceBetween",
"alignment": "center"
}
}
}
Columna
Un Column es un componente de diseño que se usa para organizar sus componentes secundarios de forma vertical, de arriba hacia abajo. Actúa como un contenedor en el que puedes colocar varios componentes uno debajo del otro. El espaciado y el posicionamiento exactos de los elementos secundarios dentro de la columna se pueden controlar con las propiedades justify/distribution y align/alignment.
En la siguiente tabla, se describen las propiedades disponibles para el componente Column:
| Propiedad | Tipo/valores | Descripción |
|---|---|---|
children |
v0.9: Array de IDs de componentes o definición de plantilla v0.8: explicitList o template
|
Son los componentes secundarios que se organizarán verticalmente dentro de la columna. |
justify (v0.9)distribution (v0.8)
|
start, center, end, spaceBetween, spaceAround, spaceEvenly
|
Controla cómo se distribuyen los componentes secundarios a lo largo del eje vertical. |
align (v0.9)alignment (v0.8)
|
start, center, end, stretch
|
Controla cómo se alinean los componentes secundarios en el eje horizontal. |
JSON v0.9
{
"id": "content",
"component": "Column",
"children": ["header", "body", "footer"],
"justify": "start",
"align": "stretch"
}
JSON de la versión 0.8
{
"id": "content",
"component": {
"Column": {
"children": { "explicitList": ["header", "body", "footer"] },
"distribution": "start",
"alignment": "stretch"
}
}
}
Lista
Un List es un componente de diseño que muestra una lista de elementos desplazable. Admite elementos secundarios estáticos y plantillas dinámicas para generar elementos a partir de datos.
La dirección de desplazamiento puede ser vertical u horizontal.
En la siguiente tabla, se describen las propiedades disponibles para el componente List:
| Propiedad | Tipo/valores | Descripción |
|---|---|---|
children |
v0.9: Array de IDs de componentes o definición de plantilla v0.8: explicitList o template
|
Son los elementos que se mostrarán en la lista. |
direction |
vertical, horizontal |
Es la dirección de desplazamiento de la lista. |
align (v0.9)alignment (v0.8)
|
start, center, end, stretch |
Controla cómo se alinean los elementos de la lista en el eje transversal. |
JSON v0.9
{
"id": "message-list",
"component": "List",
"children": {
"componentId": "message-item",
"path": "/messages"
},
"direction": "vertical"
}
JSON de la versión 0.8
{
"id": "message-list",
"component": {
"List": {
"children": {
"template": {
"dataBinding": "/messages",
"componentId": "message-item"
}
},
"direction": "vertical"
}
}
}
Componentes básicos de la visualización del catálogo
Los componentes de visualización se usan para presentar información al usuario. Están disponibles los siguientes componentes de visualización:
Texto
El componente Text muestra contenido de texto y admite varias sugerencias de estilo, como encabezados, subtítulos y texto del cuerpo.
En la siguiente tabla, se describen las propiedades disponibles para el componente Text:
| Propiedad | Tipo/valores | Descripción |
|---|---|---|
text |
v0.9: Cadena o DataBindingv0.8: BoundValue
|
Es el contenido de texto que se mostrará. |
variant (v0.9)usageHint (v0.8)
|
h1, h2, h3, h4, h5, caption, body |
Es una sugerencia de diseño para el texto. |
JSON v0.9
{
"id": "title",
"component": "Text",
"text": "Welcome to A2UI",
"variant": "h1"
}
JSON v0.8
{
"id": "title",
"component": {
"Text": {
"text": { "literalString": "Welcome to A2UI" },
"usageHint": "h1"
}
}
}
Imagen
Un componente Image muestra imágenes desde una URL especificada y proporciona opciones para controlar cómo la imagen se ajusta a su contenedor.
En la siguiente tabla, se describen las propiedades disponibles para el componente Image:
| Propiedad | Tipo/valores | Descripción |
|---|---|---|
url |
v0.9: String o DataBindingv0.8: BoundValue
|
Es la URL de la imagen que se mostrará. |
fit |
String | Cómo debe ajustarse la imagen a su contenedor (p. ej., "cover") |
variant (v0.9)usageHint (v0.8)
|
String | Sugerencia para variantes de uso o estilo (p.ej., "hero"). |
JSON v0.9
{
"id": "hero",
"component": "Image",
"url": "https://example.com/hero.png",
"fit": "cover",
"variant": "hero"
}
JSON v0.8
{
"id": "hero",
"component": {
"Image": {
"url": { "literalString": "https://example.com/hero.png" },
"fit": "cover",
"usageHint": "hero"
}
}
}
Ícono
El componente Icon muestra íconos de un conjunto estándar definido en el catálogo.
En la siguiente tabla, se describen las propiedades disponibles para el componente Icon:
| Propiedad | Tipo/valores | Descripción |
|---|---|---|
name |
v0.9: Cadena o DataBindingv0.8: BoundValue
|
Es el nombre del ícono que se mostrará (p.ej., "check"). |
JSON v0.9
{
"id": "check-icon",
"component": "Icon",
"name": "check"
}
JSON v0.8
{
"id": "check-icon",
"component": {
"Icon": {
"name": { "literalString": "check" }
}
}
}
Línea divisora
El componente Divider muestra una línea de separación visual, que puede ser horizontal o vertical.
En la siguiente tabla, se describen las propiedades disponibles para el componente Divider:
| Propiedad | Tipo/valores | Descripción |
|---|---|---|
axis |
horizontal, vertical |
Es la orientación de la línea divisoria. |
JSON v0.9
{
"id": "separator",
"component": "Divider",
"axis": "horizontal"
}
JSON v0.8
{
"id": "separator",
"component": {
"Divider": {
"axis": "horizontal"
}
}
}
Componentes interactivos básicos del catálogo
Los componentes interactivos te permiten interactuar con la aplicación, por ejemplo, proporcionar entradas o activar acciones. Están disponibles los siguientes componentes interactivos:
Botón
El componente Button es un elemento en el que se puede hacer clic y que activa una acción o un evento específicos dentro de la aplicación.
En la siguiente tabla, se describen las propiedades disponibles para el componente Button:
| Propiedad | Tipo/valores | Descripción |
|---|---|---|
child |
ID del componente | ID del componente que se mostrará dentro del botón (p.ej., un componente de texto). |
variant (v0.9)primary (v0.8)
|
v0.9: Cadena (p.ej., "primary")v0.8: Booleano |
Es el tipo de diseño o énfasis que se aplica al botón. |
action |
v0.9: Objeto de evento (p.ej., clave "event") v0.8: Objeto de acción (p.ej., clave "name") |
Es la acción que se activará cuando se haga clic en el botón. |
JSON v0.9
{
"id": "submit-btn",
"component": "Button",
"child": "submit-text",
"variant": "primary",
"action": {
"event": {
"name": "submit_form"
}
}
}
JSON v0.8
{
"id": "submit-btn",
"component": {
"Button": {
"child": "submit-text",
"primary": true,
"action": {
"name": "submit_form"
}
}
}
}
TextField
El componente TextField es interactivo y te permite ingresar texto. También admite la validación opcional.
En la siguiente tabla, se describen las propiedades disponibles para el componente
TextField:
| Propiedad | Tipo/valores | Descripción |
|---|---|---|
label |
v0.9: String v0.8: BoundValue
|
Es la etiqueta del campo de texto. |
value (v0.9)text (v0.8)
|
v0.9: String o DataBindingv0.8: BoundValue
|
Es el contenido de texto o la ruta de vinculación. |
textFieldType |
shortText, longText, number, obscured, date |
Es el tipo de campo de texto. |
validationRegexp |
String | Expresión regular para la validación. |
JSON v0.9
{
"id": "email-input",
"component": "TextField",
"label": "Email Address",
"value": { "path": "/user/email" },
"textFieldType": "shortText"
}
JSON de la versión 0.8
{
"id": "email-input",
"component": {
"TextField": {
"label": { "literalString": "Email Address" },
"text": { "path": "/user/email" },
"textFieldType": "shortText"
}
}
}
CheckBox
El componente CheckBox es un botón de activación booleano que te permite activar o desactivar un parámetro de configuración.
En la siguiente tabla, se describen las propiedades disponibles para el componente CheckBox:
| Propiedad | Tipo/valores | Descripción |
|---|---|---|
label |
v0.9: String v0.8: BoundValue
|
Es la etiqueta de la casilla de verificación. |
value |
v0.9: DataBinding (booleano)v0.8: BoundValue (booleano)
|
Es el valor de la casilla de verificación (verdadero o falso) o la ruta de vinculación. |
JSON v0.9
{
"id": "terms-checkbox",
"component": "CheckBox",
"label": "I agree to the terms",
"value": { "path": "/form/agreedToTerms" }
}
JSON v0.8
{
"id": "terms-checkbox",
"component": {
"CheckBox": {
"label": { "literalString": "I agree to the terms" },
"value": { "path": "/form/agreedToTerms" }
}
}
}
Control deslizante
El componente Slider te permite seleccionar un valor numérico de un rango específico.
En la siguiente tabla, se describen las propiedades disponibles para el componente Slider:
| Propiedad | Tipo/valores | Descripción |
|---|---|---|
value |
v0.9: DataBinding (número)v0.8: BoundValue (número)
|
Es el valor actual del control deslizante o la ruta vinculada. |
minValue |
Número | Es el valor mínimo del rango. |
maxValue |
Número | Es el valor máximo del rango. |
JSON de la versión 0.9
{
"id": "volume",
"component": "Slider",
"value": { "path": "/settings/volume" },
"minValue": 0,
"maxValue": 100
}
JSON v0.8
{
"id": "volume",
"component": {
"Slider": {
"value": { "path": "/settings/volume" },
"minValue": 0,
"maxValue": 100
}
}
}
DateTimeInput
El componente DateTimeInput te permite elegir una fecha y hora.
En la siguiente tabla, se describen las propiedades disponibles para el componente
DateTimeInput:
| Propiedad | Tipo/valores | Descripción |
|---|---|---|
value |
v0.9: DataBindingv0.8: BoundValue
|
Es el valor de fecha y hora seleccionado o la ruta de vinculación. |
enableDate |
Booleano | Indica si se debe habilitar la selección de fecha. |
enableTime |
Booleano | Indica si se debe habilitar la selección de hora. |
JSON v0.9
{
"id": "date-picker",
"component": "DateTimeInput",
"value": { "path": "/booking/date" },
"enableDate": true,
"enableTime": false
}
JSON v0.8
{
"id": "date-picker",
"component": {
"DateTimeInput": {
"value": { "path": "/booking/date" },
"enableDate": true,
"enableTime": false
}
}
}
ChoicePicker (v0.9) / MultipleChoice (v0.8)
Selecciona una o más opciones de una lista. Ten en cuenta que este componente se renombró como ChoicePicker en la versión 0.9, mientras que en la versión 0.8 se llamaba MultipleChoice.
En la siguiente tabla, se describen las propiedades disponibles:
| Propiedad | Tipo/valores | Descripción |
|---|---|---|
options |
Array de objetos | Es la lista de opciones que puede seleccionar el usuario. Cada opción debe tener una etiqueta (cadena en v0.9, BoundValue en v0.8) y un valor. |
selections |
v0.9: DataBindingv0.8: BoundValue
|
Los valores seleccionados o la ruta de vinculación. |
maxAllowedSelections |
Número | Es la cantidad máxima de selecciones permitidas. |
JSON v0.9
{
"id": "country-select",
"component": "ChoicePicker",
"options": [
{ "label": "USA", "value": "us" },
{ "label": "Canada", "value": "ca" }
],
"selections": { "path": "/form/country" },
"maxAllowedSelections": 1
}
JSON de la versión 0.8
{
"id": "country-select",
"component": {
"MultipleChoice": {
"options": [
{ "label": { "literalString": "USA" }, "value": "us" },
{ "label": { "literalString": "Canada" }, "value": "ca" }
],
"selections": { "path": "/form/country" },
"maxAllowedSelections": 1
}
}
}
Componentes básicos del contenedor del catálogo
Los componentes de contenedor se usan para agrupar y organizar otros componentes. Los siguientes componentes de contenedor están disponibles:
Tarjeta
Un componente Card es un contenedor con elevación, un borde y padding que agrupa contenido relacionado.
En la siguiente tabla, se describen las propiedades disponibles para el componente Card:
| Propiedad | Tipo/valores | Descripción |
|---|---|---|
child |
ID del componente | Es el ID del componente que se mostrará dentro de la tarjeta. |
JSON v0.9
{
"id": "info-card",
"component": "Card",
"child": "card-content"
}
JSON v0.8
{
"id": "info-card",
"component": {
"Card": {
"child": "card-content"
}
}
}
Modal
Un componente Modal es un diálogo de superposición que activa un componente de punto de entrada.
En la siguiente tabla, se describen las propiedades disponibles para el componente Modal:
| Propiedad | Tipo/valores | Descripción |
|---|---|---|
entryPointChild |
ID del componente | Es el ID del componente que activa el modal (p.ej., un botón). |
contentChild |
ID del componente | ID del componente que se mostrará como contenido de la ventana modal. |
JSON de la versión 0.9
{
"id": "confirmation-modal",
"component": "Modal",
"entryPointChild": "open-modal-btn",
"contentChild": "modal-content"
}
JSON de la versión 0.8
{
"id": "confirmation-modal",
"component": {
"Modal": {
"entryPointChild": "open-modal-btn",
"contentChild": "modal-content"
}
}
}
Pestañas
Un componente Tabs proporciona una interfaz con pestañas para organizar el contenido en paneles intercambiables.
En la siguiente tabla, se describen las propiedades disponibles para el componente Tabs:
| Propiedad | Tipo/valores | Descripción |
|---|---|---|
tabItems |
Array de objetos | Es la lista de pestañas. Cada elemento debe tener un title (cadena en la versión 0.9, BoundValue en la versión 0.8) y un child (ID de componente). |
JSON v0.9
{
"id": "settings-tabs",
"component": "Tabs",
"tabItems": [
{ "title": "General", "child": "general-tab" },
{ "title": "Privacy", "child": "privacy-tab" }
]
}
JSON de la versión 0.8
{
"id": "settings-tabs",
"component": {
"Tabs": {
"tabItems": [
{ "title": { "literalString": "General" }, "child": "general-tab" },
{ "title": { "literalString": "Privacy" }, "child": "privacy-tab" }
]
}
}
}
Resumen de las diferencias de versiones
Los nombres y las propiedades de los componentes son prácticamente los mismos en todas las versiones. Las diferencias estructurales son las siguientes:
| Aspecto | v0.8 | v0.9 |
|---|---|---|
| Wrapper de componentes | "component": { "Text": { ... } } |
"component": "Text", ...props |
| Valores de string | { "literalString": "Hello" } |
"Hello" |
| Secundario | { "explicitList": ["a", "b"] } |
["a", "b"] |
| Vinculación de datos | { "path": "/data" } |
{ "path": "/data" } (igual) |
| Estilo del texto o la imagen | usageHint |
variant |
| Estilo de botones | primary: true |
variant: "primary" |
| Formato de acción | { "name": "..." } |
{ "event": { "name": "..." } } |
| Componente de elección | MultipleChoice |
ChoicePicker |
| Alineación del diseño | distribution, alignment |
justify, align |
| Valor de TextField | text |
value |
Guía de evolución
Para obtener información sobre cómo pasar de la versión 0.8 a la 0.9, consulta la guía de evolución de la versión 0.8 a la 0.9.
Ejemplos reales
Para ver todos los componentes en acción, haz lo siguiente:
cd samples/client/angular
yarn start gallery
¿Qué sigue?
- Cómo definir tu propio catálogo: Crea tus propios componentes
- Guía de temas: Aplica diseño a los componentes para que coincidan con tu marca