(this page was created automatically. In case of formatting issues, please visit the official Wiki Page)
Radio Group
Overview
- The Radio Group component is a form control for selecting one option from a set of choices.
- It displays a vertical list of radio buttons where only one can be selected at a time.
- The component is useful for clear, mutually exclusive decisions such as shipping methods or payment types.
- Each option in the group is defined as a radio button element with its own value and label.

Specs
Tokens
| Token | Description |
|---|---|
| elements | Collection of radio button elements in the group |
| hidden | Controls visibility while keeping the component in the form structure |
| saveInLocalStorage | Preserves the selected value between sessions |
| defaultValue | Sets the initially selected radio option |
| readonly | Displays the selected value but prevents changes |
| dataField | Field name used when submitting form data |
| controlsRequestType | Location of the value in HTTP requests: BODY, HEADER, or PATH |
| authorizationDisable | Policy set that disables the component based on permissions |
| events | Configurable component events |
| ON_VALUE_CHANGE (Events) | Fires when the user selects a different option |
| ON_INIT_BASED_ON_USER_VIEW (Events) | Fires on initialization in user view mode |
| ON_INIT (Events) | Fires when the component initializes |
| ON_DESTROY (Events) | Fires when the component is removed |
| displayName | Display name of an individual radio button in the structure panel |
| displayValue | Label text of an individual radio button (supports localization) |
| value | Submitted data value of an individual radio button |
| disabled | Marks an individual radio button as not selectable |
Structure
- The Radio Group consists of a vertical list of radio button elements where only one option can be selected at a time.
(Configured in General Properties)
- displayName – Sets the display name of the radio button in the structure panel. For example, "Standard Shipping Option".
(Configured in Visual Properties)
- elements – Contains the collection of radio button elements that will be rendered within this radio group. Each element represents an individual radio button option with its own value and display text.
- saveInLocalStorage – Determines whether the component's selected value is preserved in local storage between sessions. When enabled, user selection persists between page reloads.
(Configured in Non-Visual Properties)
- dataField – Defines the field name that will be used when submitting form data. For example, setting to "paymentMethod" ensures the selected radio value is submitted with this field name in the data object.
- controlsRequestType – Specifies how the field data is sent in HTTP requests:
BODY,HEADER, orPATH. For example, setting to "BODY" includes the radio selection in the request body.
Styling
(Configured in Visual Properties)
- defaultValue – Sets the initial radio button that will be selected when the form is reset or first displayed. For example, setting to "standard" would pre-select the radio button with that value.
- displayValue – Sets the text that appears next to the radio button, with support for multiple languages. For example, {"en-US": "Standard Shipping (3-5 days)", "de-DE": "Standardversand (3-5 Tage)"}.
- value – Sets the data value that will be submitted when a radio button is selected. For example, "standard_shipping" would be the value sent to the backend when this option is chosen.

Actions & Variants
(Configured in Visual Properties)
- hidden – Controls whether the component is visible in the form. When set to true, the component remains in the form structure but is not displayed, which is useful for conditional rendering.
- readonly – Controls whether the radio selection can be changed by users. When set to true, the field displays the selected value but cannot be modified.
- disabled – Controls whether an individual radio button can be selected. When set to true, the option appears grayed out and cannot be clicked, which is useful for showing unavailable options while still keeping them visible.

