YyumeiZhang 68be8082ac feat: Tree/TreeSelect support keyMaps API (#1858) 1 year ago
..
_base 92dbd3cd1f Merge branch 'main' into release 2 years ago
_cssAnimation 73401f34e4 fix: fix tooltip animation in react18 #1225 (#1227) 3 years ago
_portal dc6f3f7fee fix: optimize code 2 years ago
_sortable ef375fb64e refactor: change react-sortable-hoc to dnd-kit for Transfer/Taginput … (#1738) 2 years ago
_test_ d4c3d4b522 chore: use eslint to format code (#1162) 3 years ago
_utils 3faa6064f0 fix: extract the public method getScrollbarWidth to the util folder 2 years ago
anchor d4b9f3276b feat: pass data-* attribute to dom (#1630) 2 years ago
autoComplete f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
avatar f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
backtop f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
badge f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
banner f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
breadcrumb f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
button 81502aee75 feat: Split Button supports deep nested Button (#1741) 2 years ago
calendar c3d8a4393b fix: set new events to calendar make the itemLimit illegal 2 years ago
card bd83d1f9cd chore: format code 3 years ago
carousel 0f0a2af917 chore: fix wrong spelling (#1814) 2 years ago
cascader 574fd29c96 fix: [Cascader] Fixed an error caused by untimely update of data in loadingKeys (#1876) 2 years ago
checkbox f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
collapse a5172051cf feat: add onMotionEnd 2 years ago
collapsible d4b9f3276b feat: pass data-* attribute to dom (#1630) 2 years ago
configProvider f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
datePicker 30206d9e6d feat: DatePicker support split first inset input #1787 (#1887) 2 years ago
descriptions d4b9f3276b feat: pass data-* attribute to dom (#1630) 2 years ago
divider fd9f597550 Chore: update storybook & Webpack & Cypress (#1589) 2 years ago
dropdown eab3aba1c5 feat: add expanded spacing to tooltip (#1833) 2 years ago
empty d4b9f3276b feat: pass data-* attribute to dom (#1630) 2 years ago
form ca45614469 fix: arrayField addWithInitValue params type define 2 years ago
grid bd83d1f9cd chore: format code 3 years ago
highlight ee4f9b2c72 New Component Highlight (#1281) 2 years ago
iconButton f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
icons d7ce8db958 test: update storybook filename (#1161) 3 years ago
image 604826bee3 fix: Fix the problem of incomplete display/non-display of Image element when the height is very small 2 years ago
input f6cef04dd3 feat(textarea): autosize support object prop (#1835) 2 years ago
inputNumber c57882d5b3 fix: fixed InputNumber formatter bug related to #1772 (#1870) 2 years ago
layout 9b82b7e001 chore: eslint fix 2 years ago
list d4b9f3276b feat: pass data-* attribute to dom (#1630) 2 years ago
locale 076be4564e Merge branch origin/main into main 2 years ago
modal 380b864c4f fix: fix utils import 2 years ago
navigation f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
notification 4220dec3a3 fix: remove usless code 2 years ago
overflowList 97d7348556 fix: fix overflow key error 2 years ago
pagination b8ddda290e fix: pagination popoverZIndex don't take effect on sizeChanger (#1896) 2 years ago
popconfirm a2bf3eeca6 feat: add popconfirm api showCloseIcon (#1906) 2 years ago
popover eab3aba1c5 feat: add expanded spacing to tooltip (#1833) 2 years ago
progress f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
radio f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
rating f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
resizeObserver f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
scripts 626c4b9f9e Feat/support next (#245) 3 years ago
scrollList f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
select 6a1e34d14d fix: select option never use key in jsx declare usage (#1889) 2 years ago
sideSheet f619611591 fix: fix utils import 2 years ago
skeleton bd83d1f9cd chore: format code 3 years ago
slider f6f7ef0a8e Merge pull request #1753 from SyMind/chore/eslint-fix 2 years ago
space 685ea938f3 feat: DatePicker support onClickOutside, open, close methods (#1470) 2 years ago
spin f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
steps ea3a994d95 fix: fix steps some hover active style (#1836) 2 years ago
switch f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
table fd15c4f37e feat: Table sorter support sortOrder parameter 2 years ago
tabs f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
tag 1e4b31f644 feat: tag support suffixIcon、prefixIcon (#1832) 2 years ago
tagInput ef375fb64e refactor: change react-sortable-hoc to dnd-kit for Transfer/Taginput … (#1738) 2 years ago
timePicker ce49ca8cc7 fix: Timepicker fill with wrong current time in start time under controlled mode (#1717) 2 years ago
timeline d4b9f3276b feat: pass data-* attribute to dom (#1630) 2 years ago
toast 4220dec3a3 fix: remove usless code 2 years ago
tooltip eab3aba1c5 feat: add expanded spacing to tooltip (#1833) 2 years ago
transfer ef375fb64e refactor: change react-sortable-hoc to dnd-kit for Transfer/Taginput … (#1738) 2 years ago
tree 68be8082ac feat: Tree/TreeSelect support keyMaps API (#1858) 1 year ago
treeSelect 68be8082ac feat: Tree/TreeSelect support keyMaps API (#1858) 1 year ago
trigger f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
typography 0348353f4b feat: typography support custom tooltip component (#1874) 2 years ago
upload bbe58f9a19 feat: upload addOnPsting (#1802) 2 years ago
README.md 47a1ddada0 docs: update semi-ui readme 2 years ago
getBabelConfig.js 496f3db0f7 chore: remove corejs 3 years ago
gulpfile.js 9c3a607100 chore: auto format code 3 years ago
index.ts ee4f9b2c72 New Component Highlight (#1281) 2 years ago
package.json 11cc57786f v2.46.1 2 years ago
tsconfig.json 2f70e0bbc2 fix: ts check error of upload/witFied/fields in strict mode 3 years ago
webpack.config.js 0b2dd121d0 chore: use webpack5 2 years ago

README.md

Semi-UI

A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.

[![LICENSE][license-badge]][license-url] [![NPM][npm-badge]][npm-url] [![CONTRIBUTORS][contributors-badge]][contributors-url] ![Design Token][Design Token] [![FIGMA][figma-badge]][figma-url] [![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)

🎉 Features

  • 💪 Up to 60+ high-quality Components.
  • 💅 Code2Design, automatically generate Figma UI Kit according to different themes, keep same between design and code
  • 🚀 Powerful Design2Code support, convert figma draft to code in a few seconds
  • 💕 Complete A11y support, follows W3C standards to provide keyboard interaction, focus management and ARIA for all components
  • 💅 Up to 2700+ Design Tokens can be easily modify by Semi Design system management, make Semi Design to Any Design quickly.
  • 🌍 Internationalization Support for Dozens of Languages, timezone, RTL support
  • ⚙️ Strict quality assurance, covering unit testing, E2E testing, visual testing
  • 👏 Written in Typescript, friendly Static Type Support. Based on Foundation/Adapter architecture, easy to read and contribute
  • 🥳 SSR (Server Side Rendering) Compatible.

🔥 Install

# with npm
npm install @douyinfe/semi-ui

# with yarn
yarn add @douyinfe/semi-ui

👍 Usage

Here is a quick example to get you started, it's all you need:

import React from 'react';
import ReactDOM from 'react-dom';
import { Button, Switch } from '@douyinfe/semi-ui';

const App = () => (
    <>
        <Button type='primary'>primary button</Button>
        <Switch size='large' />
    </>
);

ReactDOM.render(<App />, document.querySelector('#app'));

And Semi UI Doc Site has hundreds of editable examples and live preview, welcome to play with those examples.

📰 News about Semi UI

📌 Documentation

👌 Platform Support

Semi UI supports all major modern browsers.

|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 |

👨‍👨‍👧‍👦 User Group

Join User Group on Feishu / Lark

💖 Thanks

Chromatic

Thanks to Chromatic for providing the visual testing platform that helps us review UI changes and catch visual regressions.

Cypress

Thanks to Cypress for providing E2E testing.

👐 Contributing

Thanks to all the people who already contributed!

Read the contributing guide to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to Semi UI.

See CONTRIBUTING documentation.

🎈 License

Semi UI is MIT Licensed