Workspace settings
Angular components, one package each.
92 components styled with Tailwind CSS 4, from a button to a dock manager. Signal inputs, zoneless change detection, and light and dark as one CSS variable rather than a fork.
Already have a workspace? ng add @xui/core wires the stylesheet for you.
Live components
Pick a release date
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
Nothing selected
Members
Rollout
Verify it's you
Enter the six digits we sent.
0 / 6 · waiting
- Angular 22
- Tailwind CSS 4
- Angular CDK
- class-variance-authority
- tailwind-merge
A component library tailored for Angular
Directives and standalone components you compose, not a monolith you configure. Every axis typed, every colour a token, every keyboard contract from the CDK.
pnpm add @xui/buttonpnpm add @xui/date-pickerpnpm add @xui/data-table# three packages, three componentsOne package per component
Install @xui/button and you ship a button, not a library. Each package exports an imports barrel for standalone components.
Typed variants that merge
Every visual axis is a typed input backed by CVA, and the class input merges through tailwind-merge, so your utility wins instead of fighting the component's.
opacity = signal(70)One signal, three reads, no zone.js in the bundle.
Signals, OnPush, zoneless
Signal inputs and two-way models throughout. No zone.js, no change-detection tax for the parts of the page you are not touching.
Arrow keys move the focus, Home and End jump.
One tab stop for the whole list: roving tabindex.
Direction-aware, from the CDK's bidi service.
Try ←→HomeEnd
Angular CDK underneath
Overlays, focus traps, roving tabindex, typeahead and bidi come from the CDK, so keyboard behaviour is not reinvented per component.
Light and dark are one variable
Components style themselves with bg-surface and text-foreground-muted. Put .light or .dark on any element and the subtree follows; re-colour an intent and every package picks it up.
The whole change, in CSS:
.light { --primary: oklch(55.88% 0.154 252.84);}Invite teammates
They'll get access to every project in Acme Design.
Your coding agent gets the real API
An assistant that has not been told about xUI invents plausible inputs that do not exist. The MCP server answers from the library sources, and the skill carries the conventions.
MCP server
Every selector, signal input, two-way model, output and variant axis across all 107 packages, extracted from the decorated classes rather than a hand-kept list.
xui_components_listevery package, with its groupxui_components_getselectors, signal inputs, variant axesxui_components_searchfind a package by what it doesxui_examples_getthe maintained Storybook examplesxui_tokens_listthe tokens, light and dark valuesxui_docs_getone guide page in full
{ "mcpServers": { "xui": { "command": "npx", "args": ["-y", "@xui/mcp"] } }}Agent skill
The server answers what exists; the skill carries how to use it. The three-layer architecture, the token rule, the imports barrels, all in one folder your editor discovers.
- Style only with semantic tokens: bg-surface, text-foreground-muted, border-error-muted.
- Confirm every selector and signal input against the server before writing markup.
- Import the package barrel, XuiButtonImports, into the standalone component.
- Reach for the headless @xui/core/* entrypoint when the styled package does not fit.
npx degit Rikarin/xui/skills/xui .claude/skills/xuiTwo commands to the first component
ng add wires the stylesheet and the token layer. After that, every component is one more add.
ng add @xui/corepnpm add @xui/button @xui/dialog @xui/iconimport { Component } from '@angular/core';import { XuiButtonImports } from '@xui/button';@Component({ selector: 'app-example', imports: [XuiButtonImports], template: ` <button xuiButton color="primary">Save changes</button> <button xuiButton variant="outline">Cancel</button> `})export class Example {}Everything in the box
92 styled packages and 15 headless entrypoints, grouped the way the Storybook is: from form controls to a dock manager and a node graph.
Foundations
5Code block, Icon, Link, Prose, Typography
Actions
3Button, Button group, Hotkeys
Forms
27Cascader, Checkbox, Color picker, Control card, Control group, …
Date & time
6Date input, Date picker, Date range input, Date range picker, Time picker, …
Data display
14Avatar, Card, Card list, Carousel, Data table, …
Navigation
9Breadcrumb, Menubar, Navbar, Navigation menu, Pagination, …
Overlays
10Alert, Alert dialog, Context menu, Dialog, Drawer, …
Feedback
6Callout, Non-ideal state, Progress bar, Result, Skeleton, …
Layout
9Accordion, Aspect ratio, Collapse, Divider, Dock manager, …
Visualisation
3ECharts, Konva, Node graph
Headless primitives
15A11y, Calendar, Checkbox, Date time, Date time luxon, …
Ship the first component today
Apache 2.0, no paid tier, no design system to adopt wholesale. Add the packages you need and theme them once.