Bloc UIBloc UI

Radio

Group of mutually exclusive options. Use bloc-radio-group with ngModel, formControl, or formControlName.

Keyboard: Arrow keys to navigate, Space to select. ARIA: role="radiogroup", role="radio", aria-checked.

$ npm install @bloc-ui/core

Sizes

Small

Tight layouts, table cells, or dense form rows.

Option AOption B

Medium (default)

Standard form controls and most UI contexts.

Option AOption B

Large

Touch targets, prominent CTAs, or accessibility-first interfaces.

Option AOption B

States

Group disabled

All items disabled via [disabled] on the group.

Option AOption B

Item disabled

One option disabled individually.

Option AOption B (disabled)Option C

Disabled (selected)

Group disabled with a pre-selected value — e.g. read-only setting.

Option AOption BOption C

Label position

Label after (default)

Option AOption B

Label before (group)

labelPosition="before" on the group.

Option AOption B

Per-item override

Each item overrides the group default.

BeforeAfter (inherited)

Horizontal layout

Row via CSS token

Override --bloc-radio-group-gap and flex direction with a class.

XSSMMDLG

Template-driven (ngModel)

Two-way binding

Bound via [(ngModel)].

AppleBananaCherry

ngModel value: (none)

Reactive forms

FormControl

Bound via [formControl].

Extra smallSmallMediumLarge

value: (none)  |  touched: false

setDisabledState

Enable/disable the group from code.

Option AOption B

Custom token

Override colours via CSS custom properties.

Extra smallSmallMedium