Primitives
Selection within a group.
Indie Plan For those who want to are just starting out Growth Plan For those who want to grow their business Unicorn Plan For those who are going to the moon<div
[(ngpRadioGroupValue)]="plan"
ngpRadioGroup
ngpRadioGroupOrientation="vertical"
>
<div ngpRadioItem ngpRadioItemValue="indie">
<div ngpRadioIndicator>
<span class="indicator-dot"></span>
</div>
<p class="title">Indie Plan</p>
<p class="description">For those who want to are just starting out</p>
</div>
<div ngpRadioItem ngpRadioItemValue="growth">
<div ngpRadioIndicator>
<span class="indicator-dot"></span>
</div>
<p class="title">Growth Plan</p>
<p class="description">For those who want to grow their business</p>
</div>
<div ngpRadioItem ngpRadioItemValue="unicorn">
<div ngpRadioIndicator>
<span class="indicator-dot"></span>
</div>
<p class="title">Unicorn Plan</p>
<p class="description">For those who are going to the moon</p>
</div>
</div>
Import the Radio primitives from ng-primitives/radio
.
import { NgpRadioGroup, NgpRadioItem, NgpRadioIndicator } from 'ng-primitives/radio';
Assemble the radio directives in your template.
<div ngpRadioGroup [(ngpRadioGroupValue)]="value">
<button ngpRadioItem ngpRadioItemValue="Option 1">
<ng-icon ngpRadioIndicator name="dot" />
Option 1
</button>
<button ngpRadioItem ngpRadioItemValue="Option 2">
<ng-icon ngpRadioIndicator name="dot" />
Option 2
</button>
<button ngpRadioItem ngpRadioItemValue="Option 3">
<ng-icon ngpRadioIndicator name="dot" />
Option 3
</button>
</div>
Create a reusable component that uses the radio directives.
import { Component, signal } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { RadioGroup } from './radio-group';
import { RadioItem } from './radio-item';
@Component({
selector: 'app-root',
imports: [RadioGroup, RadioItem, FormsModule],
template: `
<app-radio-group [(ngModel)]="value" orientation="vertical">
<app-radio-item value="1">One</app-radio-item>
<app-radio-item value="2">Two</app-radio-item>
<app-radio-item value="3">Three</app-radio-item>
</app-radio-group>
`,
})
export default class App {
value = signal('1');
}
Generate a reusable radio component using the Angular CLI.
ng g ng-primitives:primitive radio
path
: The path at which to create the component file.prefix
: The prefix to apply to the generated component selector.componentSuffix
: The suffix to apply to the generated component class name.fileSuffix
: The suffix to apply to the generated component file name. Defaults to component
.exampleStyles
: Whether to include example styles in the generated component file. Defaults to true
.The following directives are available to import from the ng-primitives/radio
package:
Apply the ngpRadioGroup
directive to an element that represents the group of radio items.
[ngpRadioGroup]
ngpRadioGroup
Define the selected value.
Define the disabled state.
Define the orientation.
Event emitted when the selection changes.
Apply the ngpRadioItem
directive to an element that represents a radio item. This would typically be a button
element.
[ngpRadioItem]
ngpRadioItem
Define the value of this item.
Define the disabled state.
The following data attributes are applied to the ngpRadioGroup
directive:
Attribute | Description | Value |
---|---|---|
data-orientation |
The orientation of the radio group. | vertical | horizontal |
data-disabled |
Applied when the radio group is disabled. | - |
The following data attributes are applied to the ngpRadioItem
directive:
Attribute | Description |
---|---|
data-checked |
Applied when the radio item is checked. |
data-disabled |
Applied when the radio item is disabled. |
data-hover |
Applied when the radio item is hovered. |
data-focus-visible |
Applied when the radio item is focused. |
data-press |
Applied when the radio item is pressed. |
Apply the ngpRadioIndicator
directive to an element that represents the radio indicator (i.e. the dot).
The following data attributes are applied to the ngpRadioItem
directive:
Attribute | Description |
---|---|
data-checked |
Applied when the radio item is checked. |
data-disabled |
Applied when the radio item is disabled. |
data-hover |
Applied when the radio item is hovered. |
data-press |
Applied when the radio item is pressed. |
Adheres to the Radio Group WAI-ARIA design pattern.
Copyright © 2025 Angular Primitives