@zeus-web/vue
Zeus Web
Zeus Web 是一个框架无关的 UI 系统,基于 Web Components、源码 registry 模板,以及包内自带样式的原生组件入口构建。
它支持三种使用路径:
- CLI registry source:面向 React 和 Vue 应用,复制可编辑源码到项目中。
- Native styled Web Components:通过
@zeus-web/ui使用无框架带样式 Web Components。 - Advanced primitives:通过按组件拆分的包使用高级 headless 能力。
推荐路径:CLI registry source
当你在构建 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.tsx
Vue 项目中生成的组件文件使用 .vue:
src/components/ui/button.vue
src/components/ui/input.vue
React 使用示例:
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>
原生带样式 Web Components
当你不想使用 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'
Advanced primitive 用法
当你要基于 headless primitives 构建自己的设计系统时,使用这个路径。
pnpm add @zeus-web/button
React 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:ci
Showcase
pnpm showcase:react
pnpm showcase:vue
pnpm showcase:native
Release 校验
pnpm release:verify --allow-zero
Version History
Pre-releases (30)
| Version | Released | License |
|---|---|---|
| 0.1.0-beta.32 | MIT | |
| 0.1.0-beta.31 | MIT | |
| 0.1.0-beta.30 | MIT | |
| 0.1.0-beta.29 | MIT | |
| 0.1.0-beta.28 | MIT | |
| 0.1.0-beta.27 | MIT | |
| 0.1.0-beta.26 | MIT | |
| 0.1.0-beta.25 | MIT | |
| 0.1.0-beta.23 | MIT | |
| 0.1.0-beta.22 | MIT | |
| 0.1.0-beta.21 | MIT | |
| 0.1.0-beta.20 | MIT | |
| 0.1.0-beta.19 | MIT | |
| 0.1.0-beta.18 | MIT | |
| 0.1.0-beta.17 | MIT | |
| 0.1.0-beta.16 | MIT | |
| 0.1.0-beta.15 | MIT | |
| 0.1.0-beta.14 | MIT | |
| 0.1.0-beta.11 | MIT | |
| 0.1.0-beta.10 | MIT | |
| 0.1.0-beta.9 | MIT | |
| 0.1.0-beta.8 | MIT | |
| 0.1.0-beta.7 | MIT | |
| 0.1.0-beta.6 | MIT | |
| 0.1.0-beta.5 | MIT | |
| 0.1.0-beta.4 | MIT | |
| 0.1.0-beta.3 | MIT | |
| 0.1.0-beta.2 | MIT | |
| 0.1.0-beta.1 | MIT | |
| 0.1.0-beta.0 | MIT |