Skip to content

Radio

BRadio es un radio button con su label, y BRadioGroup los agrupa compartiendo name y v-model. El grupo renderiza div[role="radiogroup"].b-radio-group; cada radio renderiza label.b-radio > input[type="radio"] + span.label.


Importación

js
import { BRadio, BRadioGroup } from '@bedrock/core/vue';
scss
@use '@bedrock/core/radio';

BRadioGroup — Props

PropTipoDefaultDescripción
modelValueString|Number|BooleanValor seleccionado del grupo. Vinculado con v-model.
nameStringautoAtributo name compartido. Si no se indica, se genera uno único.
disabledBooleanfalseDeshabilita todos los radios del grupo.
directionStringnullhorizontal coloca los radios en fila. Por defecto columna.

BRadio — Props

PropTipoDefaultDescripción
valueString|Number|BooleanRequerido. Valor que representa esta opción.
modelValueString|Number|BooleanSolo para uso suelto (sin grupo). Vinculado con v-model.
disabledBooleanfalseDeshabilita este radio.
nameStringnullSobreescribe el name heredado del grupo.
idStringnullid del input.

Atributos data-*

AtributoElementoDescripción
data-checked.b-radioPresente en la opción seleccionada.
data-disabled.b-radio / .b-radio-groupEstado deshabilitado.
data-direction.b-radio-groupDirección del grupo.

Ejemplos de uso

Grupo con v-model

html
<BRadioGroup v-model="plan">
  <BRadio value="free">Gratuito</BRadio>
  <BRadio value="pro">Pro</BRadio>
  <BRadio value="enterprise" disabled>Enterprise</BRadio>
</BRadioGroup>

Horizontal

html
<BRadioGroup v-model="respuesta" direction="horizontal">
  <BRadio :value="true">Sí</BRadio>
  <BRadio :value="false">No</BRadio>
</BRadioGroup>

Dentro de BField

html
<BField>
  <template #label>Plan</template>
  <BRadioGroup v-model="plan">
    <BRadio value="free">Gratuito</BRadio>
    <BRadio value="pro">Pro</BRadio>
  </BRadioGroup>
  <template #hint>Puedes cambiar de plan en cualquier momento.</template>
</BField>

Dentro de BField, el grupo hereda aria-describedby y aria-invalid del campo.

Publicado bajo licencia MIT.