enes

SegmentedControl

Un grupo compacto de segmentos para elegir una vista u opción.

Uso

<script>
  import { Label, SegmentedControl, SegmentedControlItem } from 'fluentui-svelte';
  let selectedValue = $state('day');
</script>

<Label label="View">
<SegmentedControl name="view" bind:selectedValue>
  <SegmentedControlItem value="day">Day</SegmentedControlItem>
  <SegmentedControlItem value="week">Week</SegmentedControlItem>
  <SegmentedControlItem value="month">Month</SegmentedControlItem>
</SegmentedControl>
</Label>

Las flechas mueven el foco y Espacio o Enter seleccionan. Activa selectOnFocus para seleccionar al navegar. Tab entra en el radio seleccionado. Usa Label, aria-label o aria-labelledby para nombrar el grupo.

Texto, iconos y contenido mixto

Usa etiquetas breves, iconos con nombres accesibles o iconos junto al texto. La prop icon acepta un componente de icono Fluent o un snippet de Svelte. Cada opción necesita un valor único dentro del grupo.

Solo texto
Solo iconos
Texto e iconos

Anchos iguales o ajustados al contenido

Los segmentos tienen el mismo ancho por defecto. Establece equalWidth en false para ajustar cada segmento a su contenido.

Anchos iguales
Ajustar al contenido

Tamaños

Elige small para filas compactas, medium para controles estándar o large cuando hay más espacio. Todos los segmentos del grupo comparten el tamaño.

Pequeño
Mediano
Grande

Indicador de selección

Activa hideIndicator para ocultar el indicador de selección.

Selección al enfocar

Las flechas mueven el foco sin cambiar la selección. Activa selectOnFocus para seleccionar el segmento enfocado.

Opciones y grupos deshabilitados

Deshabilita una opción para mantenerla visible cuando no está disponible, o deshabilita todo el grupo. Los radios deshabilitados se omiten en la navegación por teclado y no participan en FormData ni en la validación.

Opción deshabilitada
Grupo deshabilitado

Uso de Label

Envuelve SegmentedControl en Label para nombrar el grupo automáticamente. Cada opción conserva su texto o aria-label. Un aria-label o aria-labelledby explícito en el grupo tiene prioridad. Label muestra la marca visual de campo obligatorio; establece required en SegmentedControl para activar la validación.

Envío, validación y reinicio

Establece name con el nombre del campo que espera el formulario. Solo se envía el radio marcado y habilitado. required impide el envío hasta seleccionar una opción. Reiniciar restaura la selección que tenía el grupo al crearse, incluida una selección inicialmente vacía, y actualiza bind:selectedValue.

Envía el formulario para ver su FormData.

Formularios externos

Establece form con el id de un formulario situado en otra parte de la página. Todos los radios pertenecen a ese formulario y participan en su envío, validación y reinicio.

Enlace y eventos de cambio

Enlaza selectedValue para leer o actualizar la selección. onSelectionChange recibe el evento change nativo y el nuevo valor de texto. Seleccionar la misma opción, actualizar el enlace desde código o reiniciar el formulario no ejecuta el callback.

day

SegmentedControl

NameTypeDefaultDescription
ref bindableHTMLDivElement | nullLa referencia DOM del control.
selectedValue bindablestringEl valor del elemento seleccionado. Un valor vacío deja todos los elementos sin seleccionar.
namestringEl nombre de campo que comparten todos los radios. Por defecto se genera un nombre único.
formstringEl id del formulario al que pertenecen los radios cuando están fuera de ese formulario.
requiredbooleanfalseExige seleccionar una opción antes de enviar el formulario.
validationMessagestringMensaje de validación nativo personalizado cuando falta una selección obligatoria.
hideIndicatorbooleanfalseOculta el indicador de acento debajo del segmento seleccionado.
selectOnFocusbooleanfalseSelecciona el segmento enfocado al navegar con las flechas.
onSelectionChange(event: Event, value: string) => voidSe ejecuta cuando la interacción del usuario cambia la selección.
size'small' | 'medium' | 'large''medium'El tamaño de cada segmento.
equalWidthbooleantrueAsigna el mismo ancho a todos los segmentos. Desactívalo para ajustar cada segmento a su contenido.
disabledbooleanfalseDeshabilita todos los segmentos.
disableTabspotbooleanfalseDesactiva la navegación por teclado de tabspot.
HTML Attributes

SegmentedControlItem

NameTypeDefaultDescription
ref bindableHTMLInputElement | nullLa referencia DOM del radio nativo.
valuestringUn valor único que identifica este segmento dentro del control.
iconSnippet | ComponentUn icono opcional. Asigna un nombre accesible con aria-label a los elementos que solo tienen icono.
disabledbooleanfalseDeshabilita este segmento.
childrenSnippetEl contenido de la etiqueta del segmento.
HTML Attributes
Editar este documento Ver como Markdown