What this family solves
Native single-selection family with a RadioGroupField component, a canonical RadioGroupField path, and thin purpose-radio wrappers for common one-of-many choices.
Marwes documentation
Native single-selection family with a RadioGroupField component, a canonical RadioGroupField path, and thin purpose-radio wrappers for common one-of-many choices.
Native single-selection family with a RadioGroupField component, a canonical RadioGroupField path, and thin purpose-radio wrappers for common one-of-many choices.
Choose the purpose wrapper that matches the meaning; use RadioGroupField as the deliberate primitive escape hatch.
Binary yes/no choice with explicit semantics
Numeric rating scale generated as an accessible radio group
General labeled option selection with purpose metadata
Base radio group for custom option sets; the deliberate escape hatch
Choose an adapter in the verified examples. The inventory below reflects each framework package exactly.
@marwes-ui/reactOptionRadioGroup, RadioGroupField, RatingRadioGroup, YesNoRadioGroup
OptionRadioGroupProps, RadioGroupFieldOption, RadioGroupFieldProps, RatingRadioGroupProps, YesNoRadioGroupProps
@marwes-ui/vueOptionRadioGroup, RadioGroupField, RatingRadioGroup, YesNoRadioGroup
OptionRadioGroupProps, RadioGroupFieldOption, RadioGroupFieldProps, RatingRadioGroupProps, YesNoRadioGroupProps
@marwes-ui/svelteOptionRadioGroup, RadioGroupField, RatingRadioGroup, YesNoRadioGroup
OptionRadioGroupProps, RadioGroupFieldOption, RadioGroupFieldProps, RatingRadioGroupProps, YesNoRadioGroupProps
These examples come from the same fixtures verified by the repository checks.
import { RadioGroupField } from "@marwes-ui/react"
import { useState } from "react"
export function Example() {
const [value, setValue] = useState("1")
return (
<RadioGroupField
name="options"
label="Group label"
options={[
{ value: "1", label: "Label" },
{ value: "2", label: "Label" },
{ value: "3", label: "Label" },
]}
value={value}
onChange={setValue}
/>
)
}<script setup lang="ts">
import { ref } from "vue"
import { RadioGroupField } from "@marwes-ui/vue"
const value = ref("1")
</script>
<template>
<RadioGroupField
name="options"
label="Group label"
:options="[
{ value: '1', label: 'Label' },
{ value: '2', label: 'Label' },
{ value: '3', label: 'Label' },
]"
v-model="value"
/>
</template><script lang="ts">
import { OptionRadioGroup } from "@marwes-ui/svelte"
let value = $state("1")
</script>
<OptionRadioGroup
name="options"
label="Group label"
options={[
{ value: "1", label: "Label" },
{ value: "2", label: "Label" },
{ value: "3", label: "Label" },
]}
{value}
onchange={(nextValue) => (value = nextValue)}
/>Radio uses Marwes preset CSS and theme variables. Customize it through the theme passed to MarwesProvider; do not add a second component stylesheet. See the theming guide for configuration and token details.