Radio Primitive
Radio is a Starwind Runtime primitive in the single-boolean-control contract family.
Anatomy
Use the Astro primitive adapter to render Radio anatomy with the Runtime wiring included.
---import { Radio } from "@starwind-ui/astro/radio";---
<Radio.Root value="option-one"> <Radio.Indicator /></Radio.Root>Use the React primitive adapter when Radio state participates in React rendering.
import { Radio } from "@starwind-ui/react/radio";
export function Example() { return ( <Radio.Root value="option-one"> <Radio.Indicator /> </Radio.Root> );}Render the Radio data-sw-* contract yourself, then initialize createRadio.
<span data-sw-radio role="radio" data-value="option-one"> <span data-sw-radio-indicator></span> <input data-sw-radio-input type="radio" aria-hidden="true" tabindex="-1" /></span>
<script type="module"> import { createRadio } from "@starwind-ui/runtime/radio";
const root = document.querySelector("[data-sw-radio]"); if (root) { createRadio(root); }</script>API Reference
Root
The main element that owns the Radio Runtime instance.
- Default element
- span
- Discovery hook
- data-sw-radio
- Role
- radio
Props
Prop Type Default Toggle
checked boolean -
- Description
- Controls whether Radio is checked.
- Kind
- control
- Targets
- -
- Full type
- boolean
defaultChecked boolean false
- Description
- Sets whether Radio starts checked for uncontrolled usage.
- Kind
- control
- Targets
- -
- Full type
- boolean
disabled boolean false
- Description
- Disables the Root part.
- Kind
- option
- Targets
- -
- Full type
- boolean
form string -
- Description
- Associates the control with a form element.
- Kind
- option
- Targets
- -
- Full type
- string
id string -
- Description
- Sets the id used by the associated native control.
- Kind
- option
- Targets
- -
- Full type
- string
name string -
- Description
- Sets the submitted form field name.
- Kind
- option
- Targets
- -
- Full type
- string
nativeButton boolean false
- Description
- Renders the control as a native button element.
- Kind
- rendering
- Targets
- root
- Full type
- boolean
readOnly boolean false
- Description
- Marks the control as read-only.
- Kind
- option
- Targets
- -
- Full type
- boolean
required boolean false
- Description
- Marks the form control as required.
- Kind
- option
- Targets
- -
- Full type
- boolean
value string -
- Description
- Controls the current Radio value.
- Kind
- option
- Targets
- -
- Full type
- string
onCheckedChange (checked: boolean, details: RadioCheckedChangeDetails) => void -
- Description
- Runs when the Radio checked state changes.
- Kind
- callback
- Targets
- -
- Full type
- (checked: boolean, details: RadioCheckedChangeDetails) => void
Events
Event Callback Value Toggle
checkedChange onCheckedChange checked: boolean
- Description
- Fires when the checked state changes for Radio.
- DOM event
- starwind:checked-change
- Details type
- RadioCheckedChangeDetails
- Timing
- -
- Cancelable
- No
State
State Type Props Toggle
checked boolean checked / defaultChecked
- Description
- Tracks whether Radio is checked.
- Initial attribute
- data-default-checked
- Runtime getter
- getChecked
- Runtime setter
- setChecked
- State control support
- React supports controlled and default state with checked and defaultChecked props. Runtime/HTML reads initial state from data-default-checked, emits starwind:checked-change, and updates with setChecked. Astro adapters render initial/default state, but do not expose reactive controlled-state props for this state.
Data Attributes
Runtime hooks
Attribute Value Description
data-sw-radio - Marks the Root part so Starwind Runtime can find it.
State
Attribute Value Description
data-checked - Reflects the checked state on the Root part.
data-unchecked - Reflects the unchecked state on the Root part.
Metadata
Attribute Value Description
data-default-checked - Reflects the default checked prop on the Root part.
data-disabled - Reflects the disabled prop on the Root part.
data-form - Reflects the form prop on the Root part.
data-id - Reflects the id prop on the Root part.
data-name - Reflects the name prop on the Root part.
data-readonly - Reflects the readonly prop on the Root part.
data-required - Reflects the required prop on the Root part.
data-value - Reflects the value prop on the Root part.
Indicator
Visual state indicator rendered by Radio.
- Default element
- span
- Discovery hook
- data-sw-radio-indicator
- Role
- -
Props
Prop Type Default Toggle
keepMounted boolean false
- Description
- Keeps the Indicator part in the DOM when hidden.
- Kind
- rendering
- Targets
- indicator
- Full type
- boolean
Data Attributes
Runtime hooks
Attribute Value Description
data-sw-radio-indicator - Marks the Indicator part so Starwind Runtime can find it.
State
Attribute Value Description
data-unchecked - Reflects the unchecked state on the Indicator part.
Metadata
Attribute Value Description
data-keep-mounted - Reflects the keep mounted prop on the Indicator part.
Input
The native input synchronized by Radio.
- Default element
- input
- Discovery hook
- data-sw-radio-input
- Role
- -
Data Attributes
Runtime hooks
Attribute Value Description
data-sw-radio-input - Marks the Input part so Starwind Runtime can find it.
Runtime API
- Factory
createRadio- Import
@starwind-ui/runtime/radio- Root hook
- root
data-sw-radio - Option props
- checked, defaultChecked, disabled, form, id, name, readOnly, required, value
Runtime Setters
Method Target Description
setChecked state: checked Updates whether Radio is checked from Runtime code.
setDisabled prop: disabled Updates whether Radio is disabled from Runtime code.
setReadOnly prop: readOnly Updates whether Radio is read-only from Runtime code.
setFormOptions props: form, name, required, value Updates Radio form-related options from Runtime code.
Form Participation
| Fact | Value |
|---|---|
| Form props | form, id, name, required, value |
| Hidden input | input (radio) |
| Field integration | Yes |
Related Styled Components
Component Relationship
Radio Group Composite