Radio Group

We use the @headlessui/vue radio group components.

Basic example

Radio Groups are built using the RadioGroup, RadioGroupLabel, and RadioGroupOption components.

WARNING

Ensure you change the components definition to include Hui as a prefix, as some component names conflict with native HTML element names and will not work.

<template>
    <hui-radio-group v-model="plan">
        <hui-radio-group-label>Plan</hui-radio-group-label>
        
        <hui-radio-group-option v-slot="{ checked }" value="startup">
            <span :class="checked ? 'bg-blue-200' : ''">Startup</span>
        </hui-radio-group-option>
        
        <hui-radio-group-option v-slot="{ checked }" value="business">
            <span :class="checked ? 'bg-blue-200' : ''">Business</span>
        </hui-radio-group-option>
        
        <hui-radio-group-option v-slot="{ checked }" value="enterprise">
            <span :class="checked ? 'bg-blue-200' : ''">Enterprise</span>
        </hui-radio-group-option>
    </hui-radio-group>
</template>

<script>
import { RadioGroup, RadioGroupLabel, RadioGroupOption } from '@headlessui/vue';

export default {
    components: {
        HuiRadioGroup: RadioGroup,
        HuiRadioGroupLabel: RadioGroupLabel,
        HuiRadioGroupOption: RadioGroupOption,
    },
};

</script>

Further reading

Refer to @headlessui/vue for more examples and documentation.