Zeus Web 是一个框架无关的 UI 系统,基于 Web Components、源码 registry 模板,以及包内自带样式的原生组件入口构建。
它支持三种使用路径:
- CLI registry source:面向 React 和 Vue 应用,复制可编辑源码到项目中。
- Native styled Web Components:通过
@zeus-web/ui使用无框架带样式 Web Components。 - Advanced primitives:通过按组件拆分的包使用高级 headless 能力。
当你在构建 React 或 Vue 应用,并希望把可编辑组件源码放进自己的项目时,推荐使用这个路径。
pnpm dlx @zeus-web/cli init
pnpm dlx @zeus-web/cli add button input这会生成:
zeus-ui.json
zeus-ui.lock.json
src/lib/cn.ts
src/styles/zeus.css
src/components/ui/button.tsx
src/components/ui/input.tsxVue 项目中生成的组件文件使用 .vue:
src/components/ui/button.vue
src/components/ui/input.vueReact 使用示例:
import { Button } from '@/components/ui/button'
import { Input } from '@/components/ui/input'
export function Example() {
return (
<form className="space-y-4">
<Input type="email" placeholder="Email" />
<Button variant="primary">Submit</Button>
</form>
)
}Vue 使用示例:
<script setup lang="ts">
import Button from '@/components/ui/button.vue'
import Input from '@/components/ui/input.vue'
</script>
<template>
<form class="space-y-4">
<Input placeholder="Email" />
<Button variant="primary">Submit</Button>
</form>
</template>当你不想使用 React 或 Vue,但希望直接获得带样式 Web Components 时,使用这个路径。
pnpm add @zeus-web/ui聚合入口:
import '@zeus-web/ui'HTML:
<zw-button variant="primary">Save</zw-button>
<zw-input placeholder="Email"></zw-input>按组件入口:
import '@zeus-web/ui/button'
import '@zeus-web/ui/input'仅 CSS 入口:
import '@zeus-web/ui/styles.css'
import '@zeus-web/button/wc/auto'
import '@zeus-web/input/wc/auto'当你要基于 headless primitives 构建自己的设计系统时,使用这个路径。
pnpm add @zeus-web/buttonReact wrapper:
import { Button } from '@zeus-web/button/react'
export function Example() {
return <Button>Save</Button>
}Vue wrapper:
<script setup lang="ts">
import { Button } from '@zeus-web/button/vue'
</script>
<template>
<Button>Save</Button>
</template>原生 Web Component primitive:
import '@zeus-web/button/wc/auto'<zw-button>Save</zw-button>产品级高级组件放在 packages/advanced/*。
这个工作区专门用于高性能、高复杂度组件,例如:
@zeus-web/virtual
@zeus-web/chat
@zeus-web/revogrid-adapter
@zeus-web/data-grid
@zeus-web/agent-console高级组件坚持 headless-first。它们负责行为、状态、事件、方法、可访问性与性能契约。Beta.0 仅通过各自的 @zeus-web/* 高级包提供;高级 registry 模板和 @zeus-web/ui styled 入口均延期发布。
详细设计与路线图见:
docs/design/zeus-ui-advanced-components.md| Package | 用途 |
|---|---|
@zeus-web/cli |
zweb init、zweb add、AI metadata、icon 命令。 |
@zeus-web/registry |
CLI 使用的源码模板 registry。 |
@zeus-web/ui |
包内自带样式的原生 Web Components。 |
@zeus-web/themes |
设计 token 与组件级 CSS 变量。 |
@zeus-web/icons |
图标资源与生成的 wrapper。 |
@zeus-web/button |
带 WC/React/Vue 入口的 headless button primitive。 |
@zeus-web/input |
带 WC/React/Vue 入口的 headless input primitive。 |
@zeus-web/virtual |
规划中的高级虚拟滚动基础设施。 |
@zeus-web/chat |
规划中的 ChatGPT 风格 headless chat 组件族。 |
@zeus-web/data-grid |
规划中的高性能 headless data grid。 |
pnpm install
pnpm build
pnpm check
pnpm lint
pnpm test
pnpm site:check
pnpm showcase:cipnpm showcase:react
pnpm showcase:vue
pnpm showcase:nativepnpm release:verify --allow-zero