Tag
Un tag es una representación visual de un atributo, una persona o un recurso. Puede descartarse y, con la prop interactive, se convierte en un tag de interacción que tiene una acción primaria propia. Usa TagGroup para agrupar varios tags.
Uso
<script>
import { Tag, TagGroup } from 'fluentui-svelte';
import { CalendarMonthRegular } from 'fluentui-icons-svelte';
</script>
<Tag icon={CalendarMonthRegular}>Primary text</Tag>
<TagGroup aria-label="Fruits">
<Tag interactive value="apple">Apple</Tag>
<Tag interactive value="banana">Banana</Tag>
</TagGroup> Apariencia
Usa la prop appearance para alternar entre filled, outline y brand. El valor por defecto es filled.
Deshabilitado
Usa la prop disabled para indicar que no se puede interactuar con un tag. Se bloquea todo, incluido el control para descartarlo.
Descartar
Un tag descartable muestra un ícono para descartar y puede recibir el foco: al hacer clic sobre él, o al presionar Enter, Espacio, Delete o Backspace, se descarta. El tag solo informa el descarte mediante onDismiss, así que elimínalo de tus datos. Asegúrate de gestionar correctamente el foco cuando se hayan descartado todos los tags.
Nombre accesible
Informa a los lectores de pantalla sobre la acción de descartar. Puedes dejar que el ícono de descarte nombre el botón, con dismissLabel (Dismiss por defecto), o nombrar el propio tag con aria-label o aria-labelledby, y el ícono de descarte se oculta de las tecnologías de asistencia.
Interactivo (acción primaria)
Un tag interactivo tiene una acción primaria, el onclick del tag, y, cuando es descartable, un botón de descarte independiente. Úsalo para un tag que tenga una acción primaria, y un tag simple para uno que no la tenga. El botón de descarte se nombra a partir de ambos botones mediante aria-labelledby. Usa primaryProps y dismissProps para acceder a los botones: un id personalizado en el botón primario es seguido por el botón de descarte, y aria-label junto con aria-labelledby en undefined le da al botón de descarte un nombre que se basta por sí solo.
Ícono
Usa la prop icon para renderizar un ícono personalizado antes del texto.
Media
Usa media para renderizar un elemento visual antes del texto, como un Avatar. El snippet recibe el shape actual; pásalo al avatar para mantener sus formas sincronizadas. Un componente visual recibe shape como prop.
Texto secundario
Usa la prop secondaryText para añadir una segunda línea de texto que describa o complemente el texto principal. Acepta un string o un snippet.
Seleccionado
Usa la prop selected para pintar un tag como seleccionado. Dentro de un TagGroup, un tag interactivo toma su estado de selección de los selectedValues del grupo.
Forma
Usa la prop shape para renderizar tags circulares, redondeados o cuadrados. Por defecto es circular.
Tamaño
Un tag admite los tamaños medium, small y extra-small. El valor por defecto es medium.
API de TagGroup
Un grupo de tags es un contenedor para varios tags. Entrega su size, appearance, disabled y dismissible a los tags que no definen los suyos, mantiene los valores de los tags interactivos seleccionados en selectedValues y permite mover el foco entre los tags con las flechas del teclado, también hacia arriba y abajo cuando el grupo ocupa varias filas.
Uso
El rol por defecto del grupo es toolbar. Cuando ninguno de los tags es accionable, usa role="list" en el grupo y role="listitem" en cada tag.
Deshabilitado
Un grupo deshabilitado deshabilita toda la colección de tags.
Descartar
Un grupo puede hacer que sus tags sean descartables e informa cada descarte mediante onDismiss con el value del tag. El grupo no elimina el tag: hazlo en tus datos. El foco pasa a un tag vecino cuando se descarta uno, así que el teclado permanece en el grupo; asegúrate de gestionar correctamente el foco cuando se hayan descartado todos los tags.
Seleccionar
Al activar el botón primario de un tag interactivo se alterna su value en selectedValues, y onTagSelect lo informa. Elimina tú mismo de selectedValues un valor descartado.
Tamaños
Un grupo puede definir el tamaño por defecto de todos sus tags. Admite medium, small y extra-small. El valor por defecto es medium.
Props de Tag
| Name | Type | Default | Description |
|---|---|---|---|
appearance | PillButtonAppearance | 'filled' | El tag puede tener apariencia filled, outline o brand. Recurre a la appearance del TagGroup en el que está. |
size | 'extra-small' | 'small' | 'medium' | 'medium' | El tag tiene tres tamaños. Recurre a size del TagGroup en el que está. |
shape | 'circular' | 'rounded' | 'square' | 'circular' | El tag puede tener forma circular, redondeada o cuadrada. Hereda shape de su TagGroup. |
disabled | boolean | false | Indica que no se puede interactuar con el tag. Un tag dentro de un TagGroup deshabilitado también queda deshabilitado. |
selected | boolean | false | Pinta el tag como seleccionado. Dentro de un TagGroup, un tag interactivo toma su estado seleccionado de selectedValues del grupo. |
dismissible | boolean | false | Muestra un icono de descarte y permite descartar el tag. Recurre a dismissible del TagGroup en el que está. Un tag que no es interactivo se convierte en un único botón: activarlo, o pulsar Delete o Backspace sobre él, lo descarta. |
interactive | boolean | false | Renderiza el tag como un tag de interacción: un botón principal que lleva la acción, seguido, cuando el tag es descartable, de un botón de descarte separado. Úsalo para un tag con acción principal y un tag simple para uno que no la tiene. |
value | string | Identifica el tag dentro de un TagGroup. Es lo que reportan onDismiss y onTagSelect. Recurre a un id generado. | |
icon | Snippet | Component | Un icono que se muestra antes del texto. No lo uses junto con media. | |
media | Snippet | Component | Un elemento visual antes del texto, normalmente un Avatar. Recibe el shape actual del tag; pásalo al componente visual. No usar junto con icon. | |
secondaryText | string | Snippet | Una segunda línea de texto que describe o complementa el texto principal. | |
dismissIcon | Snippet | Component | DismissRegular | El icono del control para descartar. |
dismissLabel | string | 'Dismiss' | El nombre accesible del control para descartar. Cuando el tag se nombra con aria-label o aria-labelledby, el icono de descarte se oculta a las tecnologías de asistencia. |
onDismiss | (e: MouseEvent | KeyboardEvent, value: string) => void | Se llama cuando se descarta el tag. Los datos son del consumidor: el tag no se elimina a sí mismo. | |
onclick | (e: MouseEvent) => void | Se llama cuando se activa el tag. En un tag interactivo es el clic del botón principal. | |
onkeydown | (e: KeyboardEvent) => void | Se llama cuando se pulsa una tecla sobre el tag. | |
primaryButtonAttributes | HTMLButtonAttributes | Atributos del botón principal de un tag interactivo, por ejemplo aria-haspopup. Si le das un id personalizado, el botón de descarte se nombra a partir de él. | |
dismissButtonAttributes | HTMLButtonAttributes | Atributos del botón de descarte de un tag interactivo. Usa aria-label junto con aria-labelledby: undefined para darle un nombre que se sostenga por sí solo. | |
children | Snippet | El texto principal del tag. | |
ref bindable | HTMLElement | null | La referencia del DOM del elemento del tag. | |
| HTML Attributes |
Props de TagGroup
| Name | Type | Default | Description |
|---|---|---|---|
shape | 'circular' | 'rounded' | 'square' | Forma de los tags que no definen una propia. | |
size | 'extra-small' | 'small' | 'medium' | 'medium' | El tamaño que reciben los tags del grupo que no definen el suyo. |
appearance | PillButtonAppearance | La apariencia que reciben los tags del grupo que no definen la suya. | |
disabled | boolean | false | Deshabilita todos los tags del grupo. |
dismissible | boolean | Hace descartables los tags del grupo que no definen la suya. | |
selectedValues bindable | string[] | [] | Los valores de los tags interactivos seleccionados. |
onTagSelect | (e: MouseEvent, data: { value: string; selected: boolean }) => void | Se llama cuando se activa un tag interactivo del grupo, con el valor que alterna. | |
onDismiss | (e: MouseEvent | KeyboardEvent, data: { value: string }) => void | Se llama cuando se descarta un tag del grupo. Los datos son del consumidor: el grupo no elimina el tag. | |
role | HTMLAttributes<HTMLDivElement>['role'] | 'toolbar' | El rol del grupo. Usa list junto con role="listitem" en cada tag cuando ninguno es accionable. |
children | Snippet | Los tags del grupo. | |
ref bindable | HTMLDivElement | null | La referencia del DOM del elemento del grupo. | |
| HTML Attributes |

