ఓపెన్ సోర్స్ · Angular 22 · React 19 · MIT

అవసరం లేనంత బాగా ఇంజినీర్ చేసిన UI కాంపోనెంట్‌లు.

ఏ ఫ్రేమ్‌వర్క్‌పైనా ఆధారపడని ఒకే స్టైల్‌షీట్‌తో స్టైల్ అయ్యే, నేటివ్ ఎలిమెంట్‌లపై నిర్మించిన యాక్సెసిబుల్ Angular కాంపోనెంట్‌లు. ఇతర లైబ్రరీలు విడిగా అమ్మేవాటితో సహా అన్నీ MIT లైసెన్స్ కిందే: రిసోర్స్ టైమ్‌లైన్‌లతో షెడ్యూలర్, గ్రూపింగ్, Excel ఎక్స్‌పోర్ట్ ఉన్న డేటా గ్రిడ్.

ఇది ఎందుకు ఉంది

  • ప్రీమియం వెర్షన్ లేదు

    షెడ్యూలర్‌లోని రిసోర్స్ టైమ్‌లైన్, పునరావృత ఈవెంట్‌లు, డేటా గ్రిడ్‌లోని గ్రూపింగ్, ట్రీ డేటా, Excel ఎక్స్‌పోర్ట్ కూడా మిగతా అన్నిటిలాగే MIT లైసెన్స్ కిందే ఉన్నాయి: లైసెన్స్ కీ అక్కర్లేదు, వాటర్‌మార్క్ ఉండదు. డబ్బు చెల్లించాల్సిన లైబ్రరీ నుంచి మారుతున్నారా? FullCalendar, AG Grid గైడ్‌లను చదవండి.

  • నేటివ్ ఎలిమెంట్‌లకే ప్రాధాన్యం

    <button nuiButton> నిజమైన బటన్. దాని చుట్టూ ఏ ర్యాపర్ లేదు కాబట్టి ఫారమ్‌లు, కీబోర్డ్, స్క్రీన్ రీడర్‌లు యథావిధిగా పనిచేస్తాయి.

  • ఒకే స్టైల్‌షీట్, ఏ ఫ్రేమ్‌వర్క్‌కైనా

    కాంపోనెంట్‌లు క్యాస్కేడ్ లేయర్‌లలో ఉండే సాధారణ CSS: ఈరోజు Angular, ఇప్పటివరకు షెడ్యూలర్, డేటా గ్రిడ్‌లకు React, సాదా HTML ఎప్పుడూ.

  • ఎప్పుడూ గెలిచేది మీ CSS

    అంతా @layer nui లోపలే ఉంటుంది, కాబట్టి !important గానీ స్పెసిఫిసిటీ పోరాటాలు గానీ లేకుండానే మీ స్టైల్స్ దాన్ని ఓవర్‌రైడ్ చేస్తాయి.

  • నిర్మాణంలోనే యాక్సెసిబిలిటీ

    పాలెట్ జనరేట్ అయ్యేటప్పుడే ప్రతి రంగుల జతను WCAG 2.2 AA ప్రమాణాలతో తనిఖీ చేస్తారు. ఫోకస్, forced colors, కదలికల తగ్గింపు అన్నీ ముందుగానే నిర్వహించబడతాయి.

  • అవసరానికి మించిన కస్టమైజేషన్

    స్ప్రింగ్‌లు, నొక్కినప్పటి ఎఫెక్ట్‌లు, ప్రవేశ యానిమేషన్‌లు, మూలల ఆకారాలు, వ్యాసార్ధం, సాంద్రత: మొత్తం యాప్‌కు ఒకే అట్రిబ్యూట్, లేదా ఒక్కో కాంపోనెంట్‌కు ఒక ఇన్‌పుట్. అన్నీ ప్రామాణిక W3C డిజైన్ టోకెన్‌లపై ఆధారపడినవే.

  • ఆధునిక Angular

    సిగ్నల్ ఇన్‌పుట్‌లు, zoneless, సర్వర్ రెండరింగ్, ప్రతి కాంపోనెంట్‌కు ఒక ఎంట్రీ పాయింట్. కాబట్టి యాప్‌లో మీరు ఇంపోర్ట్ చేసినవి మాత్రమే చేరుతాయి.

ఒక కమాండ్, ఆపై ఒక ఇంపోర్ట్

ప్యాకేజీని ఇన్‌స్టాల్ చేసి, దాని స్టైల్‌షీట్‌ను ఇంపోర్ట్ చేయడానికి ng add రన్ చేయండి, ఆపై ఏ standalone కాంపోనెంట్‌లోనైనా కాంపోనెంట్‌లను వాడండి.

ng-add.sh
ng add @needless-ui/angular
usage.ts
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() {}
}