开源 · 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 进行校验。焦点、强制颜色模式和减弱动态效果也都已为你处理好。
可定制到近乎多余
弹簧、按压效果、入场动画、边角形状、圆角半径和密度:整个应用只需一个属性,单个组件也只需一个输入属性,全部基于标准的 W3C Design Token。
现代 Angular
Signal 输入属性、Zoneless、服务端渲染,且每个组件都有独立的入口点,应用只会打包实际导入的部分。
一条命令,再加一处导入
运行 ng add 安装软件包并导入样式表,然后就能在任意独立组件中使用这些组件了。
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() {}
}