Skip to content

Switch

BSwitch es un interruptor on/off compatible con v-model booleano. Semánticamente es un checkbox con role="switch". Renderiza label.b-switch > input[type="checkbox"] + span.track > span.thumb + span.label; el input real está visualmente oculto y el track/thumb se estilan desde CSS.


Importación

js
import { BSwitch } from '@bedrock/core/vue';
scss
@use '@bedrock/core/switch';

Props

PropTipoDefaultDescripción
modelValueBooleanfalseEstado del interruptor. Vinculado con v-model.
disabledBooleanfalseDeshabilita el interruptor.
nameStringnullAtributo name del input.
idStringnullid del input.

Slots

SlotDescripción
defaultTexto del label, a la derecha del interruptor.

Atributos data-*

AtributoDescripción
data-checkedPresente cuando está activado.
data-disabledEstado deshabilitado.

Emits

EventoPayloadDescripción
update:modelValueBooleanEmitido en cada evento change. Permite usar v-model.

Ejemplos de uso

Básico

html
<BSwitch v-model="notificaciones">Recibir notificaciones</BSwitch>

Dentro de BField

html
<BField>
  <template #label>Privacidad</template>
  <BSwitch v-model="perfilPublico">Perfil público</BSwitch>
  <template #hint>Cualquiera podrá ver tu perfil.</template>
</BField>

Dentro de BField, el switch hereda id, aria-describedby, aria-invalid y disabled del campo.

Publicado bajo licencia MIT.