The radio-group
field represents a group of radio inputs. There are two variants that can be used, "radio" and "button", and can rendered in a "horizontal" or "vertical" direction. The "radio" variant in a "horizontal" direction is used by default.
The "radio" variant can be rendered in a vertical direction like so.
This is what the radio group "button" variant will look like.
The "button" variant can also have a "vertical" direction as well.
Option | Description |
---|---|
component | The name of the plugin component. Always 'radio-group'. |
name | The path to some value in the data being edited. |
options | An array of strings or Options to select from. |
direction | An optional string indicating whether to render the radios in a "horizontal" or "vertical" orientation. This will default to "horizontal" if no value is passed. (Optional) |
variant | An optional string indicating whether the "radio" or "button" variant should be used. This will default to "radio" if no value is passed. (Optional) |
label | A human readable label for the field. Defaults to the name. (Optional) |
description | Description that expands on the purpose of the field or prompts a specific action. (Optional) |
interface RadioGroupField {
name: string
component: string
label?: string
description?: string
options: (Option | string)[]
direction?: 'horizontal' | 'vertical'
variant?: 'radio' | 'button'
}
type Option = {
value: string
label: string
}
These interfaces only show the keys unique to the radio group field.
Visit the Field Config docs for a complete list of options.
Below is an example of how a radio group field could be used to choose a rating of a customer review.
const ReviewForm = {
fields: [
{
component: 'radio-group',
direction: 'vertical',
name: 'frontmatter.rating',
label: 'Rating',
description: 'Choose a rating for this review',
options: [
{ label: '★', value: 'one_star' },
{ label: '★★', value: 'two_star' },
{ label: '★★★', value: 'three_star' },
{ label: '★★★★', value: 'four_star' },
{ label: '★★★★★', value: 'five_star' },
],
},
// ...
],
}
Below is an example of how a radio group field could be used to set the amount of padding for a section on a page.
const SectionForm = {
fields: [
{
component: 'radio-group',
variant: 'button',
name: 'padding',
label: 'Padding',
description: 'Choose the amount of padding for this section',
options: [
{ label: 'XS', value: 'xs' },
{ label: 'SM', value: 'sm' },
{ label: 'MD', value: 'md' },
{ label: 'LG', value: 'lg' },
{ label: 'XL', value: 'xl' },
],
},
// ...
],
}