Radio
Custom-styled radio buttons with list layout.
Usage
<label class="zui-radio">
<input type="radio" name="fruit" value="apple" checked />
Apple
</label>
<label class="zui-radio">
<input type="radio" name="fruit" value="banana" />
Banana
</label>
<label class="zui-radio">
<input type="radio" name="fruit" value="cherry" />
Cherry
</label>import { Radio } from '@mrmartineau/zui/react'
<Radio name="fruit" value="apple" defaultChecked>Apple</Radio>
<Radio name="fruit" value="banana">Banana</Radio>
<Radio name="fruit" value="cherry">Cherry</Radio>---
import { Radio } from '@mrmartineau/zui/astro'
---
<Radio name="fruit" value="apple" checked>Apple</Radio>
<Radio name="fruit" value="banana">Banana</Radio>
<Radio name="fruit" value="cherry">Cherry</Radio>import { Radio } from '@mrmartineau/zui/solid'
<Radio name="fruit" value="apple" defaultChecked>Apple</Radio>
<Radio name="fruit" value="banana">Banana</Radio>
<Radio name="fruit" value="cherry">Cherry</Radio><script lang="ts">
import { Radio } from '@mrmartineau/zui/svelte'
let fruit = $state('apple')
</script>
<Radio name="fruit" value="apple" bind:group={fruit}>Apple</Radio>
<Radio name="fruit" value="banana" bind:group={fruit}>Banana</Radio>
<Radio name="fruit" value="cherry" bind:group={fruit}>Cherry</Radio><template>
<Radio name="fruit" value="apple" checked>Apple</Radio>
<Radio name="fruit" value="banana">Banana</Radio>
<Radio name="fruit" value="cherry">Cherry</Radio>
</template>
<script setup>
import { Radio } from '@mrmartineau/zui/vue'
</script>Radio List
Use .zui-radio-list for vertical grouping.
<fieldset class="zui-field-set">
<legend class="zui-field-legend">Favourite colour</legend>
<div class="zui-radio-list">
<label class="zui-radio">
<input type="radio" name="colour" value="red" />
Red
</label>
<label class="zui-radio">
<input type="radio" name="colour" value="blue" checked />
Blue
</label>
<label class="zui-radio">
<input type="radio" name="colour" value="green" />
Green
</label>
</div>
</fieldset>import { Radio, FieldSet, FieldLegend } from '@mrmartineau/zui/react'
<FieldSet>
<FieldLegend>Favourite colour</FieldLegend>
<div className="zui-radio-list">
<Radio name="colour" value="red">Red</Radio>
<Radio name="colour" value="blue" defaultChecked>Blue</Radio>
<Radio name="colour" value="green">Green</Radio>
</div>
</FieldSet>---
import { Radio, FieldSet, FieldLegend } from '@mrmartineau/zui/astro'
---
<FieldSet>
<FieldLegend>Favourite colour</FieldLegend>
<div class="zui-radio-list">
<Radio name="colour" value="red">Red</Radio>
<Radio name="colour" value="blue" checked>Blue</Radio>
<Radio name="colour" value="green">Green</Radio>
</div>
</FieldSet>import { Radio, FieldSet, FieldLegend } from '@mrmartineau/zui/solid'
<FieldSet>
<FieldLegend>Favourite colour</FieldLegend>
<div class="zui-radio-list">
<Radio name="colour" value="red">Red</Radio>
<Radio name="colour" value="blue" defaultChecked>Blue</Radio>
<Radio name="colour" value="green">Green</Radio>
</div>
</FieldSet><script lang="ts">
import { Radio, FieldSet, FieldLegend } from '@mrmartineau/zui/svelte'
let colour = $state('blue')
</script>
<FieldSet>
<FieldLegend>Favourite colour</FieldLegend>
<div class="zui-radio-list">
<Radio name="colour" value="red" bind:group={colour}>Red</Radio>
<Radio name="colour" value="blue" bind:group={colour}>Blue</Radio>
<Radio name="colour" value="green" bind:group={colour}>Green</Radio>
</div>
</FieldSet><template>
<FieldSet>
<FieldLegend>Favourite colour</FieldLegend>
<div class="zui-radio-list">
<Radio name="colour" value="red">Red</Radio>
<Radio name="colour" value="blue" checked>Blue</Radio>
<Radio name="colour" value="green">Green</Radio>
</div>
</FieldSet>
</template>
<script setup>
import { Radio, FieldSet, FieldLegend } from '@mrmartineau/zui/vue'
</script>Disabled
<label class="zui-radio">
<input type="radio" name="disabled" disabled checked />
Disabled checked
</label>
<label class="zui-radio">
<input type="radio" name="disabled2" disabled />
Disabled unchecked
</label>import { Radio } from '@mrmartineau/zui/react'
<Radio name="disabled" disabled defaultChecked>Disabled checked</Radio>
<Radio name="disabled2" disabled>Disabled unchecked</Radio>---
import { Radio } from '@mrmartineau/zui/astro'
---
<Radio name="disabled" disabled checked>Disabled checked</Radio>
<Radio name="disabled2" disabled>Disabled unchecked</Radio>import { Radio } from '@mrmartineau/zui/solid'
<Radio name="disabled" disabled defaultChecked>Disabled checked</Radio>
<Radio name="disabled2" disabled>Disabled unchecked</Radio><script lang="ts">
import { Radio } from '@mrmartineau/zui/svelte'
</script>
<Radio name="disabled" disabled checked>Disabled checked</Radio>
<Radio name="disabled2" disabled>Disabled unchecked</Radio><template>
<Radio name="disabled" disabled checked>Disabled checked</Radio>
<Radio name="disabled2" disabled>Disabled unchecked</Radio>
</template>
<script setup>
import { Radio } from '@mrmartineau/zui/vue'
</script>