pointhalo b601db236a Merge branch 'release' into feat_aweme 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 3776bd2d24 fix: fix Table getCurrentPageData type (#2032) 1 year ago
anchor d4b9f3276b feat: pass data-* attribute to dom (#1630) 2 years ago
autoComplete 7837643d6c fix: autoComplete throw error when clear, #2013 (#2016) 1 year ago
avatar 6a431d5166 chore:optimize code 1 year 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 34f8872659 fix: icon proptypes define, remove useless string type which only work in v1 1 year ago
breadcrumb 34f8872659 fix: icon proptypes define, remove useless string type which only work in v1 1 year ago
button 1ff36baa4d feat: add button disable token (#1904) 1 year ago
calendar 2238658d95 feat: add minEventHeight api to support min height in day level event render (#1964) 1 year ago
card bd83d1f9cd chore: format code 3 years ago
carousel 0f0a2af917 chore: fix wrong spelling (#1814) 2 years ago
cascader be222d4558 fix: Fix the typeError problem in Cascader when autoMerge is false and value is [] (#2017) 1 year 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 87652c7f9d feat: DatePicker support presets start and end function type #2038 (#2039) 1 year 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 b0c269fe58 fix: fix test 1 year ago
empty d4b9f3276b feat: pass data-* attribute to dom (#1630) 2 years ago
form 71e9c037b2 fix: fix error word in form, "showldAppendRow" -> "shouldAppendRow" (#1940) 1 year 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 92ca8e2802 fix: fix onclose/onPreivew call twice when click the edge of closeIcon (#2027) 1 year ago
input b601db236a Merge branch 'release' into feat_aweme 1 year 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 b601db236a Merge branch 'release' into feat_aweme 1 year ago
navigation 34f8872659 fix: icon proptypes define, remove useless string type which only work in v1 1 year ago
notification f2fbf125aa Merge branch 'main' into release 1 year 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 34f8872659 fix: icon proptypes define, remove useless string type which only work in v1 1 year 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 fc972f9ced fix: the new version of pr #1977 (#1996) 1 year ago
sideSheet 34f8872659 fix: icon proptypes define, remove useless string type which only work in v1 1 year ago
skeleton bd83d1f9cd chore: format code 3 years ago
slider f4b572a8e0 feat: add slider handle dot 1 year 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 d9a51738a7 feat: Table support renderFilterDropdown #2015 (#2046) 1 year 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 0e77d9e8b0 fix: remove the require in timepicker stopPropagation props (#1997) 1 year ago
timeline d4b9f3276b feat: pass data-* attribute to dom (#1630) 2 years ago
toast 34f8872659 fix: icon proptypes define, remove useless string type which only work in v1 1 year 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 9582f781ce fix: Fix the problem of indentation error of tree when renderingFullLabel (#2007) 1 year ago
treeSelect 1752b9eaac feat: TreeSelect component adds onClear event (#2041) 1 year ago
trigger f05ed24b0b chore: remove file head lint rule which already set global (#1706) 2 years ago
typography 5248737dbd fix: (Typography)JS truncate cannot work with text doesn't wrap (#1877) 1 year 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 8ed56068b7 chore: add base foundation export (#1979) 1 year ago
package.json d39b89cf05 v2.51.3 1 year 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