The CIRCLE_TOGGLE_GROUP component provides a group of circular toggle buttons for selecting a single option from multiple choices. Each option can include an icon, SVG, or circle text for visual representation.
🛝 Use the Dynamic Form Playground to see the Circle Toggle component in action and try out different configurations
| Property | Type | Required | Description |
|---|---|---|---|
type |
'CIRCLE_TOGGLE_GROUP' |
Yes | Specifies the field type as CIRCLE_TOGGLE_GROUP. |
id |
string |
Yes | Unique identifier for the field. The field's value is stored in the form state under this key. |
renderName |
string |
No | Optional name added as data-render-name attribute to locate the rendered element in the DOM. |
label |
string |
Yes | Label text displayed above the options. Supports translation and string interpolation. |
value |
string |
No | The field's initial value. If set, the corresponding option will be pre-selected. |
validators |
array |
No | Validation rules for the field. Common type: REQUIRED. The validator has type and optional errorMessage. |
testId |
string |
No | Test identifier for automated testing. Set as data-testid attribute. |
acl |
array |
No | Access control rules for field visibility/editability. Each rule has state ('hidden', 'readonly', 'disabled', 'visible', 'editable') and optional condition (Filtrex expression). |
spacing |
string |
No | Margin spacing before next field: 'NONE' (0px), 'XS' (8px), 'S' (16px), 'M' (24px), 'L' (32px), 'XL' (48px), 'XXL' (64px). |
Note: This component does not support the hint or columnSpan properties at the component level (unlike other interactive components). Instead, hint is available on individual options (see DfCircleToggle properties below), and the component uses its own layout system via layout.optionsColumnSpan.
| Property | Type | Required | Description |
|---|---|---|---|
options |
DfCircleToggle[] |
Yes | Configuration for all options to be displayed on a page. For the best user experience, retail journeys should not have more than 3 options. See also DfCircleToggle |
layout |
object |
No | The layout of the field. See also Layout Properties |
| Property | Type | Required | Description |
|---|---|---|---|
label |
string |
Yes | The label to be displayed as bold text under the option. It's translatable by default and supports string interpolation. |
value |
string |
Yes | Value of the option to be used as a form value when the option is selected. |
circleText |
string |
No | Text displayed in the option. It's translatable by default and supports string interpolation. |
hint |
string |
No | The hint text to be displayed under the label. It's translatable by default and supports string interpolation. |
icon |
string |
No | Name of the icon representing the option. Available icon names can be found in the NDBX documentation: https://ngx-brand-kit.frameworks.allianz.io/documentation/icon/overview. |
svg |
string |
No | Path to an SVG file to be used as the icon for this option. |
svgChecked |
string |
No | Path to an SVG file to be used as the icon when this option is selected. |
| Property | Type | Required | Description |
|---|---|---|---|
optionsColumnSpan |
number |
No | This size of each option. By default, each option takes 4 columns but you have an option to configure it to 2 or 3 columns. For the best user experience, a 2-column span should be used only in expert journeys when fullWidthFormInExpert is set to true. |
optionsLeftAlignInExpert |
boolean |
No | Controls alignment for the circle toggle options. Set to true to left-align the options.Defaults to center alignment. Ignored in retail journeys. |
{
"id": "insuranceType",
"type": "CIRCLE_TOGGLE_GROUP",
"label": "Select Insurance Type",
"options": [
{
"label": "Car Insurance",
"value": "car",
"icon": "product-car-front",
"hint": "Comprehensive coverage"
},
{
"label": "Home Insurance",
"value": "home",
"icon": "product-house",
"hint": "Property protection"
},
{
"label": "Travel Insurance",
"value": "travel",
"icon": "product-travel",
"hint": "Worldwide coverage"
}
],
"validators": [
{
"type": "REQUIRED",
"errorMessage": "Please select an insurance type"
}
]
}{
"id": "coverageAmount",
"type": "CIRCLE_TOGGLE_GROUP",
"label": "Select Coverage Amount",
"options": [
{
"label": "€100k",
"value": "100000",
"svg": "assets/images/coverage-basic.svg",
"svgChecked": "assets/images/coverage-basic-active.svg"
},
{
"label": "€250k",
"value": "250000",
"svg": "assets/images/coverage-standard.svg",
"svgChecked": "assets/images/coverage-standard-active.svg"
}
]
}{
"id": "packageSelection",
"type": "CIRCLE_TOGGLE_GROUP",
"label": "Choose Your Package",
"layout": {
"optionsColumnSpan": 4,
"optionsLeftAlignInExpert": true
},
"options": [
{
"label": "Basic",
"value": "basic",
"circleText": "B"
},
{
"label": "Standard",
"value": "standard",
"circleText": "S"
},
{
"label": "Premium",
"value": "premium",
"circleText": "P"
}
]
}For complete API documentation, see DfCircleToggleGroupConfig.
For Aquila component documentation and design guidelines, see Circle Toggle - Aquila Design System.