(Configured in Events)
- events – Configures the events that the component can trigger and respond to:
- ON_VALUE_CHANGE – Triggered when the user selects a different radio option. Can be used to perform immediate actions such as showing or hiding conditional form fields.
- ON_INIT_BASED_ON_USER_VIEW – Triggered when the component initializes in user view mode rather than edit mode.
- ON_INIT – Triggered when the radio group component is initialized. Can be used to perform setup operations or initial state calculations.
- ON_DESTROY – Triggered when the component is removed from the DOM. Useful for cleanup operations and releasing resources.
Authorization
(Configured in Authorization)
- authorizationDisable – Specifies a policy set that determines when the component should be disabled based on user permissions. For example, setting to "readOnlyPolicy" will disable the radio group for users who don't have edit permissions according to the specified policy.
Links
- Figma: https://www.figma.com/design/yck1tcUXgdQ5aYX6iUAwrO/GE---Astronaut-Design-System?node-id=11600-77344&t=ftfrOGkPzlG2GaTo-1
- Live style guide: https://e1-dev.k8s.myapp.de/live-style-guide/id3/7-radio
Guidelines
Usage
- Use when a single, mutually exclusive choice is required; define options in
elementswith a uniquevalue. - Preselect the most common/safe choice with
defaultValueto reduce effort and avoid empty submissions. - Preserve the user’s last pick across sessions by enabling
saveInLocalStorage. - Present read-only summaries (e.g., review steps) by setting the group to
readonly: true. - Keep temporarily unavailable choices visible but inactive by setting the specific option’s
disabled: true. - Ensure the selected value is submitted correctly by setting
dataFieldand, if needed, choose where it goes withcontrolsRequestType(BODY,HEADER, orPATH).
Sizing & Layout
- Order options intentionally in
elements; the group renders as a vertical list by design. - Keep labels concise within each option’s
displayValueto prevent wrapping in tight layouts.
States & Feedback
- Initial state: select a radio via
defaultValue; communicate a preselected state clearly indisplayValue. - Read-only state: lock interaction with
readonly: truewhile still showing the current selection. - Option-level unavailability: set that option’s
disabled: trueso it remains visible but not selectable. - Runtime visibility of the whole group: toggle
hiddento show/hide while preserving form structure. - Respond to user input immediately using
events.ON_VALUE_CHANGE(for example, update this component’s ownreadonlyor optiondisabledstates).
Visibility & Authorization
- Disable interaction based on permissions with
authorizationDisable(selection is shown but not changeable). - Use
hiddento conditionally remove the control from view while retaining its form presence when necessary. - Prefer option-level
disabledover removing options fromelementsso users understand availability.
Content & Localization
- Localize every option label using
displayValue(for example,{"en-US":"Standard","de-DE":"Standard"}). - Keep authoring-only names distinct with
displayName; avoid using it for user-visible labels. - Use short, concrete phrases in
displayValue(1–2 words when possible) for scannability in vertical lists.
Dos & Don’ts
| Do | Don’t | Article setting(s) |
|---|---|---|
| Preselect the safest default to reduce friction. | Leave the group with no selection when a safe default exists. | defaultValue |
| Keep unavailable choices visible but inactive. | Remove unavailable choices and confuse users about what’s supported. | elements[].disabled |
| Lock the control during review steps. | Leave it interactive when edits are not allowed. | readonly |
| Persist the last user selection across sessions. | Force users to reselect on every visit. | saveInLocalStorage |
| Map the value to the correct request location. | Hard-code transport rules elsewhere. | controlsRequestType |
| React immediately to user changes. | Require extra steps to apply a selection. | events.ON_VALUE_CHANGE |
| Hide the group when not relevant to the current flow. | Leave irrelevant choices visible and distract the user. | hidden |
| Localize every visible label. | Ship English-only labels. | elements[].displayValue |
Accessibility
- Provide localized, announceable labels using
elements[].displayValue. - Choose the appropriate non-interactive state for clarity:
readonly(show current selection without allowing change) vselements[].disabled(show unselectable options). - Use
hiddento remove irrelevant controls from user view to reduce cognitive load while preserving form structure. - When permission-based disabling is required, rely on
authorizationDisableso users understand the control is intentionally non-editable. - Avoid color-only meaning; communicate states through the built-in
disabled/readonlyand the wording indisplayValue. - Prefer
elements[].disabledover removing options fromelementsso assistive technologies can convey that an option exists but is unavailable. - Keep labels short and concrete in
displayValueto improve announcement clarity in long lists.