UI组件库 活跃维护

zag

chakra-ui/zag

在 React、Solid、Vue、Svelte 或原生 JavaScript 中构建你的设计系统。由有限状态机提供支持

5229
Stars 标星
299
Forks 分支
15
Watchers 关注
11
Open Issues
TypeScript
主要语言
MIT
开源协议
99.4 MB
仓库大小
3 小时前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:chakra-ui/zag
git clone https://github.com/chakra-ui/zag.git
git clone git@github.com:chakra-ui/zag.git
README.md main

英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。

扎格

适用于 React、Vue、Solid 和 Svelte 的可访问组件逻辑。

使用状态机构建对话框、菜单、组合框、日期选择器等,这些状态机处理键盘交互、焦点管理和 ARIA 属性。您控制标记和样式;Zag 处理行为。

文档 · 快速开始 · 更新日志 · Discord

为什么选择 Zag?

  • 自带设计。 无头 API 让你可以控制渲染元素和任何样式解决方案。
  • 跨框架重用行为。 相同的组件状态机驱动 React、Vue、Solid 和 Svelte,同时也有适用于 Preact 和原生 JavaScript 的适配器。
  • 构建可访问的交互。 键盘导航、焦点管理和 ARIA 行为遵循 WAI-ARIA 编写实践。
  • 使复杂行为可预测。 状态机描述组件如何响应交互,Playwright 测试检查跨框架的行为。

快速开始

安装组件机器和框架的适配器。对于 React 切换组:

npm install @zag-js/toggle-group @zag-js/react

将机器连接到您的标记上:

import { normalizeProps, useMachine } from "@zag-js/react"
import * as toggle from "@zag-js/toggle-group"
import { useId } from "react"

export function ToggleGroup() {
  const service = useMachine(toggle.machine, { id: useId() })
  const api = toggle.connect(service, normalizeProps)

  return (
    <div {...api.getRootProps()}>
      <button {...api.getItemProps({ value: "bold" })} aria-label="Bold">
        B
      </button>
      <button {...api.getItemProps({ value: "italic" })} aria-label="Italic">
        I
      </button>
      <button {...api.getItemProps({ value: "underline" })} aria-label="Underline">
        U
      </button>
    </div>
  )
}

添加你的样式,然后浏览 切换组文档 以查看完整的 API 以及其他框架的示例。

框架 适配器
React @zag-js/react
Vue @zag-js/vue
Solid @zag-js/solid
Svelte @zag-js/svelte
Preact @zag-js/preact
原生 JavaScript @zag-js/vanilla

贡献

欢迎提交错误报告、文档改进和新组件的想法。请阅读贡献指南了解本地设置、开发命令以及如何提交更改。

致谢

Zag 源于构建 Chakra UI,并从 Pure UI、Pure UI Control、Material Components Web、Radix UI、XState、Vue、Lit 和 Sonner 中汲取灵感。

许可证

MIT © Chakra 系统公司

本站来源与版权声明
  • 本文标题:zag - 在 React
  • 本文链接:https://cn121.com/uikit/chakra-ui-zag.html
  • 原项目:chakra-ui/zag 版权归原作者 chakra-ui 及贡献者所有
  • 收录信息:本站于 2026-10-15 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 chakra-ui/zag。
  • 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。