Open source · Angular 22 · React 19 · MIT
UI components, needlessly well engineered.
Accessible Angular components on native elements, styled by one framework-free stylesheet. All MIT, including what other libraries sell separately: a scheduler with resource timelines, and a data grid with grouping and Excel export.
Why it exists
No premium tier
The scheduler’s resource timeline and repeating events, and the data grid’s grouping, tree data and Excel export, are MIT like everything else: no license key, no watermark. Moving from a paid library? Read the guides for FullCalendar and AG Grid.
Native elements first
<button nuiButton>is a real button. Forms, keyboards and screen readers work because nothing is wrapped around it.One stylesheet, any framework
Components are plain CSS in cascade layers: Angular today, React for the scheduler and the data grid so far, 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.
One command, then one import
Run ng add to install the package and import its stylesheet, then use components in any standalone component.
ng add @needless-ui/angularimport { 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() {}
}