Open source · Angular 22 · React 19 · MIT
Componenti UI, progettati con una cura inutilmente accurata.
Componenti Angular accessibili su elementi nativi, con un unico foglio di stile indipendente dal framework. Tutto con licenza MIT, anche ciò che altre librerie vendono a parte: un pianificatore con timeline delle risorse e una griglia dati con raggruppamento ed esportazione in Excel.
Perché esiste
Nessuna versione premium
La timeline delle risorse e gli eventi ricorrenti del pianificatore, e il raggruppamento, i dati ad albero e l’esportazione in Excel della griglia dati, hanno licenza MIT come tutto il resto: nessuna chiave di licenza, nessuna filigrana. Passi da una libreria a pagamento? Leggi le guide per chi arriva da FullCalendar e da AG Grid.
Prima gli elementi nativi
<button nuiButton>è un vero pulsante. Moduli, tastiera e screen reader funzionano perché niente lo avvolge.Un foglio di stile per ogni framework
I componenti sono CSS puro in cascade layer: Angular oggi, React finora per il pianificatore e la griglia dati, HTML semplice sempre.
Il tuo CSS vince sempre
Tutto è dentro
@layer nui, quindi i tuoi stili lo sovrascrivono senza!importantné battaglie di specificità.Accessibile per costruzione
Ogni coppia di colori viene verificata rispetto alle WCAG 2.2 AA quando si genera la palette. Focus, forced colors e riduzione del movimento sono già gestiti.
Inutilmente personalizzabile
Molle, effetti alla pressione, animazioni di entrata, forme degli angoli, raggio e densità: un attributo per tutta l’app o un input per componente, su design token W3C standard.
Angular moderno
Input signal, zoneless, rendering lato server e un entry point per componente: le app includono solo ciò che importano.
Un comando, poi un import
Esegui ng add per installare il pacchetto e importarne il foglio di stile, poi usa i componenti in qualsiasi componente 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() {}
}