现代化跨框架 Web Components 组件库
基于 Stencil 构建,采用 OKLch 色彩空间,支持 React、Vue、Angular 等所有框架
核心组件
TypeScript
跨框架兼容
现代色彩空间
基于 Web Components 标准,可在 React、Vue、Angular、Svelte 等任何框架中无缝使用
采用感知均匀的 OKLch 色彩空间,提供一致的亮度、可预测的饱和度和更宽广的色域
内置完善的主题系统,支持亮色/暗色模式切换,提供优雅的视觉体验
100% TypeScript 编写,提供完整的类型定义和智能提示
遵循 ARIA 规范,确保所有用户都能访问和使用组件
支持按需导入,只打包使用的组件,优化包体积
通过 CSS 变量轻松定制主题,支持自定义颜色、间距等
Shadow DOM 封装,样式隔离,懒加载支持,确保最佳性能
8 种变体 • 3 种尺寸 • 加载和禁用状态
多种类型 • 验证状态 • 错误提示
自定义下拉 • 键盘导航 • 分组选项
4 种变体 • 插槽支持 • 悬停效果
5 种尺寸 • 背景点击关闭 • 键盘快捷键 • 焦点锁定
这是一个使用 OKLch 色彩系统的模态框组件。
支持点击背景、按 ESC 键或点击关闭按钮来关闭。
行选择 • 排序 • 多种变体 • 响应式
npm install @halolight/ui
<script type="module">
import { defineCustomElements } from '@halolight/ui/loader';
defineCustomElements();
</script>
<hl-button variant="primary">点击我</hl-button>
import { defineCustomElements } from '@halolight/ui/loader';
defineCustomElements();
function App() {
return <hl-button variant="primary">点击我</hl-button>;
}
<template>
<hl-button variant="primary">点击我</hl-button>
</template>
<script setup>
import { defineCustomElements } from '@halolight/ui/loader';
defineCustomElements();
</script>