Principles Foundation Accessibility Design System Guidelines Deutsch Français Italiano English Our design principles User-centred Recognisable Inclusive Reduced Holistic Self-explanatory Task-oriented Appropriate SBB Brand portal Logo Digital clock Rights of use Base colors Additional colors Off brand colors Icons Timetable icons Pictograms About accessibility Über diesen Guide Contact Further information Product Owner User Research Interaction Design Visual Design Development Content Design Testing What is a design system? Designing Coding FAQ Help Process Contribution Contact Overview Base Components Overview Releases Design Tokens Components Overview Base Informations Overview Base Components Overview App Icons Power-Apps Digital banner ads SAP Design Guidelines AI Design: Basics Radio-Button-Group Info

What does the component do?

It provides the layout for a group of radio buttons.

When should the component be used?

  • Only in combination with the radio button component.
RadioButton RadioButtonPanel SelectionExpansionPanel
Anatomy

Anatomy of the component


Number Type Description Optional Info
1a Component sbb-radiobutton No checked
1b Component sbb-radiobutton No unchecked
2 Error sbb-form-error
Demo

Playground

Option one Option two Option three
Orientation Vertical Horizontal Sizes XS S M Mode (System Setting) Light Dark Background White Midnight Milk Charcoal Cloud Iron Midnight White Charcoal Milk Iron Cloud
Horizontal
Vertical
Vertical To Horizontal
Horizontal Size S
Vertical Size S
Size XS
Disabled
Allow Empty Selection
Error Message
Error Message Vertical
Horizontal Panels
Vertical Panels
Vertical To Horizontal Panels
Copy HTML to clipboard.
Implementation

The sbb-radio-button-group is a component which can be used as a wrapper for
a collection of either sbb-radio-buttons, sbb-radio-button-panels,
or sbb-selection-expansion-panels.
Individual radio-buttons inside a radio-group will inherit the name of the group.

<!-- The first option will be selected by default -->
<sbb-radio-button-group name="radio-group" value="Value one" aria-label="Radio group label">
  <sbb-radio-button value="Value one">Option one</sbb-radio-button>
  <sbb-radio-button value="Value two">Option two</sbb-radio-button>
  <sbb-radio-button value="Value three">Option three</sbb-radio-button>
</sbb-radio-button-group>

Pressing a sbb-radio-button checks it and unchecks the previously selected one, if any.
They can also be controlled programmatically by setting the value property of the parent radio group to the value of the radio.

Please note that within a sbb-radio-button-group, only one sbb-radio-button can be selected at a time;
if you need to select more than one item, it is recommended to use the sbb-checkbox-group component.

States

The radio group can have different states:

  • can be completely disabled by setting the property disabled;
  • can be required by setting the property required.
<!-- All child radio buttons will be disabled -->
<sbb-radio-button-group value="Value one" aria-label="Radio group label" disabled>
  ...
</sbb-radio-button-group>

<!-- The radio group and all child radio buttons will be marked as required -->
<sbb-radio-button-group value="Value one" aria-label="Radio group label" required>
  ...
</sbb-radio-button-group>

In order to deselect a sbb-radio-button inside the sbb-radio-button-group,
you can use the allowEmptySelection property, which will be proxied to the inner sbb-radio-button
enabling their deselection (by default, a selected sbb-radio-button cannot be deselected).

<sbb-radio-button-group allow-empty-selection> ... </sbb-radio-button-group>

Style

The orientation property is used to set item orientation. Possible values are horizontal (default) and vertical.
The optional property horizontalFrom can be used in combination with orientation='vertical' to
indicate the minimum breakpoint from which the orientation changes to horizontal.

<sbb-radio-button-group orientation="vertical" horizontal-from="large">
  ...
</sbb-radio-button-group>

Events

Consumers can listen to the native change/input event on the sbb-radio-button-group component
to intercept the selection's change; the current value can be read from event.detail.value.

Accessibility

In order to ensure readability for screen-readers, please provide an aria-label attribute for the sbb-radio-button-group.

Complex Values

This component supports any types of values, including complex objects.
The type can be specified using the generic type parameter T of SbbRadioButtonGroup<T>.

const values = [
  { value: 'value1', name: 'Option 1' },
  { value: 'value2', name: 'Option 2' },
];
<sbb-radio-button-group .value="${values[0]}" name="name">
  <sbb-radio-button .value="${values[0]}">Option 1</sbb-radio-button>
  <sbb-radio-button .value="${values[1]}">Option 2</sbb-radio-button>
</sbb-radio-button-group>

Properties

Name Attribute Privacy Type Default Description
allowEmptySelection allow-empty-selection public boolean false Whether the radios can be deselected.
disabled disabled public boolean false Whether the component is disabled.
horizontalFrom horizontal-from public SbbHorizontalFrom | null null Overrides the behaviour of orientation property.
name name public string `sbb-radio-button-group-${++nextId}`
orientation orientation public SbbOrientation 'horizontal' Radio group's orientation, either horizontal or vertical.
radioButtons - public (SbbRadioButtonElement<T> | SbbRadioButtonPanelElement<T>)[] List of contained radio buttons.
required required public boolean false Whether the radio group is required.
size size public SbbRadioButtonSize 'm' / 'xs' (lean) Size variant, either xs, s or m.
value value public (T = string) | null The value of the radio group.

Events

Name Type Description Inherited From
didChange Event Deprecated. Mirrors change event for React. Will be removed once React properly supports change events.

Slots

Name Description
Use the unnamed slot to add sbb-radio-button elements to the sbb-radio-button-group.
error Use this to provide a sbb-error to show an error message.