快速搭建美观的 React 应用。由抖音前端与 UED 团队维护。 https://semi.design/

linyan 81f8e461b4 test: add e2e to fix#1992 hai 1 ano
.codesandbox fd9f597550 Chore: update storybook & Webpack & Cypress (#1589) %!s(int64=2) %!d(string=hai) anos
.github 7cb7f7a5ca Update performance.yaml hai 1 ano
.storybook d13d8e48e8 chore:optimize storybook build %!s(int64=2) %!d(string=hai) anos
.vscode a1aba4ae8d fix: single select will flush when filter is true, close #1207 (#1276) %!s(int64=2) %!d(string=hai) anos
content 2797be5a06 docs: improve datepicker format use (#1980) hai 1 ano
cypress 81f8e461b4 test: add e2e to fix#1992 hai 1 ano
packages 4e8b7d1c24 fix: the problem of Select failing to select options after clicking outside when the radio selection is controlled hai 1 ano
plugins 395ecb1b03 feat: add docs of lab icon (#1956) hai 1 ano
scripts be5bdd3203 fix: fix filter in issue analyze script %!s(int64=2) %!d(string=hai) anos
search 708df1978f chore: update search data %!s(int64=3) %!d(string=hai) anos
src c7982af07a docs: add contaction in VChart hai 1 ano
static 7d72163a34 chore: add sitemap url to robots.txt %!s(int64=2) %!d(string=hai) anos
test 5244bea095 chore: add jest resizeobserver polyfill %!s(int64=3) %!d(string=hai) anos
.commitlintrc.js f76bd5879d feat: init %!s(int64=4) %!d(string=hai) anos
.eslintignore f76bd5879d feat: init %!s(int64=4) %!d(string=hai) anos
.eslintrc.js f05ed24b0b chore: remove file head lint rule which already set global (#1706) %!s(int64=2) %!d(string=hai) anos
.gitattributes 8337c6d90a Update .gitattributes %!s(int64=3) %!d(string=hai) anos
.gitignore f8d62f4c66 test: [Image] add test cases for Image (#1236) %!s(int64=2) %!d(string=hai) anos
.lighthouserc.js fb91638513 chore(ci): lighthouse (#380) %!s(int64=3) %!d(string=hai) anos
.npmrc 37f53d3a5e chore: update yarn.lock %!s(int64=3) %!d(string=hai) anos
.prettierrc.js f76bd5879d feat: init %!s(int64=4) %!d(string=hai) anos
.stylelintrc.js c5917caa93 chore: change stylelint rules %!s(int64=2) %!d(string=hai) anos
CODE_OF_CONDUCT.md 0e46959d60 Create CODE_OF_CONDUCT.md %!s(int64=4) %!d(string=hai) anos
CONTRIBUTING-en-US.md 110db20637 docs: update CONTRIBUTING.md %!s(int64=3) %!d(string=hai) anos
CONTRIBUTING.md d7e8271733 docs: update CONTRIBUTING.md %!s(int64=3) %!d(string=hai) anos
LICENSE 15deb4dd41 Update LICENSE %!s(int64=4) %!d(string=hai) anos
README-zh_CN.md 507cc171fe docs: Update README-zh_CN.md %!s(int64=2) %!d(string=hai) anos
README.md cb4f1cae33 docs: Update README.md %!s(int64=2) %!d(string=hai) anos
babel.config.js f76bd5879d feat: init %!s(int64=4) %!d(string=hai) anos
cypress.config.ts fd9f597550 Chore: update storybook & Webpack & Cypress (#1589) %!s(int64=2) %!d(string=hai) anos
favicon.ico f76bd5879d feat: init %!s(int64=4) %!d(string=hai) anos
gatsby-browser.js f76bd5879d feat: init %!s(int64=4) %!d(string=hai) anos
gatsby-config.js 66559b4561 chore: add cdn config %!s(int64=2) %!d(string=hai) anos
gatsby-node.js 395ecb1b03 feat: add docs of lab icon (#1956) hai 1 ano
gatsby-ssr.js f76bd5879d feat: init %!s(int64=4) %!d(string=hai) anos
jest.config.js 591051eb86 test: add istanbul ignore to some file and update jest exclude config %!s(int64=3) %!d(string=hai) anos
lerna.json 5a1affe040 v2.49.1 hai 1 ano
nyc.config.js 591051eb86 test: add istanbul ignore to some file and update jest exclude config %!s(int64=3) %!d(string=hai) anos
package.json 587cece667 chore: move lerna from dependency to devDependency (#1986) hai 1 ano
sitemap.xml cc711abf66 chore: publish 2.49.1 hai 1 ano
test.txt d7403cddd0 Revert "Revert "Revert "Revert "Revert "chore: change test""""" hai 1 ano
tsconfig.eslint.json f76bd5879d feat: init %!s(int64=4) %!d(string=hai) anos
tsconfig.json ef2531c8be Fix strict ts (#314) %!s(int64=3) %!d(string=hai) anos
yarn.lock cc711abf66 chore: publish 2.49.1 hai 1 ano

README-zh_CN.md

Semi-UI

现代、全面、灵活的设计系统和 UI 库。 致力打通 DesignOps & DevOps ,快速搭建美观的 React 应用。

[![LICENSE][license-badge]][license-url] [![NPM][npm-badge]][npm-url] [![FIGMA][figma-badge]][figma-url] ![Design Token][Design Token] [![BUILD-JS][build-js-badge]][build-js-url] [![BUILD-CSS][build-css-badge]][build-css-url] [![CODECOV][codecov-badge]][codecov-url] [![Chromatic][chromatic-badge]][chromatic-url] [![Cypress][cypress-badge]][cypress-url] [![Twitter Follow](https://img.shields.io/twitter/follow/SemiDesignUI?style=social)](https://twitter.com/SemiDesignUI)

简体中文 | English

🎉 特性

  • 💪 60+高质量组件
  • 💅 Code2Design,根据不同主题自动生成 Figma UI Kit,保持代码与设计同源
  • 🚀 强大的 D2C (Design2Code)支持,Figma 设计稿一键转出真实代码,快速构建应用
  • 💕 完善的无障碍支持,为所有组件提供遵循 W3C 标准的键盘交互、焦点管理和语义化
  • 🎨 设计系统管理工具 Semi DSM,多达2000+ Design Token,快速定制你的专属设计系统
  • 🌍 国际化支持 20+ 语言,提供完备的多语言、多时区、RTL支持
  • ⚙️ 稳定的质量保障,覆盖单元测试、E2E测试、视觉回归测试等多种测试手段
  • 🥳 支持 SSR
  • 👏 使用 TypeScript, 良好的类型定义,基于 Foundation / Adapter 架构,源码易于阅读 / 贡献

🔥 安装

npm install @douyinfe/semi-ui

👍 组件使用

这是一个快速开始的例子:

import React from 'react';
import { createRoot } from 'react-dom/client';
import { Button, Form } from '@douyinfe/semi-ui';

const App = () => (
    <Form>
        <Form.Input field='name' initValue='semi design'></Form.Input>
        <Button htmlType='submit'>submit</Button>
    </Form>
);

const root = createRoot(document.querySelector('#app'));
root.render(<App />);

Semi UI 官网 拥有上千个支持实时调试的例子,欢迎体验使用。

⚡️ D2C 设计稿转代码

安装插件 Semi Figma Plugin. 数秒内将 Figma 转为真实前端代码,支持多种出码格式: JSX + SCSS / Emotion/Tailwind、 JSON Schema DSL

  • 支持 Figma Devmode,选中图层后,右侧可直接查看对应的真实代码

design2code

  • 或跳转至 Codesandbox 进行二次编辑

codesandboxdemo

🎨 DSM 设计系统管理

基于 Semi UI 定制你的专属设计系统, 提供高达 2700+ Token 允许你定义每一处细节. 并时刻在 Figma 与主题商店间保持同步。

dsmintro

📰 关注我们的动态

📌 文档

👌 平台支持

Semi UI 支持所有主流浏览器。

|chrome
chrome|firefox
firefox|safari
safari|IE/Edge
IE/Edge|electron
Electron| |--|--|--|--|--| | latest 2 versions | latest 2 versions | latest 2 versions | Edge | latest 2 versions |

👨‍👨‍👧‍👦 交流群

有任何问题可以进群交流,我们会及时给予解答和反馈。

加入飞书用户群.

💖 Thanks

Chromatic

感谢 Chromatic 提供可视化测试平台,帮助我们审查 UI 更改和提供视觉回归测试。

Cypress

感谢 Cypress 提供 E2E 测试。

👐 参与共建

Semi Design 欢迎社区开发者参与共建,衷心感谢每一位协作者的付出

阅读贡献指南了解我们的开发流程,包括开发规范、测试规范和构建规范等: CONTRIBUTING

🎈 协议

Semi UI 使用 MIT 协议