enes

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.

Primary text

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.

Media o ícono, no ambos

No uses media junto con icon en el mismo tag.

Primary text

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.

Primary text Secondary text

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.

Circular Rounded Square

Tamaño

Un tag admite los tamaños medium, small y extra-small. El valor por defecto es medium.

Medium Medium with icon
Small Small with icon
Extra small Extra small with icon

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.

Tag 1 Tag 2 Tag 3

Deshabilitado

Un grupo deshabilitado deshabilita toda la colección de tags.

Tag 1 Tag 2 Tag 3

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.

Selected values:

Selected values:

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

NameTypeDefaultDescription
appearancePillButtonAppearance'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.
disabledbooleanfalseIndica que no se puede interactuar con el tag. Un tag dentro de un TagGroup deshabilitado también queda deshabilitado.
selectedbooleanfalsePinta el tag como seleccionado. Dentro de un TagGroup, un tag interactivo toma su estado seleccionado de selectedValues del grupo.
dismissiblebooleanfalseMuestra 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.
interactivebooleanfalseRenderiza 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.
valuestringIdentifica el tag dentro de un TagGroup. Es lo que reportan onDismiss y onTagSelect. Recurre a un id generado.
iconSnippet | ComponentUn icono que se muestra antes del texto. No lo uses junto con media.
mediaSnippet | ComponentUn elemento visual antes del texto, normalmente un Avatar. Recibe el shape actual del tag; pásalo al componente visual. No usar junto con icon.
secondaryTextstring | SnippetUna segunda línea de texto que describe o complementa el texto principal.
dismissIconSnippet | ComponentDismissRegularEl icono del control para descartar.
dismissLabelstring'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) => voidSe llama cuando se descarta el tag. Los datos son del consumidor: el tag no se elimina a sí mismo.
onclick(e: MouseEvent) => voidSe llama cuando se activa el tag. En un tag interactivo es el clic del botón principal.
onkeydown(e: KeyboardEvent) => voidSe llama cuando se pulsa una tecla sobre el tag.
primaryButtonAttributesHTMLButtonAttributesAtributos 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.
dismissButtonAttributesHTMLButtonAttributesAtributos 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.
childrenSnippetEl texto principal del tag.
ref bindableHTMLElement | nullLa referencia del DOM del elemento del tag.
HTML Attributes

Props de TagGroup

NameTypeDefaultDescription
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.
appearancePillButtonAppearanceLa apariencia que reciben los tags del grupo que no definen la suya.
disabledbooleanfalseDeshabilita todos los tags del grupo.
dismissiblebooleanHace descartables los tags del grupo que no definen la suya.
selectedValues bindablestring[][]Los valores de los tags interactivos seleccionados.
onTagSelect(e: MouseEvent, data: { value: string; selected: boolean }) => voidSe llama cuando se activa un tag interactivo del grupo, con el valor que alterna.
onDismiss(e: MouseEvent | KeyboardEvent, data: { value: string }) => voidSe llama cuando se descarta un tag del grupo. Los datos son del consumidor: el grupo no elimina el tag.
roleHTMLAttributes<HTMLDivElement>['role']'toolbar'El rol del grupo. Usa list junto con role="listitem" en cada tag cuando ninguno es accionable.
childrenSnippetLos tags del grupo.
ref bindableHTMLDivElement | nullLa referencia del DOM del elemento del grupo.
HTML Attributes
Editar este documento Ver como Markdown