UnreviewedOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptional UnreviewedkeyReact/Preact reconciliation key when rendered inside a list.
Optional UnreviewedidHTML id attribute.
Optional UnreviewedclassHTML class attribute (standard DOM).
Optional UnreviewedclassReact/Preact-style class name. Alias for class.
Optional UnreviewedstyleInline styles applied to the element.
OptionalchildrenOptional UnreviewedslotAssigns the element to a named <slot> (e.g. slot="title").
Optional UnreviewedtabTab order. Set to 0 to make the element keyboard-focusable.
Optional UnreviewedstateControlled selected value (the chosen radio's value). Present → controlled:
the element reflects changes to this attribute and a pick only dispatches
statechange. Absent → uncontrolled (seed with default-state).
Optional Unrevieweddefault-Uncontrolled initial selected value — read once on connect / form-reset.
Optional UnreviewednameForm field name — the group submits name=value.
Optional UnreviewedtoneMark tone cascaded to children that don't set their own, or any literal CSS
color for a one-off custom tone. In all scope it colors every child's ring
fill, dot, and unselected border. The option text stays neutral — recolor it
in plain CSS via the --text-N-{tone} tokens.
Optional Unreviewedtone-Apply the cascaded tone to every state (all, the default) or only to the
selected option. A child's explicit scope overrides the group.
Optional UnreviewedsizeSize cascaded to children that don't set their own.
Optional UnreviewedstatusValidation/feedback tone for the group hint — same set as <a-input>'s
status. Recolors <a-radio-group-hint>; omit for the neutral default.
Optional UnrevieweddisabledDisable the whole group. Presence-based.
Optional UnreviewedorientationLayout + arrow-key axis. 'vertical' is the default.
Optional UnreviewedonstatechangeFires whenever the selection changes. detail carries { next, prev, reason }:
next/prev are the selected values (null = nothing selected), and reason
is 'user' (a pick — the event is cancelable; a synchronous
preventDefault() vetoes it in uncontrolled mode), 'reset' (a <form> reset),
or 'restore' (bfcache / autofill restore) — the latter two are not cancelable.
All-lowercase to bind across both renderers (like <a-checkbox>).
Optional UnreviewedonchangeNative change, fired after a selection applies (post-apply counterpart to
onstatechange). Lowercase so both renderers bind the native event.
Optional UnreviewedonfocusinGroup focus enter / leave — wired from the bubbling focusin / focusout
(focus lands on an option, not the group). The RadioGroup wrapper maps its
onFocus / onBlur props here.
OptionalonfocusoutOptional UnreviewedroleARIA — set by the RadioGroup wrapper (the element never touches these).
Optionalaria-Optionalaria-Optionalaria-
Attributes for the
<a-radio-group>custom element — the single-select coordinator. It is the form-associated element (submits onename=value). No shadow DOM: an optional group header (<a-radio-group-label>+ an optional<a-radio-group-hint>description) sits above an<a-radio-list>wrapping the<a-radio>options — each option wraps its text in<a-radio-label>and an optional<a-radio-hint>. All plain light-DOM children, laid out bya-radio-group.css, so the arrangement is restylable with ordinary CSS (a-radio-group a-radio-list { … }). The group coordinates off-DOM only — it never writes the DOM: selection via each radio'sselectedproperty, focus viainternals.ariaActiveDescendantElement, the form value viasetFormValue. Rovingtabindex(the JSX path) is rendered by theRadioGroupwrapper, not the element. TheRadioGroupwrapper composes the label/list/hint fromlabel/hint; hand-authors write them directly. For the typed JSX wrapper useRadioGroupfrom@antadesign/anta.