โอเพนซอร์ส · Angular 22 · React 19 · MIT
คอมโพเนนต์ UI ที่ออกแบบมาดีเกินความจำเป็น
คอมโพเนนต์ Angular ที่เข้าถึงได้ สร้างบนเอลิเมนต์เนทีฟ และกำหนดสไตล์ด้วยสไตล์ชีตเดียวที่ไม่ผูกกับเฟรมเวิร์ก ทุกอย่างใช้สัญญาอนุญาต MIT รวมถึงสิ่งที่ไลบรารีอื่นแยกขายต่างหาก ได้แก่ Scheduler ที่มีไทม์ไลน์ทรัพยากร และตารางข้อมูลที่จัดกลุ่มและส่งออกเป็น Excel ได้
สร้างขึ้นมาทำไม
ไม่มีรุ่นพรีเมียม
ไทม์ไลน์ทรัพยากรและกิจกรรมที่เกิดซ้ำของ Scheduler รวมถึงการจัดกลุ่ม ข้อมูลแบบต้นไม้ และการส่งออกเป็น Excel ของตารางข้อมูล ใช้สัญญาอนุญาต MIT เหมือนส่วนอื่นทั้งหมด ไม่ต้องมี license key และไม่มีลายน้ำ หากกำลังย้ายมาจากไลบรารีแบบเสียเงิน อ่านคู่มือสำหรับ FullCalendar และ AG Grid ได้เลย
เอลิเมนต์เนทีฟมาก่อน
<button nuiButton>คือปุ่มจริง ๆ ฟอร์ม คีย์บอร์ด และโปรแกรมอ่านหน้าจอจึงทำงานได้ตามปกติ เพราะไม่มีอะไรห่อหุ้มปุ่มไว้สไตล์ชีตเดียว ใช้ได้ทุกเฟรมเวิร์ก
คอมโพเนนต์เป็น CSS ธรรมดาใน cascade layer วันนี้ใช้กับ Angular ใช้กับ React ได้แล้วสำหรับ Scheduler กับตารางข้อมูล และใช้กับ HTML ธรรมดาได้เสมอ
CSS ของคุณชนะเสมอ
ทุกอย่างอยู่ใน
@layer nuiสไตล์ของคุณจึงเขียนทับได้โดยไม่ต้องใช้!importantหรือแข่งกันเรื่อง specificityเข้าถึงได้ตั้งแต่การออกแบบ
ทุกคู่สีผ่านการตรวจตาม WCAG 2.2 AA ตั้งแต่ตอนสร้างชุดสี ส่วนโฟกัส โหมด forced colors และการลดการเคลื่อนไหวก็จัดการไว้ให้แล้ว
ปรับแต่งได้เกินความจำเป็น
สปริง เอฟเฟกต์การกดและการปรากฏ รูปทรงมุม รัศมีมุม และความหนาแน่น ใช้ attribute เดียวกับทั้งแอป หรือ input เดียวต่อคอมโพเนนต์ บน design token มาตรฐานของ W3C
Angular ยุคใหม่
รองรับ signal input และโหมด zoneless เรนเดอร์ฝั่งเซิร์ฟเวอร์ได้ และแยก entry point ให้แต่ละคอมโพเนนต์ แอปจึงรวมเฉพาะสิ่งที่ import เท่านั้น
คำสั่งเดียว แล้ว import อีกบรรทัดเดียว
รัน ng add เพื่อติดตั้งแพ็กเกจและ import สไตล์ชีตให้ แล้วใช้คอมโพเนนต์ในคอมโพเนนต์แบบ 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() {}
}