Open source · Angular 22 · React 19 · MIT
Des composants d’interface, inutilement bien conçus.
Des composants Angular accessibles, bâtis sur des éléments natifs et mis en forme par une seule feuille de style indépendante du framework. Tout est sous licence MIT, y compris ce que d’autres bibliothèques vendent à part : un planificateur avec des timelines de ressources, et une grille de données avec regroupement et export Excel.
Sa raison d’être
Pas de version premium
La timeline de ressources et les événements récurrents du planificateur, ainsi que le regroupement, les données arborescentes et l’export Excel de la grille de données, sont sous licence MIT comme tout le reste : ni clé de licence, ni filigrane. Vous quittez une bibliothèque payante ? Lisez nos guides de migration depuis FullCalendar et AG Grid.
Les éléments natifs d’abord
<button nuiButton>est un vrai bouton. Formulaires, clavier et lecteurs d’écran fonctionnent, puisque rien ne vient l’envelopper.Une feuille de style pour tous les frameworks
Les composants sont du CSS pur, rangé dans des couches de cascade : Angular aujourd’hui, React pour le planificateur et la grille de données pour l’instant, et HTML simple, toujours.
Votre CSS a toujours le dernier mot
Tout est livré dans
@layer nui: vos propres styles l’emportent sans!importantni bataille de spécificité.Accessible par construction
Chaque paire de couleurs est vérifiée selon les WCAG 2.2 AA lors de la génération de la palette. Focus, couleurs forcées et réduction des animations sont gérés pour vous.
Inutilement personnalisable
Ressorts, effets d’appui, animations d’entrée, formes des coins, rayon et densité : un attribut pour toute l’application, ou un input par composant, sur des design tokens W3C standard.
Un Angular moderne
Signal inputs, zoneless, rendu côté serveur et un point d’entrée par composant : les applications n’embarquent que ce qu’elles importent.
Une commande, puis un import
Lancez ng add pour installer le paquet et importer sa feuille de style, puis utilisez les composants dans n’importe quel composant standalone.
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() {}
}