Announcement
Introducing Needless UI
Accessible Angular components, needlessly well engineered

Today we are releasing Needless UI, an open-source component library for Angular. It is MIT licensed, documented at needlessui.com and developed in the open on GitHub.
Why another component library?
Many component libraries wrap native elements in layers of extra markup and then rebuild what the browser already did well: focus, forms, keyboard support. Needless UI takes the opposite approach. It styles the native element itself — <button nuiButton> is a real button — so forms, keyboards and screen readers work because nothing is wrapped around it.
What’s inside
- One stylesheet, any framework. Components are plain CSS in cascade layers: Angular today, React next, plain HTML always.
- Your CSS always wins. Everything ships inside
@layer nui, so your own styles override it without!importantor specificity battles. - Accessible by construction. Every color pair is checked against WCAG 2.2 AA when the palette is generated. Focus, forced colors and reduced motion are handled for you.
- Needlessly customizable. Springs, press effects, entrances, corner shapes, radius and density — one attribute for the whole app, or one input per component, on standard W3C design tokens.
- Modern Angular. Signal inputs, zoneless, server rendering and one entry point per component, so apps ship only what they import.
Get started
Install the package and its Angular peers:
pnpm add @needless-ui/angular @angular/aria @angular/cdkThen import the component you need and put it on the native element:
import { Component } from '@angular/core';
import { NuiButton } from '@needless-ui/angular/button';
@Component({
selector: 'app-root',
imports: [NuiButton],
template: `<button nuiButton (click)="save()">Save changes</button>`,
})
export class App {
save() {}
}The documentation covers every component, the design tokens and theming.
What’s next
Because the styles are framework-free, React support is next on the list. Issues, ideas and pull requests are welcome on GitHub.


