An open API service indexing awesome lists of open source software.

https://github.com/radix-ng/primitives

Angular port of Radix UI Primitives. Accessible. Customizable.
https://github.com/radix-ng/primitives

angular base-ui components design-system headless-components radix radix-ui shadcn-ui

Last synced: 11 days ago
JSON representation

Angular port of Radix UI Primitives. Accessible. Customizable.

Awesome Lists containing this project

README

          

# Radix NG

[![Build Size](https://img.shields.io/bundlephobia/minzip/@radix-ng/primitives@latest?label=bundle%20size&style=flat&colorA=000000&colorB=000000)](https://bundlephobia.com/result?p=@radix-ng/primitives@latest)
[![Version](https://img.shields.io/npm/v/@radix-ng/primitives?style=flat&colorA=000000&colorB=000000)](https://www.npmjs.com/package/@radix-ng/primitives)
[![Downloads](https://img.shields.io/npm/dm/@radix-ng/primitives.svg?style=flat&colorA=000000&colorB=000000)](https://www.npmjs.com/package/@radix-ng/primitives)
[![License](https://img.shields.io/npm/l/@radix-ng/primitives?style=flat&colorA=000000&colorB=000000)](/LICENSE)
[![Angular](https://img.shields.io/badge/Angular-21+-000000?style=flat&logo=angular&logoColor=fff&colorA=000000&colorB=000000)](https://angular.dev)
[![Discord Chat](https://img.shields.io/discord/1231525968586346567?style=flat&logo=discord&logoColor=fff&color=000)](https://discord.gg/NaJb2XRWX9)

> **Headless, signals-first UI primitives for Angular.**

Radix NG is a low-level UI primitive library for Angular with a focus on accessibility, customization,
and developer experience. The primitives are **headless** โ€” they ship no styles and expose state via
`data-*` attributes, so you can use them as the base layer of your design system or adopt them
incrementally.

The library grew out of an Angular port of [Radix UI](https://www.radix-ui.com/); its API and behavior
now align primarily with [Base UI](https://base-ui.com/).

## Features

- ๐ŸŽฏ **Headless** โ€” no styles, full control. State is exposed through `data-*` attributes.
- โ™ฟ **Accessible** โ€” built to the [WAI-ARIA authoring practices](https://www.w3.org/WAI/ARIA/apg/), with keyboard navigation and focus management.
- โšก **Signals-first** โ€” modern Angular API (`input()`, `model()`, `computed()`, `signal()`).
- ๐Ÿงฉ **Composable** โ€” primitives compose via `hostDirectives` and shared building blocks.
- ๐ŸŒ— **Theme-ready** โ€” state-driven styling works with light/dark and any design tokens.
- ๐Ÿ“ฆ **Tree-shakeable** โ€” granular secondary entry points (`@radix-ng/primitives/`).
- ๐Ÿค– **AI-ready** โ€” installable [Skills](#ai-assistant-skills) teach AI coding assistants the APIs, examples, and `data-*` styling contract.

## Installation

```bash
npm install @radix-ng/primitives
# or
pnpm add @radix-ng/primitives
# or
yarn add @radix-ng/primitives
```

## Quick start

```ts
import { Component } from '@angular/core';
import {
RdxCollapsibleRootDirective,
RdxCollapsibleTriggerDirective,
RdxCollapsibleContentDirective
} from '@radix-ng/primitives/collapsible';

@Component({
selector: 'app-demo',
imports: [RdxCollapsibleRootDirective, RdxCollapsibleTriggerDirective, RdxCollapsibleContentDirective],
template: `


Toggle
Content


`
})
export class DemoComponent {}
```

Primitives are headless: style them via the `data-*` attributes they expose (e.g.
`[data-state="open"]`, `[data-disabled]`) with the tooling of your choice.

## Documentation

- ๐Ÿ“– [radix-ng.com](https://radix-ng.com) โ€” documentation, examples & API reference (Storybook)
- ๐Ÿ“„ [radix-ng.com/llms.txt](https://radix-ng.com/llms.txt) โ€” docs for LLMs (full text at [/llms-full.txt](https://radix-ng.com/llms-full.txt))
- ๐Ÿค– [AI assistant skills](#ai-assistant-skills) โ€” for Claude Code, Cursor, Copilot, and others
- ๐ŸŽ™ [The Story of My Radix UI Port for Angular](https://frontendconf.ru/moscow/2025/abstracts/16014) โ€” talk, FrontendConf Moscow 2025

## AI assistant skills

Give your AI coding assistant structured knowledge of the primitives โ€” APIs, working examples, and
the `data-*` styling contract โ€” so it writes correct, accessible code instead of guessing. The
[Skills](skills/) are self-contained (everything bundled offline) and work with Claude Code, Cursor,
Codex, Cline, Windsurf, GitHub Copilot, Gemini, and other agents via the open
[Agent Skills ecosystem](https://skills.sh).

```bash
npx skills add radix-ng/primitives/skills
```

## Components

**Status:** โœ… Completed ยท ๐Ÿš€ In Progress ยท ๐Ÿ›  In Review

Core primitives

| Primitive | Status |
| --------------- | ------ |
| Accordion | โœ… |
| Alert Dialog | beta |
| Avatar | โœ… |
| Aspect Ratio | โœ… |
| Button | โœ… |
| Checkbox | โœ… |
| Collapsible | โœ… |
| Context Menu | โœ… |
| Dialog | โœ… |
| DropdownMenu | โœ… |
| Form | ? |
| Hover Card | โœ… |
| Label | โœ… |
| Menubar | โœ… |
| Navigation Menu | โœ… |
| Popover | โœ… |
| Progress | โœ… |
| Radio | โœ… |
| Select | beta |
| Separator | โœ… |
| Slider | โœ… |
| Switch | โœ… |
| Tabs | โœ… |
| Toast | |
| Toggle | โœ… |
| Toggle Group | โœ… |
| Toolbar | โœ… |
| Tooltip | โœ… |

Dates & inputs

| Primitive | Status |
| ----------------- | ------ |
| Calendar | โœ… |
| Date Field | โœ… |
| Date Picker | |
| Date Range Field | |
| Date Range Picker | |
| Editable | โœ… |
| Number Field | โœ… |
| Pagination | โœ… |
| Range Calendar | |
| Stepper | โœ… |
| Time Field | โœ… |

Utilities

| Primitive | Status |
| ------------------ | ------ |
| FocusOutside | โœ… |
| PointerDownOutside | โœ… |
| FocusGuards | |
| FocusScope | |

## Ecosystem

- [OriginUI for Angular](https://originui-ng.com/) โ€” styled components built on these primitives
- [shadcn/ui for Angular](https://ui.adrianub.dev/) โ€” shadcn-style components
- [DataGrid](https://originui-ng.com/table) โ€” built with [TanStack Table](https://tanstack.com/table/latest)

## Contributing

Contributions are welcome! The repository is an Nx monorepo:

```
.
โ”œโ”€โ”€ apps
โ”‚ โ”œโ”€โ”€ radix-docs documentation (Astro)
โ”‚ โ”œโ”€โ”€ radix-ssr-testing SSR tests for unstyled primitives
โ”‚ โ””โ”€โ”€ radix-storybook Storybook for primitives
โ””โ”€โ”€ packages
โ””โ”€โ”€ primitives headless primitives (no styling)
```

```bash
pnpm primitives:test # run tests
pnpm primitives:build # build the library
pnpm storybook:primitives # start Storybook
```

## Community

We're excited to see the community adopt Radix NG, raise issues, and provide feedback โ€”
whether it's a feature request, bug report, or a project to showcase.

- [Join our Discord](https://discord.gg/NaJb2XRWX9)
- [Join our Telegram](https://t.me/radixng)
- [GitHub Discussions](https://github.com/radix-ng/primitives/discussions)

## Contributor analytics

![Repobeats analytics image](https://repobeats.axiom.co/api/embed/7c1e0b2754a8973c9cfd458060d168e9dd7b5b8e.svg 'Repobeats analytics image')

## License

This project is licensed under the terms of the [MIT license](/LICENSE).