瀏覽代碼

chore: use eslint to fix staged lint error (#295)

* chore: use eslint to fix staged lint error

* chore(lint): add markdown lint

* chore(lint): resolve markdown lint error in content directory
走鹃 3 年之前
父節點
當前提交
6271ca78b4
共有 100 個文件被更改,包括 9842 次插入9744 次删除
  1. 8 2
      .eslintrc.js
  2. 198 198
      content/basic/grid/index-en-US.md
  3. 198 198
      content/basic/grid/index.md
  4. 42 41
      content/basic/icon/index-en-US.md
  5. 42 41
      content/basic/icon/index.md
  6. 288 288
      content/basic/layout/index-en-US.md
  7. 8 8
      content/basic/layout/index.md
  8. 6 6
      content/basic/space/index-en-US.md
  9. 6 6
      content/basic/space/index.md
  10. 185 185
      content/basic/typography/index-en-US.md
  11. 186 186
      content/basic/typography/index.md
  12. 82 82
      content/feedback/banner/index-en-US.md
  13. 82 82
      content/feedback/banner/index.md
  14. 168 168
      content/feedback/notification/index-en-US.md
  15. 13 13
      content/feedback/popconfirm/index-en-US.md
  16. 13 13
      content/feedback/popconfirm/index.md
  17. 19 19
      content/feedback/progress/index-en-US.md
  18. 11 13
      content/feedback/progress/index.md
  19. 226 226
      content/feedback/skeleton/index-en-US.md
  20. 36 36
      content/feedback/skeleton/index.md
  21. 2 2
      content/feedback/spin/index-en-US.md
  22. 4 1
      content/feedback/toast/index-en-US.md
  23. 2 0
      content/feedback/toast/index.md
  24. 8 8
      content/input/autocomplete/index-en-US.md
  25. 8 8
      content/input/autocomplete/index.md
  26. 259 258
      content/input/button/index-en-US.md
  27. 216 215
      content/input/button/index.md
  28. 454 454
      content/input/cascader/index-en-US.md
  29. 419 419
      content/input/cascader/index.md
  30. 181 181
      content/input/checkbox/index-en-US.md
  31. 171 171
      content/input/checkbox/index.md
  32. 10 10
      content/input/datepicker/index-en-US.md
  33. 4 4
      content/input/datepicker/index.md
  34. 128 113
      content/input/form/index-en-US.md
  35. 226 209
      content/input/form/index.md
  36. 184 184
      content/input/input/index-en-US.md
  37. 183 183
      content/input/input/index.md
  38. 108 106
      content/input/inputnumber/index-en-US.md
  39. 78 78
      content/input/inputnumber/index.md
  40. 2 2
      content/input/radio/index-en-US.md
  41. 11 11
      content/input/radio/index.md
  42. 5 5
      content/input/rating/index-en-US.md
  43. 6 6
      content/input/rating/index.md
  44. 38 38
      content/input/select/index-en-US.md
  45. 403 403
      content/input/select/index.md
  46. 119 119
      content/input/slider/index-en-US.md
  47. 142 139
      content/input/slider/index.md
  48. 27 27
      content/input/switch/index-en-US.md
  49. 30 28
      content/input/switch/index.md
  50. 20 20
      content/input/taginput/index-en-US.md
  51. 20 20
      content/input/taginput/index.md
  52. 41 41
      content/input/timepicker/index.md
  53. 425 425
      content/input/treeselect/index-en-US.md
  54. 450 450
      content/input/treeselect/index.md
  55. 18 16
      content/input/upload/index-en-US.md
  56. 11 11
      content/input/upload/index.md
  57. 75 71
      content/navigation/anchor/index-en-US.md
  58. 62 58
      content/navigation/anchor/index.md
  59. 12 12
      content/navigation/breadcrumb/index-en-US.md
  60. 12 12
      content/navigation/breadcrumb/index.md
  61. 4 4
      content/navigation/navigation/index-en-US.md
  62. 4 4
      content/navigation/navigation/index.md
  63. 9 9
      content/navigation/pagination/index-en-US.md
  64. 9 9
      content/navigation/pagination/index.md
  65. 91 91
      content/navigation/steps/index-en-US.md
  66. 162 162
      content/navigation/steps/index.md
  67. 6 5
      content/navigation/tabs/index-en-US.md
  68. 41 40
      content/navigation/tabs/index.md
  69. 555 555
      content/navigation/tree/index-en-US.md
  70. 201 201
      content/navigation/tree/index.md
  71. 155 155
      content/other/configprovider/index-en-US.md
  72. 155 155
      content/other/configprovider/index.md
  73. 12 8
      content/other/locale/index-en-US.md
  74. 10 8
      content/other/locale/index.md
  75. 2 2
      content/show/avatar/index-en-US.md
  76. 6 5
      content/show/badge/index-en-US.md
  77. 5 5
      content/show/badge/index.md
  78. 30 30
      content/show/calendar/index-en-US.md
  79. 445 444
      content/show/card/index-en-US.md
  80. 445 444
      content/show/card/index.md
  81. 18 13
      content/show/collapse/index-en-US.md
  82. 18 13
      content/show/collapse/index.md
  83. 2 2
      content/show/collapsible/index-en-US.md
  84. 2 2
      content/show/collapsible/index.md
  85. 1 1
      content/show/dropdown/index-en-US.md
  86. 11 8
      content/show/list/index-en-US.md
  87. 4 1
      content/show/list/index.md
  88. 419 420
      content/show/modal/index-en-US.md
  89. 418 419
      content/show/modal/index.md
  90. 1 1
      content/show/overflowlist/index-en-US.md
  91. 1 1
      content/show/overflowlist/index.md
  92. 1 1
      content/show/sidesheet/index-en-US.md
  93. 34 28
      content/show/table/index-en-US.md
  94. 53 48
      content/show/table/index.md
  95. 95 95
      content/show/tag/index.md
  96. 8 8
      content/show/timeline/index-en-US.md
  97. 7 7
      content/show/timeline/index.md
  98. 1 1
      content/show/tooltip/index-en-US.md
  99. 9 9
      content/show/tooltip/index.md
  100. 1 1
      content/start/customize-theme/index-en-US.md

+ 8 - 2
.eslintrc.js

@@ -10,6 +10,7 @@ module.exports = {
             "version": "detect"
             "version": "detect"
         }
         }
     },
     },
+    extends: ["plugin:markdown/recommended"],
     overrides: [
     overrides: [
         {
         {
             files: ['*.js', '*.jsx'],
             files: ['*.js', '*.jsx'],
@@ -27,7 +28,9 @@ module.exports = {
                 'react/prop-types': 'off',
                 'react/prop-types': 'off',
                 'react/prefer-stateless-function': 'off',
                 'react/prefer-stateless-function': 'off',
                 'operator-linebreak': ['warn', 'after', { 'overrides': { '?': 'before', ':': 'before' } }],
                 'operator-linebreak': ['warn', 'after', { 'overrides': { '?': 'before', ':': 'before' } }],
-                'import/no-unresolved': 'off'
+                'import/no-unresolved': 'off',
+                'semi': ['error', 'always'],
+                'keyword-spacing': ["error", { "before": true, "after": true }]
             },
             },
             globals: {
             globals: {
                 "sinon": "readonly",
                 "sinon": "readonly",
@@ -35,6 +38,7 @@ module.exports = {
         },
         },
         {
         {
             files: ['*.ts', '*.tsx'],
             files: ['*.ts', '*.tsx'],
+            excludedFiles: ['content/**'],
             extends: ['jest-enzyme', 'plugin:@typescript-eslint/recommended', 'plugin:import/typescript', 'plugin:react/recommended'],
             extends: ['jest-enzyme', 'plugin:@typescript-eslint/recommended', 'plugin:import/typescript', 'plugin:react/recommended'],
             parser: '@typescript-eslint/parser',
             parser: '@typescript-eslint/parser',
             parserOptions: {
             parserOptions: {
@@ -62,7 +66,9 @@ module.exports = {
                 '@typescript-eslint/no-var-requires': 'warn',
                 '@typescript-eslint/no-var-requires': 'warn',
                 '@typescript-eslint/no-inferrable-types': 'off',
                 '@typescript-eslint/no-inferrable-types': 'off',
                 '@typescript-eslint/no-this-alias': 'off',
                 '@typescript-eslint/no-this-alias': 'off',
-                'import/no-unresolved': 'off'
+                'import/no-unresolved': 'off',
+                'semi': ['error', 'always'],
+                'keyword-spacing': ["error", { "before": true, "after": true }]
             }
             }
         },
         },
     ],
     ],

+ 198 - 198
content/basic/grid/index-en-US.md

@@ -35,30 +35,30 @@ import React from 'react';
 import { Col, Row } from '@douyinfe/semi-ui';
 import { Col, Row } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div className="grid">
-      <Row>
-          <Col span={24}><div className="col-content">col-24</div></Col>
-      </Row>
-      <br/>
-      <Row>
-          <Col span={12}><div className="col-content">col-12</div></Col>
-          <Col span={12}><div className="col-content">col-12</div></Col>
-      </Row>
-      <br/>
-      <Row>
-          <Col span={8}><div className="col-content">col-8</div></Col>
-          <Col span={8}><div className="col-content">col-8</div></Col>
-          <Col span={8}><div className="col-content">col-8</div></Col>
-      </Row>
-      <br/>
-      <Row>
-          <Col span={6}><div className="col-content">col-6</div></Col>
-          <Col span={6}><div className="col-content">col-6</div></Col>
-          <Col span={6}><div className="col-content">col-6</div></Col>
-          <Col span={6}><div className="col-content">col-6</div></Col>
-      </Row>
-  </div>
-) 
+    <div className="grid">
+        <Row>
+            <Col span={24}><div className="col-content">col-24</div></Col>
+        </Row>
+        <br/>
+        <Row>
+            <Col span={12}><div className="col-content">col-12</div></Col>
+            <Col span={12}><div className="col-content">col-12</div></Col>
+        </Row>
+        <br/>
+        <Row>
+            <Col span={8}><div className="col-content">col-8</div></Col>
+            <Col span={8}><div className="col-content">col-8</div></Col>
+            <Col span={8}><div className="col-content">col-8</div></Col>
+        </Row>
+        <br/>
+        <Row>
+            <Col span={6}><div className="col-content">col-6</div></Col>
+            <Col span={6}><div className="col-content">col-6</div></Col>
+            <Col span={6}><div className="col-content">col-6</div></Col>
+            <Col span={6}><div className="col-content">col-6</div></Col>
+        </Row>
+    </div>
+); 
 ```
 ```
 
 
 ### Gutter interval
 ### Gutter interval
@@ -78,65 +78,65 @@ import React from 'react';
 import { Col, Row } from '@douyinfe/semi-ui';
 import { Col, Row } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div className="grid grid-gutter">
-    <p>horizontal</p>
-    <hr />
-    <Row gutter={16}>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-    </Row>
-    <p>vertical</p>
-    <hr />
-    <Row gutter={[16, 24]}>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-    </Row>
-  </div>
-)
+    <div className="grid grid-gutter">
+        <p>horizontal</p>
+        <hr />
+        <Row gutter={16}>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+        </Row>
+        <p>vertical</p>
+        <hr />
+        <Row gutter={[16, 24]}>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+        </Row>
+    </div>
+);
 ```
 ```
 
 
 ### Offset
 ### Offset
@@ -146,30 +146,30 @@ import React from 'react';
 import { Col, Row } from '@douyinfe/semi-ui';
 import { Col, Row } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div className="grid">
-    <Row>
-      <Col span={8}><div className="col-content">col-8</div></Col>
-      <Col span={8} offset={8}>
-        <div className="col-content">col-8</div>
-      </Col>
-    </Row>
-    <br/>
-    <Row>
-      <Col span={6} offset={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6} offset={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-    </Row>
-    <br/>
-    <Row>
-      <Col span={12} offset={6}>
-        <div className="col-content">col-12</div>
-      </Col>
-    </Row>
-  </div>
-)
+    <div className="grid">
+        <Row>
+            <Col span={8}><div className="col-content">col-8</div></Col>
+            <Col span={8} offset={8}>
+                <div className="col-content">col-8</div>
+            </Col>
+        </Row>
+        <br/>
+        <Row>
+            <Col span={6} offset={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6} offset={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+        </Row>
+        <br/>
+        <Row>
+            <Col span={12} offset={6}>
+                <div className="col-content">col-12</div>
+            </Col>
+        </Row>
+    </div>
+);
 ```
 ```
 
 
 ### Use Flex layout
 ### Use Flex layout
@@ -181,48 +181,48 @@ import React from 'react';
 import { Col, Row } from '@douyinfe/semi-ui';
 import { Col, Row } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div className="grid">
-    <p>sub-element align left</p>
-    <Row type="flex" justify="start">
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-    </Row>
-
-    <p>sub-element align center</p>
-    <Row type="flex" justify="center">
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-    </Row>
-
-    <p>sub-element align right</p>
-    <Row type="flex" justify="end">
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-    </Row>
-
-    <p>sub-element monospaced arrangement</p>
-    <Row type="flex" justify="space-between">
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-    </Row>
-
-    <p>sub-element align full</p>
-    <Row type="flex" justify="space-around">
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-    </Row>
-  </div>
-)
+    <div className="grid">
+        <p>sub-element align left</p>
+        <Row type="flex" justify="start">
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+        </Row>
+
+        <p>sub-element align center</p>
+        <Row type="flex" justify="center">
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+        </Row>
+
+        <p>sub-element align right</p>
+        <Row type="flex" justify="end">
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+        </Row>
+
+        <p>sub-element monospaced arrangement</p>
+        <Row type="flex" justify="space-between">
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+        </Row>
+
+        <p>sub-element align full</p>
+        <Row type="flex" justify="space-around">
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+        </Row>
+    </div>
+);
 ```
 ```
 
 
 ### Flex subelements vertically aligned
 ### Flex subelements vertically aligned
@@ -232,32 +232,32 @@ import React from 'react';
 import { Col, Row } from '@douyinfe/semi-ui';
 import { Col, Row } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div className="grid grid-flex">
-      <p>Align Top</p>
-      <Row type="flex" justify="center" align="top">
-          <Col span={4}><div className="col-content" value={100}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={50}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={120}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={80}>col-4</div></Col>
-      </Row>
-
-      <p>Align Center</p>
-      <Row type="flex" justify="space-around" align="middle">
-          <Col span={4}><div className="col-content" value={100}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={50}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={120}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={80}>col-4</div></Col>
-      </Row>
-
-      <p>Align Bottom</p>
-      <Row type="flex" justify="space-between" align="bottom">
-          <Col span={4}><div className="col-content" value={100}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={50}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={120}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={80}>col-4</div></Col>
-      </Row>
-  </div>
-)
+    <div className="grid grid-flex">
+        <p>Align Top</p>
+        <Row type="flex" justify="center" align="top">
+            <Col span={4}><div className="col-content" value={100}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={50}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={120}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={80}>col-4</div></Col>
+        </Row>
+
+        <p>Align Center</p>
+        <Row type="flex" justify="space-around" align="middle">
+            <Col span={4}><div className="col-content" value={100}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={50}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={120}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={80}>col-4</div></Col>
+        </Row>
+
+        <p>Align Bottom</p>
+        <Row type="flex" justify="space-between" align="bottom">
+            <Col span={4}><div className="col-content" value={100}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={50}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={120}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={80}>col-4</div></Col>
+        </Row>
+    </div>
+);
 ```
 ```
 
 
 ### Flex element sorting
 ### Flex element sorting
@@ -269,15 +269,15 @@ import React from 'react';
 import { Col, Row } from '@douyinfe/semi-ui';
 import { Col, Row } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div className="grid">
-    <Row type="flex">
-      <Col span={6} order={4}><div className="col-content">col-4</div></Col>
-      <Col span={6} order={3}><div className="col-content">col-3</div></Col>
-      <Col span={6} order={2}><div className="col-content">col-2</div></Col>
-      <Col span={6} order={1}><div className="col-content">col-1</div></Col>
-    </Row>
-  </div>
-)
+    <div className="grid">
+        <Row type="flex">
+            <Col span={6} order={4}><div className="col-content">col-4</div></Col>
+            <Col span={6} order={3}><div className="col-content">col-3</div></Col>
+            <Col span={6} order={2}><div className="col-content">col-2</div></Col>
+            <Col span={6} order={1}><div className="col-content">col-1</div></Col>
+        </Row>
+    </div>
+);
 ```
 ```
 
 
 ### Responsive
 ### Responsive
@@ -289,20 +289,20 @@ import React from 'react';
 import { Col, Row } from '@douyinfe/semi-ui';
 import { Col, Row } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
- <div className="grid">
-    <Row gutter={{xs:16,sm:16,md:16,lg:24,xl:24,xxl:24}}>
-        <Col xs={2} sm={4} md={6} lg={8} xl={10}><div className="col-content">Col</div></Col>
-        <Col xs={20} sm={16} md={12} lg={8} xl={4}><div className="col-content">Col</div></Col>
-        <Col xs={2} sm={4} md={6} lg={8} xl={10}><div className="col-content">Col</div></Col>
-    </Row>
-    <br/>
-    <Row>
-        <Col xs={{ span: 5, offset: 1 }} lg={{ span: 6, offset: 2 }}><div className="col-content">Col</div></Col>
-        <Col xs={{ span: 11, offset: 1 }} lg={{ span: 6, offset: 2 }}><div className="col-content">Col</div></Col>
-        <Col xs={{ span: 5, offset: 1 }} lg={{ span: 6, offset: 2 }}><div className="col-content">Col</div></Col>
-    </Row>
-  </div>
-)
+    <div className="grid">
+        <Row gutter={{xs:16,sm:16,md:16,lg:24,xl:24,xxl:24}}>
+            <Col xs={2} sm={4} md={6} lg={8} xl={10}><div className="col-content">Col</div></Col>
+            <Col xs={20} sm={16} md={12} lg={8} xl={4}><div className="col-content">Col</div></Col>
+            <Col xs={2} sm={4} md={6} lg={8} xl={10}><div className="col-content">Col</div></Col>
+        </Row>
+        <br/>
+        <Row>
+            <Col xs={{ span: 5, offset: 1 }} lg={{ span: 6, offset: 2 }}><div className="col-content">Col</div></Col>
+            <Col xs={{ span: 11, offset: 1 }} lg={{ span: 6, offset: 2 }}><div className="col-content">Col</div></Col>
+            <Col xs={{ span: 5, offset: 1 }} lg={{ span: 6, offset: 2 }}><div className="col-content">Col</div></Col>
+        </Row>
+    </div>
+);
 ```
 ```
 
 
 ## API reference
 ## API reference

+ 198 - 198
content/basic/grid/index.md

@@ -35,30 +35,30 @@ import React from 'react';
 import { Col, Row } from '@douyinfe/semi-ui';
 import { Col, Row } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div className="grid">
-      <Row>
-          <Col span={24}><div className="col-content">col-24</div></Col>
-      </Row>
-      <br/>
-      <Row>
-          <Col span={12}><div className="col-content">col-12</div></Col>
-          <Col span={12}><div className="col-content">col-12</div></Col>
-      </Row>
-      <br/>
-      <Row>
-          <Col span={8}><div className="col-content">col-8</div></Col>
-          <Col span={8}><div className="col-content">col-8</div></Col>
-          <Col span={8}><div className="col-content">col-8</div></Col>
-      </Row>
-      <br/>
-      <Row>
-          <Col span={6}><div className="col-content">col-6</div></Col>
-          <Col span={6}><div className="col-content">col-6</div></Col>
-          <Col span={6}><div className="col-content">col-6</div></Col>
-          <Col span={6}><div className="col-content">col-6</div></Col>
-      </Row>
-  </div>
-)
+    <div className="grid">
+        <Row>
+            <Col span={24}><div className="col-content">col-24</div></Col>
+        </Row>
+        <br/>
+        <Row>
+            <Col span={12}><div className="col-content">col-12</div></Col>
+            <Col span={12}><div className="col-content">col-12</div></Col>
+        </Row>
+        <br/>
+        <Row>
+            <Col span={8}><div className="col-content">col-8</div></Col>
+            <Col span={8}><div className="col-content">col-8</div></Col>
+            <Col span={8}><div className="col-content">col-8</div></Col>
+        </Row>
+        <br/>
+        <Row>
+            <Col span={6}><div className="col-content">col-6</div></Col>
+            <Col span={6}><div className="col-content">col-6</div></Col>
+            <Col span={6}><div className="col-content">col-6</div></Col>
+            <Col span={6}><div className="col-content">col-6</div></Col>
+        </Row>
+    </div>
+);
 ```
 ```
 
 
 ### Gutter 间隔
 ### Gutter 间隔
@@ -78,65 +78,65 @@ import React from 'react';
 import { Col, Row } from '@douyinfe/semi-ui';
 import { Col, Row } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div className="grid grid-gutter">
-    <p>horizontal</p>
-    <hr />
-    <Row gutter={16}>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-    </Row>
-    <p>vertical</p>
-    <hr />
-    <Row gutter={[16, 24]}>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-    </Row>
-  </div>
-)
+    <div className="grid grid-gutter">
+        <p>horizontal</p>
+        <hr />
+        <Row gutter={16}>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+        </Row>
+        <p>vertical</p>
+        <hr />
+        <Row gutter={[16, 24]}>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+        </Row>
+    </div>
+);
 ```
 ```
 
 
 ### Offset 偏移
 ### Offset 偏移
@@ -146,30 +146,30 @@ import React from 'react';
 import { Col, Row } from '@douyinfe/semi-ui';
 import { Col, Row } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div className="grid">
-    <Row>
-      <Col span={8}><div className="col-content">col-8</div></Col>
-      <Col span={8} offset={8}>
-        <div className="col-content">col-8</div>
-      </Col>
-    </Row>
-    <br/>
-    <Row>
-      <Col span={6} offset={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-      <Col span={6} offset={6}>
-        <div className="col-content">col-6</div>
-      </Col>
-    </Row>
-    <br/>
-    <Row>
-      <Col span={12} offset={6}>
-        <div className="col-content">col-12</div>
-      </Col>
-    </Row>
-  </div>
-)
+    <div className="grid">
+        <Row>
+            <Col span={8}><div className="col-content">col-8</div></Col>
+            <Col span={8} offset={8}>
+                <div className="col-content">col-8</div>
+            </Col>
+        </Row>
+        <br/>
+        <Row>
+            <Col span={6} offset={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+            <Col span={6} offset={6}>
+                <div className="col-content">col-6</div>
+            </Col>
+        </Row>
+        <br/>
+        <Row>
+            <Col span={12} offset={6}>
+                <div className="col-content">col-12</div>
+            </Col>
+        </Row>
+    </div>
+);
 ```
 ```
 
 
 ### Flex 布局
 ### Flex 布局
@@ -181,48 +181,48 @@ import React from 'react';
 import { Col, Row } from '@douyinfe/semi-ui';
 import { Col, Row } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div className="grid">
-    <p>sub-element align left</p>
-    <Row type="flex" justify="start">
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-    </Row>
-
-    <p>sub-element align center</p>
-    <Row type="flex" justify="center">
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-    </Row>
-
-    <p>sub-element align right</p>
-    <Row type="flex" justify="end">
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-    </Row>
-
-    <p>sub-element monospaced arrangement</p>
-    <Row type="flex" justify="space-between">
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-    </Row>
-
-    <p>sub-element align full</p>
-    <Row type="flex" justify="space-around">
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-        <Col span={4}><div className="col-content">col-4</div></Col>
-    </Row>
-  </div>
-)
+    <div className="grid">
+        <p>sub-element align left</p>
+        <Row type="flex" justify="start">
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+        </Row>
+
+        <p>sub-element align center</p>
+        <Row type="flex" justify="center">
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+        </Row>
+
+        <p>sub-element align right</p>
+        <Row type="flex" justify="end">
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+        </Row>
+
+        <p>sub-element monospaced arrangement</p>
+        <Row type="flex" justify="space-between">
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+        </Row>
+
+        <p>sub-element align full</p>
+        <Row type="flex" justify="space-around">
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+            <Col span={4}><div className="col-content">col-4</div></Col>
+        </Row>
+    </div>
+);
 ```
 ```
 
 
 ### Flex 子元素垂直对齐
 ### Flex 子元素垂直对齐
@@ -232,32 +232,32 @@ import React from 'react';
 import { Col, Row } from '@douyinfe/semi-ui';
 import { Col, Row } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div className="grid grid-flex">
-      <p>Align Top</p>
-      <Row type="flex" justify="center" align="top">
-          <Col span={4}><div className="col-content" value={100}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={50}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={120}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={80}>col-4</div></Col>
-      </Row>
-
-      <p>Align Center</p>
-      <Row type="flex" justify="space-around" align="middle">
-          <Col span={4}><div className="col-content" value={100}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={50}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={120}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={80}>col-4</div></Col>
-      </Row>
-
-      <p>Align Bottom</p>
-      <Row type="flex" justify="space-between" align="bottom">
-          <Col span={4}><div className="col-content" value={100}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={50}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={120}>col-4</div></Col>
-          <Col span={4}><div className="col-content" value={80}>col-4</div></Col>
-      </Row>
-  </div>
-)
+    <div className="grid grid-flex">
+        <p>Align Top</p>
+        <Row type="flex" justify="center" align="top">
+            <Col span={4}><div className="col-content" value={100}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={50}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={120}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={80}>col-4</div></Col>
+        </Row>
+
+        <p>Align Center</p>
+        <Row type="flex" justify="space-around" align="middle">
+            <Col span={4}><div className="col-content" value={100}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={50}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={120}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={80}>col-4</div></Col>
+        </Row>
+
+        <p>Align Bottom</p>
+        <Row type="flex" justify="space-between" align="bottom">
+            <Col span={4}><div className="col-content" value={100}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={50}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={120}>col-4</div></Col>
+            <Col span={4}><div className="col-content" value={80}>col-4</div></Col>
+        </Row>
+    </div>
+);
 ```
 ```
 
 
 ### Flex 元素排序
 ### Flex 元素排序
@@ -269,15 +269,15 @@ import React from 'react';
 import { Col, Row } from '@douyinfe/semi-ui';
 import { Col, Row } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div className="grid">
-    <Row type="flex">
-      <Col span={6} order={4}><div className="col-content">col-4</div></Col>
-      <Col span={6} order={3}><div className="col-content">col-3</div></Col>
-      <Col span={6} order={2}><div className="col-content">col-2</div></Col>
-      <Col span={6} order={1}><div className="col-content">col-1</div></Col>
-    </Row>
-  </div>
-)
+    <div className="grid">
+        <Row type="flex">
+            <Col span={6} order={4}><div className="col-content">col-4</div></Col>
+            <Col span={6} order={3}><div className="col-content">col-3</div></Col>
+            <Col span={6} order={2}><div className="col-content">col-2</div></Col>
+            <Col span={6} order={1}><div className="col-content">col-1</div></Col>
+        </Row>
+    </div>
+);
 ```
 ```
 
 
 ### 响应式
 ### 响应式
@@ -289,20 +289,20 @@ import React from 'react';
 import { Col, Row } from '@douyinfe/semi-ui';
 import { Col, Row } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
- <div className="grid">
-    <Row gutter={{xs:16,sm:16,md:16,lg:24,xl:24,xxl:24}}>
-        <Col xs={2} sm={4} md={6} lg={8} xl={10}><div className="col-content">Col</div></Col>
-        <Col xs={20} sm={16} md={12} lg={8} xl={4}><div className="col-content">Col</div></Col>
-        <Col xs={2} sm={4} md={6} lg={8} xl={10}><div className="col-content">Col</div></Col>
-    </Row>
-    <br/>
-    <Row>
-        <Col xs={{ span: 5, offset: 1 }} lg={{ span: 6, offset: 2 }}><div className="col-content">Col</div></Col>
-        <Col xs={{ span: 11, offset: 1 }} lg={{ span: 6, offset: 2 }}><div className="col-content">Col</div></Col>
-        <Col xs={{ span: 5, offset: 1 }} lg={{ span: 6, offset: 2 }}><div className="col-content">Col</div></Col>
-    </Row>
-  </div>
-)
+    <div className="grid">
+        <Row gutter={{xs:16,sm:16,md:16,lg:24,xl:24,xxl:24}}>
+            <Col xs={2} sm={4} md={6} lg={8} xl={10}><div className="col-content">Col</div></Col>
+            <Col xs={20} sm={16} md={12} lg={8} xl={4}><div className="col-content">Col</div></Col>
+            <Col xs={2} sm={4} md={6} lg={8} xl={10}><div className="col-content">Col</div></Col>
+        </Row>
+        <br/>
+        <Row>
+            <Col xs={{ span: 5, offset: 1 }} lg={{ span: 6, offset: 2 }}><div className="col-content">Col</div></Col>
+            <Col xs={{ span: 11, offset: 1 }} lg={{ span: 6, offset: 2 }}><div className="col-content">Col</div></Col>
+            <Col xs={{ span: 5, offset: 1 }} lg={{ span: 6, offset: 2 }}><div className="col-content">Col</div></Col>
+        </Row>
+    </div>
+);
 ```
 ```
 
 
 ## API 参考
 ## API 参考

+ 42 - 41
content/basic/icon/index-en-US.md

@@ -40,12 +40,12 @@ import React from 'react';
 import { IconHome, IconEmoji, IconSpin } from '@douyinfe/semi-icons';
 import { IconHome, IconEmoji, IconSpin } from '@douyinfe/semi-icons';
 
 
 () => (
 () => (
-  <div>
-    <IconHome size="small" />
-    <IconEmoji rotate={180} />
-    <IconSpin spin />
-  </div>
-)
+    <div>
+        <IconHome size="small" />
+        <IconEmoji rotate={180} />
+        <IconSpin spin />
+    </div>
+);
 
 
 ```
 ```
 
 
@@ -62,13 +62,14 @@ import React from 'react';
 import { IconSearch, IconHelpCircle, IconAlertCircle, IconMinusCircle, IconPlusCircle, IconPlus, IconRefresh } from '@douyinfe/semi-icons';
 import { IconSearch, IconHelpCircle, IconAlertCircle, IconMinusCircle, IconPlusCircle, IconPlus, IconRefresh } from '@douyinfe/semi-icons';
 
 
 () => {
 () => {
-   const types = [<IconSearch />, <IconHelpCircle />, <IconAlertCircle />, <IconMinusCircle />, <IconPlusCircle />, <IconPlus />, <IconRefresh />];
-   const sizes = ['extra-small', 'small', 'default', 'large', 'extra-large'];
-   let icons = types.map((type, i) => {
-     return <div key={i} style={{ marginBottom: 4 }}>{sizes.map(size => React.cloneElement(type, {size, key:size}))}</div>
-   })
-   return icons;
-}
+    // eslint-disable-next-line react/jsx-key
+    const types = [<IconSearch />, <IconHelpCircle />, <IconAlertCircle />, <IconMinusCircle />, <IconPlusCircle />, <IconPlus />, <IconRefresh />];
+    const sizes = ['extra-small', 'small', 'default', 'large', 'extra-large'];
+    let icons = types.map((type, i) => {
+        return <div key={i} style={{ marginBottom: 4 }}>{sizes.map(size => React.cloneElement(type, {size, key:size}))}</div>;
+    });
+    return icons;
+};
 ```
 ```
 
 
 ### Color
 ### Color
@@ -80,18 +81,18 @@ import React from 'react';
 import { IconLikeHeart, IconFlag, IconLock, IconUnlock } from '@douyinfe/semi-icons';
 import { IconLikeHeart, IconFlag, IconLock, IconUnlock } from '@douyinfe/semi-icons';
 
 
 () => (
 () => (
-  <div>
-    <div style={{color:'#E91E63'}} >
-      <IconLikeHeart size="extra-large"/>
-      <IconFlag size="extra-large"/>
-    </div>
-    <br/>
     <div>
     <div>
-      <IconLock style={{color:'#6A3AC7'}} size="extra-large" />
-      <IconUnlock style={{color:'#9C27B0'}} size="extra-large"/>
+        <div style={{color:'#E91E63'}} >
+            <IconLikeHeart size="extra-large"/>
+            <IconFlag size="extra-large"/>
+        </div>
+        <br/>
+        <div>
+            <IconLock style={{color:'#6A3AC7'}} size="extra-large" />
+            <IconUnlock style={{color:'#9C27B0'}} size="extra-large"/>
+        </div>
     </div>
     </div>
-  </div>
-)
+);
 ```
 ```
 
 
 ### Custom icon
 ### Custom icon
@@ -103,24 +104,24 @@ import React from 'react';
 import { Icon } from '@douyinfe/semi-ui';
 import { Icon } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  function CustomIcon(){
-    return <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-      <circle cx="12" cy="12" r="11" fill="#FBCD2C"/>
-      <mask id="mask0" maskType="alpha" maskUnits="userSpaceOnUse" x="1" y="1" width="22" height="22">
-        <circle cx="12" cy="12" r="11" fill="#A2845E"/>
-      </mask>
-      <g mask="url(#mask0)">
-        <path fillRule="evenodd" clipRule="evenodd" d="M11.9996 17.7963C13.7184 17.7963 15.2479 16.3561 16.0881 14.2048C16.6103 13.9909 17.1072 13.3424 17.334 12.4957C17.629 11.3948 17.5705 10.4118 16.7665 10.1059C16.6885 6.27115 15.1754 4.78714 11.9996 4.78714C8.82412 4.78714 7.31097 6.27097 7.2328 10.1052C6.42711 10.4103 6.36828 11.394 6.66349 12.4957C6.89064 13.3435 7.38849 13.9926 7.91145 14.2056C8.7518 16.3565 10.2811 17.7963 11.9996 17.7963ZM20.0126 23C20.34 23 20.5906 22.7037 20.4686 22.3999C19.6099 20.2625 16.1444 18.6636 12 18.6636C7.85555 18.6636 4.39008 20.2625 3.53142 22.3999C3.40937 22.7037 3.65999 23 3.9874 23H20.0126Z" fill="white"/>
-      </g>
-    </svg>
-  }
-  return (
-  <div>
-    <Icon svg={<CustomIcon />} />
-    <Icon svg={<CustomIcon />} rotate={180} />
-   </div>
-)
-}
+    function CustomIcon(){
+        return <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+            <circle cx="12" cy="12" r="11" fill="#FBCD2C"/>
+            <mask id="mask0" maskType="alpha" maskUnits="userSpaceOnUse" x="1" y="1" width="22" height="22">
+                <circle cx="12" cy="12" r="11" fill="#A2845E"/>
+            </mask>
+            <g mask="url(#mask0)">
+                <path fillRule="evenodd" clipRule="evenodd" d="M11.9996 17.7963C13.7184 17.7963 15.2479 16.3561 16.0881 14.2048C16.6103 13.9909 17.1072 13.3424 17.334 12.4957C17.629 11.3948 17.5705 10.4118 16.7665 10.1059C16.6885 6.27115 15.1754 4.78714 11.9996 4.78714C8.82412 4.78714 7.31097 6.27097 7.2328 10.1052C6.42711 10.4103 6.36828 11.394 6.66349 12.4957C6.89064 13.3435 7.38849 13.9926 7.91145 14.2056C8.7518 16.3565 10.2811 17.7963 11.9996 17.7963ZM20.0126 23C20.34 23 20.5906 22.7037 20.4686 22.3999C19.6099 20.2625 16.1444 18.6636 12 18.6636C7.85555 18.6636 4.39008 20.2625 3.53142 22.3999C3.40937 22.7037 3.65999 23 3.9874 23H20.0126Z" fill="white"/>
+            </g>
+        </svg>;
+    }
+    return (
+        <div>
+            <Icon svg={<CustomIcon />} />
+            <Icon svg={<CustomIcon />} rotate={180} />
+        </div>
+    );
+};
 ```
 ```
 
 
 ### Use svgr to convert svg files into ReactComponent
 ### Use svgr to convert svg files into ReactComponent

+ 42 - 41
content/basic/icon/index.md

@@ -39,12 +39,12 @@ import React from 'react';
 import { IconHome, IconEmoji, IconSpin } from '@douyinfe/semi-icons';
 import { IconHome, IconEmoji, IconSpin } from '@douyinfe/semi-icons';
 
 
 () => (
 () => (
-  <div>
-    <IconHome size="small" />
-    <IconEmoji rotate={180} />
-    <IconSpin spin />
-  </div>
-)
+    <div>
+        <IconHome size="small" />
+        <IconEmoji rotate={180} />
+        <IconSpin spin />
+    </div>
+);
 
 
 ```
 ```
 
 
@@ -61,13 +61,14 @@ import React from 'react';
 import { IconSearch, IconHelpCircle, IconAlertCircle, IconMinusCircle, IconPlusCircle, IconPlus, IconRefresh } from '@douyinfe/semi-icons';
 import { IconSearch, IconHelpCircle, IconAlertCircle, IconMinusCircle, IconPlusCircle, IconPlus, IconRefresh } from '@douyinfe/semi-icons';
 
 
 () => {
 () => {
-   const types = [<IconSearch />, <IconHelpCircle />, <IconAlertCircle />, <IconMinusCircle />, <IconPlusCircle />, <IconPlus />, <IconRefresh />];
-   const sizes = ['extra-small', 'small', 'default', 'large', 'extra-large'];
-   let icons = types.map((type, i) => {
-     return <div key={i} style={{ marginBottom: 4 }}>{sizes.map(size => React.cloneElement(type, {size, key:size}))}</div>
-   })
-   return icons;
-}
+    // eslint-disable-next-line react/jsx-key
+    const types = [<IconSearch />, <IconHelpCircle />, <IconAlertCircle />, <IconMinusCircle />, <IconPlusCircle />, <IconPlus />, <IconRefresh />];
+    const sizes = ['extra-small', 'small', 'default', 'large', 'extra-large'];
+    let icons = types.map((type, i) => {
+        return <div key={i} style={{ marginBottom: 4 }}>{sizes.map(size => React.cloneElement(type, {size, key:size}))}</div>;
+    });
+    return icons;
+};
 ```
 ```
 
 
 ### 颜色
 ### 颜色
@@ -79,18 +80,18 @@ import React from 'react';
 import { IconLikeHeart, IconFlag, IconLock, IconUnlock } from '@douyinfe/semi-icons';
 import { IconLikeHeart, IconFlag, IconLock, IconUnlock } from '@douyinfe/semi-icons';
 
 
 () => (
 () => (
-  <div>
-    <div style={{color:'#E91E63'}} >
-      <IconLikeHeart size="extra-large"/>
-      <IconFlag size="extra-large"/>
-    </div>
-    <br/>
     <div>
     <div>
-      <IconLock style={{color:'#6A3AC7'}} size="extra-large" />
-      <IconUnlock style={{color:'#9C27B0'}} size="extra-large"/>
+        <div style={{color:'#E91E63'}} >
+            <IconLikeHeart size="extra-large"/>
+            <IconFlag size="extra-large"/>
+        </div>
+        <br/>
+        <div>
+            <IconLock style={{color:'#6A3AC7'}} size="extra-large" />
+            <IconUnlock style={{color:'#9C27B0'}} size="extra-large"/>
+        </div>
     </div>
     </div>
-  </div>
-)
+);
 ```
 ```
 
 
 ### 自定义图标
 ### 自定义图标
@@ -102,24 +103,24 @@ import React from 'react';
 import { Icon } from '@douyinfe/semi-ui';
 import { Icon } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  function CustomIcon(){
-    return <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-      <circle cx="12" cy="12" r="11" fill="#FBCD2C"/>
-      <mask id="mask0" maskType="alpha" maskUnits="userSpaceOnUse" x="1" y="1" width="22" height="22">
-        <circle cx="12" cy="12" r="11" fill="#A2845E"/>
-      </mask>
-      <g mask="url(#mask0)">
-        <path fillRule="evenodd" clipRule="evenodd" d="M11.9996 17.7963C13.7184 17.7963 15.2479 16.3561 16.0881 14.2048C16.6103 13.9909 17.1072 13.3424 17.334 12.4957C17.629 11.3948 17.5705 10.4118 16.7665 10.1059C16.6885 6.27115 15.1754 4.78714 11.9996 4.78714C8.82412 4.78714 7.31097 6.27097 7.2328 10.1052C6.42711 10.4103 6.36828 11.394 6.66349 12.4957C6.89064 13.3435 7.38849 13.9926 7.91145 14.2056C8.7518 16.3565 10.2811 17.7963 11.9996 17.7963ZM20.0126 23C20.34 23 20.5906 22.7037 20.4686 22.3999C19.6099 20.2625 16.1444 18.6636 12 18.6636C7.85555 18.6636 4.39008 20.2625 3.53142 22.3999C3.40937 22.7037 3.65999 23 3.9874 23H20.0126Z" fill="white"/>
-      </g>
-    </svg>
-  }
-  return (
-  <div>
-    <Icon svg={<CustomIcon />} />
-    <Icon svg={<CustomIcon />} rotate={180} />
-   </div>
-)
-}
+    function CustomIcon(){
+        return <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+            <circle cx="12" cy="12" r="11" fill="#FBCD2C"/>
+            <mask id="mask0" maskType="alpha" maskUnits="userSpaceOnUse" x="1" y="1" width="22" height="22">
+                <circle cx="12" cy="12" r="11" fill="#A2845E"/>
+            </mask>
+            <g mask="url(#mask0)">
+                <path fillRule="evenodd" clipRule="evenodd" d="M11.9996 17.7963C13.7184 17.7963 15.2479 16.3561 16.0881 14.2048C16.6103 13.9909 17.1072 13.3424 17.334 12.4957C17.629 11.3948 17.5705 10.4118 16.7665 10.1059C16.6885 6.27115 15.1754 4.78714 11.9996 4.78714C8.82412 4.78714 7.31097 6.27097 7.2328 10.1052C6.42711 10.4103 6.36828 11.394 6.66349 12.4957C6.89064 13.3435 7.38849 13.9926 7.91145 14.2056C8.7518 16.3565 10.2811 17.7963 11.9996 17.7963ZM20.0126 23C20.34 23 20.5906 22.7037 20.4686 22.3999C19.6099 20.2625 16.1444 18.6636 12 18.6636C7.85555 18.6636 4.39008 20.2625 3.53142 22.3999C3.40937 22.7037 3.65999 23 3.9874 23H20.0126Z" fill="white"/>
+            </g>
+        </svg>;
+    }
+    return (
+        <div>
+            <Icon svg={<CustomIcon />} />
+            <Icon svg={<CustomIcon />} rotate={180} />
+        </div>
+    );
+};
 ```
 ```
 
 
 ### 使用svgr将svg文件转成ReactComponent
 ### 使用svgr将svg文件转成ReactComponent

+ 288 - 288
content/basic/layout/index-en-US.md

@@ -34,15 +34,15 @@ import React from 'react';
 import { Layout } from '@douyinfe/semi-ui';
 import { Layout } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const { Header, Footer, Content } = Layout;
-  return (
+    const { Header, Footer, Content } = Layout;
+    return (
         <Layout className='components-layout-demo'>
         <Layout className='components-layout-demo'>
             <Header>Header</Header>
             <Header>Header</Header>
             <Content>Content</Content>
             <Content>Content</Content>
             <Footer>Footer</Footer>
             <Footer>Footer</Footer>
         </Layout>
         </Layout>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### Left-sidebar Layout
 ### Left-sidebar Layout
@@ -52,8 +52,8 @@ import React from 'react';
 import { Layout } from '@douyinfe/semi-ui';
 import { Layout } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const { Header, Footer, Sider, Content } = Layout;
-  return (
+    const { Header, Footer, Sider, Content } = Layout;
+    return (
         <Layout className='components-layout-demo'>
         <Layout className='components-layout-demo'>
             <Header>Header</Header>
             <Header>Header</Header>
             <Layout >
             <Layout >
@@ -62,8 +62,8 @@ import { Layout } from '@douyinfe/semi-ui';
             </Layout>
             </Layout>
             <Footer>Footer</Footer>
             <Footer>Footer</Footer>
         </Layout>
         </Layout>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### Right-sidebar Layout
 ### Right-sidebar Layout
@@ -73,8 +73,8 @@ import React from 'react';
 import { Layout } from '@douyinfe/semi-ui';
 import { Layout } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const { Header, Footer, Sider, Content } = Layout;
-  return (
+    const { Header, Footer, Sider, Content } = Layout;
+    return (
         <Layout className='components-layout-demo'>
         <Layout className='components-layout-demo'>
             <Header>Header</Header>
             <Header>Header</Header>
             <Layout >
             <Layout >
@@ -83,8 +83,8 @@ import { Layout } from '@douyinfe/semi-ui';
             </Layout>
             </Layout>
             <Footer>Footer</Footer>
             <Footer>Footer</Footer>
         </Layout>
         </Layout>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### Sidebar Layout
 ### Sidebar Layout
@@ -94,8 +94,8 @@ import React from 'react';
 import { Layout } from '@douyinfe/semi-ui';
 import { Layout } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const { Header, Footer, Sider, Content } = Layout;
-  return (
+    const { Header, Footer, Sider, Content } = Layout;
+    return (
         <Layout className='components-layout-demo' >
         <Layout className='components-layout-demo' >
             <Sider>Sider</Sider>
             <Sider>Sider</Sider>
             <Layout>
             <Layout>
@@ -104,8 +104,8 @@ import { Layout } from '@douyinfe/semi-ui';
                 <Footer>Footer</Footer>
                 <Footer>Footer</Footer>
             </Layout>
             </Layout>
         </Layout>
         </Layout>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### Responsive Layout
 ### Responsive Layout
@@ -117,21 +117,21 @@ import React from 'react';
 import { Layout } from '@douyinfe/semi-ui';
 import { Layout } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const onbreakpoint = (screen, bool) => {
-      console.log(screen, bool);
-  }
-  const { Header, Footer, Sider, Content } = Layout;
-  return (
-      <Layout className='components-layout-demo'>
-        <Header>Header</Header>
-        <Layout >
-          <Sider breakpoint={['md']} onBreakpoint={onbreakpoint}>Sider</Sider>
-          <Content>Content</Content>
+    const onbreakpoint = (screen, bool) => {
+        console.log(screen, bool);
+    };
+    const { Header, Footer, Sider, Content } = Layout;
+    return (
+        <Layout className='components-layout-demo'>
+            <Header>Header</Header>
+            <Layout >
+                <Sider breakpoint={['md']} onBreakpoint={onbreakpoint}>Sider</Sider>
+                <Content>Content</Content>
+            </Layout>
+            <Footer>Footer</Footer>
         </Layout>
         </Layout>
-        <Footer>Footer</Footer>
-      </Layout>
-  )
-}
+    );
+};
 ```
 ```
 
 
 ## Layout Examples
 ## Layout Examples
@@ -144,91 +144,91 @@ import { Layout, Nav, Button, Breadcrumb, Skeleton, Avatar } from '@douyinfe/sem
 import { IconSemiLogo, IconBell, IconHelpCircle, IconBytedanceLogo, IconHome, IconLive, IconSetting } from '@douyinfe/semi-icons';
 import { IconSemiLogo, IconBell, IconHelpCircle, IconBytedanceLogo, IconHome, IconLive, IconSetting } from '@douyinfe/semi-icons';
 
 
 () => {
 () => {
-  const { Header, Footer, Content } = Layout;
-  return (
+    const { Header, Footer, Content } = Layout;
+    return (
         <Layout style={{border: '1px solid var(--semi-color-border)'}}>
         <Layout style={{border: '1px solid var(--semi-color-border)'}}>
             <Header style={{backgroundColor: 'var(--semi-color-bg-1)'}}>
             <Header style={{backgroundColor: 'var(--semi-color-bg-1)'}}>
-              <div>
-                <Nav mode='horizontal' defaultSelectedKeys={['Home']}>
-                  <Nav.Header>
-                    <IconSemiLogo style={{ fontSize: 36 }} />
-                  </Nav.Header>
-                  <Nav.Item itemKey='Home' text='Home' icon={<IconHome size="large" />} />
-                  <Nav.Item itemKey='Live' text='Live' icon={<IconLive size="large" />} />
-                  <Nav.Item itemKey='Setting' text='Setting' icon={<IconSetting size="large" />} />
-                  <Nav.Footer>
-                    <Button
-                      theme="borderless"
-                      icon = {<IconBell size="large"/>}
-                      style={{
-                        color:'var(--semi-color-text-2)',
-                        marginRight: '12px',
-                      }}
-                    />
-                    <Button
-                      theme="borderless"
-                      icon = {<IconHelpCircle size="large"/>}
-                      style={{
-                        color:'var(--semi-color-text-2)',
-                        marginRight: '12px',
-                      }}
-                    />
-                    <Avatar color='orange' size='small'>YJ</Avatar>
-                  </Nav.Footer>
-                </Nav>
-              </div>
+                <div>
+                    <Nav mode='horizontal' defaultSelectedKeys={['Home']}>
+                        <Nav.Header>
+                            <IconSemiLogo style={{ fontSize: 36 }} />
+                        </Nav.Header>
+                        <Nav.Item itemKey='Home' text='Home' icon={<IconHome size="large" />} />
+                        <Nav.Item itemKey='Live' text='Live' icon={<IconLive size="large" />} />
+                        <Nav.Item itemKey='Setting' text='Setting' icon={<IconSetting size="large" />} />
+                        <Nav.Footer>
+                            <Button
+                                theme="borderless"
+                                icon = {<IconBell size="large"/>}
+                                style={{
+                                    color:'var(--semi-color-text-2)',
+                                    marginRight: '12px',
+                                }}
+                            />
+                            <Button
+                                theme="borderless"
+                                icon = {<IconHelpCircle size="large"/>}
+                                style={{
+                                    color:'var(--semi-color-text-2)',
+                                    marginRight: '12px',
+                                }}
+                            />
+                            <Avatar color='orange' size='small'>YJ</Avatar>
+                        </Nav.Footer>
+                    </Nav>
+                </div>
             </Header>
             </Header>
             <Content
             <Content
-              style={{
-                padding: '24px',
-                backgroundColor: 'var(--semi-color-bg-0)'
-              }}
-            >
-              <Breadcrumb
                 style={{
                 style={{
-                  marginBottom: '24px'
-                }}
-                routes={['Home', 'Page Section', 'Pagge Ssection', 'Detail']} />
-              <div
-                style={{
-                  borderRadius: '10px',
-                  border: '1px solid var(--semi-color-border)',
-                  height: '376px',
-                  padding: '32px'
+                    padding: '24px',
+                    backgroundColor: 'var(--semi-color-bg-0)'
                 }}
                 }}
-              >
-                <Skeleton placeholder={(<Skeleton.Paragraph rows={2}/>)} loading={true}>
-                    <p>Hi, Bytedance dance dance.</p>
-                    <p>Hi, Bytedance dance dance.</p>
-                </Skeleton>
-              </div>
+            >
+                <Breadcrumb
+                    style={{
+                        marginBottom: '24px'
+                    }}
+                    routes={['Home', 'Page Section', 'Pagge Ssection', 'Detail']} />
+                <div
+                    style={{
+                        borderRadius: '10px',
+                        border: '1px solid var(--semi-color-border)',
+                        height: '376px',
+                        padding: '32px'
+                    }}
+                >
+                    <Skeleton placeholder={(<Skeleton.Paragraph rows={2}/>)} loading={true}>
+                        <p>Hi, Bytedance dance dance.</p>
+                        <p>Hi, Bytedance dance dance.</p>
+                    </Skeleton>
+                </div>
             </Content>
             </Content>
             <Footer
             <Footer
-              style={{
-                display: 'flex',
-                justifyContent: 'space-between',
-                padding: '20px',
-                color: 'var(--semi-color-text-2)',
-                backgroundColor: 'rgba(var(--semi-grey-0), 1)',
-              }}
-            >
-              <span
                 style={{
                 style={{
-                  display: 'flex',
-                  alignItems: 'center',
+                    display: 'flex',
+                    justifyContent: 'space-between',
+                    padding: '20px',
+                    color: 'var(--semi-color-text-2)',
+                    backgroundColor: 'rgba(var(--semi-grey-0), 1)',
                 }}
                 }}
-              >
-                <IconBytedanceLogo size='large' style={{marginRight: '8px'}}/>
-                <span>Copyright © 2019 ByteDance. All Rights Reserved. </span>
-              </span>
-              <span>
-                <span style={{marginRight: '24px'}}>Customer Service</span>
-                <span>Feedback</span>
-              </span>
+            >
+                <span
+                    style={{
+                        display: 'flex',
+                        alignItems: 'center',
+                    }}
+                >
+                    <IconBytedanceLogo size='large' style={{marginRight: '8px'}}/>
+                    <span>Copyright © 2019 ByteDance. All Rights Reserved. </span>
+                </span>
+                <span>
+                    <span style={{marginRight: '24px'}}>Customer Service</span>
+                    <span>Feedback</span>
+                </span>
             </Footer>
             </Footer>
         </Layout>
         </Layout>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### Top-Nav SideBar Layout
 ### Top-Nav SideBar Layout
@@ -243,115 +243,115 @@ import { IconSemiLogo, IconBell, IconHelpCircle, IconBytedanceLogo, IconHome, Ic
     return (
     return (
         <Layout style={{border: '1px solid var(--semi-color-border)'}}>
         <Layout style={{border: '1px solid var(--semi-color-border)'}}>
             <Header style={{backgroundColor: 'var(--semi-color-bg-1)'}}>
             <Header style={{backgroundColor: 'var(--semi-color-bg-1)'}}>
-              <div >
-                 <Nav mode='horizontal' defaultSelectedKeys={['Home']}>
-                  <Nav.Header>
-                    <IconSemiLogo style={{fontSize: 36}} />
-                  </Nav.Header>
-                  <span
-                    style={{
-                      color: 'var(--semi-color-text-2)'
-                    }}
-                  >
-                    <span
-                      style={{
-                        marginRight: '24px',
-                        color: 'var(--semi-color-text-0)',
-                        fontWeight: '600',
-                      }}>Semi Design</span>
-                    <span style={{marginRight: '24px'}}>Semi Theme</span>
-                    <span>Semi Blocks</span>
-                  </span>
-                  <Nav.Footer>
-                    <Button
-                      theme="borderless"
-                      icon = {<IconBell size="large"/>}
-                      style={{
-                        color:'var(--semi-color-text-2)',
-                        marginRight: '12px',
-                      }}
-                    />
-                    <Button
-                      theme="borderless"
-                      icon = {<IconHelpCircle size="large"/>}
-                      style={{
-                        color:'var(--semi-color-text-2)',
-                        marginRight: '12px',
-                      }}
-                    />
-                    <Avatar color='orange' size='small'>YJ</Avatar>
-                  </Nav.Footer>
-                </Nav>
-              </div>
+                <div >
+                    <Nav mode='horizontal' defaultSelectedKeys={['Home']}>
+                        <Nav.Header>
+                            <IconSemiLogo style={{fontSize: 36}} />
+                        </Nav.Header>
+                        <span
+                            style={{
+                                color: 'var(--semi-color-text-2)'
+                            }}
+                        >
+                            <span
+                                style={{
+                                    marginRight: '24px',
+                                    color: 'var(--semi-color-text-0)',
+                                    fontWeight: '600',
+                                }}>Semi Design</span>
+                            <span style={{marginRight: '24px'}}>Semi Theme</span>
+                            <span>Semi Blocks</span>
+                        </span>
+                        <Nav.Footer>
+                            <Button
+                                theme="borderless"
+                                icon = {<IconBell size="large"/>}
+                                style={{
+                                    color:'var(--semi-color-text-2)',
+                                    marginRight: '12px',
+                                }}
+                            />
+                            <Button
+                                theme="borderless"
+                                icon = {<IconHelpCircle size="large"/>}
+                                style={{
+                                    color:'var(--semi-color-text-2)',
+                                    marginRight: '12px',
+                                }}
+                            />
+                            <Avatar color='orange' size='small'>YJ</Avatar>
+                        </Nav.Footer>
+                    </Nav>
+                </div>
             </Header>
             </Header>
             <Layout >
             <Layout >
-              <Sider style={{backgroundColor: 'var(--semi-color-bg-1)'}}>
-                  <Nav
-                      style={{ maxWidth: 220, height: '100%' }}
-                      defaultSelectedKeys={['Home']}
-                      items={[
-                          { itemKey: 'Home', text: 'Home', icon: <IconHome size="large" /> },
-                          { itemKey: 'Histogram', text: 'Histogram', icon: <IconHistogram size="large" /> },
-                          { itemKey: 'Live', text: 'Live', icon: <IconLive size="large" /> },
-                          { itemKey: 'Setting', text: 'Setting', icon: <IconSetting size="large" /> },
-                      ]}
-                      footer={{
-                          collapseButton: true,
-                      }}
-                  />
-              </Sider>
-              <Content
-                style={{
-                  padding: '24px',
-                  backgroundColor: 'var(--semi-color-bg-0)'
-                }}
-              >
-                <Breadcrumb
-                  style={{
-                    marginBottom: '24px'
-                  }}
-                  routes={['Home', 'Page Section', 'Ppage Ssection', 'Detail']} />
-                <div
-                  style={{
-                    borderRadius: '10px',
-                    border: '1px solid var(--semi-color-border)',
-                    height: '376px',
-                    padding: '32px'
-                  }}
+                <Sider style={{backgroundColor: 'var(--semi-color-bg-1)'}}>
+                    <Nav
+                        style={{ maxWidth: 220, height: '100%' }}
+                        defaultSelectedKeys={['Home']}
+                        items={[
+                            { itemKey: 'Home', text: 'Home', icon: <IconHome size="large" /> },
+                            { itemKey: 'Histogram', text: 'Histogram', icon: <IconHistogram size="large" /> },
+                            { itemKey: 'Live', text: 'Live', icon: <IconLive size="large" /> },
+                            { itemKey: 'Setting', text: 'Setting', icon: <IconSetting size="large" /> },
+                        ]}
+                        footer={{
+                            collapseButton: true,
+                        }}
+                    />
+                </Sider>
+                <Content
+                    style={{
+                        padding: '24px',
+                        backgroundColor: 'var(--semi-color-bg-0)'
+                    }}
                 >
                 >
-                  <Skeleton placeholder={(<Skeleton.Paragraph rows={2}/>)} loading={true}>
-                      <p>Hi, Bytedance dance dance.</p>
-                      <p>Hi, Bytedance dance dance.</p>
-                  </Skeleton>
-                </div>
-              </Content>
+                    <Breadcrumb
+                        style={{
+                            marginBottom: '24px'
+                        }}
+                        routes={['Home', 'Page Section', 'Ppage Ssection', 'Detail']} />
+                    <div
+                        style={{
+                            borderRadius: '10px',
+                            border: '1px solid var(--semi-color-border)',
+                            height: '376px',
+                            padding: '32px'
+                        }}
+                    >
+                        <Skeleton placeholder={(<Skeleton.Paragraph rows={2}/>)} loading={true}>
+                            <p>Hi, Bytedance dance dance.</p>
+                            <p>Hi, Bytedance dance dance.</p>
+                        </Skeleton>
+                    </div>
+                </Content>
             </Layout>
             </Layout>
             <Footer
             <Footer
-              style={{
-                display: 'flex',
-                justifyContent: 'space-between',
-                padding: '20px',
-                color: 'var(--semi-color-text-2)',
-                backgroundColor: 'rgba(var(--semi-grey-0), 1)',
-              }}
-            >
-              <span
                 style={{
                 style={{
-                  display: 'flex',
-                  alignItems: 'center',
+                    display: 'flex',
+                    justifyContent: 'space-between',
+                    padding: '20px',
+                    color: 'var(--semi-color-text-2)',
+                    backgroundColor: 'rgba(var(--semi-grey-0), 1)',
                 }}
                 }}
-              >
-                <IconBytedanceLogo size="large" style={{ marginRight: '8px' }} />
-                <span>Copyright © 2019 ByteDance. All Rights Reserved. </span>
-              </span>
-              <span>
-                <span style={{marginRight: '24px'}}>Customer Service</span>
-                <span>Feedback</span>
-              </span>
+            >
+                <span
+                    style={{
+                        display: 'flex',
+                        alignItems: 'center',
+                    }}
+                >
+                    <IconBytedanceLogo size="large" style={{ marginRight: '8px' }} />
+                    <span>Copyright © 2019 ByteDance. All Rights Reserved. </span>
+                </span>
+                <span>
+                    <span style={{marginRight: '24px'}}>Customer Service</span>
+                    <span>Feedback</span>
+                </span>
             </Footer>
             </Footer>
         </Layout>
         </Layout>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### SideBar Navigation
 ### SideBar Navigation
@@ -366,104 +366,104 @@ import { IconBell, IconHelpCircle, IconBytedanceLogo, IconHome, IconHistogram, I
     return (
     return (
         <Layout style={{border: '1px solid var(--semi-color-border)'}}>
         <Layout style={{border: '1px solid var(--semi-color-border)'}}>
             <Sider style={{backgroundColor: 'var(--semi-color-bg-1)'}}>
             <Sider style={{backgroundColor: 'var(--semi-color-bg-1)'}}>
-              <Nav
-                  defaultSelectedKeys={['Home']}
-                  style={{ maxWidth: 220, height: '100%' }}
-                  items={[
-                      { itemKey: 'Home', text: 'Home', icon: <IconHome size="large" /> },
-                      { itemKey: 'Histogram', text: 'Histogram', icon: <IconHistogram size="large" /> },
-                      { itemKey: 'Live', text: 'Live', icon: <IconLive size="large" /> },
-                      { itemKey: 'Setting', text: 'Setting', icon: <IconSetting size="large" /> },
-                  ]}
-                  header={{
-                      logo: <img src="//lf1-cdn-tos.bytescm.com/obj/ttfe/ies/semi/webcast_logo.svg" />,
-                      text: 'Webcast'
-                  }}
-                  footer={{
-                      collapseButton: true,
-                  }}
-              />
+                <Nav
+                    defaultSelectedKeys={['Home']}
+                    style={{ maxWidth: 220, height: '100%' }}
+                    items={[
+                        { itemKey: 'Home', text: 'Home', icon: <IconHome size="large" /> },
+                        { itemKey: 'Histogram', text: 'Histogram', icon: <IconHistogram size="large" /> },
+                        { itemKey: 'Live', text: 'Live', icon: <IconLive size="large" /> },
+                        { itemKey: 'Setting', text: 'Setting', icon: <IconSetting size="large" /> },
+                    ]}
+                    header={{
+                        logo: <img src="//lf1-cdn-tos.bytescm.com/obj/ttfe/ies/semi/webcast_logo.svg" />,
+                        text: 'Webcast'
+                    }}
+                    footer={{
+                        collapseButton: true,
+                    }}
+                />
             </Sider>
             </Sider>
             <Layout>
             <Layout>
                 <Header style={{backgroundColor: 'var(--semi-color-bg-1)'}}>
                 <Header style={{backgroundColor: 'var(--semi-color-bg-1)'}}>
-                  <Nav
-                    mode='horizontal'
-                    footer={
-                      <>
-                        <Button
-                          theme="borderless"
-                          icon = {<IconBell size="large" />}
-                          style={{
-                            color:'var(--semi-color-text-2)',
-                            marginRight: '12px',
-                          }}
-                        />
-                        <Button
-                          theme="borderless"
-                          icon = {<IconHelpCircle size="large" />}
-                          style={{
-                            color:'var(--semi-color-text-2)',
-                            marginRight: '12px',
-                          }}
-                        />
-                        <Avatar color='orange' size='small'>YJ</Avatar>
-                      </>
-                    }
-                  >
-                </Nav>
+                    <Nav
+                        mode='horizontal'
+                        footer={
+                            <>
+                                <Button
+                                    theme="borderless"
+                                    icon = {<IconBell size="large" />}
+                                    style={{
+                                        color:'var(--semi-color-text-2)',
+                                        marginRight: '12px',
+                                    }}
+                                />
+                                <Button
+                                    theme="borderless"
+                                    icon = {<IconHelpCircle size="large" />}
+                                    style={{
+                                        color:'var(--semi-color-text-2)',
+                                        marginRight: '12px',
+                                    }}
+                                />
+                                <Avatar color='orange' size='small'>YJ</Avatar>
+                            </>
+                        }
+                    >
+                    </Nav>
                 </Header>
                 </Header>
                 <Content
                 <Content
-                  style={{
-                    padding: '24px',
-                    backgroundColor: 'var(--semi-color-bg-0)'
-                  }}
-                >
-                  <Breadcrumb
                     style={{
                     style={{
-                      marginBottom: '24px'
+                        padding: '24px',
+                        backgroundColor: 'var(--semi-color-bg-0)'
                     }}
                     }}
-                    routes={['Home', 'Page Section', 'Pagge Ssection', 'Detail']} />
-                  <div
-                    style={{
-                      borderRadius: '10px',
-                      border: '1px solid var(--semi-color-border)',
-                      height: '376px',
-                      padding: '32px'
-                    }}
-                  >
-                    <Skeleton placeholder={(<Skeleton.Paragraph rows={2}/>)} loading={true}>
-                        <p>Hi, Bytedance dance dance.</p>
-                        <p>Hi, Bytedance dance dance.</p>
-                    </Skeleton>
-                  </div>
+                >
+                    <Breadcrumb
+                        style={{
+                            marginBottom: '24px'
+                        }}
+                        routes={['Home', 'Page Section', 'Pagge Ssection', 'Detail']} />
+                    <div
+                        style={{
+                            borderRadius: '10px',
+                            border: '1px solid var(--semi-color-border)',
+                            height: '376px',
+                            padding: '32px'
+                        }}
+                    >
+                        <Skeleton placeholder={(<Skeleton.Paragraph rows={2}/>)} loading={true}>
+                            <p>Hi, Bytedance dance dance.</p>
+                            <p>Hi, Bytedance dance dance.</p>
+                        </Skeleton>
+                    </div>
                 </Content>
                 </Content>
                 <Footer
                 <Footer
-                  style={{
-                    display: 'flex',
-                    justifyContent: 'space-between',
-                    padding: '20px',
-                    color: 'var(--semi-color-text-2)',
-                    backgroundColor: 'rgba(var(--semi-grey-0), 1)',
-                  }}
-                >
-                  <span
                     style={{
                     style={{
-                      display: 'flex',
-                      alignItems: 'center',
+                        display: 'flex',
+                        justifyContent: 'space-between',
+                        padding: '20px',
+                        color: 'var(--semi-color-text-2)',
+                        backgroundColor: 'rgba(var(--semi-grey-0), 1)',
                     }}
                     }}
-                  >
-                    <IconBytedanceLogo size="large" style={{ marginRight: '8px' }} />
-                    <span>Copyright © 2019 ByteDance. All Rights Reserved. </span>
-                  </span>
-                  <span>
-                    <span style={{marginRight: '24px'}}>Customer Service</span>
-                    <span>Feedback</span>
-                  </span>
+                >
+                    <span
+                        style={{
+                            display: 'flex',
+                            alignItems: 'center',
+                        }}
+                    >
+                        <IconBytedanceLogo size="large" style={{ marginRight: '8px' }} />
+                        <span>Copyright © 2019 ByteDance. All Rights Reserved. </span>
+                    </span>
+                    <span>
+                        <span style={{marginRight: '24px'}}>Customer Service</span>
+                        <span>Feedback</span>
+                    </span>
                 </Footer>
                 </Footer>
             </Layout>
             </Layout>
         </Layout>
         </Layout>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ## API Reference
 ## API Reference
@@ -489,7 +489,7 @@ import { IconBell, IconHelpCircle, IconBytedanceLogo, IconHome, IconHistogram, I
 
 
 ### responsive map
 ### responsive map
 
 
-```jsx
+```text
 {
 {
   xs: '(max-width: 575px)',
   xs: '(max-width: 575px)',
   sm: '(min-width: 576px)',
   sm: '(min-width: 576px)',

+ 8 - 8
content/basic/layout/index.md

@@ -502,15 +502,15 @@ import { IconBell, IconHelpCircle, IconBytedanceLogo, IconHome, IconHistogram, I
 
 
 ### responsive map
 ### responsive map
 
 
-```jsx
+```text
 {
 {
-  xs: '(max-width: 575px)',
-  sm: '(min-width: 576px)',
-  md: '(min-width: 768px)',
-  lg: '(min-width: 992px)',
-  xl: '(min-width: 1200px)',
-  xxl: '(min-width: 1600px)',
-}
+    xs: '(max-width: 575px)',
+    sm: '(min-width: 576px)',
+    md: '(min-width: 768px)',
+    lg: '(min-width: 992px)',
+    xl: '(min-width: 1200px)',
+    xxl: '(min-width: 1600px)',
+};
 ```
 ```
 
 
 <!-- ## 相关物料
 <!-- ## 相关物料

+ 6 - 6
content/basic/space/index-en-US.md

@@ -27,7 +27,7 @@ import { Space, Button, Switch } from '@douyinfe/semi-ui';
         <Button type="tertiary">tertiary</Button>
         <Button type="tertiary">tertiary</Button>
         <Button type="warning">warning</Button>
         <Button type="warning">warning</Button>
     </Space>
     </Space>
-)
+);
 ```
 ```
 
 
 ### Alignment
 ### Alignment
@@ -73,8 +73,8 @@ import { Space, Button, Tag } from '@douyinfe/semi-ui';
                 <Tag color='green' size='large'> tag </Tag>
                 <Tag color='green' size='large'> tag </Tag>
             </Space>
             </Space>
         </Space>
         </Space>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### Spacing
 ### Spacing
@@ -126,7 +126,7 @@ import { Space, Tabs, TabPane, Button } from '@douyinfe/semi-ui';
             </Space>
             </Space>
         </TabPane>
         </TabPane>
     </Tabs>
     </Tabs>
-)
+);
 ```
 ```
 
 
 ### Direction
 ### Direction
@@ -144,7 +144,7 @@ import { Space, Button } from '@douyinfe/semi-ui';
         <Button theme='solid' type='primary'>button</Button>
         <Button theme='solid' type='primary'>button</Button>
         <Button theme='solid' type='primary'>button</Button>
         <Button theme='solid' type='primary'>button</Button>
     </Space>
     </Space>
-)
+);
 ```
 ```
 
 
 ### Wrap
 ### Wrap
@@ -161,7 +161,7 @@ import { Space, Button } from '@douyinfe/semi-ui';
             <Button theme='solid' type='secondary' key={idex}>button</Button>
             <Button theme='solid' type='secondary' key={idex}>button</Button>
         ))}
         ))}
     </Space>
     </Space>
-)
+);
 ```
 ```
 
 
 ## API Reference
 ## API Reference

+ 6 - 6
content/basic/space/index.md

@@ -27,7 +27,7 @@ import { Space, Button, Switch } from '@douyinfe/semi-ui';
         <Button type="tertiary">第三</Button>
         <Button type="tertiary">第三</Button>
         <Button type="warning">警告</Button>
         <Button type="warning">警告</Button>
     </Space>
     </Space>
-)
+);
 ```
 ```
 ### 对齐方式
 ### 对齐方式
 
 
@@ -71,8 +71,8 @@ import { Space, Button, Tag } from '@douyinfe/semi-ui';
                 <Tag color='green' size='large'>标签</Tag>
                 <Tag color='green' size='large'>标签</Tag>
             </Space>
             </Space>
         </Space>
         </Space>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 间距尺寸
 ### 间距尺寸
@@ -124,7 +124,7 @@ import { Space, Tabs, TabPane, Button } from '@douyinfe/semi-ui';
             </Space>
             </Space>
         </TabPane>
         </TabPane>
     </Tabs>
     </Tabs>
-)
+);
 ```
 ```
 
 
 ### 间距方向
 ### 间距方向
@@ -142,7 +142,7 @@ import { Space, Button } from '@douyinfe/semi-ui';
         <Button theme='solid' type='primary'>按钮</Button>
         <Button theme='solid' type='primary'>按钮</Button>
         <Button theme='solid' type='primary'>按钮</Button>
         <Button theme='solid' type='primary'>按钮</Button>
     </Space>
     </Space>
-)
+);
 ```
 ```
 
 
 ### 设置换行
 ### 设置换行
@@ -159,7 +159,7 @@ import { Space, Button } from '@douyinfe/semi-ui';
             <Button theme='solid' type='secondary' key={idex}>按钮</Button>
             <Button theme='solid' type='secondary' key={idex}>按钮</Button>
         ))}
         ))}
     </Space>
     </Space>
-)
+);
 ```
 ```
 
 
 ## API参考
 ## API参考

+ 185 - 185
content/basic/typography/index-en-US.md

@@ -30,17 +30,17 @@ import React from 'react';
 import { Typography } from '@douyinfe/semi-ui';
 import { Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Title } = Typography;
-  return (
-    <div>
-        <Title  style={{margin: '8px 0'}} >h1. Semi Design</Title>
-        <Title with={2} style={{margin: '8px 0'}} >h2. Semi Design</Title>
-        <Title heading={3} style={{margin: '8px 0'}} >h3. Semi Design</Title>
-        <Title heading={4} style={{margin: '8px 0'}} >h4. Semi Design</Title>
-        <Title heading={5} style={{margin: '8px 0'}} >h5. Semi Design</Title>
-        <Title heading={6} style={{margin: '8px 0'}} >h6. Semi Design</Title>
-    </div>
-  );
+    const { Title } = Typography;
+    return (
+        <div>
+            <Title  style={{margin: '8px 0'}} >h1. Semi Design</Title>
+            <Title with={2} style={{margin: '8px 0'}} >h2. Semi Design</Title>
+            <Title heading={3} style={{margin: '8px 0'}} >h3. Semi Design</Title>
+            <Title heading={4} style={{margin: '8px 0'}} >h4. Semi Design</Title>
+            <Title heading={5} style={{margin: '8px 0'}} >h5. Semi Design</Title>
+            <Title heading={6} style={{margin: '8px 0'}} >h6. Semi Design</Title>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -53,48 +53,48 @@ import React from 'react';
 import { Typography } from '@douyinfe/semi-ui';
 import { Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
-  return (
-    <div>
-        <Text>Text</Text>
-        <br />
-        <br />
-        <Text type="secondary">Secondary</Text>
-        <br />
-        <br />
-        <Text type="tertiary">Tertiary v>=1.2.0</Text>
-        <br />
-        <br />
-        <Text type="quaternary">Quaternary v>=1.2.0</Text>
-        <br />
-        <br />
-        <Text type="warning">Warning</Text>
-        <br />
-        <br />
-        <Text type="success">Success v>=1.7.0</Text>
-        <br />
-        <br />
-        <Text type="danger">Danger</Text>
-        <br />
-        <br />
-        <Text disabled>Disabled</Text>
-        <br />
-        <br />
-        <Text mark>Default Mark</Text>
-        <br />
-        <br />
-        <Text code>Example Code</Text>
-        <br />
-        <br />
-        <Text underline>Underline</Text>
-        <br />
-        <br />
-        <Text delete>Deleted</Text>
-        <br />
-        <br />
-        <Text strong>Strong</Text>
-    </div>
-  );
+    const { Text } = Typography;
+    return (
+        <div>
+            <Text>Text</Text>
+            <br />
+            <br />
+            <Text type="secondary">Secondary</Text>
+            <br />
+            <br />
+            <Text type="tertiary">{'Tertiary v>=1.2.0'}</Text>
+            <br />
+            <br />
+            <Text type="quaternary">{'Quaternary v>=1.2.0'}</Text>
+            <br />
+            <br />
+            <Text type="warning">Warning</Text>
+            <br />
+            <br />
+            <Text type="success">{'Success v>=1.7.0'}</Text>
+            <br />
+            <br />
+            <Text type="danger">Danger</Text>
+            <br />
+            <br />
+            <Text disabled>Disabled</Text>
+            <br />
+            <br />
+            <Text mark>Default Mark</Text>
+            <br />
+            <br />
+            <Text code>Example Code</Text>
+            <br />
+            <br />
+            <Text underline>Underline</Text>
+            <br />
+            <br />
+            <Text delete>Deleted</Text>
+            <br />
+            <br />
+            <Text strong>Strong</Text>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -106,18 +106,18 @@ import { Typography } from '@douyinfe/semi-ui';
 import { IconLink } from '@douyinfe/semi-icons';
 import { IconLink } from '@douyinfe/semi-icons';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
-  return (
-    <div>
-      <Text link={{ href: 'https://semi.design/' }}>Link</Text>
-      <br />
-      <br />
-      <Text link={{ href: 'https://semi.design/' }}>Open Website</Text>
-      <br />
-      <br />
-      <Text link icon={<IconLink />} underline>Link</Text>
-    </div>
-  )
+    const { Text } = Typography;
+    return (
+        <div>
+            <Text link={{ href: 'https://semi.design/' }}>Link</Text>
+            <br />
+            <br />
+            <Text link={{ href: 'https://semi.design/' }}>Open Website</Text>
+            <br />
+            <br />
+            <Text link icon={<IconLink />} underline>Link</Text>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -130,20 +130,20 @@ import React from 'react';
 import { Typography } from '@douyinfe/semi-ui';
 import { Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Paragraph, Title } = Typography;
-  return (
-    <div>
-        <Title heading={5}>Default Spacing</Title>
-        <Paragraph>
-            Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.
-        </Paragraph>
-        <br />
-        <Title heading={5}>Extended Spacing</Title>
-        <Paragraph spacing="extended">
-            Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.
-        </Paragraph>
-    </div>
-  );
+    const { Paragraph, Title } = Typography;
+    return (
+        <div>
+            <Title heading={5}>Default Spacing</Title>
+            <Paragraph>
+                {`Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.`}
+            </Paragraph>
+            <br />
+            <Title heading={5}>Extended Spacing</Title>
+            <Paragraph spacing="extended">
+                {`Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.`}
+            </Paragraph>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -156,20 +156,20 @@ import React from 'react';
 import { Typography } from '@douyinfe/semi-ui';
 import { Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Paragraph, Text } = Typography;
-  return (
-    <div>
-        <Text>Normal</Text>
-        <Paragraph spacing="extended">
-            Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.
-        </Paragraph>
-        <br />
-        <Text size='small'>Small</Text>
-        <Paragraph size='small'>
-            Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.
-        </Paragraph>
-    </div>
-  );
+    const { Paragraph, Text } = Typography;
+    return (
+        <div>
+            <Text>Normal</Text>
+            <Paragraph spacing="extended">
+                {`Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.`}
+            </Paragraph>
+            <br />
+            <Text size='small'>Small</Text>
+            <Paragraph size='small'>
+                {`Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.`}
+            </Paragraph>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -179,22 +179,22 @@ Copyable text.
 
 
 ```jsx live=true
 ```jsx live=true
 import React from 'react';
 import React from 'react';
-import { Typography } from '@douyinfe/semi-ui';
+import { Typography, TextArea } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Paragraph, Text } = Typography;
-
-  return (
-    <div>
-        <Paragraph copyable>Click the right icon to copy text.</Paragraph>
-        <Paragraph copyable={{ content: 'Hello, Semi Design!' }}>Click to copy text.</Paragraph>
-        <Paragraph copyable={{ onCopy: () => Toast.success({ content: 'Successfully copied.'}) }}>Click the right icon to copy.</Paragraph>
-        <br/>
-        <Text type="secondary">Paste here: </Text>
-        <br/>
-        <TextArea autosize style={{width: 320, marginTop: 4}} rows={3} />
-    </div>
-  );
+    const { Paragraph, Text } = Typography;
+
+    return (
+        <div>
+            <Paragraph copyable>Click the right icon to copy text.</Paragraph>
+            <Paragraph copyable={{ content: 'Hello, Semi Design!' }}>Click to copy text.</Paragraph>
+            <Paragraph copyable={{ onCopy: () => Toast.success({ content: 'Successfully copied.'}) }}>Click the right icon to copy.</Paragraph>
+            <br/>
+            <Text type="secondary">Paste here: </Text>
+            <br/>
+            <TextArea autosize style={{width: 320, marginTop: 4}} rows={3} />
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -208,46 +208,46 @@ import React from 'react';
 import { Typography } from '@douyinfe/semi-ui';
 import { Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Paragraph, Text, Title } = Typography;
-
-  return (
-    <div>
-        <Title heading={5} ellipsis={{ showTooltip: true }} style={{ width: 250 }}>
-            This is a supercalifragilisticexpialidocious title
-        </Title>
-        <br />
-        <Text 
-          ellipsis={{ 
-            showTooltip:{
-              opts: { content: 'This is a supercalifragilisticexpialidocious tooltip' }
-            }
-          }}
-          style={{ width: 150 }}
-        >
-          Custom tooltip text if you need
-        </Text>
-        <br />
-        <Text link ellipsis={{ showTooltip: true, pos: 'middle' }} style={{ width: 150 }}>
-            This is a supercalifragilisticexpialidocious link
-        </Text>
-        <br/>
-        <Paragraph ellipsis={{ suffix: '-Macbeth' }} style={{ width: 300 }}>
-            With suffix: Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.
-        </Paragraph>
-        <br/>
-        <Paragraph ellipsis={{ rows: 3 }} style={{ width: 300 }}>
-            Multi-line ellipsis: Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.
-        </Paragraph>
-        <br/>
-        <Paragraph ellipsis={{ rows: 3, showTooltip: {type: 'popover', opts: {style: {width: 300}}} }} style={{ width: 300 }}>
-            With Popover: Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.
-        </Paragraph>
-        <br/>
-        <Paragraph ellipsis={{ rows: 3, expandable: true, collapsible: true, collapseText: 'Show Less', onExpand: (bool, e) => console.log(bool, e) }} style={{ width: 300 }}>
-            Expandable and collapsible: Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.
-        </Paragraph>
-    </div>
-  );
+    const { Paragraph, Text, Title } = Typography;
+
+    return (
+        <div>
+            <Title heading={5} ellipsis={{ showTooltip: true }} style={{ width: 250 }}>
+                This is a supercalifragilisticexpialidocious title
+            </Title>
+            <br />
+            <Text 
+                ellipsis={{ 
+                    showTooltip:{
+                        opts: { content: 'This is a supercalifragilisticexpialidocious tooltip' }
+                    }
+                }}
+                style={{ width: 150 }}
+            >
+                Custom tooltip text if you need
+            </Text>
+            <br />
+            <Text link ellipsis={{ showTooltip: true, pos: 'middle' }} style={{ width: 150 }}>
+                This is a supercalifragilisticexpialidocious link
+            </Text>
+            <br/>
+            <Paragraph ellipsis={{ suffix: '-Macbeth' }} style={{ width: 300 }}>
+                {`With suffix: Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.`}
+            </Paragraph>
+            <br/>
+            <Paragraph ellipsis={{ rows: 3 }} style={{ width: 300 }}>
+                {`Multi-line ellipsis: Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.`}
+            </Paragraph>
+            <br/>
+            <Paragraph ellipsis={{ rows: 3, showTooltip: {type: 'popover', opts: {style: {width: 300}}} }} style={{ width: 300 }}>
+                {`With Popover: Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.`}
+            </Paragraph>
+            <br/>
+            <Paragraph ellipsis={{ rows: 3, expandable: true, collapsible: true, collapseText: 'Show Less', onExpand: (bool, e) => console.log(bool, e) }} style={{ width: 300 }}>
+                {`Expandable and collapsible: Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.`}
+            </Paragraph>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -260,44 +260,44 @@ import React from 'react';
 import { Typography } from '@douyinfe/semi-ui';
 import { Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
-
-  return (
-    <div>
-      <Text 
-        ellipsis={{ 
-          showTooltip:{
-            opts: { content: 'Insfrastructure|Data-inf|bytegraph.cheetah.user_relation' }
-          }
-        }}
-        style={{ width: 150 }}
-      >
-        Customized configuration can be made on demand when long text is truncated
-      </Text>
-      <br />
-      <Text 
-        ellipsis={{ 
-          showTooltip:{
-            opts: { content: 'Insfrastructure|Data-inf|bytegraph.cheetah.user_relation', className: 'components-typography-demo' }
-          }
-        }}
-        style={{ width: 150 }}
-      >
-        Customized configuration can be made on demand when long text is truncated
-      </Text>
-      <br />
-      <Text 
-        ellipsis={{
-          showTooltip:{
-            opts: { content: 'Insfrastructure|Data-inf|bytegraph.cheetah.user_relation', style: { wordBreak: 'break-all' } }
-          }
-        }}
-        style={{ width: 150 }}
-      >
-        Customized configuration can be made on demand when long text is truncated
-      </Text>
-    </div>
-  );
+    const { Text } = Typography;
+
+    return (
+        <div>
+            <Text 
+                ellipsis={{ 
+                    showTooltip:{
+                        opts: { content: 'Insfrastructure|Data-inf|bytegraph.cheetah.user_relation' }
+                    }
+                }}
+                style={{ width: 150 }}
+            >
+                Customized configuration can be made on demand when long text is truncated
+            </Text>
+            <br />
+            <Text 
+                ellipsis={{ 
+                    showTooltip:{
+                        opts: { content: 'Insfrastructure|Data-inf|bytegraph.cheetah.user_relation', className: 'components-typography-demo' }
+                    }
+                }}
+                style={{ width: 150 }}
+            >
+                Customized configuration can be made on demand when long text is truncated
+            </Text>
+            <br />
+            <Text 
+                ellipsis={{
+                    showTooltip:{
+                        opts: { content: 'Insfrastructure|Data-inf|bytegraph.cheetah.user_relation', style: { wordBreak: 'break-all' } }
+                    }
+                }}
+                style={{ width: 150 }}
+            >
+                Customized configuration can be made on demand when long text is truncated
+            </Text>
+        </div>
+    );
 }
 }
 ```
 ```
 
 

+ 186 - 186
content/basic/typography/index.md

@@ -25,17 +25,17 @@ import React from 'react';
 import { Typography } from '@douyinfe/semi-ui';
 import { Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Title } = Typography;
-  return (
-    <div>
-        <Title  style={{margin: '8px 0'}} >h1. Semi Design</Title>
-        <Title heading={2} style={{margin: '8px 0'}} >h2. Semi Design</Title>
-        <Title heading={3} style={{margin: '8px 0'}} >h3. Semi Design</Title>
-        <Title heading={4} style={{margin: '8px 0'}} >h4. Semi Design</Title>
-        <Title heading={5} style={{margin: '8px 0'}} >h5. Semi Design</Title>
-        <Title heading={6} style={{margin: '8px 0'}} >h6. Semi Design</Title>
-    </div>
-  );
+    const { Title } = Typography;
+    return (
+        <div>
+            <Title  style={{margin: '8px 0'}} >h1. Semi Design</Title>
+            <Title heading={2} style={{margin: '8px 0'}} >h2. Semi Design</Title>
+            <Title heading={3} style={{margin: '8px 0'}} >h3. Semi Design</Title>
+            <Title heading={4} style={{margin: '8px 0'}} >h4. Semi Design</Title>
+            <Title heading={5} style={{margin: '8px 0'}} >h5. Semi Design</Title>
+            <Title heading={6} style={{margin: '8px 0'}} >h6. Semi Design</Title>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -46,48 +46,48 @@ import React from 'react';
 import { Typography } from '@douyinfe/semi-ui';
 import { Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
-  return (
-    <div>
-        <Text>Text</Text>
-        <br />
-        <br />
-        <Text type="secondary">Secondary</Text>
-        <br />
-        <br />
-        <Text type="tertiary">Tertiary v>=1.2.0</Text>
-        <br />
-        <br />
-        <Text type="quaternary">Quaternary v>=1.2.0</Text>
-        <br />
-        <br />
-        <Text type="warning">Warning</Text>
-        <br />
-        <br />
-        <Text type="danger">Danger</Text>
-        <br />
-        <br />
-        <Text type="success">Success v>=1.7.0</Text>
-        <br />
-        <br />
-        <Text disabled>Disabled</Text>
-        <br />
-        <br />
-        <Text mark>Default Mark</Text>
-        <br />
-        <br />
-        <Text code>Example Code</Text>
-        <br />
-        <br />
-        <Text underline>Underline</Text>
-        <br />
-        <br />
-        <Text delete>Deleted</Text>
-        <br />
-        <br />
-        <Text strong>Strong</Text>
-    </div>
-  );
+    const { Text } = Typography;
+    return (
+        <div>
+            <Text>Text</Text>
+            <br />
+            <br />
+            <Text type="secondary">Secondary</Text>
+            <br />
+            <br />
+            <Text type="tertiary">{`Tertiary v>=1.2.0`}</Text>
+            <br />
+            <br />
+            <Text type="quaternary">{`Quaternary v>=1.2.0`}</Text>
+            <br />
+            <br />
+            <Text type="warning">Warning</Text>
+            <br />
+            <br />
+            <Text type="danger">Danger</Text>
+            <br />
+            <br />
+            <Text type="success">{`Success v>=1.7.0`}</Text>
+            <br />
+            <br />
+            <Text disabled>Disabled</Text>
+            <br />
+            <br />
+            <Text mark>Default Mark</Text>
+            <br />
+            <br />
+            <Text code>Example Code</Text>
+            <br />
+            <br />
+            <Text underline>Underline</Text>
+            <br />
+            <br />
+            <Text delete>Deleted</Text>
+            <br />
+            <br />
+            <Text strong>Strong</Text>
+        </div>
+    );
 }
 }
 ```
 ```
 链接文本支持传入 `object`,将对应的属性挂在 `<a>` 标签上。  
 链接文本支持传入 `object`,将对应的属性挂在 `<a>` 标签上。  
@@ -98,18 +98,18 @@ import { Typography } from '@douyinfe/semi-ui';
 import { IconLink } from '@douyinfe/semi-icons';
 import { IconLink } from '@douyinfe/semi-icons';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
-  return (
-    <div>
-      <Text link={{ href: 'https://semi.design/' }}>链接文本</Text>
-      <br />
-      <br />
-      <Text link={{ href: 'https://semi.design/' }}>打开网站</Text>
-      <br />
-      <br />
-      <Text link icon={<IconLink />} underline>带下划线的网页链接</Text>
-    </div>
-  )
+    const { Text } = Typography;
+    return (
+        <div>
+            <Text link={{ href: 'https://semi.design/' }}>链接文本</Text>
+            <br />
+            <br />
+            <Text link={{ href: 'https://semi.design/' }}>打开网站</Text>
+            <br />
+            <br />
+            <Text link icon={<IconLink />} underline>带下划线的网页链接</Text>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -120,20 +120,20 @@ import React from 'react';
 import { Typography } from '@douyinfe/semi-ui';
 import { Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Paragraph, Title } = Typography;
-  return (
-    <div>
-        <Title heading={5}>默认行距</Title>
-        <Paragraph>
-            Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
-        </Paragraph>
-        <br />
-        <Title heading={5}>宽松行距</Title>
-        <Paragraph spacing="extended">
-            Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
-        </Paragraph>
-    </div>
-  );
+    const { Paragraph, Title } = Typography;
+    return (
+        <div>
+            <Title heading={5}>默认行距</Title>
+            <Paragraph>
+                Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
+            </Paragraph>
+            <br />
+            <Title heading={5}>宽松行距</Title>
+            <Paragraph spacing="extended">
+                Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
+            </Paragraph>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -144,20 +144,20 @@ import React from 'react';
 import { Typography } from '@douyinfe/semi-ui';
 import { Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Paragraph, Text } = Typography;
-  return (
-    <div>
-        <Text>正常文本</Text>
-        <Paragraph spacing="extended">
-            Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
-        </Paragraph>
-        <br />
-        <Text size='small'>小文本</Text>
-        <Paragraph size='small'>
-            Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
-        </Paragraph>
-    </div>
-  );
+    const { Paragraph, Text } = Typography;
+    return (
+        <div>
+            <Text>正常文本</Text>
+            <Paragraph spacing="extended">
+                Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
+            </Paragraph>
+            <br />
+            <Text size='small'>小文本</Text>
+            <Paragraph size='small'>
+                Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
+            </Paragraph>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -165,22 +165,22 @@ function Demo() {
 支持文本的复制。
 支持文本的复制。
 ```jsx live=true
 ```jsx live=true
 import React from 'react';
 import React from 'react';
-import { Typography } from '@douyinfe/semi-ui';
+import { Typography, TextArea } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Paragraph, Text } = Typography;
-
-  return (
-    <div>
-        <Paragraph copyable>点击右边的图标复制文本。</Paragraph>
-        <Paragraph copyable={{ content: 'Hello, Semi Design!' }}>点击复制文本。</Paragraph>
-        <Paragraph copyable={{ onCopy: () => Toast.success({ content: '复制文本成功'}) }}>点击右边的图标复制文本。</Paragraph>
-        <br/>
-        <Text type="secondary">粘贴区域:</Text>
-        <br/>
-        <TextArea autosize style={{width: 320, marginTop: 4}} rows={3} />
-    </div>
-  );
+    const { Paragraph, Text } = Typography;
+
+    return (
+        <div>
+            <Paragraph copyable>点击右边的图标复制文本。</Paragraph>
+            <Paragraph copyable={{ content: 'Hello, Semi Design!' }}>点击复制文本。</Paragraph>
+            <Paragraph copyable={{ onCopy: () => Toast.success({ content: '复制文本成功'}) }}>点击右边的图标复制文本。</Paragraph>
+            <br/>
+            <Text type="secondary">粘贴区域:</Text>
+            <br/>
+            <TextArea autosize style={{width: 320, marginTop: 4}} rows={3} />
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -194,47 +194,47 @@ import React from 'react';
 import { Typography } from '@douyinfe/semi-ui';
 import { Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Paragraph, Title, Text } = Typography;
-
-  return (
-    <div>
-        <Title heading={5} ellipsis={{ showTooltip: true }} style={{ width: 250 }}>
-            是一个很长很长很长很长5号标题
-        </Title>
-        <br />
-        <Text 
-          ellipsis={{ 
-            showTooltip:{
-              opts: { content: '这是自定义要展示的内容' }
-            }
-          }}
-          style={{ width: 150 }}
-        >
-          可以自定义浮层里的展示内容试试看吧
-        </Text>
-        <br/>
-        {/* link还可以传入object,如link={{ href: 'https://semi.design/zh-CN/basic/typography', target: '_blank' }} */}
-        <Text link ellipsis={{ showTooltip: true, pos: 'middle' }} style={{ width: 150 }}>
-            是一个很长很长很长很长的链接
-        </Text>
-        <br/>
-        <Paragraph ellipsis={{ suffix: '小尾巴' }} style={{ width: 300 }}>
-            有后缀的情况:Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。
-        </Paragraph>
-        <br/>
-        <Paragraph ellipsis={{ rows: 3 }} style={{ width: 300 }}>
-            这是一个多行截断的例子:Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
-        </Paragraph>
-        <br/>
-        <Paragraph ellipsis={{ rows: 3, showTooltip: {type: 'popover', opts: {style: {width: 300}}} }} style={{ width: 300 }}>
-            多行截断,展示 Popover:Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
-        </Paragraph>
-        <br/>
-        <Paragraph ellipsis={{ rows: 3, expandable: true, collapsible: true, collapseText: '折叠我吧', onExpand: (bool, e) => console.log(bool, e) }} style={{ width: 300 }}>
-            支持展开和折叠:Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
-        </Paragraph>
-    </div>
-  );
+    const { Paragraph, Title, Text } = Typography;
+
+    return (
+        <div>
+            <Title heading={5} ellipsis={{ showTooltip: true }} style={{ width: 250 }}>
+                是一个很长很长很长很长5号标题
+            </Title>
+            <br />
+            <Text 
+                ellipsis={{ 
+                    showTooltip:{
+                        opts: { content: '这是自定义要展示的内容' }
+                    }
+                }}
+                style={{ width: 150 }}
+            >
+                可以自定义浮层里的展示内容试试看吧
+            </Text>
+            <br/>
+            {/* link还可以传入object,如link={{ href: 'https://semi.design/zh-CN/basic/typography', target: '_blank' }} */}
+            <Text link ellipsis={{ showTooltip: true, pos: 'middle' }} style={{ width: 150 }}>
+                是一个很长很长很长很长的链接
+            </Text>
+            <br/>
+            <Paragraph ellipsis={{ suffix: '小尾巴' }} style={{ width: 300 }}>
+                有后缀的情况:Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。
+            </Paragraph>
+            <br/>
+            <Paragraph ellipsis={{ rows: 3 }} style={{ width: 300 }}>
+                这是一个多行截断的例子:Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
+            </Paragraph>
+            <br/>
+            <Paragraph ellipsis={{ rows: 3, showTooltip: {type: 'popover', opts: {style: {width: 300}}} }} style={{ width: 300 }}>
+                多行截断,展示 Popover:Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
+            </Paragraph>
+            <br/>
+            <Paragraph ellipsis={{ rows: 3, expandable: true, collapsible: true, collapseText: '折叠我吧', onExpand: (bool, e) => console.log(bool, e) }} style={{ width: 300 }}>
+                支持展开和折叠:Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
+            </Paragraph>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -247,44 +247,44 @@ import React from 'react';
 import { Typography } from '@douyinfe/semi-ui';
 import { Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
-
-  return (
-    <div>
-      <Text 
-        ellipsis={{ 
-          showTooltip:{
-            opts: { content: '架构|Data-inf|bytegraph.cheetah.user_relation' }
-          }
-        }}
-        style={{ width: 150 }}
-      >
-        有问题的超长文本发生截断时可按需进行自定义配置
-      </Text>
-      <br />
-      <Text 
-        ellipsis={{ 
-          showTooltip:{
-            opts: { content: '架构|Data-inf|bytegraph.cheetah.user_relation', className: 'components-typography-demo' }
-          }
-        }}
-        style={{ width: 150 }}
-      >
-        覆盖类名超长文本发生截断时可使用类名覆盖进行自定义配置
-      </Text>
-      <br />
-      <Text 
-        ellipsis={{
-          showTooltip:{
-            opts: { content: '架构|Data-inf|bytegraph.cheetah.user_relation', style: { wordBreak: 'break-all' } }
-          }
-        }}
-        style={{ width: 150 }}
-      >
-        覆盖style超长文本发生截断时可使用style进行自定义配置
-      </Text>
-    </div>
-  );
+    const { Text } = Typography;
+
+    return (
+        <div>
+            <Text 
+                ellipsis={{ 
+                    showTooltip:{
+                        opts: { content: '架构|Data-inf|bytegraph.cheetah.user_relation' }
+                    }
+                }}
+                style={{ width: 150 }}
+            >
+                有问题的超长文本发生截断时可按需进行自定义配置
+            </Text>
+            <br />
+            <Text 
+                ellipsis={{ 
+                    showTooltip:{
+                        opts: { content: '架构|Data-inf|bytegraph.cheetah.user_relation', className: 'components-typography-demo' }
+                    }
+                }}
+                style={{ width: 150 }}
+            >
+                覆盖类名超长文本发生截断时可使用类名覆盖进行自定义配置
+            </Text>
+            <br />
+            <Text 
+                ellipsis={{
+                    showTooltip:{
+                        opts: { content: '架构|Data-inf|bytegraph.cheetah.user_relation', style: { wordBreak: 'break-all' } }
+                    }
+                }}
+                style={{ width: 150 }}
+            >
+                覆盖style超长文本发生截断时可使用style进行自定义配置
+            </Text>
+        </div>
+    );
 }
 }
 ```
 ```
 
 

+ 82 - 82
content/feedback/banner/index-en-US.md

@@ -27,36 +27,36 @@ import { Banner, Layout, Button } from '@douyinfe/semi-ui';
 () => {
 () => {
     const [visible, setVisible] = useState(false);
     const [visible, setVisible] = useState(false);
     const changeVisible = () => {
     const changeVisible = () => {
-      setVisible(!visible);
+        setVisible(!visible);
     };
     };
     const { Header, Footer, Content } = Layout;
     const { Header, Footer, Content } = Layout;
     const banner = (
     const banner = (
-      <Banner 
-          onClose={changeVisible}
-          description="A pre-released version is available"
-      />
+        <Banner 
+            onClose={changeVisible}
+            description="A pre-released version is available"
+        />
     );
     );
     return (
     return (
         <>
         <>
-          <Layout className='components-layout-demo banner-basic'>
-              <Header>Header</Header>
-              {visible? banner : null}
-              <Content>Content</Content>
-              <Footer>Footer</Footer>
-          </Layout>
-          <Button
-            onClick={changeVisible}
-            style={{
-              display: 'block',
-              width: '120px',
-              margin: '0 auto'
-            }}
-          >
-            { visible ? 'Hide Banner' : 'Show Banner' }
-          </Button>
+            <Layout className='components-layout-demo banner-basic'>
+                <Header>Header</Header>
+                {visible? banner : null}
+                <Content>Content</Content>
+                <Footer>Footer</Footer>
+            </Layout>
+            <Button
+                onClick={changeVisible}
+                style={{
+                    display: 'block',
+                    width: '120px',
+                    margin: '0 auto'
+                }}
+            >
+                { visible ? 'Hide Banner' : 'Show Banner' }
+            </Button>
         </>
         </>
-      );
-}
+    );
+};
 ```
 ```
 
 
 ### Types
 ### Types
@@ -68,28 +68,28 @@ import React from 'react';
 import { Banner } from '@douyinfe/semi-ui';
 import { Banner } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <>
-    <Banner 
-      type="info"
-      description="A pre-released version is available."
-    />
-    <br/>
-    <Banner 
-      type="warning"
-      description="This version of the document is going to expire after 4 days."
-    />
-    <br/>
-    <Banner 
-      type="danger"
-      description="This document was deprecated since Jan 1, 2019."
-    />
-    <br/>
-    <Banner 
-      type="success"
-      description="You are viewing the latest version of this document."
-    />
-  </>
-)
+    <>
+        <Banner 
+            type="info"
+            description="A pre-released version is available."
+        />
+        <br/>
+        <Banner 
+            type="warning"
+            description="This version of the document is going to expire after 4 days."
+        />
+        <br/>
+        <Banner 
+            type="danger"
+            description="This document was deprecated since Jan 1, 2019."
+        />
+        <br/>
+        <Banner 
+            type="success"
+            description="You are viewing the latest version of this document."
+        />
+    </>
+);
 ```
 ```
 
 
 
 
@@ -102,28 +102,28 @@ import React from 'react';
 import { Banner, Typography } from '@douyinfe/semi-ui';
 import { Banner, Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
+    const { Text } = Typography;
   
   
-  return (
-    <div style={{width: 640 }} className="components-banner-demo">
-      <Banner fullMode={false} type="info" bordered icon={null} closeIcon={null}
-        title={<div style={{fontWeight: 600, fontSize: '14px', lineHeight: '20px'}}>Don't know AppKey?</div>}
-        description={<div>You can contact the corresponding R & D students to confirm whether you have applied for an application on <Text link={{ href: 'https://semi.design/' }}>the application cloud platform</Text> , and fill in the corresponding information.</div>}
-      /><br/>
-      <Banner fullMode={false} type="warning" bordered icon={null} closeIcon={null}
-        title={<div style={{fontWeight: 600, fontSize: '14px', lineHeight: '20px'}}>Don't know AppKey?</div>}
-        description={<div>You can contact the corresponding R & D students to confirm whether you have applied for an application on <Text link={{ href: 'https://semi.design/' }}>the application cloud platform</Text> , and fill in the corresponding information.</div>}
-      /><br/>
-      <Banner fullMode={false} type="danger" bordered icon={null} closeIcon={null}
-        title={<div style={{fontWeight: 600, fontSize: '14px', lineHeight: '20px'}}>Don't know AppKey?</div>}
-        description={<div>You can contact the corresponding R & D students to confirm whether you have applied for an application on <Text link={{ href: 'https://semi.design/' }}>the application cloud platform</Text> , and fill in the corresponding information.</div>}
-      /><br/>
-      <Banner fullMode={false} type="success" bordered icon={null} closeIcon={null}
-        title={<div style={{fontWeight: 600, fontSize: '14px', lineHeight: '20px'}}>Don't know AppKey?</div>}
-        description={<div>You can contact the corresponding R & D students to confirm whether you have applied for an application on <Text link={{ href: 'https://semi.design/' }}>the application cloud platform</Text> , and fill in the corresponding information.</div>}
-      />
-    </div>
-  );
+    return (
+        <div style={{width: 640 }} className="components-banner-demo">
+            <Banner fullMode={false} type="info" bordered icon={null} closeIcon={null}
+                title={<div style={{fontWeight: 600, fontSize: '14px', lineHeight: '20px'}}>{`Don't know AppKey?`}</div>}
+                description={<div>You can contact the corresponding R & D students to confirm whether you have applied for an application on <Text link={{ href: 'https://semi.design/' }}>the application cloud platform</Text> , and fill in the corresponding information.</div>}
+            /><br/>
+            <Banner fullMode={false} type="warning" bordered icon={null} closeIcon={null}
+                title={<div style={{fontWeight: 600, fontSize: '14px', lineHeight: '20px'}}>{`Don't know AppKey?`}</div>}
+                description={<div>You can contact the corresponding R & D students to confirm whether you have applied for an application on <Text link={{ href: 'https://semi.design/' }}>the application cloud platform</Text> , and fill in the corresponding information.</div>}
+            /><br/>
+            <Banner fullMode={false} type="danger" bordered icon={null} closeIcon={null}
+                title={<div style={{fontWeight: 600, fontSize: '14px', lineHeight: '20px'}}>{`Don't know AppKey?`}</div>}
+                description={<div>You can contact the corresponding R & D students to confirm whether you have applied for an application on <Text link={{ href: 'https://semi.design/' }}>the application cloud platform</Text> , and fill in the corresponding information.</div>}
+            /><br/>
+            <Banner fullMode={false} type="success" bordered icon={null} closeIcon={null}
+                title={<div style={{fontWeight: 600, fontSize: '14px', lineHeight: '20px'}}>{`Don't know AppKey?`}</div>}
+                description={<div>You can contact the corresponding R & D students to confirm whether you have applied for an application on <Text link={{ href: 'https://semi.design/' }}>the application cloud platform</Text> , and fill in the corresponding information.</div>}
+            />
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -151,22 +151,22 @@ import React from 'react';
 import { Banner } from '@douyinfe/semi-ui';
 import { Banner } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div style={{width: 500, padding: 20, border: '1px solid var(--semi-color-border)' }}>
-    <Banner
-      fullMode={false}
-      title="Title"
-      type="warning"
-      bordered
-      description="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat"
-    >
-        <div className="semi-modal-footer">
-            <button className="semi-button semi-button-tertiary semi-button-light" type="button">No, thanks.</button>
-            <button className="semi-button semi-button-warning" type="button">Sounds great!</button>
-        </div>
-    </Banner>
-    <br/>
-  </div>
-)
+    <div style={{width: 500, padding: 20, border: '1px solid var(--semi-color-border)' }}>
+        <Banner
+            fullMode={false}
+            title="Title"
+            type="warning"
+            bordered
+            description="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat"
+        >
+            <div className="semi-modal-footer">
+                <button className="semi-button semi-button-tertiary semi-button-light" type="button">No, thanks.</button>
+                <button className="semi-button semi-button-warning" type="button">Sounds great!</button>
+            </div>
+        </Banner>
+        <br/>
+    </div>
+);
 ```
 ```
 
 
 ## API Reference
 ## API Reference

+ 82 - 82
content/feedback/banner/index.md

@@ -26,36 +26,36 @@ import { Banner, Layout, Button } from '@douyinfe/semi-ui';
 () => {
 () => {
     const [visible, setVisible] = useState(false);
     const [visible, setVisible] = useState(false);
     const changeVisible = () => {
     const changeVisible = () => {
-      setVisible(!visible);
+        setVisible(!visible);
     };
     };
     const { Header, Footer, Content } = Layout;
     const { Header, Footer, Content } = Layout;
     const banner = (
     const banner = (
-      <Banner 
-          onClose={changeVisible}
-          description="A pre-released version is available"
-      />
+        <Banner 
+            onClose={changeVisible}
+            description="A pre-released version is available"
+        />
     );
     );
     return (
     return (
         <>
         <>
-          <Layout className='components-layout-demo banner-basic'>
-              <Header>Header</Header>
-              {visible? banner : null}
-              <Content>Content</Content>
-              <Footer>Footer</Footer>
-          </Layout>
-          <Button
-            onClick={changeVisible}
-            style={{
-              display: 'block',
-              width: '120px',
-              margin: '0 auto'
-            }}
-          >
-            { visible ? 'Hide Banner' : 'Show Banner' }
-          </Button>
+            <Layout className='components-layout-demo banner-basic'>
+                <Header>Header</Header>
+                {visible? banner : null}
+                <Content>Content</Content>
+                <Footer>Footer</Footer>
+            </Layout>
+            <Button
+                onClick={changeVisible}
+                style={{
+                    display: 'block',
+                    width: '120px',
+                    margin: '0 auto'
+                }}
+            >
+                { visible ? 'Hide Banner' : 'Show Banner' }
+            </Button>
         </>
         </>
-      );
-}
+    );
+};
 ```
 ```
 
 
 ### 不同类型
 ### 不同类型
@@ -67,28 +67,28 @@ import React from 'react';
 import { Banner } from '@douyinfe/semi-ui';
 import { Banner } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <>
-    <Banner 
-      type="info"
-      description="A pre-released version is available."
-    />
-    <br/>
-    <Banner 
-      type="warning"
-      description="This version of the document is going to expire after 4 days."
-    />
-    <br/>
-    <Banner 
-      type="danger"
-      description="This document was deprecated since Jan 1, 2019."
-    />
-    <br/>
-    <Banner 
-      type="success"
-      description="You are viewing the latest version of this document."
-    />
-  </>
-)
+    <>
+        <Banner 
+            type="info"
+            description="A pre-released version is available."
+        />
+        <br/>
+        <Banner 
+            type="warning"
+            description="This version of the document is going to expire after 4 days."
+        />
+        <br/>
+        <Banner 
+            type="danger"
+            description="This document was deprecated since Jan 1, 2019."
+        />
+        <br/>
+        <Banner 
+            type="success"
+            description="You are viewing the latest version of this document."
+        />
+    </>
+);
 ```
 ```
 
 
 
 
@@ -101,28 +101,28 @@ import React from 'react';
 import { Banner, Typography } from '@douyinfe/semi-ui';
 import { Banner, Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
+    const { Text } = Typography;
   
   
-  return (
-    <div style={{width: 640 }} className="components-banner-demo">
-      <Banner fullMode={false} type="info" bordered icon={null} closeIcon={null}
-        title={<div style={{fontWeight: 600, fontSize: '14px', lineHeight: '20px'}}>不知道 AppKey?</div>}
-        description={<div>你可先联系对应的研发同学,确认是否已在 <Text link={{ href: 'https://semi.design/' }}>应用云平台</Text> 申请了应用,并填写对应的信息。</div>}
-      /><br/>
-      <Banner fullMode={false} type="warning" bordered icon={null} closeIcon={null}
-        title={<div style={{fontWeight: 600, fontSize: '14px', lineHeight: '20px'}}>不知道 AppKey?</div>}
-        description={<div>你可先联系对应的研发同学,确认是否已在 <Text link={{ href: 'https://semi.design/' }}>应用云平台</Text> 申请了应用,并填写对应的信息。</div>}
-      /><br/>
-      <Banner fullMode={false} type="danger" bordered icon={null} closeIcon={null}
-        title={<div style={{fontWeight: 600, fontSize: '14px', lineHeight: '20px'}}>不知道 AppKey?</div>}
-        description={<div>你可先联系对应的研发同学,确认是否已在 <Text link={{ href: 'https://semi.design/' }}>应用云平台</Text> 申请了应用,并填写对应的信息。</div>}
-      /><br/>
-      <Banner fullMode={false} type="success" bordered icon={null} closeIcon={null}
-        title={<div style={{fontWeight: 600, fontSize: '14px', lineHeight: '20px'}}>不知道 AppKey?</div>}
-        description={<div>你可先联系对应的研发同学,确认是否已在 <Text link={{ href: 'https://semi.design/' }}>应用云平台</Text> 申请了应用,并填写对应的信息。</div>}
-      />
-    </div>
-  );
+    return (
+        <div style={{width: 640 }} className="components-banner-demo">
+            <Banner fullMode={false} type="info" bordered icon={null} closeIcon={null}
+                title={<div style={{fontWeight: 600, fontSize: '14px', lineHeight: '20px'}}>不知道 AppKey?</div>}
+                description={<div>你可先联系对应的研发同学,确认是否已在 <Text link={{ href: 'https://semi.design/' }}>应用云平台</Text> 申请了应用,并填写对应的信息。</div>}
+            /><br/>
+            <Banner fullMode={false} type="warning" bordered icon={null} closeIcon={null}
+                title={<div style={{fontWeight: 600, fontSize: '14px', lineHeight: '20px'}}>不知道 AppKey?</div>}
+                description={<div>你可先联系对应的研发同学,确认是否已在 <Text link={{ href: 'https://semi.design/' }}>应用云平台</Text> 申请了应用,并填写对应的信息。</div>}
+            /><br/>
+            <Banner fullMode={false} type="danger" bordered icon={null} closeIcon={null}
+                title={<div style={{fontWeight: 600, fontSize: '14px', lineHeight: '20px'}}>不知道 AppKey?</div>}
+                description={<div>你可先联系对应的研发同学,确认是否已在 <Text link={{ href: 'https://semi.design/' }}>应用云平台</Text> 申请了应用,并填写对应的信息。</div>}
+            /><br/>
+            <Banner fullMode={false} type="success" bordered icon={null} closeIcon={null}
+                title={<div style={{fontWeight: 600, fontSize: '14px', lineHeight: '20px'}}>不知道 AppKey?</div>}
+                description={<div>你可先联系对应的研发同学,确认是否已在 <Text link={{ href: 'https://semi.design/' }}>应用云平台</Text> 申请了应用,并填写对应的信息。</div>}
+            />
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -150,22 +150,22 @@ import React from 'react';
 import { Banner } from '@douyinfe/semi-ui';
 import { Banner } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div style={{width: 500, padding: 20, border: '1px solid var(--semi-color-border)' }}>
-    <Banner
-      fullMode={false}
-      title="Title"
-      type="warning"
-      bordered
-      description="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat"
-    >
-        <div className="semi-modal-footer">
-            <button className="semi-button semi-button-tertiary semi-button-light" type="button">No, thanks.</button>
-            <button className="semi-button semi-button-warning" type="button">Sounds great!</button>
-        </div>
-    </Banner>
-    <br/>
-  </div>
-)
+    <div style={{width: 500, padding: 20, border: '1px solid var(--semi-color-border)' }}>
+        <Banner
+            fullMode={false}
+            title="Title"
+            type="warning"
+            bordered
+            description="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat"
+        >
+            <div className="semi-modal-footer">
+                <button className="semi-button semi-button-tertiary semi-button-light" type="button">No, thanks.</button>
+                <button className="semi-button semi-button-warning" type="button">Sounds great!</button>
+            </div>
+        </Banner>
+        <br/>
+    </div>
+);
 ```
 ```
 
 
 ## API参考
 ## API参考

+ 168 - 168
content/feedback/notification/index-en-US.md

@@ -26,16 +26,16 @@ import React from 'react';
 import { Notification, Button } from '@douyinfe/semi-ui';
 import { Notification, Button } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Button
-    onClick={()=> Notification.open({
-      title: 'Hi, Bytedance',
-      content: 'ies dance dance dance',
-      with: 3
-    })}
-  >
-    Display Notification
-  </Button>
-)
+    <Button
+        onClick={()=> Notification.open({
+            title: 'Hi, Bytedance',
+            content: 'ies dance dance dance',
+            with: 3
+        })}
+    >
+        Display Notification
+    </Button>
+);
 
 
 ```
 ```
 
 
@@ -48,29 +48,29 @@ import React from 'react';
 import { Notification, Button, ButtonGroup } from '@douyinfe/semi-ui';
 import { Notification, Button, ButtonGroup } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  let opts = {
-    with: 3,
-    Position: 'topRight',
-    content: 'semi-ui-notification',
-    title: 'Hi bytedance',
-  };
-
-  return (
-    <>
-      <ButtonGroup>
-        <Button onClick={() => Notification.info({...opts, Position: 'top'})}>top</Button>
-        <Button onClick={() => Notification.info({...opts, position: 'topLeft'})}>topLeft</Button>
-        <Button onClick={() => Notification.info(opts)}>topRight</Button>
-      </ButtonGroup>
-      <br/><br/>
-      <ButtonGroup>
-        <Button onClick={() => Notification.info({...opts, position: 'bottom'})}>bottom</Button>
-        <Button onClick={() => Notification.info({...opts, position: 'bottomRight'})}>bottomRight</Button>
-        <Button onClick={() => Notification.info({...opts, position: 'bottomLeft'})}>bottomLeft</Button>
-      </ButtonGroup>
-    </>
-  )
-}
+    let opts = {
+        with: 3,
+        Position: 'topRight',
+        content: 'semi-ui-notification',
+        title: 'Hi bytedance',
+    };
+
+    return (
+        <>
+            <ButtonGroup>
+                <Button onClick={() => Notification.info({...opts, Position: 'top'})}>top</Button>
+                <Button onClick={() => Notification.info({...opts, position: 'topLeft'})}>topLeft</Button>
+                <Button onClick={() => Notification.info(opts)}>topRight</Button>
+            </ButtonGroup>
+            <br/><br/>
+            <ButtonGroup>
+                <Button onClick={() => Notification.info({...opts, position: 'bottom'})}>bottom</Button>
+                <Button onClick={() => Notification.info({...opts, position: 'bottomRight'})}>bottomRight</Button>
+                <Button onClick={() => Notification.info({...opts, position: 'bottomLeft'})}>bottomLeft</Button>
+            </ButtonGroup>
+        </>
+    );
+};
 ```
 ```
 
 
 ### With Icons
 ### With Icons
@@ -83,50 +83,50 @@ import { Notification, Button } from '@douyinfe/semi-ui';
 import { IconToutiaoLogo, IconVigoLogo } from '@douyinfe/semi-icons';
 import { IconToutiaoLogo, IconVigoLogo } from '@douyinfe/semi-icons';
 
 
 () => {
 () => {
-  let opts = {
-    title: 'Hi, Bytedance',
-    content: 'ies dance dance dance',
-    duration: 3,
-  };
-
-  return (
-    <>
-    <h5>Default Icon</h5>
-    <Button type='primary' onClick={()=>Notification.success(opts)} style={{margin: 4}}>
-      Success
-    </Button>
-    <Button onClick={() => Notification.info(opts)} style={{margin: 4}}>
-      Info
-    </Button>
-    <Button type="warning" onClick={()=>Notification.warning(opts)} style={{margin: 4}}>
-      Warning
-    </Button>
-    <Button type="danger" onClick={()=>Notification.error(opts)} style={{margin: 4}}>
-      Error
-    </Button>
-    <h5>Customized Icon</h5>
-    <Button
-      icon={<IconToutiaoLogo />}
-      style={{ marginRight: 5 }}
-      onClick={() =>
-          Notification.info({
-              ...opts,
-              icon: <IconToutiaoLogo style={{ color: 'red' }} />,
-          })
-      }
-    ></Button>
-    <Button
-      icon={<IconVigoLogo />}
-      style={{ marginRight: 5 }}
-      onClick={() => Notification.info({ ...opts, icon: <IconVigoLogo /> })}
-    ></Button>
-    <Button
-      icon={<IconVigoLogo />}
-      onClick={() => Notification.info({ ...opts, icon: <IconVigoLogo style={{ color: 'pink' }} />  })}
-    ></Button>
-    </>
-  )
-}
+    let opts = {
+        title: 'Hi, Bytedance',
+        content: 'ies dance dance dance',
+        duration: 3,
+    };
+
+    return (
+        <>
+            <h5>Default Icon</h5>
+            <Button type='primary' onClick={()=>Notification.success(opts)} style={{margin: 4}}>
+                Success
+            </Button>
+            <Button onClick={() => Notification.info(opts)} style={{margin: 4}}>
+                Info
+            </Button>
+            <Button type="warning" onClick={()=>Notification.warning(opts)} style={{margin: 4}}>
+                Warning
+            </Button>
+            <Button type="danger" onClick={()=>Notification.error(opts)} style={{margin: 4}}>
+                Error
+            </Button>
+            <h5>Customized Icon</h5>
+            <Button
+                icon={<IconToutiaoLogo />}
+                style={{ marginRight: 5 }}
+                onClick={() =>
+                    Notification.info({
+                        ...opts,
+                        icon: <IconToutiaoLogo style={{ color: 'red' }} />,
+                    })
+                }
+            ></Button>
+            <Button
+                icon={<IconVigoLogo />}
+                style={{ marginRight: 5 }}
+                onClick={() => Notification.info({ ...opts, icon: <IconVigoLogo /> })}
+            ></Button>
+            <Button
+                icon={<IconVigoLogo />}
+                onClick={() => Notification.info({ ...opts, icon: <IconVigoLogo style={{ color: 'pink' }} />  })}
+            ></Button>
+        </>
+    );
+};
 ```
 ```
 
 
 ### Colored Background
 ### Colored Background
@@ -137,36 +137,36 @@ import React from 'react';
 import { Notification, Button } from '@douyinfe/semi-ui';
 import { Notification, Button } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  let opts = {
-     title: 'Hi, Bytedance',
-    content: 'Hi, Bytedance dance dance',
-    duration: 3,
-    theme: 'light'
-  };
-
-  return (
-    <>
-    <Button onClick={() => Notification.info(opts)}>
-      Info
-    </Button>
-    <br/>
-    <br/>
-    <Button onClick={() => Notification.success(opts)}>
-      Success
-    </Button>
-    <br/>
-    <br/>
-    <Button type="warning" onClick={() => Notification.warning(opts)}>
-      Warning
-    </Button>
-    <br/>
-    <br/>
-    <Button type="danger" onClick={() => Notification.error(opts)}>
-      Error
-    </Button>
-    </>
-  )
-}
+    let opts = {
+        title: 'Hi, Bytedance',
+        content: 'Hi, Bytedance dance dance',
+        duration: 3,
+        theme: 'light'
+    };
+
+    return (
+        <>
+            <Button onClick={() => Notification.info(opts)}>
+                Info
+            </Button>
+            <br/>
+            <br/>
+            <Button onClick={() => Notification.success(opts)}>
+                Success
+            </Button>
+            <br/>
+            <br/>
+            <Button type="warning" onClick={() => Notification.warning(opts)}>
+                Warning
+            </Button>
+            <br/>
+            <br/>
+            <Button type="danger" onClick={() => Notification.error(opts)}>
+                Error
+            </Button>
+        </>
+    );
+};
 ```
 ```
 
 
 ### Custom Children with Link
 ### Custom Children with Link
@@ -178,29 +178,29 @@ import React from 'react';
 import { Notification, Button, Typography } from '@douyinfe/semi-ui';
 import { Notification, Button, Typography } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const { Text } = Typography;
-
-  let opts = {
-    title: 'This is a title',
-    content: (
-      <>
-       <div>Hi, Bytedance dance dance</div>
-        <div style={{marginTop: 8}}>
-          <Text link>More Info</Text>
-          <Text link style={{marginLeft: 20}}>Show Later</Text>
-        </div>
-      </>),
-    duration: 3,
-  };
-
-  return (
-    <Button
-      onClick={() => Notification.info(opts)}
-    >
-      Display Notification
-    </Button>
-  )
-}
+    const { Text } = Typography;
+
+    let opts = {
+        title: 'This is a title',
+        content: (
+            <>
+                <div>Hi, Bytedance dance dance</div>
+                <div style={{marginTop: 8}}>
+                    <Text link>More Info</Text>
+                    <Text link style={{marginLeft: 20}}>Show Later</Text>
+                </div>
+            </>),
+        duration: 3,
+    };
+
+    return (
+        <Button
+            onClick={() => Notification.info(opts)}
+        >
+            Display Notification
+        </Button>
+    );
+};
 ```
 ```
 
 
 ### Delay
 ### Delay
@@ -212,17 +212,17 @@ import React from 'react';
 import { Notification, Button } from '@douyinfe/semi-ui';
 import { Notification, Button } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  let opts = {
-    content: 'Hi, Bytedance dance dance',
-    duration: 10,
-  };
-
-  return (
-    <Button onClick={() => Notification.info(opts)}>
-      Close After 10s
-    </Button>
-  )
-}
+    let opts = {
+        content: 'Hi, Bytedance dance dance',
+        duration: 10,
+    };
+
+    return (
+        <Button onClick={() => Notification.info(opts)}>
+            Close After 10s
+        </Button>
+    );
+};
 ```
 ```
 
 
 ### Manual Close
 ### Manual Close
@@ -234,33 +234,33 @@ import React from 'react';
 import { Notification, Button } from '@douyinfe/semi-ui';
 import { Notification, Button } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  let opts = {
-    content: 'Not auto close',
-    title: 'Hi',
-    duration: 0,
-  };
-  const [ids, setIds] = useState([]);
-  function show() {
-    let id = Notification.info(opts);
-    setIds([...ids, id]);
-  }
-  function hide() {
-    let idsTmp = [...ids];
-    Notification.close(idsTmp.shift());
-    setIds(idsTmp);
-  }
-  return (
-    <>
-      <Button type="primary" onClick={show}>
-        Show Notification
-      </Button>
-      <br />
-      <br />
-      <Button type="primary" onClick={hide}>
-        Hide Notification
-      </Button>
-    </>
-  );
+    let opts = {
+        content: 'Not auto close',
+        title: 'Hi',
+        duration: 0,
+    };
+    const [ids, setIds] = useState([]);
+    function show() {
+        let id = Notification.info(opts);
+        setIds([...ids, id]);
+    }
+    function hide() {
+        let idsTmp = [...ids];
+        Notification.close(idsTmp.shift());
+        setIds(idsTmp);
+    }
+    return (
+        <>
+            <Button type="primary" onClick={show}>
+                Show Notification
+            </Button>
+            <br />
+            <br />
+            <Button type="primary" onClick={hide}>
+                Hide Notification
+            </Button>
+        </>
+    );
 };
 };
 ```
 ```
 
 

+ 13 - 13
content/feedback/popconfirm/index-en-US.md

@@ -31,23 +31,23 @@ import { Popconfirm, Button, Toast } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
     const onConfirm = () => {
     const onConfirm = () => {
-      Toast.success('Confirm save!');
+        Toast.success('Confirm save!');
     };
     };
 
 
     const onCancel = () => {
     const onCancel = () => {
-      Toast.warning('Cancel save!');
-    }
+        Toast.warning('Cancel save!');
+    };
     return (
     return (
-      <Popconfirm
-          title="Are you sure you want to save this modification?"
-          content="This modification will be irreversible"
-          onConfirm={onConfirm}
-          onCancel={onCancel}
-      >
-          <Button>Save</Button>
-      </Popconfirm>
-    )
-}
+        <Popconfirm
+            title="Are you sure you want to save this modification?"
+            content="This modification will be irreversible"
+            onConfirm={onConfirm}
+            onCancel={onCancel}
+        >
+            <Button>Save</Button>
+        </Popconfirm>
+    );
+};
 ```
 ```
 
 
 ### Type collocation
 ### Type collocation

+ 13 - 13
content/feedback/popconfirm/index.md

@@ -30,23 +30,23 @@ import { Popconfirm, Button, Toast } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
     const onConfirm = () => {
     const onConfirm = () => {
-      Toast.success('确认保存!');
+        Toast.success('确认保存!');
     };
     };
 
 
     const onCancel = () => {
     const onCancel = () => {
-      Toast.warning('取消保存!');
-    }
+        Toast.warning('取消保存!');
+    };
     return (
     return (
-      <Popconfirm
-          title="确定是否要保存此修改?"
-          content="此修改将不可逆"
-          onConfirm={onConfirm}
-          onCancel={onCancel}
-      >
-          <Button>保存</Button>
-      </Popconfirm>
-    )
-}
+        <Popconfirm
+            title="确定是否要保存此修改?"
+            content="此修改将不可逆"
+            onConfirm={onConfirm}
+            onCancel={onCancel}
+        >
+            <Button>保存</Button>
+        </Popconfirm>
+    );
+};
 ```
 ```
 
 
 ### 类型搭配
 ### 类型搭配

+ 19 - 19
content/feedback/progress/index-en-US.md

@@ -46,7 +46,7 @@ import { Progress } from '@douyinfe/semi-ui';
         <br/>
         <br/>
         <Progress percent={80} style={{ height: '8px' }}/>
         <Progress percent={80} style={{ height: '8px' }}/>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### Show percentage text
 ### Show percentage text
@@ -68,7 +68,7 @@ import { Progress } from '@douyinfe/semi-ui';
         <br/>
         <br/>
         <Progress percent={50} showInfo={true} format={percent => (percent*10) + '‰'}/>
         <Progress percent={50} showInfo={true} format={percent => (percent*10) + '‰'}/>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### Vertical progress bar
 ### Vertical progress bar
@@ -88,7 +88,7 @@ import { Progress } from '@douyinfe/semi-ui';
         <Progress percent={80} direction='vertical' size='large' />
         <Progress percent={80} direction='vertical' size='large' />
         <Progress percent={80} direction='vertical' style={{ width: '8px' }}/>
         <Progress percent={80} direction='vertical' style={{ width: '8px' }}/>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### Circular progress bar
 ### Circular progress bar
@@ -106,7 +106,7 @@ import { Progress } from '@douyinfe/semi-ui';
         <Progress percent={50} type='circle' style={{ margin: 5 }} />
         <Progress percent={50} type='circle' style={{ margin: 5 }} />
         <Progress percent={80} type='circle' style={{ margin: 5 }} />
         <Progress percent={80} type='circle' style={{ margin: 5 }} />
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 You can modify it's `width` to control the size of the circular progress bar.
 You can modify it's `width` to control the size of the circular progress bar.
@@ -124,7 +124,7 @@ import { Progress } from '@douyinfe/semi-ui';
             <Progress percent={100} type='circle' width={100} style={{ margin: 5 }} stroke='#f93920' />
             <Progress percent={100} type='circle' width={100} style={{ margin: 5 }} stroke='#f93920' />
         </div>
         </div>
     </React.Fragment>
     </React.Fragment>
-)
+);
 ```
 ```
 
 
 ### Small circular progress bar
 ### Small circular progress bar
@@ -142,14 +142,14 @@ import { Progress } from '@douyinfe/semi-ui';
         <Progress percent={50} type='circle' size='small' style={{ margin: 5 }} />
         <Progress percent={50} type='circle' size='small' style={{ margin: 5 }} />
         <Progress percent={80} type='circle' size='small' style={{ margin: 5 }} />
         <Progress percent={80} type='circle' size='small' style={{ margin: 5 }} />
     </React.Fragment>
     </React.Fragment>
-)
+);
 ```
 ```
 
 
 ### Dynamic change percent
 ### Dynamic change percent
 
 
 ```jsx live=true
 ```jsx live=true
 import React from 'react';
 import React from 'react';
-import { Progress } from '@douyinfe/semi-ui';
+import { Progress, Button } from '@douyinfe/semi-ui';
 import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons';
 import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons';
 
 
 () => {
 () => {
@@ -158,18 +158,18 @@ import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons';
         <>
         <>
             <div>
             <div>
                 <Progress percent={percent} showInfo/>
                 <Progress percent={percent} showInfo/>
-                <Button icon={<IconChevronLeft />} theme="light" onClick={()=> {setPercent(percent - 10)}} disabled={percent === 0} />
-                <Button icon={<IconChevronRight />} theme="light" onClick={()=> {setPercent(percent + 10)}} disabled={percent >=100 } />
+                <Button icon={<IconChevronLeft />} theme="light" onClick={()=> {setPercent(percent - 10);}} disabled={percent === 0} />
+                <Button icon={<IconChevronRight />} theme="light" onClick={()=> {setPercent(percent + 10);}} disabled={percent >=100 } />
             </div>
             </div>
 
 
         </>
         </>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ```jsx live=true
 ```jsx live=true
 import React from 'react';
 import React from 'react';
-import { Progress } from '@douyinfe/semi-ui';
+import { Progress, Button } from '@douyinfe/semi-ui';
 import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons';
 import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons';
 
 
 () => {
 () => {
@@ -177,11 +177,11 @@ import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons';
     return (
     return (
         <div>
         <div>
             <div><Progress percent={cirPerc} type='circle'/></div>
             <div><Progress percent={cirPerc} type='circle'/></div>
-            <Button icon={<IconChevronLeft />} theme="light" onClick={()=> {setCirPerc(cirPerc - 10)}} disabled={cirPerc === 0}/>
-            <Button icon={<IconChevronRight />} theme="light" onClick={()=> {setCirPerc(cirPerc + 10)}} disabled={cirPerc >=100 }/>
+            <Button icon={<IconChevronLeft />} theme="light" onClick={()=> {setCirPerc(cirPerc - 10);}} disabled={cirPerc === 0}/>
+            <Button icon={<IconChevronRight />} theme="light" onClick={()=> {setCirPerc(cirPerc + 10);}} disabled={cirPerc >=100 }/>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### Custom central text content
 ### Custom central text content
@@ -197,9 +197,9 @@ import { Progress } from '@douyinfe/semi-ui';
     <React.Fragment>
     <React.Fragment>
         <Progress percent={75} showInfo type='circle' format={(per) => per + 'Days'} style={{ margin:10 }}/>
         <Progress percent={75} showInfo type='circle' format={(per) => per + 'Days'} style={{ margin:10 }}/>
         <Progress percent={100} showInfo type='circle' format={(per) => 'Done'} style={{ margin:10 }}/>
         <Progress percent={100} showInfo type='circle' format={(per) => 'Done'} style={{ margin:10 }}/>
-        <Progress percent={50} showInfo type='circle' showInfo={false} style={{ margin:10 }}/>
+        <Progress percent={50} type='circle' showInfo={false} style={{ margin:10 }}/>
     </React.Fragment>
     </React.Fragment>
-)
+);
 ```
 ```
 
 
 ### Round / square edges
 ### Round / square edges
@@ -215,7 +215,7 @@ import { Progress } from '@douyinfe/semi-ui';
         <Progress percent={50} strokeLinecap='round' type='circle' style={{ margin: 10 }} />
         <Progress percent={50} strokeLinecap='round' type='circle' style={{ margin: 10 }} />
         <Progress percent={50} strokeLinecap='square' type='circle' style={{ margin:10 }} />
         <Progress percent={50} strokeLinecap='square' type='circle' style={{ margin:10 }} />
     </React.Fragment>
     </React.Fragment>
-)
+);
 ```
 ```
 
 
 ## API Reference
 ## API Reference

+ 11 - 13
content/feedback/progress/index.md

@@ -45,7 +45,7 @@ import { Progress } from '@douyinfe/semi-ui';
         <br />
         <br />
         <Progress percent={80} style={{ height: '8px' }} />
         <Progress percent={80} style={{ height: '8px' }} />
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### 展示百分比文本
 ### 展示百分比文本
@@ -66,7 +66,7 @@ import { Progress } from '@douyinfe/semi-ui';
         <br />
         <br />
         <Progress percent={50} showInfo={true} format={percent => percent * 10 + '‰'} />
         <Progress percent={50} showInfo={true} format={percent => percent * 10 + '‰'} />
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### 垂直的进度条
 ### 垂直的进度条
@@ -85,7 +85,7 @@ import { Progress } from '@douyinfe/semi-ui';
         <Progress percent={80} direction="vertical" size="large" />
         <Progress percent={80} direction="vertical" size="large" />
         <Progress percent={80} direction="vertical" style={{ width: '8px' }} />
         <Progress percent={80} direction="vertical" style={{ width: '8px' }} />
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### 环形进度条
 ### 环形进度条
@@ -103,7 +103,7 @@ import { Progress } from '@douyinfe/semi-ui';
         <Progress percent={50} type="circle" style={{ margin: 5 }} />
         <Progress percent={50} type="circle" style={{ margin: 5 }} />
         <Progress percent={80} type="circle" style={{ margin: 5 }} />
         <Progress percent={80} type="circle" style={{ margin: 5 }} />
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 你可以通过修改`width`来控制环形进度条的大小
 你可以通过修改`width`来控制环形进度条的大小
@@ -121,7 +121,7 @@ import { Progress } from '@douyinfe/semi-ui';
             <Progress percent={100} type="circle" width={100} style={{ margin: 5 }} stroke="#f93920" />
             <Progress percent={100} type="circle" width={100} style={{ margin: 5 }} stroke="#f93920" />
         </div>
         </div>
     </React.Fragment>
     </React.Fragment>
-)
+);
 ```
 ```
 
 
 ### 小号的环形进度条
 ### 小号的环形进度条
@@ -139,15 +139,14 @@ import { Progress } from '@douyinfe/semi-ui';
         <Progress percent={50} type="circle" size="small" style={{ margin: 5 }} />
         <Progress percent={50} type="circle" size="small" style={{ margin: 5 }} />
         <Progress percent={80} type="circle" size="small" style={{ margin: 5 }} />
         <Progress percent={80} type="circle" size="small" style={{ margin: 5 }} />
     </React.Fragment>
     </React.Fragment>
-)
+);
 ```
 ```
 
 
 ### 动态改变进度
 ### 动态改变进度
 
 
 ```jsx live=true
 ```jsx live=true
-import React from 'react';
-import { Progress } from '@douyinfe/semi-ui';
 import React, { useState } from 'react';
 import React, { useState } from 'react';
+import { Progress, Button } from '@douyinfe/semi-ui';
 import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons';
 import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons';
 
 
 () => {
 () => {
@@ -179,9 +178,8 @@ import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons';
 ```
 ```
 
 
 ```jsx live=true
 ```jsx live=true
-import React from 'react';
-import { Progress } from '@douyinfe/semi-ui';
 import React, { useState } from 'react';
 import React, { useState } from 'react';
+import { Progress, Button } from '@douyinfe/semi-ui';
 import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons';
 import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons';
 
 
 () => {
 () => {
@@ -225,9 +223,9 @@ import { Progress } from '@douyinfe/semi-ui';
     <React.Fragment>
     <React.Fragment>
         <Progress percent={75} showInfo type="circle" format={per => per + 'Days'} style={{ margin: 10 }} />
         <Progress percent={75} showInfo type="circle" format={per => per + 'Days'} style={{ margin: 10 }} />
         <Progress percent={100} showInfo type="circle" format={per => 'Done'} style={{ margin: 10 }} />
         <Progress percent={100} showInfo type="circle" format={per => 'Done'} style={{ margin: 10 }} />
-        <Progress percent={50} showInfo type="circle" showInfo={false} style={{ margin: 10 }} />
+        <Progress percent={50} type="circle" showInfo={false} style={{ margin: 10 }} />
     </React.Fragment>
     </React.Fragment>
-)
+);
 ```
 ```
 
 
 ### 圆角/方角边缘
 ### 圆角/方角边缘
@@ -243,7 +241,7 @@ import { Progress } from '@douyinfe/semi-ui';
         <Progress percent={50} strokeLinecap="round" type="circle" style={{ margin: 10 }} />
         <Progress percent={50} strokeLinecap="round" type="circle" style={{ margin: 10 }} />
         <Progress percent={50} strokeLinecap="square" type="circle" style={{ margin: 10 }} />
         <Progress percent={50} strokeLinecap="square" type="circle" style={{ margin: 10 }} />
     </React.Fragment>
     </React.Fragment>
-)
+);
 ```
 ```
 
 
 ## API 参考
 ## API 参考

+ 226 - 226
content/feedback/skeleton/index-en-US.md

@@ -33,48 +33,48 @@ import React from 'react';
 import { Skeleton, Switch, Button } from '@douyinfe/semi-ui';
 import { Skeleton, Switch, Button } from '@douyinfe/semi-ui';
 
 
 class Demo extends React.Component {
 class Demo extends React.Component {
-  constructor() {
-    super();
-    this.state = {loading: true};
-  }
-
-  showContent() {
-    const {loading} = this.state;
-    this.setState({
-      loading: !loading
-    });
-  }
-
-  render() {
-    const {loading} = this.state;
-    return (
-      <>
-        <span style={{display: 'flex', alignItems: 'center'}}>
-          <Switch onChange={() => this.showContent()}/>
-          <span style={{marginLeft: '10px' }}>Show Loading Content</span>
-        </span>
-        <br/>
-        <Skeleton placeholder={(<Skeleton.Avatar />)} loading={loading}>
-            <Avatar color='blue' style={{marginBottom: 10}}>U</Avatar>
-        </Skeleton>
-        <br/>
-        <Skeleton style={{width: 200, height: 150}} placeholder={(<Skeleton.Image />)} loading={loading}>
-            <img src="https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/avatarDemo.jpeg" height='150' />
-        </Skeleton>
-        <br/>
-        <Skeleton style={{width: 80}} placeholder={(<Skeleton.Title style={{marginBottom: 10}}/>)} loading={loading}>
-            <h4 style={{marginBottom: 0}}>Semi UI</h4>
-        </Skeleton>
-        <Skeleton style={{width: 240}} placeholder={(<Skeleton.Paragraph rows={2}/>)} loading={loading}>
-            <p style={{width: 240}} >Carefully polish the user experience of each component.</p>
-        </Skeleton>
-        <br/>
-        <Skeleton placeholder={(<Skeleton.Button />)} loading={loading}>
-            <Button>Button</Button>
-        </Skeleton>
-      </>
-    );
-  }
+    constructor() {
+        super();
+        this.state = {loading: true};
+    }
+
+    showContent() {
+        const {loading} = this.state;
+        this.setState({
+            loading: !loading
+        });
+    }
+
+    render() {
+        const {loading} = this.state;
+        return (
+            <>
+                <span style={{display: 'flex', alignItems: 'center'}}>
+                    <Switch onChange={() => this.showContent()}/>
+                    <span style={{marginLeft: '10px' }}>Show Loading Content</span>
+                </span>
+                <br/>
+                <Skeleton placeholder={(<Skeleton.Avatar />)} loading={loading}>
+                    <Avatar color='blue' style={{marginBottom: 10}}>U</Avatar>
+                </Skeleton>
+                <br/>
+                <Skeleton style={{width: 200, height: 150}} placeholder={(<Skeleton.Image />)} loading={loading}>
+                    <img src="https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/avatarDemo.jpeg" height='150' />
+                </Skeleton>
+                <br/>
+                <Skeleton style={{width: 80}} placeholder={(<Skeleton.Title style={{marginBottom: 10}}/>)} loading={loading}>
+                    <h4 style={{marginBottom: 0}}>Semi UI</h4>
+                </Skeleton>
+                <Skeleton style={{width: 240}} placeholder={(<Skeleton.Paragraph rows={2}/>)} loading={loading}>
+                    <p style={{width: 240}} >Carefully polish the user experience of each component.</p>
+                </Skeleton>
+                <br/>
+                <Skeleton placeholder={(<Skeleton.Button />)} loading={loading}>
+                    <Button>Button</Button>
+                </Skeleton>
+            </>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -87,20 +87,20 @@ import React from 'react';
 import { Skeleton } from '@douyinfe/semi-ui';
 import { Skeleton } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const placeholder = (
-    <div>
-      <Skeleton.Image style={{width: 200, height: 150}}/>
-      <Skeleton.Title style={{width: 120, marginTop: 10}}/>
-    </div>
-  );
-
-  return (
-    <Skeleton placeholder={placeholder} loading={true}>
-      <img src="https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/avatarDemo.jpeg" height='150' />
-      <h4>Semi UI</h4>
-    </Skeleton>
-  )
-}
+    const placeholder = (
+        <div>
+            <Skeleton.Image style={{width: 200, height: 150}}/>
+            <Skeleton.Title style={{width: 120, marginTop: 10}}/>
+        </div>
+    );
+
+    return (
+        <Skeleton placeholder={placeholder} loading={true}>
+            <img src="https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/avatarDemo.jpeg" height='150' />
+            <h4>Semi UI</h4>
+        </Skeleton>
+    );
+};
 ```
 ```
 
 
 Statistics.
 Statistics.
@@ -110,23 +110,23 @@ import React from 'react';
 import { Skeleton, Descriptions } from '@douyinfe/semi-ui';
 import { Skeleton, Descriptions } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const placeholder = (
-    <div>
-      <Skeleton.Paragraph rows={1} style={{width: 80, marginBottom: 10}}/>
-      <Skeleton.Title style={{width: 120}}/>
-    </div>
-  );
-
-  const data = [
-    { key: 'Actual User', value: '1,480,000' },
-  ];
-
-  return (
-    <Skeleton placeholder={placeholder} loading={true}>
-      <Descriptions data={data} row />
-    </Skeleton>
-  )
-}
+    const placeholder = (
+        <div>
+            <Skeleton.Paragraph rows={1} style={{width: 80, marginBottom: 10}}/>
+            <Skeleton.Title style={{width: 120}}/>
+        </div>
+    );
+
+    const data = [
+        { key: 'Actual User', value: '1,480,000' },
+    ];
+
+    return (
+        <Skeleton placeholder={placeholder} loading={true}>
+            <Descriptions data={data} row />
+        </Skeleton>
+    );
+};
 ```
 ```
 
 
 Avatar and title.
 Avatar and title.
@@ -136,20 +136,20 @@ import React from 'react';
 import { Skeleton, Avatar } from '@douyinfe/semi-ui';
 import { Skeleton, Avatar } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const placeholder = (
-    <div style={{display: 'flex', alignItems: 'center'}}>
-      <Skeleton.Avatar style={{marginRight: 12}}/>
-      <Skeleton.Title style={{width: 120}}/>
-    </div>
-  );
-
-  return (
-    <Skeleton placeholder={placeholder} loading={true}>
-      <Avatar color='blue' style={{marginRight: 12}}>UI</Avatar>
-      <span>Semi UI</span>
-    </Skeleton>
-  )
-}
+    const placeholder = (
+        <div style={{display: 'flex', alignItems: 'center'}}>
+            <Skeleton.Avatar style={{marginRight: 12}}/>
+            <Skeleton.Title style={{width: 120}}/>
+        </div>
+    );
+
+    return (
+        <Skeleton placeholder={placeholder} loading={true}>
+            <Avatar color='blue' style={{marginRight: 12}}>UI</Avatar>
+            <span>Semi UI</span>
+        </Skeleton>
+    );
+};
 ```
 ```
 
 
 Centered paragraphs and button.
 Centered paragraphs and button.
@@ -159,31 +159,31 @@ import React from 'react';
 import { Skeleton, Button } from '@douyinfe/semi-ui';
 import { Skeleton, Button } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const style = {
-    display: 'flex',
-    flexDirection: 'column',
-    alignItems: 'center',
-    width: '300px',
-    marginBottom: '10px',
-  }
-
-  const placeholder = (
-    <div style={style}>
-      <Skeleton.Paragraph style={style} rows={3}/>
-      <Skeleton.Button />
-    </div>
-  );
-
-  return (
-    <Skeleton placeholder={placeholder} loading={true} style={{textAlign: 'center'}}>
-      <div style={{textAlign: 'center'}}>
-        <p>Hi, Bytedance dance dance.</p>
-        <p>Hi, Bytedance dance dance.</p>
-        <Button>Button</Button>
-      </div>
-    </Skeleton>
-  )
-}
+    const style = {
+        display: 'flex',
+        flexDirection: 'column',
+        alignItems: 'center',
+        width: '300px',
+        marginBottom: '10px',
+    };
+
+    const placeholder = (
+        <div style={style}>
+            <Skeleton.Paragraph style={style} rows={3}/>
+            <Skeleton.Button />
+        </div>
+    );
+
+    return (
+        <Skeleton placeholder={placeholder} loading={true} style={{textAlign: 'center'}}>
+            <div style={{textAlign: 'center'}}>
+                <p>Hi, Bytedance dance dance.</p>
+                <p>Hi, Bytedance dance dance.</p>
+                <Button>Button</Button>
+            </div>
+        </Skeleton>
+    );
+};
 ```
 ```
 
 
 Avatar, headline and paragraph.
 Avatar, headline and paragraph.
@@ -193,35 +193,35 @@ import React from 'react';
 import { Skeleton, Avatar } from '@douyinfe/semi-ui';
 import { Skeleton, Avatar } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const style = {
-    display: 'flex',
-    alignItems: 'flex-start'
-  }
-
-  const placeholder = (
-    <div style={style}>
-      <Skeleton.Avatar style={{marginRight: 12}}/>
-      <div>
-      <Skeleton.Title style={{width: 120, marginBottom: 12, marginTop: 12}}/>
-      <Skeleton.Paragraph style={{width: 240}} rows={3}/>
-      </div>
-    </div>
-  );
-
-  return (
-    <Skeleton placeholder={placeholder} loading={true}>
-    <div style={style}>
-      <Avatar color='blue' style={{marginRight: 12}}>UI</Avatar>
-      <div>
-        <h3>Semi UI</h3>
-        <p>Hi, Bytedance dance dance.</p>
-        <p>Hi, Bytedance dance dance.</p>
-        <p>Hi, Bytedance dance dance.</p>
-      </div>
-      </div>
-    </Skeleton>
-  )
-}
+    const style = {
+        display: 'flex',
+        alignItems: 'flex-start'
+    };
+
+    const placeholder = (
+        <div style={style}>
+            <Skeleton.Avatar style={{marginRight: 12}}/>
+            <div>
+                <Skeleton.Title style={{width: 120, marginBottom: 12, marginTop: 12}}/>
+                <Skeleton.Paragraph style={{width: 240}} rows={3}/>
+            </div>
+        </div>
+    );
+
+    return (
+        <Skeleton placeholder={placeholder} loading={true}>
+            <div style={style}>
+                <Avatar color='blue' style={{marginRight: 12}}>UI</Avatar>
+                <div>
+                    <h3>Semi UI</h3>
+                    <p>Hi, Bytedance dance dance.</p>
+                    <p>Hi, Bytedance dance dance.</p>
+                    <p>Hi, Bytedance dance dance.</p>
+                </div>
+            </div>
+        </Skeleton>
+    );
+};
 ```
 ```
 
 
 Table.
 Table.
@@ -231,22 +231,22 @@ import React from 'react';
 import { Skeleton, Table } from '@douyinfe/semi-ui';
 import { Skeleton, Table } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const data = {
+    const data = {
         columns: [
         columns: [
-        {
-            title: 'Name',
-            dataIndex: 'name',
-        },
-        {
-            title: 'Age',
-            dataIndex: 'age',
-        },
-        {
-            title: 'Address',
-            dataIndex: 'address',
-        },
-    ],
-      content: [{
+            {
+                title: 'Name',
+                dataIndex: 'name',
+            },
+            {
+                title: 'Age',
+                dataIndex: 'age',
+            },
+            {
+                title: 'Address',
+                dataIndex: 'address',
+            },
+        ],
+        content: [{
             key: '1',
             key: '1',
             name: 'John Brown',
             name: 'John Brown',
             age: 32,
             age: 32,
@@ -270,47 +270,47 @@ import { Skeleton, Table } from '@douyinfe/semi-ui';
             age: 99,
             age: 99,
             address: 'Sidney No. 1 Lake Park',
             address: 'Sidney No. 1 Lake Park',
         },
         },
-    ]
-  }
-
-  const skData = {
-    columns: [1,2,3].map(key => {
-      const item = {};
-      item.title = (<Skeleton.Title style={{width: '0'}}/>)
-      item.dataIndex = key;
-      return item;
-    }),
-    dataSource: [1,2,3,4].map(key => {
-      const item = {};
-      item.key = key;
-      [1,2,3].forEach(i => {
-        const width = 50 * i;
-        item[i] = (<Skeleton.Paragraph style={{width: width}} rows={1}/>)
-      })
-      return item;
-    })
-  };
-
-  const placeholder = (
-    <div style={{position: 'relative'}}>
-      <Table
-        style={{backgroundColor: 'var(--semi-color-bg-1)'}}
-        columns={skData.columns}
-        dataSource={skData.dataSource}
-        pagination={false}
-      />
-      <div style={{position: 'absolute', left: 0, right: 0, top: 0, bottom: 0}}></div>
-    </div>
-  );
-
-  return (
-    <Skeleton placeholder={placeholder} loading={true}>
-    <div>
-      <Table columns={data.columns} dataSource={data.content} pagination={false} />
-    </div>
-    </Skeleton>
-  )
-}
+        ]
+    };
+
+    const skData = {
+        columns: [1,2,3].map(key => {
+            const item = {};
+            item.title = (<Skeleton.Title style={{width: '0'}}/>);
+            item.dataIndex = key;
+            return item;
+        }),
+        dataSource: [1,2,3,4].map(key => {
+            const item = {};
+            item.key = key;
+            [1,2,3].forEach(i => {
+                const width = 50 * i;
+                item[i] = (<Skeleton.Paragraph style={{width: width}} rows={1}/>);
+            });
+            return item;
+        })
+    };
+
+    const placeholder = (
+        <div style={{position: 'relative'}}>
+            <Table
+                style={{backgroundColor: 'var(--semi-color-bg-1)'}}
+                columns={skData.columns}
+                dataSource={skData.dataSource}
+                pagination={false}
+            />
+            <div style={{position: 'absolute', left: 0, right: 0, top: 0, bottom: 0}}></div>
+        </div>
+    );
+
+    return (
+        <Skeleton placeholder={placeholder} loading={true}>
+            <div>
+                <Table columns={data.columns} dataSource={data.content} pagination={false} />
+            </div>
+        </Skeleton>
+    );
+};
 ```
 ```
 
 
 ### Animated Loading
 ### Animated Loading
@@ -322,35 +322,35 @@ import React from 'react';
 import { Skeleton, Avatar } from '@douyinfe/semi-ui';
 import { Skeleton, Avatar } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const style = {
-    display: 'flex',
-    alignItems: 'flex-start'
-  }
-
-  const placeholder = (
-    <div style={style}>
-      <Skeleton.Avatar style={{marginRight: 12}}/>
-      <div>
-      <Skeleton.Title style={{width: 120, marginBottom: 12, marginTop: 12}}/>
-      <Skeleton.Paragraph style={{width: 240}} rows={3}/>
-      </div>
-    </div>
-  );
-
-  return (
-    <Skeleton placeholder={placeholder} loading={true} active>
-    <div style={style}>
-      <Avatar color='blue' style={{marginRight: 12}}>UI</Avatar>
-      <div>
-        <h3>Semi UI</h3>
-        <p>Hi, Bytedance dance dance.</p>
-        <p>Hi, Bytedance dance dance.</p>
-        <p>Hi, Bytedance dance dance.</p>
-      </div>
-      </div>
-    </Skeleton>
-  )
-}
+    const style = {
+        display: 'flex',
+        alignItems: 'flex-start'
+    };
+
+    const placeholder = (
+        <div style={style}>
+            <Skeleton.Avatar style={{marginRight: 12}}/>
+            <div>
+                <Skeleton.Title style={{width: 120, marginBottom: 12, marginTop: 12}}/>
+                <Skeleton.Paragraph style={{width: 240}} rows={3}/>
+            </div>
+        </div>
+    );
+
+    return (
+        <Skeleton placeholder={placeholder} loading={true} active>
+            <div style={style}>
+                <Avatar color='blue' style={{marginRight: 12}}>UI</Avatar>
+                <div>
+                    <h3>Semi UI</h3>
+                    <p>Hi, Bytedance dance dance.</p>
+                    <p>Hi, Bytedance dance dance.</p>
+                    <p>Hi, Bytedance dance dance.</p>
+                </div>
+            </div>
+        </Skeleton>
+    );
+};
 ```
 ```
 
 
 ## API reference
 ## API reference

+ 36 - 36
content/feedback/skeleton/index.md

@@ -37,42 +37,42 @@ import { Skeleton, Switch, Avatar, Button } from '@douyinfe/semi-ui';
         setLoading(!loading);
         setLoading(!loading);
     };
     };
     return (
     return (
-      <>
-          <span style={{ display: 'flex', alignItems: 'center' }}>
-              <Switch onChange={() => showContent()} />
-              <span style={{ marginLeft: '10px' }}>显示加载内容</span>
-          </span>
-          <br />
-          <Skeleton placeholder={<Skeleton.Avatar />} loading={loading}>
-              <Avatar color="blue" style={{ marginBottom: 10 }}>
-                  U
-              </Avatar>
-          </Skeleton>
-          <br />
-          <Skeleton style={{ width: 200, height: 150 }} placeholder={<Skeleton.Image />} loading={loading}>
-              <img
-                  src="https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/avatarDemo.jpeg"
-                  height="150"
-              />
-          </Skeleton>
-          <br />
-          <Skeleton
-              style={{ width: 80 }}
-              placeholder={<Skeleton.Title style={{ marginBottom: 10 }} />}
-              loading={loading}
-          >
-              <h4 style={{ marginBottom: 0 }}>Semi UI</h4>
-          </Skeleton>
-          <Skeleton style={{ width: 240 }} placeholder={<Skeleton.Paragraph rows={2} />} loading={loading}>
-              <p style={{ width: 240 }}>精心打磨每一个组件的用户体验,从用户的角度考虑每个组件的使用场景。</p>
-          </Skeleton>
-          <br />
-          <Skeleton placeholder={<Skeleton.Button />} loading={loading}>
-              <Button>Button</Button>
-          </Skeleton>
-      </>
-    )
-}
+        <>
+            <span style={{ display: 'flex', alignItems: 'center' }}>
+                <Switch onChange={() => showContent()} />
+                <span style={{ marginLeft: '10px' }}>显示加载内容</span>
+            </span>
+            <br />
+            <Skeleton placeholder={<Skeleton.Avatar />} loading={loading}>
+                <Avatar color="blue" style={{ marginBottom: 10 }}>
+                    U
+                </Avatar>
+            </Skeleton>
+            <br />
+            <Skeleton style={{ width: 200, height: 150 }} placeholder={<Skeleton.Image />} loading={loading}>
+                <img
+                    src="https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/avatarDemo.jpeg"
+                    height="150"
+                />
+            </Skeleton>
+            <br />
+            <Skeleton
+                style={{ width: 80 }}
+                placeholder={<Skeleton.Title style={{ marginBottom: 10 }} />}
+                loading={loading}
+            >
+                <h4 style={{ marginBottom: 0 }}>Semi UI</h4>
+            </Skeleton>
+            <Skeleton style={{ width: 240 }} placeholder={<Skeleton.Paragraph rows={2} />} loading={loading}>
+                <p style={{ width: 240 }}>精心打磨每一个组件的用户体验,从用户的角度考虑每个组件的使用场景。</p>
+            </Skeleton>
+            <br />
+            <Skeleton placeholder={<Skeleton.Button />} loading={loading}>
+                <Button>Button</Button>
+            </Skeleton>
+        </>
+    );
+};
 ```
 ```
 
 
 ### 组合使用
 ### 组合使用

+ 2 - 2
content/feedback/spin/index-en-US.md

@@ -103,7 +103,7 @@ Delayed to display Spin.
 
 
 ```jsx live=true hideInDSM
 ```jsx live=true hideInDSM
 import React, { useState } from 'react';
 import React, { useState } from 'react';
-import { Spin } from '@douyinfe/semi-ui';
+import { Spin, Button } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
     const [loading, toggleLoading] = useState(false);
     const [loading, toggleLoading] = useState(false);
@@ -128,7 +128,7 @@ Use `spinning` to determine if the component is in loading status
 
 
 ```jsx live=true hideInDSM
 ```jsx live=true hideInDSM
 import React, { useState } from 'react';
 import React, { useState } from 'react';
-import { Spin } from '@douyinfe/semi-ui';
+import { Spin, Button } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
     const [loading, toggleLoading] = useState(false);
     const [loading, toggleLoading] = useState(false);

+ 4 - 1
content/feedback/toast/index-en-US.md

@@ -278,7 +278,7 @@ You could also use `ReactDOM.createPortal` to insert toast in a Portal.
 
 
 ```jsx live=true noInline=true
 ```jsx live=true noInline=true
 import React, { useRef } from 'react';
 import React, { useRef } from 'react';
-import { Toast } from '@douyinfe/semi-ui';
+import { Toast, Button } from '@douyinfe/semi-ui';
 
 
 const ReachableContext = React.createContext();
 const ReachableContext = React.createContext();
 
 
@@ -378,6 +378,9 @@ The global configuration is set before any method call, and takes effect only on
     If you need Toast with different configs in your application, you can use ToastFactory.create(config)to create a new Toast (>= 1.23):
     If you need Toast with different configs in your application, you can use ToastFactory.create(config)to create a new Toast (>= 1.23):
 
 
 ```jsx live=true noInline=true
 ```jsx live=true noInline=true
+import React from 'react';
+import { Button } from '@douyinfe/semi-ui';
+
 function Demo() {
 function Demo() {
     const ToastInCustomContainer = ToastFactory.create({
     const ToastInCustomContainer = ToastFactory.create({
         getPopupContainer: () => document.getElementById('custom-toast-container'),
         getPopupContainer: () => document.getElementById('custom-toast-container'),

+ 2 - 0
content/feedback/toast/index.md

@@ -380,6 +380,8 @@ render(Demo);
 
 
 ```jsx live=true noInline=true
 ```jsx live=true noInline=true
 import React from 'react';
 import React from 'react';
+import { Button } from '@douyinfe/semi-ui';
+
 function Demo() {
 function Demo() {
     const ToastInCustomContainer = ToastFactory.create({
     const ToastInCustomContainer = ToastFactory.create({
         getPopupContainer: () => document.getElementById('custom-toast-container'),
         getPopupContainer: () => document.getElementById('custom-toast-container'),

+ 8 - 8
content/input/autocomplete/index-en-US.md

@@ -44,12 +44,12 @@ import { IconSearch } from '@douyinfe/semi-icons';
             result = [];
             result = [];
         }
         }
         setStringData(result);
         setStringData(result);
-    }
+    };
 
 
     const handleChange = (value) => {
     const handleChange = (value) => {
         console.log('onChange', value);
         console.log('onChange', value);
         setValue(value);
         setValue(value);
-    }
+    };
     return (
     return (
         <AutoComplete
         <AutoComplete
             data={stringData}
             data={stringData}
@@ -61,8 +61,8 @@ import { IconSearch } from '@douyinfe/semi-icons';
             onChange={handleChange}
             onChange={handleChange}
             style={{ width: 200 }}
             style={{ width: 200 }}
         />
         />
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### Custom option rendering
 ### Custom option rendering
@@ -252,7 +252,7 @@ import { AutoComplete } from '@douyinfe/semi-ui';
             style={{ width: 200 }}
             style={{ width: 200 }}
         ></AutoComplete>
         ></AutoComplete>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### The position of the drop-down menu
 ### The position of the drop-down menu
@@ -278,7 +278,7 @@ import { AutoComplete } from '@douyinfe/semi-ui';
             style={{ width: 200, margin: 10 }}
             style={{ width: 200, margin: 10 }}
         ></AutoComplete>
         ></AutoComplete>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### Disabled
 ### Disabled
@@ -289,7 +289,7 @@ import { AutoComplete } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <AutoComplete data={[1, 2, 3, 4]} placeholder={'Disable drop-down menu'} disabled style={{ width: 200 }}></AutoComplete>
     <AutoComplete data={[1, 2, 3, 4]} placeholder={'Disable drop-down menu'} disabled style={{ width: 200 }}></AutoComplete>
-)
+);
 ```
 ```
 
 
 ### Validate status
 ### Validate status
@@ -310,7 +310,7 @@ import { AutoComplete } from '@douyinfe/semi-ui';
         <br />
         <br />
         <AutoComplete defaultValue="ies"></AutoComplete>
         <AutoComplete defaultValue="ies"></AutoComplete>
     </>
     </>
-)
+);
 ```
 ```
 
 
 ### Custom empty content
 ### Custom empty content

+ 8 - 8
content/input/autocomplete/index.md

@@ -45,12 +45,12 @@ import { IconSearch } from '@douyinfe/semi-icons';
             result = [];
             result = [];
         }
         }
         setStringData(result);
         setStringData(result);
-    }
+    };
 
 
     const handleChange = (value) => {
     const handleChange = (value) => {
         console.log('onChange', value);
         console.log('onChange', value);
         setValue(value);
         setValue(value);
-    }
+    };
     return (
     return (
         <AutoComplete
         <AutoComplete
             data={stringData}
             data={stringData}
@@ -62,8 +62,8 @@ import { IconSearch } from '@douyinfe/semi-icons';
             onChange={handleChange}
             onChange={handleChange}
             style={{ width: 200 }}
             style={{ width: 200 }}
         />
         />
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 自定义候选项渲染
 ### 自定义候选项渲染
@@ -253,7 +253,7 @@ import { AutoComplete } from '@douyinfe/semi-ui';
             style={{ width: 200 }}
             style={{ width: 200 }}
         ></AutoComplete>
         ></AutoComplete>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### 下拉菜单的位置
 ### 下拉菜单的位置
@@ -279,7 +279,7 @@ import { AutoComplete } from '@douyinfe/semi-ui';
             style={{ width: 200, margin: 10 }}
             style={{ width: 200, margin: 10 }}
         ></AutoComplete>
         ></AutoComplete>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### 禁用
 ### 禁用
@@ -290,7 +290,7 @@ import { AutoComplete } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <AutoComplete data={[1, 2, 3, 4]} placeholder={'禁用下拉菜单'} disabled style={{ width: 200 }}></AutoComplete>
     <AutoComplete data={[1, 2, 3, 4]} placeholder={'禁用下拉菜单'} disabled style={{ width: 200 }}></AutoComplete>
-)
+);
 ```
 ```
 
 
 ### 校验状态
 ### 校验状态
@@ -311,7 +311,7 @@ import { AutoComplete } from '@douyinfe/semi-ui';
         <br />
         <br />
         <AutoComplete defaultValue="ies"></AutoComplete>
         <AutoComplete defaultValue="ies"></AutoComplete>
     </>
     </>
-)
+);
 ```
 ```
 
 
 ### 自定义空内容
 ### 自定义空内容

+ 259 - 258
content/input/button/index-en-US.md

@@ -35,15 +35,15 @@ import React from 'react';
 import { Button } from '@douyinfe/semi-ui';
 import { Button } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  return (
-    <div className="btn-margin-right">
-      <Button>Primary Button</Button>
-      <Button type="secondary">Secondary Button</Button>
-      <Button type="tertiary">Tertiary Button</Button>
-      <Button type="warning">Warning Button</Button>
-      <Button type="danger">Danger Button</Button>
-    </div>
-  );
+    return (
+        <div className="btn-margin-right">
+            <Button>Primary Button</Button>
+            <Button type="secondary">Secondary Button</Button>
+            <Button type="tertiary">Tertiary Button</Button>
+            <Button type="warning">Warning Button</Button>
+            <Button type="danger">Danger Button</Button>
+        </div>
+    );
 }
 }
 
 
 ```
 ```
@@ -64,15 +64,15 @@ You can define your elements directly using these theme colors.
 import React from 'react';
 import React from 'react';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  const types = [['primary', 'primary'], ['secondary', 'secondary'], ['tertiary', 'tertiary'], ['warning', 'warning'], ['danger', 'danger']];
-
-  return (
-    <article>
-      {types.map((type, index) => (
-        <strong key={index} style={{ color: `var(--semi-color-${Array.isArray(type) ? type[0] : type})`, marginRight: 10 }}>{Array.isArray(type) ? type[1]: type}</strong>
-      ))}
-    </article>
-  );
+    const types = [['primary', 'primary'], ['secondary', 'secondary'], ['tertiary', 'tertiary'], ['warning', 'warning'], ['danger', 'danger']];
+
+    return (
+        <article>
+            {types.map((type, index) => (
+                <strong key={index} style={{ color: `var(--semi-color-${Array.isArray(type) ? type[0] : type})`, marginRight: 10 }}>{Array.isArray(type) ? type[1]: type}</strong>
+            ))}
+        </article>
+    );
 }
 }
 ```
 ```
 
 
@@ -93,29 +93,29 @@ import React from 'react';
 import { Button } from '@douyinfe/semi-ui';
 import { Button } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  const themes = [['light', 'light']];
-  const types = [['primary', 'primary'], ['secondary', 'secondary'], ['tertiary', 'tertiary'], ['warning', 'warning'], ['danger', 'danger']];
-
-  return (
-    <div>{
-      themes.map((theme, idxTheme) => (
-        <div key={idxTheme}>
-          <ul style={{ listStyle: 'none', display: 'flex', margin: 0, padding: 0 }}>
-            {types.map((type, idxType) => (
-              <li key={'' + idxTheme + idxType} style={{margin:10}}>
-                <Button
-                  theme={theme[0]}
-                  type={type[0]}
-                >
-                  {theme[1]} {type[1]}
-                </Button>
-              </li>)
-            )}
-           </ul>
-        </div>))
-    }
-    </div>
-  );
+    const themes = [['light', 'light']];
+    const types = [['primary', 'primary'], ['secondary', 'secondary'], ['tertiary', 'tertiary'], ['warning', 'warning'], ['danger', 'danger']];
+
+    return (
+        <div>{
+            themes.map((theme, idxTheme) => (
+                <div key={idxTheme}>
+                    <ul style={{ listStyle: 'none', display: 'flex', margin: 0, padding: 0 }}>
+                        {types.map((type, idxType) => (
+                            <li key={'' + idxTheme + idxType} style={{margin:10}}>
+                                <Button
+                                    theme={theme[0]}
+                                    type={type[0]}
+                                >
+                                    {theme[1]} {type[1]}
+                                </Button>
+                            </li>)
+                        )}
+                    </ul>
+                </div>))
+        }
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -126,29 +126,29 @@ import React from 'react';
 import { Button } from '@douyinfe/semi-ui';
 import { Button } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  const themes = [['solid', 'solid']];
-  const types = [['primary', 'primary'], ['secondary', 'secondary'], ['tertiary', 'tertiary'], ['warning', 'warning'], ['danger', 'danger']];
-
-  return (
-    <div>{
-      themes.map((theme, idxTheme) => (
-        <div key={idxTheme}>
-          <ul style={{ listStyle: 'none', display: 'flex', margin: 0, padding: 0 }}>
-            {types.map((type, idxType) => (
-              <li key={'' + idxTheme + idxType} style={{margin:10}}>
-                <Button
-                  theme={theme[0]}
-                  type={type[0]}
-                >
-                  {theme[1]} {type[1]}
-                </Button>
-              </li>)
-            )}
-           </ul>
-        </div>))
-    }
-    </div>
-  );
+    const themes = [['solid', 'solid']];
+    const types = [['primary', 'primary'], ['secondary', 'secondary'], ['tertiary', 'tertiary'], ['warning', 'warning'], ['danger', 'danger']];
+
+    return (
+        <div>{
+            themes.map((theme, idxTheme) => (
+                <div key={idxTheme}>
+                    <ul style={{ listStyle: 'none', display: 'flex', margin: 0, padding: 0 }}>
+                        {types.map((type, idxType) => (
+                            <li key={'' + idxTheme + idxType} style={{margin:10}}>
+                                <Button
+                                    theme={theme[0]}
+                                    type={type[0]}
+                                >
+                                    {theme[1]} {type[1]}
+                                </Button>
+                            </li>)
+                        )}
+                    </ul>
+                </div>))
+        }
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -159,29 +159,29 @@ import React from 'react';
 import { Button } from '@douyinfe/semi-ui';
 import { Button } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  const themes = [['borderless', 'borderless']];
-  const types = [['primary', 'primary'], ['secondary', 'secondary'], ['tertiary', 'tertiary'], ['warning', 'warning'], ['danger', 'danger']];
-
-  return (
-    <div>{
-      themes.map((theme, idxTheme) => (
-        <div key={idxTheme}>
-          <ul style={{ listStyle: 'none', display: 'flex', margin: 0, padding: 0 }}>
-            {types.map((type, idxType) => (
-              <li key={'' + idxTheme + idxType} style={{margin:10}}>
-                <Button
-                  theme={theme[0]}
-                  type={type[0]}
-                >
-                  {theme[1]} {type[1]}
-                </Button>
-              </li>)
-            )}
-           </ul>
-        </div>))
-    }
-    </div>
-  );
+    const themes = [['borderless', 'borderless']];
+    const types = [['primary', 'primary'], ['secondary', 'secondary'], ['tertiary', 'tertiary'], ['warning', 'warning'], ['danger', 'danger']];
+
+    return (
+        <div>{
+            themes.map((theme, idxTheme) => (
+                <div key={idxTheme}>
+                    <ul style={{ listStyle: 'none', display: 'flex', margin: 0, padding: 0 }}>
+                        {types.map((type, idxType) => (
+                            <li key={'' + idxTheme + idxType} style={{margin:10}}>
+                                <Button
+                                    theme={theme[0]}
+                                    type={type[0]}
+                                >
+                                    {theme[1]} {type[1]}
+                                </Button>
+                            </li>)
+                        )}
+                    </ul>
+                </div>))
+        }
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -198,13 +198,13 @@ import React from 'react';
 import { Button } from '@douyinfe/semi-ui';
 import { Button } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  return (
-    <div>
-      <Button size='large' style={{ marginRight:8 }}>large</Button>
-      <Button size='default' style={{ marginRight:8 }}>default</Button>
-      <Button size='small'>small</Button>
-    </div>
-  );
+    return (
+        <div>
+            <Button size='large' style={{ marginRight:8 }}>large</Button>
+            <Button size='default' style={{ marginRight:8 }}>default</Button>
+            <Button size='small'>small</Button>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -217,11 +217,11 @@ import React from 'react';
 import { Button } from '@douyinfe/semi-ui';
 import { Button } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  return (
-    <div>
-      <Button block>block button</Button>
-    </div>
-  );
+    return (
+        <div>
+            <Button block>block button</Button>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -235,32 +235,32 @@ import { Button } from '@douyinfe/semi-ui';
 import { IconCamera, IconSidebar, IconChevronDown } from '@douyinfe/semi-icons';
 import { IconCamera, IconSidebar, IconChevronDown } from '@douyinfe/semi-icons';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  return (
-    <div>
-      <strong>Default Status: </strong>
-      <Button icon={<IconCamera />}/>
-          <br/><br/>
-      <strong>Disabled Status:</strong>
-      <Button icon={<IconCamera />}/>
-          <br/><br/>
-      <strong>With Type: </strong>
-      <span className="btn-margin-right">
-      <Button type="primary" icon={<IconCamera />}/>
-      <Button type="secondary" icon={<IconCamera />}/>
-      <Button type="warning" icon={<IconCamera />}/>
-      <Button type="danger" icon={<IconCamera />}/>
-      </span>
-          <br/><br/>
-      <strong>Change Theme: </strong>
-      <Button icon={<IconCamera />} theme="solid" style={{ marginRight: 10 }}/>
-      <Button icon={<IconCamera />} theme="light"/>
-          <br/><br/>
-      <strong>Change Icon Position: </strong>
-      <Button icon={<IconSidebar />} theme="solid" style={{ marginRight: 10 }}>Collpase</Button>
-      <Button icon={<IconChevronDown />} theme="solid" iconPosition="right">Expand Options</Button>
-          <br/><br/>
-    </div>
-  );
+    return (
+        <div>
+            <strong>Default Status: </strong>
+            <Button icon={<IconCamera />}/>
+            <br/><br/>
+            <strong>Disabled Status:</strong>
+            <Button icon={<IconCamera />}/>
+            <br/><br/>
+            <strong>With Type: </strong>
+            <span className="btn-margin-right">
+                <Button type="primary" icon={<IconCamera />}/>
+                <Button type="secondary" icon={<IconCamera />}/>
+                <Button type="warning" icon={<IconCamera />}/>
+                <Button type="danger" icon={<IconCamera />}/>
+            </span>
+            <br/><br/>
+            <strong>Change Theme: </strong>
+            <Button icon={<IconCamera />} theme="solid" style={{ marginRight: 10 }}/>
+            <Button icon={<IconCamera />} theme="light"/>
+            <br/><br/>
+            <strong>Change Icon Position: </strong>
+            <Button icon={<IconSidebar />} theme="solid" style={{ marginRight: 10 }}>Collpase</Button>
+            <Button icon={<IconChevronDown />} theme="solid" iconPosition="right">Expand Options</Button>
+            <br/><br/>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -274,18 +274,18 @@ import { Typography } from '@douyinfe/semi-ui';
 import { IconLink } from '@douyinfe/semi-icons';
 import { IconLink } from '@douyinfe/semi-icons';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
-  return (
-    <div>
-      <Text link={{ href: 'https://semi.design/' }}>Link</Text>
-      <br />
-      <br />
-      <Text link={{ href: 'https://semi.design/' }}>Open Website</Text>
-      <br />
-      <br />
-      <Text link icon={<IconLink />} underline>Link</Text>
-    </div>
-  )
+    const { Text } = Typography;
+    return (
+        <div>
+            <Text link={{ href: 'https://semi.design/' }}>Link</Text>
+            <br />
+            <br />
+            <Text link={{ href: 'https://semi.design/' }}>Open Website</Text>
+            <br />
+            <br />
+            <Text link icon={<IconLink />} underline>Link</Text>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -296,15 +296,15 @@ import React from 'react';
 import { Button } from '@douyinfe/semi-ui';
 import { Button } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  return (
-    <div>
-      <Button disabled>Disabled</Button>
-      <Button disabled theme="borderless">No background and disabled</Button>
-      <Button disabled theme="light">Light and disbaled</Button>
-      <Button disabled theme="borderless" type="primary">No background, primary and disabled</Button>
-      <Button disabled theme="solid" type="warning">Solid, warning and disabled</Button>
-    </div>
-  );
+    return (
+        <div>
+            <Button disabled>Disabled</Button>
+            <Button disabled theme="borderless">No background and disabled</Button>
+            <Button disabled theme="light">Light and disbaled</Button>
+            <Button disabled theme="borderless" type="primary">No background, primary and disabled</Button>
+            <Button disabled theme="solid" type="warning">Solid, warning and disabled</Button>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -315,35 +315,36 @@ The button supports the Loading state, by setting the loading parameter value to
 ```jsx live=true dir="column"
 ```jsx live=true dir="column"
 import React, { useState } from 'react';
 import React, { useState } from 'react';
 import { Button } from '@douyinfe/semi-ui';
 import { Button } from '@douyinfe/semi-ui';
+import { IconDelete } from '@douyinfe/semi-icons';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  const [saveLoading, setSaveLoading] = useState(false);
-  const [delLoading, setDelLoading] = useState(true);
-  const [repLoading, setRepLoading] = useState(true);
-
-  const reset = status => {
-    status = !!status;
-    setSaveLoading(status);
-    setDelLoading(status);
-    setRepLoading(status);
-  };
-
-  return (
-    <div>
-      <div>
-        <div className="btn-margin-right" style={{ display: 'inline-flex', alignItems: 'center', paddingBottom: 14 }}>
-          <Button onClick={() => reset(false)}>Stop loading</Button>
-          <Button onClick={() => reset(true)}>Start loading</Button>
+    const [saveLoading, setSaveLoading] = useState(false);
+    const [delLoading, setDelLoading] = useState(true);
+    const [repLoading, setRepLoading] = useState(true);
+
+    const reset = status => {
+        status = !!status;
+        setSaveLoading(status);
+        setDelLoading(status);
+        setRepLoading(status);
+    };
+
+    return (
+        <div>
+            <div>
+                <div className="btn-margin-right" style={{ display: 'inline-flex', alignItems: 'center', paddingBottom: 14 }}>
+                    <Button onClick={() => reset(false)}>Stop loading</Button>
+                    <Button onClick={() => reset(true)}>Start loading</Button>
+                </div>
+            </div>
+            <hr/>
+            <Button loading={saveLoading} onClick={() => setSaveLoading(true)} style={{ marginRight: 14 }}>Save</Button>
+            <Button loading={delLoading} icon={<IconDelete />} type="danger" onClick={() => setDelLoading(true)} style={{ marginRight: 14 }}>Delete</Button>
+            <div style={{ width: 200, display: 'inline-block'}}>
+                <Button loading={repLoading} type="warning" block theme="solid" onClick={() => setRepLoading(true)}>Revoke</Button>
+            </div>
         </div>
         </div>
-      </div>
-      <hr/>
-      <Button loading={saveLoading} onClick={() => setSaveLoading(true)} style={{ marginRight: 14 }}>Save</Button>
-      <Button loading={delLoading} icon={<IconDelete />} type="danger" onClick={() => setDelLoading(true)} style={{ marginRight: 14 }}>Delete</Button>
-      <div style={{ width: 200, display: 'inline-block'}}>
-        <Button loading={repLoading} type="warning" block theme="solid" onClick={() => setRepLoading(true)}>Revoke</Button>
-      </div>
-    </div>
-  );
+    );
 }
 }
 ```
 ```
 
 
@@ -358,21 +359,21 @@ import React from 'react';
 import { Button, ButtonGroup } from '@douyinfe/semi-ui';
 import { Button, ButtonGroup } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  const sizes = ['large', 'default', 'small'];
-
-  return (
-  <div style={{ display: 'flex' }}>
-    {sizes.map(size => (
-      <div style={{ marginRight: 10 }} key={size}>
-        <ButtonGroup size={size}>
-          <Button>Copy</Button>
-          <Button>Search</Button>
-          <Button>Cut</Button>
-        </ButtonGroup>
-      </div>
-    ))}
-  </div>
-  );
+    const sizes = ['large', 'default', 'small'];
+
+    return (
+        <div style={{ display: 'flex' }}>
+            {sizes.map(size => (
+                <div style={{ marginRight: 10 }} key={size}>
+                    <ButtonGroup size={size}>
+                        <Button>Copy</Button>
+                        <Button>Search</Button>
+                        <Button>Cut</Button>
+                    </ButtonGroup>
+                </div>
+            ))}
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -383,17 +384,17 @@ import React from 'react';
 import { Button, ButtonGroup } from '@douyinfe/semi-ui';
 import { Button, ButtonGroup } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  return (
-  <div style={{ display: 'flex' }}>
-    <div style={{ marginRight: 10 }}>
-      <ButtonGroup disabled>
-        <Button>Copy</Button>
-        <Button>Search</Button>
-        <Button>Cut</Button>
-      </ButtonGroup>
-    </div>
-  </div>
-  );
+    return (
+        <div style={{ display: 'flex' }}>
+            <div style={{ marginRight: 10 }}>
+                <ButtonGroup disabled>
+                    <Button>Copy</Button>
+                    <Button>Search</Button>
+                    <Button>Cut</Button>
+                </ButtonGroup>
+            </div>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -404,21 +405,21 @@ import React from 'react';
 import { Button, ButtonGroup } from '@douyinfe/semi-ui';
 import { Button, ButtonGroup } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  const types = ['primary', 'secondary', 'tertiary', 'warning', 'danger'];
-
-  return (
-  <div style={{ display: 'flex' }}>
-    {types.map(type => (
-      <div style={{ marginRight: 10 }} key={type}>
-        <ButtonGroup type={type}>
-          <Button>Copy</Button>
-          <Button>Search</Button>
-          <Button>Cut</Button>
-        </ButtonGroup>
-      </div>
-    ))}
-  </div>
-  );
+    const types = ['primary', 'secondary', 'tertiary', 'warning', 'danger'];
+
+    return (
+        <div style={{ display: 'flex' }}>
+            {types.map(type => (
+                <div style={{ marginRight: 10 }} key={type}>
+                    <ButtonGroup type={type}>
+                        <Button>Copy</Button>
+                        <Button>Search</Button>
+                        <Button>Cut</Button>
+                    </ButtonGroup>
+                </div>
+            ))}
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -437,51 +438,51 @@ import { IconTreeTriangleDown } from '@douyinfe/semi-icons';
 
 
 function SplitButtonDemo(){
 function SplitButtonDemo(){
 
 
-  const menu = [
-    { node: 'title', name: 'Title' },
-    { node: 'item', name: 'Edit', onClick: () => console.log('Edit clicked') },
-    { node: 'item', name: 'Reset', type: 'secondary' },
-    { node: 'divider' },
-    { node: 'item', name: 'Create', type: 'tertiary' },
-    { node: 'item', name: 'Copy', type: 'warning' },
-    { node: 'divider' },
-    { node: 'item', name: 'Delete', type: 'danger' },
-  ];
-
-  const [btnVisible,setBtnVisible] = useState({
-    1:false,
-    2:false,
-    3:false
-  })
-
-  const handleVisibleChange = (key,visible)=>{
-    newBtnVisible = {...btnVisible};
-    newBtnVisible[key] = visible;
-    setBtnVisible(newBtnVisible)
-  }
-
-  return (
-    <div>
-      <SplitButtonGroup style={{marginRight:10}}>
-        <Button theme="solid" type="primary">SplitButton</Button>
-        <Dropdown onVisibleChange={(v)=>handleVisibleChange(1,v)} menu={menu} trigger="click" position="bottomRight">
-          <Button style={btnVisible[1]?{background:'var(--semi-color-primary-hover)',padding:'8px 4px'}:{padding:'8px 4px'}} theme="solid" type="primary" icon={<IconTreeTriangleDown size="small" />}></Button>
-        </Dropdown>
-      </SplitButtonGroup>
-      <SplitButtonGroup style={{marginRight:10}}>
-        <Button theme="light" type="primary">SplitButton</Button>
-        <Dropdown onVisibleChange={(v)=>handleVisibleChange(2,v)} menu={menu} trigger="click" position="bottomRight">
-          <Button style={btnVisible[2]?{background:'var(--semi-color-fill-1)',padding:'8px 4px'}:{padding:'8px 4px'}}  theme="light" type="primary" icon={<IconTreeTriangleDown size="small" />}></Button>
-        </Dropdown>
-      </SplitButtonGroup>
-      <SplitButtonGroup>
-        <Button style={btnVisible[3]?{background:'var(--semi-color-fill-0)'}:null} theme="borderless" type="primary">SplitButton</Button>
-        <Dropdown onVisibleChange={(v)=>handleVisibleChange(3,v)} menu={menu} trigger="click" position="bottomRight">
-          <Button style={btnVisible[3]?{background:'var(--semi-color-fill-1)',padding:'8px 4px'}:{padding:'8px 4px'}}  theme="borderless" type="primary" icon={<IconTreeTriangleDown size="small" />}></Button>
-        </Dropdown>
-      </SplitButtonGroup>
-    </div>
-  )
+    const menu = [
+        { node: 'title', name: 'Title' },
+        { node: 'item', name: 'Edit', onClick: () => console.log('Edit clicked') },
+        { node: 'item', name: 'Reset', type: 'secondary' },
+        { node: 'divider' },
+        { node: 'item', name: 'Create', type: 'tertiary' },
+        { node: 'item', name: 'Copy', type: 'warning' },
+        { node: 'divider' },
+        { node: 'item', name: 'Delete', type: 'danger' },
+    ];
+
+    const [btnVisible,setBtnVisible] = useState({
+        1:false,
+        2:false,
+        3:false
+    });
+
+    const handleVisibleChange = (key,visible)=>{
+        newBtnVisible = {...btnVisible};
+        newBtnVisible[key] = visible;
+        setBtnVisible(newBtnVisible);
+    };
+
+    return (
+        <div>
+            <SplitButtonGroup style={{marginRight:10}}>
+                <Button theme="solid" type="primary">SplitButton</Button>
+                <Dropdown onVisibleChange={(v)=>handleVisibleChange(1,v)} menu={menu} trigger="click" position="bottomRight">
+                    <Button style={btnVisible[1]?{background:'var(--semi-color-primary-hover)',padding:'8px 4px'}:{padding:'8px 4px'}} theme="solid" type="primary" icon={<IconTreeTriangleDown size="small" />}></Button>
+                </Dropdown>
+            </SplitButtonGroup>
+            <SplitButtonGroup style={{marginRight:10}}>
+                <Button theme="light" type="primary">SplitButton</Button>
+                <Dropdown onVisibleChange={(v)=>handleVisibleChange(2,v)} menu={menu} trigger="click" position="bottomRight">
+                    <Button style={btnVisible[2]?{background:'var(--semi-color-fill-1)',padding:'8px 4px'}:{padding:'8px 4px'}}  theme="light" type="primary" icon={<IconTreeTriangleDown size="small" />}></Button>
+                </Dropdown>
+            </SplitButtonGroup>
+            <SplitButtonGroup>
+                <Button style={btnVisible[3]?{background:'var(--semi-color-fill-0)'}:null} theme="borderless" type="primary">SplitButton</Button>
+                <Dropdown onVisibleChange={(v)=>handleVisibleChange(3,v)} menu={menu} trigger="click" position="bottomRight">
+                    <Button style={btnVisible[3]?{background:'var(--semi-color-fill-1)',padding:'8px 4px'}:{padding:'8px 4px'}}  theme="borderless" type="primary" icon={<IconTreeTriangleDown size="small" />}></Button>
+                </Dropdown>
+            </SplitButtonGroup>
+        </div>
+    );
 }
 }
 ```
 ```
 
 

+ 216 - 215
content/input/button/index.md

@@ -34,15 +34,15 @@ import React from 'react';
 import { Button } from '@douyinfe/semi-ui';
 import { Button } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  return (
-    <div className="btn-margin-right">
-      <Button>主要按钮</Button>
-      <Button type="secondary">次要按钮</Button>
-      <Button type="tertiary">第三按钮</Button>
-      <Button type="warning">警告按钮</Button>
-      <Button type="danger">危险按钮</Button>
-    </div>
-  );
+    return (
+        <div className="btn-margin-right">
+            <Button>主要按钮</Button>
+            <Button type="secondary">次要按钮</Button>
+            <Button type="tertiary">第三按钮</Button>
+            <Button type="warning">警告按钮</Button>
+            <Button type="danger">危险按钮</Button>
+        </div>
+    );
 }
 }
 
 
 ```
 ```
@@ -63,15 +63,15 @@ function ButtonDemo() {
 import React from 'react';
 import React from 'react';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  const types = [['primary', '主要'], ['secondary', '次要'], ['tertiary', '第三'], ['warning', '警告'], ['danger', '危险']];
-
-  return (
-    <article>
-      {types.map((type, index) => (
-        <strong key={index} style={{ color: `var(--semi-color-${Array.isArray(type) ? type[0] : type})`, marginRight: 10 }}>{Array.isArray(type) ? type[1]: type}</strong>
-      ))}
-    </article>
-  );
+    const types = [['primary', '主要'], ['secondary', '次要'], ['tertiary', '第三'], ['warning', '警告'], ['danger', '危险']];
+
+    return (
+        <article>
+            {types.map((type, index) => (
+                <strong key={index} style={{ color: `var(--semi-color-${Array.isArray(type) ? type[0] : type})`, marginRight: 10 }}>{Array.isArray(type) ? type[1]: type}</strong>
+            ))}
+        </article>
+    );
 }
 }
 ```
 ```
 
 
@@ -92,15 +92,15 @@ import React from 'react';
 import { Button } from '@douyinfe/semi-ui';
 import { Button } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  return (
-    <>
-      <Button theme='light' type='primary' style={{ marginRight: 8 }}>浅色主要</Button>
-      <Button theme='light' type='secondary' style={{ marginRight: 8 }}>浅色次要</Button>
-      <Button theme='light' type='tertiary' style={{ marginRight: 8 }}>浅色第三</Button>
-      <Button theme='light' type='warning' style={{ marginRight: 8 }}>浅色警告</Button>
-      <Button theme='light' type='danger' style={{ marginRight: 8 }}>浅色危险</Button>
-    </>
-  );
+    return (
+        <>
+            <Button theme='light' type='primary' style={{ marginRight: 8 }}>浅色主要</Button>
+            <Button theme='light' type='secondary' style={{ marginRight: 8 }}>浅色次要</Button>
+            <Button theme='light' type='tertiary' style={{ marginRight: 8 }}>浅色第三</Button>
+            <Button theme='light' type='warning' style={{ marginRight: 8 }}>浅色警告</Button>
+            <Button theme='light' type='danger' style={{ marginRight: 8 }}>浅色危险</Button>
+        </>
+    );
 }
 }
 
 
 ```
 ```
@@ -112,15 +112,15 @@ import React from 'react';
 import { Button } from '@douyinfe/semi-ui';
 import { Button } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  return (
-    <>
-      <Button theme='solid' type='primary' style={{ marginRight: 8 }}>深色主要</Button>
-      <Button theme='solid' type='secondary' style={{ marginRight: 8 }}>深色次要</Button>
-      <Button theme='solid' type='tertiary' style={{ marginRight: 8 }}>深色第三</Button>
-      <Button theme='solid' type='warning' style={{ marginRight: 8 }}>深色警告</Button>
-      <Button theme='solid' type='danger' style={{ marginRight: 8 }}>深色危险</Button>
-    </>
-  );
+    return (
+        <>
+            <Button theme='solid' type='primary' style={{ marginRight: 8 }}>深色主要</Button>
+            <Button theme='solid' type='secondary' style={{ marginRight: 8 }}>深色次要</Button>
+            <Button theme='solid' type='tertiary' style={{ marginRight: 8 }}>深色第三</Button>
+            <Button theme='solid' type='warning' style={{ marginRight: 8 }}>深色警告</Button>
+            <Button theme='solid' type='danger' style={{ marginRight: 8 }}>深色危险</Button>
+        </>
+    );
 }
 }
 
 
 ```
 ```
@@ -132,15 +132,15 @@ import React from 'react';
 import { Button } from '@douyinfe/semi-ui';
 import { Button } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  return (
-    <>
-      <Button theme='borderless' type='primary' style={{ marginRight: 8 }}>主要</Button>
-      <Button theme='borderless' type='secondary' style={{ marginRight: 8 }}>次要</Button>
-      <Button theme='borderless' type='tertiary' style={{ marginRight: 8 }}>第三</Button>
-      <Button theme='borderless' type='warning' style={{ marginRight: 8 }}>警告</Button>
-      <Button theme='borderless' type='danger' style={{ marginRight: 8 }}>危险</Button>
-    </>
-  );
+    return (
+        <>
+            <Button theme='borderless' type='primary' style={{ marginRight: 8 }}>主要</Button>
+            <Button theme='borderless' type='secondary' style={{ marginRight: 8 }}>次要</Button>
+            <Button theme='borderless' type='tertiary' style={{ marginRight: 8 }}>第三</Button>
+            <Button theme='borderless' type='warning' style={{ marginRight: 8 }}>警告</Button>
+            <Button theme='borderless' type='danger' style={{ marginRight: 8 }}>危险</Button>
+        </>
+    );
 }
 }
 
 
 ```
 ```
@@ -158,13 +158,13 @@ import React from 'react';
 import { Button } from '@douyinfe/semi-ui';
 import { Button } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  return (
-    <div>
-      <Button size='large' style={{ marginRight:8 }}>大尺寸</Button>
-      <Button size='default' style={{ marginRight:8 }}>默认尺寸</Button>
-      <Button size='small'>小尺寸</Button>
-    </div>
-  );
+    return (
+        <div>
+            <Button size='large' style={{ marginRight:8 }}>大尺寸</Button>
+            <Button size='default' style={{ marginRight:8 }}>默认尺寸</Button>
+            <Button size='small'>小尺寸</Button>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -177,11 +177,11 @@ import React from 'react';
 import { Button } from '@douyinfe/semi-ui';
 import { Button } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  return (
-    <div>
-      <Button block>块级按钮</Button>
-    </div>
-  );
+    return (
+        <div>
+            <Button block>块级按钮</Button>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -195,32 +195,32 @@ import { Button } from '@douyinfe/semi-ui';
 import { IconCamera, IconSidebar, IconChevronDown } from '@douyinfe/semi-icons';
 import { IconCamera, IconSidebar, IconChevronDown } from '@douyinfe/semi-icons';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  return (
-    <div>
-      <strong>默认状态:</strong>
-      <Button icon={<IconCamera />}/>
-          <br/><br/>
-      <strong>禁用状态:</strong>
-      <Button disabled icon={<IconCamera />}/>
-          <br/><br/>
-      <strong>复合类型:</strong>
-      <span className="btn-margin-right">
-      <Button type="primary" icon={<IconCamera />}/>
-      <Button type="secondary" icon={<IconCamera />}/>
-      <Button type="warning" icon={<IconCamera />}/>
-      <Button type="danger" icon={<IconCamera />}/>
-      </span>
-          <br/><br/>
-      <strong>更改主题:</strong>
-      <Button icon={<IconCamera />} theme="solid" style={{ marginRight: 10 }}/>
-      <Button icon={<IconCamera />} theme="light"/>
-          <br/><br/>
-      <strong>更改图标位置:</strong>
-      <Button icon={<IconSidebar />} theme="solid" style={{ marginRight: 10 }}>收起</Button>
-      <Button icon={<IconChevronDown />} theme="solid" iconPosition="right">展开选项</Button>
-          <br/><br/>
-    </div>
-  );
+    return (
+        <div>
+            <strong>默认状态:</strong>
+            <Button icon={<IconCamera />}/>
+            <br/><br/>
+            <strong>禁用状态:</strong>
+            <Button disabled icon={<IconCamera />}/>
+            <br/><br/>
+            <strong>复合类型:</strong>
+            <span className="btn-margin-right">
+                <Button type="primary" icon={<IconCamera />}/>
+                <Button type="secondary" icon={<IconCamera />}/>
+                <Button type="warning" icon={<IconCamera />}/>
+                <Button type="danger" icon={<IconCamera />}/>
+            </span>
+            <br/><br/>
+            <strong>更改主题:</strong>
+            <Button icon={<IconCamera />} theme="solid" style={{ marginRight: 10 }}/>
+            <Button icon={<IconCamera />} theme="light"/>
+            <br/><br/>
+            <strong>更改图标位置:</strong>
+            <Button icon={<IconSidebar />} theme="solid" style={{ marginRight: 10 }}>收起</Button>
+            <Button icon={<IconChevronDown />} theme="solid" iconPosition="right">展开选项</Button>
+            <br/><br/>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -234,18 +234,18 @@ import { Typography } from '@douyinfe/semi-ui';
 import { IconLink } from '@douyinfe/semi-icons';
 import { IconLink } from '@douyinfe/semi-icons';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
-  return (
-    <div>
-      <Text link={{ href: 'https://semi.design/' }}>链接文本</Text>
-      <br />
-      <br />
-      <Text link={{ href: 'https://semi.design/' }}>打开网站</Text>
-      <br />
-      <br />
-      <Text link icon={<IconLink />} underline>带下划线的网页链接</Text>
-    </div>
-  )
+    const { Text } = Typography;
+    return (
+        <div>
+            <Text link={{ href: 'https://semi.design/' }}>链接文本</Text>
+            <br />
+            <br />
+            <Text link={{ href: 'https://semi.design/' }}>打开网站</Text>
+            <br />
+            <br />
+            <Text link icon={<IconLink />} underline>带下划线的网页链接</Text>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -256,15 +256,15 @@ import React from 'react';
 import { Button } from '@douyinfe/semi-ui';
 import { Button } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  return (
-    <div>
-      <Button disabled>禁用</Button>
-      <Button disabled theme="borderless">无背景禁用</Button>
-      <Button disabled theme="light">浅色禁用</Button>
-      <Button disabled theme="borderless" type="primary">无背景主要禁用</Button>
-      <Button disabled theme="solid" type="warning">深色警告禁用</Button>
-    </div>
-  );
+    return (
+        <div>
+            <Button disabled>禁用</Button>
+            <Button disabled theme="borderless">无背景禁用</Button>
+            <Button disabled theme="light">浅色禁用</Button>
+            <Button disabled theme="borderless" type="primary">无背景主要禁用</Button>
+            <Button disabled theme="solid" type="warning">深色警告禁用</Button>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -275,35 +275,36 @@ function ButtonDemo() {
 ```jsx live=true dir="column"
 ```jsx live=true dir="column"
 import React, { useState } from 'react';
 import React, { useState } from 'react';
 import { Button } from '@douyinfe/semi-ui';
 import { Button } from '@douyinfe/semi-ui';
+import { IconDelete } from '@douyinfe/semi-icons';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  const [saveLoading, setSaveLoading] = useState(false);
-  const [delLoading, setDelLoading] = useState(true);
-  const [repLoading, setRepLoading] = useState(true);
-
-  const reset = status => {
-    status = !!status;
-    setSaveLoading(status);
-    setDelLoading(status);
-    setRepLoading(status);
-  };
-
-  return (
-    <div>
-      <div> 
-        <div className="btn-margin-right" style={{ display: 'inline-flex', alignItems: 'center', paddingBottom: 14 }}>
-          <Button onClick={() => reset(false)}>关闭加载态</Button>
-          <Button onClick={() => reset(true)}>开启加载态</Button>
+    const [saveLoading, setSaveLoading] = useState(false);
+    const [delLoading, setDelLoading] = useState(true);
+    const [repLoading, setRepLoading] = useState(true);
+
+    const reset = status => {
+        status = !!status;
+        setSaveLoading(status);
+        setDelLoading(status);
+        setRepLoading(status);
+    };
+
+    return (
+        <div>
+            <div> 
+                <div className="btn-margin-right" style={{ display: 'inline-flex', alignItems: 'center', paddingBottom: 14 }}>
+                    <Button onClick={() => reset(false)}>关闭加载态</Button>
+                    <Button onClick={() => reset(true)}>开启加载态</Button>
+                </div>
+            </div>
+            <hr/>
+            <Button loading={saveLoading} onClick={() => setSaveLoading(true)} style={{ marginRight: 14 }}>保存</Button>
+            <Button loading={delLoading} icon={<IconDelete />} type="danger" onClick={() => setDelLoading(true)} style={{ marginRight: 14 }}>删除</Button>
+            <div style={{ width: 200, display: 'inline-block'}}>
+                <Button loading={repLoading} type="warning" block theme="solid" onClick={() => setRepLoading(true)}>撤销</Button>
+            </div>
         </div>
         </div>
-      </div>
-      <hr/>
-      <Button loading={saveLoading} onClick={() => setSaveLoading(true)} style={{ marginRight: 14 }}>保存</Button>
-      <Button loading={delLoading} icon={<IconDelete />} type="danger" onClick={() => setDelLoading(true)} style={{ marginRight: 14 }}>删除</Button>
-      <div style={{ width: 200, display: 'inline-block'}}>
-        <Button loading={repLoading} type="warning" block theme="solid" onClick={() => setRepLoading(true)}>撤销</Button>
-      </div>
-    </div>
-  );
+    );
 }
 }
 ```
 ```
 
 
@@ -318,21 +319,21 @@ import React from 'react';
 import { ButtonGroup, Button } from '@douyinfe/semi-ui';
 import { ButtonGroup, Button } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  const sizes = ['large', 'default', 'small'];
-
-  return (
-  <div style={{ display: 'flex' }}>
-    {sizes.map(size => (
-      <div style={{ marginRight: 10 }} key={size}>
-        <ButtonGroup size={size}>
-          <Button>拷贝</Button>
-          <Button>查询</Button>
-          <Button>剪切</Button>
-        </ButtonGroup>
-      </div>
-    ))}
-  </div>
-  );
+    const sizes = ['large', 'default', 'small'];
+
+    return (
+        <div style={{ display: 'flex' }}>
+            {sizes.map(size => (
+                <div style={{ marginRight: 10 }} key={size}>
+                    <ButtonGroup size={size}>
+                        <Button>拷贝</Button>
+                        <Button>查询</Button>
+                        <Button>剪切</Button>
+                    </ButtonGroup>
+                </div>
+            ))}
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -343,17 +344,17 @@ import React from 'react';
 import { ButtonGroup, Button } from '@douyinfe/semi-ui';
 import { ButtonGroup, Button } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  return (
-  <div style={{ display: 'flex' }}>
-    <div style={{ marginRight: 10 }}>
-      <ButtonGroup disabled>
-        <Button>拷贝</Button>
-        <Button>查询</Button>
-        <Button>剪切</Button>
-      </ButtonGroup>
-    </div>
-  </div>
-  );
+    return (
+        <div style={{ display: 'flex' }}>
+            <div style={{ marginRight: 10 }}>
+                <ButtonGroup disabled>
+                    <Button>拷贝</Button>
+                    <Button>查询</Button>
+                    <Button>剪切</Button>
+                </ButtonGroup>
+            </div>
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -364,21 +365,21 @@ import React from 'react';
 import { ButtonGroup, Button } from '@douyinfe/semi-ui';
 import { ButtonGroup, Button } from '@douyinfe/semi-ui';
 
 
 function ButtonDemo() {
 function ButtonDemo() {
-  const types = ['primary', 'secondary', 'tertiary', 'warning', 'danger'];
-
-  return (
-  <div style={{ display: 'flex' }}>
-    {types.map(type => (
-      <div style={{ marginRight: 10 }} key={type}>
-        <ButtonGroup type={type}>
-          <Button>拷贝</Button>
-          <Button>查询</Button>
-          <Button>剪切</Button>
-        </ButtonGroup>
-      </div>
-    ))}
-  </div>
-  );
+    const types = ['primary', 'secondary', 'tertiary', 'warning', 'danger'];
+
+    return (
+        <div style={{ display: 'flex' }}>
+            {types.map(type => (
+                <div style={{ marginRight: 10 }} key={type}>
+                    <ButtonGroup type={type}>
+                        <Button>拷贝</Button>
+                        <Button>查询</Button>
+                        <Button>剪切</Button>
+                    </ButtonGroup>
+                </div>
+            ))}
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -397,50 +398,50 @@ import { IconTreeTriangleDown } from '@douyinfe/semi-icons';
 
 
 function SplitButtonDemo(){
 function SplitButtonDemo(){
 
 
-  const menu = [
-    { node: 'item', name: '编辑项目', onClick: () => console.log('编辑项目点击') },
-    { node: 'item', name: '重置项目' },
-    { node: 'divider' },
-    { node: 'item', name: '复制项目' },
-    { node: 'item', name: '从项目创建模版' },
-    { node: 'divider' },
-    { node: 'item', name: '删除项目', type: 'danger' },
-  ];
-
-  const [btnVisible,setBtnVisible] = useState({
-    1:false,
-    2:false,
-    3:false
-  })
-
-  const handleVisibleChange = (key,visible)=>{
-    newBtnVisible = {...btnVisible};
-    newBtnVisible[key] = visible;
-    setBtnVisible(newBtnVisible)
-  }
-
-  return (
-    <div>
-      <SplitButtonGroup style={{marginRight:10}}>
-        <Button theme="solid" type="primary">分裂按钮</Button>
-        <Dropdown onVisibleChange={(v)=>handleVisibleChange(1,v)} menu={menu} trigger="click" position="bottomRight">
-          <Button style={btnVisible[1]?{background:'var(--semi-color-primary-hover)',padding:'8px 4px'}:{padding:'8px 4px'}} theme="solid" type="primary" icon={<IconTreeTriangleDown />}></Button>
-        </Dropdown>
-      </SplitButtonGroup>
-      <SplitButtonGroup style={{marginRight:10}}>
-        <Button theme="light" type="primary">分裂按钮</Button>
-        <Dropdown onVisibleChange={(v)=>handleVisibleChange(2,v)} menu={menu} trigger="click" position="bottomRight">
-          <Button style={btnVisible[2]?{background:'var(--semi-color-fill-1)',padding:'8px 4px'}:{padding:'8px 4px'}}  theme="light" type="primary" icon={<IconTreeTriangleDown />}></Button>
-        </Dropdown>
-      </SplitButtonGroup>
-      <SplitButtonGroup>
-        <Button style={btnVisible[3]?{background:'var(--semi-color-fill-0)'}:{}} theme="borderless" type="primary">分裂按钮</Button>
-        <Dropdown onVisibleChange={(v)=>handleVisibleChange(3,v)} menu={menu} trigger="click" position="bottomRight">
-          <Button style={btnVisible[3]?{background:'var(--semi-color-fill-1)',padding:'8px 4px'}:{padding:'8px 4px'}}  theme="borderless" type="primary" icon={<IconTreeTriangleDown />}></Button>
-        </Dropdown>
-      </SplitButtonGroup>
-    </div>
-  )
+    const menu = [
+        { node: 'item', name: '编辑项目', onClick: () => console.log('编辑项目点击') },
+        { node: 'item', name: '重置项目' },
+        { node: 'divider' },
+        { node: 'item', name: '复制项目' },
+        { node: 'item', name: '从项目创建模版' },
+        { node: 'divider' },
+        { node: 'item', name: '删除项目', type: 'danger' },
+    ];
+
+    const [btnVisible,setBtnVisible] = useState({
+        1:false,
+        2:false,
+        3:false
+    });
+
+    const handleVisibleChange = (key,visible)=>{
+        newBtnVisible = {...btnVisible};
+        newBtnVisible[key] = visible;
+        setBtnVisible(newBtnVisible);
+    };
+
+    return (
+        <div>
+            <SplitButtonGroup style={{marginRight:10}}>
+                <Button theme="solid" type="primary">分裂按钮</Button>
+                <Dropdown onVisibleChange={(v)=>handleVisibleChange(1,v)} menu={menu} trigger="click" position="bottomRight">
+                    <Button style={btnVisible[1]?{background:'var(--semi-color-primary-hover)',padding:'8px 4px'}:{padding:'8px 4px'}} theme="solid" type="primary" icon={<IconTreeTriangleDown />}></Button>
+                </Dropdown>
+            </SplitButtonGroup>
+            <SplitButtonGroup style={{marginRight:10}}>
+                <Button theme="light" type="primary">分裂按钮</Button>
+                <Dropdown onVisibleChange={(v)=>handleVisibleChange(2,v)} menu={menu} trigger="click" position="bottomRight">
+                    <Button style={btnVisible[2]?{background:'var(--semi-color-fill-1)',padding:'8px 4px'}:{padding:'8px 4px'}}  theme="light" type="primary" icon={<IconTreeTriangleDown />}></Button>
+                </Dropdown>
+            </SplitButtonGroup>
+            <SplitButtonGroup>
+                <Button style={btnVisible[3]?{background:'var(--semi-color-fill-0)'}:{}} theme="borderless" type="primary">分裂按钮</Button>
+                <Dropdown onVisibleChange={(v)=>handleVisibleChange(3,v)} menu={menu} trigger="click" position="bottomRight">
+                    <Button style={btnVisible[3]?{background:'var(--semi-color-fill-1)',padding:'8px 4px'}:{padding:'8px 4px'}}  theme="borderless" type="primary" icon={<IconTreeTriangleDown />}></Button>
+                </Dropdown>
+            </SplitButtonGroup>
+        </div>
+    );
 }
 }
 ```
 ```
 
 

文件差異過大導致無法顯示
+ 454 - 454
content/input/cascader/index-en-US.md


文件差異過大導致無法顯示
+ 419 - 419
content/input/cascader/index.md


+ 181 - 181
content/input/checkbox/index-en-US.md

@@ -34,10 +34,10 @@ import React from 'react';
 import { Checkbox } from '@douyinfe/semi-ui';
 import { Checkbox } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Checkbox onChange={checked => console.log(checked)}>
-    Semi Design
-  </Checkbox>
-)
+    <Checkbox onChange={checked => console.log(checked)}>
+        Semi Design
+    </Checkbox>
+);
 ```
 ```
 
 
 ```jsx live=true
 ```jsx live=true
@@ -45,13 +45,13 @@ import React from 'react';
 import { Checkbox } from '@douyinfe/semi-ui';
 import { Checkbox } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Checkbox
-    defaultChecked
-    onChange={checked => console.log(checked)}
-  >
-    Semi Design
-  </Checkbox>
-)
+    <Checkbox
+        defaultChecked
+        onChange={checked => console.log(checked)}
+    >
+        Semi Design
+    </Checkbox>
+);
 ```
 ```
 
 
 You can use `extra` to add extra information. The extra information usually is longer and even has line changes.
 You can use `extra` to add extra information. The extra information usually is longer and even has line changes.
@@ -62,20 +62,20 @@ import { Checkbox } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <>
     <>
-      <Checkbox
-        extra='Semi Design is a design system developed and maintained by IES Front-end Team and UED Team'
-      >
-        Semi Design
-      </Checkbox>
-      <br/>
-      <Checkbox
-        extra='Semi Design is a design system developed and maintained by IES Front-end Team and UED Team'
-        style={{ width: 400 }}
-      >
-        Semi Design
-      </Checkbox>
+        <Checkbox
+            extra='Semi Design is a design system developed and maintained by IES Front-end Team and UED Team'
+        >
+            Semi Design
+        </Checkbox>
+        <br/>
+        <Checkbox
+            extra='Semi Design is a design system developed and maintained by IES Front-end Team and UED Team'
+            style={{ width: 400 }}
+        >
+            Semi Design
+        </Checkbox>
     </>
     </>
-)
+);
 ```
 ```
 
 
 ### Disabled
 ### Disabled
@@ -85,12 +85,12 @@ import React from 'react';
 import { Checkbox } from '@douyinfe/semi-ui';
 import { Checkbox } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
-    <Checkbox Default Checked={false} with>UnChecked Disabled</Checkbox>
-    <br />
-    <Checkbox defaultChecked disabled>Checked Disabled</Checkbox>
-  </div>
-)
+    <div>
+        <Checkbox Default Checked={false} with>UnChecked Disabled</Checkbox>
+        <br />
+        <Checkbox defaultChecked disabled>Checked Disabled</Checkbox>
+    </div>
+);
 ```
 ```
 
 
 ### Checkbox Group in JSX
 ### Checkbox Group in JSX
@@ -104,14 +104,14 @@ import React from 'react';
 import { Checkbox, CheckboxGroup } from '@douyinfe/semi-ui';
 import { Checkbox, CheckboxGroup } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <CheckboxGroup style={{ width: '100%' }} defaultValue={['A', 'B']}>
-    <Checkbox value="A">A</Checkbox>
-    <Checkbox value="B">B</Checkbox>
-    <Checkbox value="C">C</Checkbox>
-    <Checkbox value="D">D</Checkbox>
-    <Checkbox value="E">E</Checkbox>
-  </CheckboxGroup>
-)
+    <CheckboxGroup style={{ width: '100%' }} defaultValue={['A', 'B']}>
+        <Checkbox value="A">A</Checkbox>
+        <Checkbox value="B">B</Checkbox>
+        <Checkbox value="C">C</Checkbox>
+        <Checkbox value="D">D</Checkbox>
+        <Checkbox value="E">E</Checkbox>
+    </CheckboxGroup>
+);
 ```
 ```
 
 
 
 
@@ -125,38 +125,38 @@ import { CheckboxGroup } from '@douyinfe/semi-ui';
 
 
 class App extends React.Component {
 class App extends React.Component {
 
 
-  render() {
-    function onChange(checkedValues) {
-      console.log('checked = ', checkedValues);
+    render() {
+        function onChange(checkedValues) {
+            console.log('checked = ', checkedValues);
+        }
+
+        const plainOptions = ['semi', 'vigo', 'helo'];
+        const options = [
+            { label: 'Aim for the highest', value: '1', extra: "Raise the bar. Wait for bigger gains. Find the best solutions by widening your perspective. Be attentive. Distill ideas down to their fundamental truths. Keep learning and growing" },
+            { label: 'Be grounded & courageous', value: '2', extra:"Make your own discoveries. Dive deep into facts. Stay level-headed. Focus on impact. Assume ownership, take risks, break the mold. Rapid iterations, multiple possibilities." },
+            { label: 'Be open & humble', value: '3', extra: "Trust yourself, trust each other. Be willing to offer and ask for help. Collaboration creates value. Approach problems with the big picture in mind. Be mindful and check your ego; stay open to different ideas." },
+            { label: 'Be candid & clear', value: '4', extra: "Dare to share your honest opinions. It's okay to make mistakes. Own it when you do. Stick to the facts, identify issues, and avoid \'leader-pleasing.\' Be accurate and forthright; be methodical and focused."}
+        ];
+        const optionsWithDisabled = [
+            { label: 'Photography', value: 'Photography' },
+            { label: 'Movies', value: 'Movies' },
+            { label: 'Running', value: 'Running', disabled: false },
+        ];
+        return (
+            <div>
+                <CheckboxGroup options={plainOptions} defaultValue={['semi']} onChange={onChange} />
+                <br/><br/>
+                <CheckboxGroup options={options} defaultValue={[]} onChange={onChange} />
+                <br/><br/>
+                <CheckboxGroup
+                    options={optionsWithDisabled}
+                    disabled
+                    defaultValue={['Photography']}
+                    onChange={onChange}
+                />
+            </div>
+        );
     }
     }
-
-    const plainOptions = ['semi', 'vigo', 'helo'];
-    const options = [
-      { label: 'Aim for the highest', value: '1', extra: "Raise the bar. Wait for bigger gains. Find the best solutions by widening your perspective. Be attentive. Distill ideas down to their fundamental truths. Keep learning and growing" },
-      { label: 'Be grounded & courageous', value: '2', extra:"Make your own discoveries. Dive deep into facts. Stay level-headed. Focus on impact. Assume ownership, take risks, break the mold. Rapid iterations, multiple possibilities." },
-      { label: 'Be open & humble', value: '3', extra: "Trust yourself, trust each other. Be willing to offer and ask for help. Collaboration creates value. Approach problems with the big picture in mind. Be mindful and check your ego; stay open to different ideas." },
-      { label: 'Be candid & clear', value: '4', extra: "Dare to share your honest opinions. It's okay to make mistakes. Own it when you do. Stick to the facts, identify issues, and avoid \'leader-pleasing.\' Be accurate and forthright; be methodical and focused."}
-    ];
-    const optionsWithDisabled = [
-      { label: 'Photography', value: 'Photography' },
-      { label: 'Movies', value: 'Movies' },
-      { label: 'Running', value: 'Running', disabled: false },
-    ];
-    return (
-      <div>
-        <CheckboxGroup options={plainOptions} defaultValue={['semi']} onChange={onChange} />
-        <br/><br/>
-        <CheckboxGroup options={options} defaultValue={[]} onChange={onChange} />
-        <br/><br/>
-        <CheckboxGroup
-          options={optionsWithDisabled}
-          disabled
-          defaultValue={['Photography']}
-          onChange={onChange}
-        />
-      </div>
-    )
-  }
 }
 }
 ```
 ```
 
 
@@ -169,16 +169,16 @@ import React from 'react';
 import { CheckboxGroup } from '@douyinfe/semi-ui';
 import { CheckboxGroup } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const options = [
-    { label: 'semi', value: 'semi' },
-    { label: 'hotsoon', value: 'hotsoon' },
-    { label: 'pipixia', value: 'pipixia' },
-    { label: 'toutiao', value: 'toutiao' }
-  ];
-  return (
-    <CheckboxGroup options={options} direction='horizontal' />
-  )
-}
+    const options = [
+        { label: 'semi', value: 'semi' },
+        { label: 'hotsoon', value: 'hotsoon' },
+        { label: 'pipixia', value: 'pipixia' },
+        { label: 'toutiao', value: 'toutiao' }
+    ];
+    return (
+        <CheckboxGroup options={options} direction='horizontal' />
+    );
+};
 ```
 ```
 
 
 ### Controlled Component
 ### Controlled Component
@@ -191,63 +191,63 @@ import { Checkbox, Button } from '@douyinfe/semi-ui';
 
 
 class App extends React.Component {
 class App extends React.Component {
 
 
-  constructor() {
-    super();
-    this.state = {
-      checked: true,
-      disabled: false,
+    constructor() {
+        super();
+        this.state = {
+            checked: true,
+            disabled: false,
+        };
+        this.toggleChecked = this.toggleChecked.bind(this);
+        this.toggleDisable = this.toggleDisable.bind(this);
+        this.onChange = this.onChange.bind(this);
+    }
+
+    toggleChecked () {
+        this.setState({ checked: !this.state.checked });
+    };
+
+    toggleDisable () {
+        this.setState({ disabled: !this.state.disabled });
+    };
+
+    onChange (e) {
+        console.log('checked = ', e.target.checked);
+        this.setState({
+            checked: e.target.checked,
+        });
+    };
+
+    render() {
+        const label = `${this.state.checked ? 'Checked' : 'Unchecked'} ${
+            this.state.disabled ? 'Disabled' : 'Enabled'
+        }`;
+        return (
+            <div>
+                <p style={{ marginBottom: '20px' }}>
+                    <Checkbox
+                        checked={this.state.checked}
+                        disabled={this.state.disabled}
+                        onChange={this.onChange}
+                    >
+                        {label}
+                    </Checkbox>
+                </p>
+                <p>
+                    <Button type="primary" size="small" onClick={this.toggleChecked}>
+                        {!this.state.checked ? 'Check' : 'Uncheck'}
+                    </Button>
+                    <Button
+                        style={{ marginLeft: '10px' }}
+                        type="primary"
+                        size="small"
+                        onClick={this.toggleDisable}
+                    >
+                        {!this.state.disabled ? 'Disable' : 'Enable'}
+                    </Button>
+                </p>
+            </div>
+        );
     }
     }
-    this.toggleChecked = this.toggleChecked.bind(this);
-    this.toggleDisable = this.toggleDisable.bind(this);
-    this.onChange = this.onChange.bind(this);
-  }
-
-  toggleChecked () {
-    this.setState({ checked: !this.state.checked });
-  };
-
-  toggleDisable () {
-    this.setState({ disabled: !this.state.disabled });
-  };
-
-  onChange (e) {
-    console.log('checked = ', e.target.checked);
-    this.setState({
-      checked: e.target.checked,
-    });
-  };
-
-  render() {
-    const label = `${this.state.checked ? 'Checked' : 'Unchecked'} ${
-      this.state.disabled ? 'Disabled' : 'Enabled'
-    }`;
-    return (
-      <div>
-        <p style={{ marginBottom: '20px' }}>
-          <Checkbox
-            checked={this.state.checked}
-            disabled={this.state.disabled}
-            onChange={this.onChange}
-          >
-            {label}
-          </Checkbox>
-        </p>
-        <p>
-          <Button type="primary" size="small" onClick={this.toggleChecked}>
-            {!this.state.checked ? 'Check' : 'Uncheck'}
-          </Button>
-          <Button
-            style={{ marginLeft: '10px' }}
-            type="primary"
-            size="small"
-            onClick={this.toggleDisable}
-          >
-            {!this.state.disabled ? 'Disable' : 'Enable'}
-          </Button>
-        </p>
-      </div>
-    );
-  }
 }
 }
 
 
 ```
 ```
@@ -266,37 +266,37 @@ import { Checkbox, CheckboxGroup } from '@douyinfe/semi-ui';
     const [indeterminate, setIndeterminate] = useState(true);
     const [indeterminate, setIndeterminate] = useState(true);
     const [checkAll, setCheckall] = useState(false);
     const [checkAll, setCheckall] = useState(false);
     const onChange = (checkedList) => {
     const onChange = (checkedList) => {
-      setCheckedList(checkedList);
-      setIndeterminate(!!checkedList.length && checkedList.length < plainOptions.length);
-      setCheckall(checkedList.length === plainOptions.length);
-    }
+        setCheckedList(checkedList);
+        setIndeterminate(!!checkedList.length && checkedList.length < plainOptions.length);
+        setCheckall(checkedList.length === plainOptions.length);
+    };
     const onCheckAllChange = (e) => {
     const onCheckAllChange = (e) => {
-      console.log(e);
-      setCheckedList(e.target.checked ? plainOptions : []);
-      setIndeterminate(false);
-      setCheckall(e.target.checked);
-    }
+        console.log(e);
+        setCheckedList(e.target.checked ? plainOptions : []);
+        setIndeterminate(false);
+        setCheckall(e.target.checked);
+    };
 
 
     return (
     return (
         <div>
         <div>
-          <div style={{ paddingBottom: 8, borderBottom: '1px solid var(--semi-color-border)' }}>
-            <Checkbox
-              indeterminate={indeterminate}
-              onChange={onCheckAllChange}
-              checked={checkAll}
-            >
-              Check all
-            </Checkbox>
-          </div>
-          <CheckboxGroup
-            style={{marginTop:6}}
-            options={plainOptions}
-            value={checkedList}
-            onChange={onChange}
-          />
+            <div style={{ paddingBottom: 8, borderBottom: '1px solid var(--semi-color-border)' }}>
+                <Checkbox
+                    indeterminate={indeterminate}
+                    onChange={onCheckAllChange}
+                    checked={checkAll}
+                >
+                    Check all
+                </Checkbox>
+            </div>
+            <CheckboxGroup
+                style={{marginTop:6}}
+                options={plainOptions}
+                value={checkedList}
+                onChange={onChange}
+            />
         </div>
         </div>
-    )
-}
+    );
+};
 
 
 ```
 ```
 
 
@@ -361,26 +361,26 @@ import React from 'react';
 import { CheckboxGroup, Checkbox, Row, Col } from '@douyinfe/semi-ui';
 import { CheckboxGroup, Checkbox, Row, Col } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <CheckboxGroup style={{ width: '100%' }}>
-    <Row>
-      <Col span={8}>
-        <Checkbox value="A">A</Checkbox>
-      </Col>
-      <Col span={8}>
-        <Checkbox value="B">B</Checkbox>
-      </Col>
-      <Col span={8}>
-        <Checkbox value="C">C</Checkbox>
-      </Col>
-      <Col span={8}>
-        <Checkbox value="D">D</Checkbox>
-      </Col>
-      <Col span={8}>
-        <Checkbox value="E">E</Checkbox>
-      </Col>
-    </Row>
-  </CheckboxGroup>
-)
+    <CheckboxGroup style={{ width: '100%' }}>
+        <Row>
+            <Col span={8}>
+                <Checkbox value="A">A</Checkbox>
+            </Col>
+            <Col span={8}>
+                <Checkbox value="B">B</Checkbox>
+            </Col>
+            <Col span={8}>
+                <Checkbox value="C">C</Checkbox>
+            </Col>
+            <Col span={8}>
+                <Checkbox value="D">D</Checkbox>
+            </Col>
+            <Col span={8}>
+                <Checkbox value="E">E</Checkbox>
+            </Col>
+        </Row>
+    </CheckboxGroup>
+);
 ```
 ```
 
 
 ## API Reference
 ## API Reference

+ 171 - 171
content/input/checkbox/index.md

@@ -31,8 +31,8 @@ import React from 'react';
 import { Checkbox } from '@douyinfe/semi-ui';
 import { Checkbox } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Checkbox onChange={checked => console.log(checked)}>Semi Design</Checkbox>
-)
+    <Checkbox onChange={checked => console.log(checked)}>Semi Design</Checkbox>
+);
 ```
 ```
 
 
 ```jsx live=true
 ```jsx live=true
@@ -40,8 +40,8 @@ import React from 'react';
 import { Checkbox } from '@douyinfe/semi-ui';
 import { Checkbox } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Checkbox defaultChecked onChange={checked => console.log(checked)}>Semi Design</Checkbox>
-)
+    <Checkbox defaultChecked onChange={checked => console.log(checked)}>Semi Design</Checkbox>
+);
 ```
 ```
 
 
 带辅助文本的checkbox。通过`extra`传入辅助文本。辅助文本会更长一些,甚至还可能换行。
 带辅助文本的checkbox。通过`extra`传入辅助文本。辅助文本会更长一些,甚至还可能换行。
@@ -51,16 +51,16 @@ import React from 'react';
 import { Checkbox } from '@douyinfe/semi-ui';
 import { Checkbox } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <>
-    <Checkbox extra='Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统'>
-      Semi Design
-    </Checkbox>
-    <br/>
-    <Checkbox extra='Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统' style={{ width: 400 }}>
-      Semi Design
-    </Checkbox>
-  </>
-)
+    <>
+        <Checkbox extra='Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统'>
+            Semi Design
+        </Checkbox>
+        <br/>
+        <Checkbox extra='Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统' style={{ width: 400 }}>
+            Semi Design
+        </Checkbox>
+    </>
+);
 ```
 ```
 
 
 ### 禁用
 ### 禁用
@@ -72,12 +72,12 @@ import React from 'react';
 import { Checkbox } from '@douyinfe/semi-ui';
 import { Checkbox } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
-      <Checkbox defaultChecked={false} disabled>Unchecked Disabled</Checkbox>
-      <br />
-      <Checkbox defaultChecked disabled>Checked Disabled</Checkbox>
-  </div>
-)
+    <div>
+        <Checkbox defaultChecked={false} disabled>Unchecked Disabled</Checkbox>
+        <br />
+        <Checkbox defaultChecked disabled>Checked Disabled</Checkbox>
+    </div>
+);
 ```
 ```
 
 
 ### JSX方式声明Checkbox组
 ### JSX方式声明Checkbox组
@@ -91,14 +91,14 @@ import React from 'react';
 import { CheckboxGroup, Checkbox } from '@douyinfe/semi-ui';
 import { CheckboxGroup, Checkbox } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <CheckboxGroup style={{ width: '100%' }} defaultValue={['A', 'B']}>
-      <Checkbox value="A">A</Checkbox>
-      <Checkbox value="B">B</Checkbox>
-      <Checkbox value="C">C</Checkbox>
-      <Checkbox value="D">D</Checkbox>
-      <Checkbox value="E">E</Checkbox>
-  </CheckboxGroup>
-)
+    <CheckboxGroup style={{ width: '100%' }} defaultValue={['A', 'B']}>
+        <Checkbox value="A">A</Checkbox>
+        <Checkbox value="B">B</Checkbox>
+        <Checkbox value="C">C</Checkbox>
+        <Checkbox value="D">D</Checkbox>
+        <Checkbox value="E">E</Checkbox>
+    </CheckboxGroup>
+);
 ```
 ```
 
 
 
 
@@ -111,37 +111,37 @@ import React from 'react';
 import { CheckboxGroup } from '@douyinfe/semi-ui';
 import { CheckboxGroup } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  function onChange(checkedValues) {
-    console.log('checked = ', checkedValues);
-  }
-
-  const plainOptions = ['抖音', '火山', '皮皮虾'];
-  const options = [
-    { label: '追求极致', value: '1', extra: '不断提高要求,延迟满足感,在更大范围里找最优解' },
-    { label: '务实敢为', value: '2', extra:'直接体验,深入事实;不自嗨,注重效果;能突破有担当,打破定式;尝试多种可能,快速迭代' },
-    { label: '开放谦逊', value: '3', extra: '内心阳光,信任伙伴;乐于助人和求助,合作成大事;格局大,上个台阶想问题;对外敏锐谦虚,ego小,听得进意见' },
-    { label: '坦诚清晰', value: '4', extra: '敢当面表达真实想法;能承认错误,不装不爱面子;实事求是,暴露问题,反对“向上管理”;准确、简洁、直接,有条理有重点'}
-  ];
-  const optionsWithDisabled = [
-    { label: 'Photography', value: 'Photography' },
-    { label: 'Movies', value: 'Movies' },
-    { label: 'Running', value: 'Running', disabled: false },
-  ];
-  return (
-    <div>
-      <CheckboxGroup options={plainOptions} defaultValue={['抖音']} onChange={onChange} />
-      <br/><br/>
-      <CheckboxGroup options={options} defaultValue={[]} onChange={onChange} />
-      <br/><br/>
-      <CheckboxGroup
-        options={optionsWithDisabled}
-        disabled
-        defaultValue={['Photography']}
-        onChange={onChange}
-      />
-  </div>
-  )
-}
+    function onChange(checkedValues) {
+        console.log('checked = ', checkedValues);
+    }
+
+    const plainOptions = ['抖音', '火山', '皮皮虾'];
+    const options = [
+        { label: '追求极致', value: '1', extra: '不断提高要求,延迟满足感,在更大范围里找最优解' },
+        { label: '务实敢为', value: '2', extra:'直接体验,深入事实;不自嗨,注重效果;能突破有担当,打破定式;尝试多种可能,快速迭代' },
+        { label: '开放谦逊', value: '3', extra: '内心阳光,信任伙伴;乐于助人和求助,合作成大事;格局大,上个台阶想问题;对外敏锐谦虚,ego小,听得进意见' },
+        { label: '坦诚清晰', value: '4', extra: '敢当面表达真实想法;能承认错误,不装不爱面子;实事求是,暴露问题,反对“向上管理”;准确、简洁、直接,有条理有重点'}
+    ];
+    const optionsWithDisabled = [
+        { label: 'Photography', value: 'Photography' },
+        { label: 'Movies', value: 'Movies' },
+        { label: 'Running', value: 'Running', disabled: false },
+    ];
+    return (
+        <div>
+            <CheckboxGroup options={plainOptions} defaultValue={['抖音']} onChange={onChange} />
+            <br/><br/>
+            <CheckboxGroup options={options} defaultValue={[]} onChange={onChange} />
+            <br/><br/>
+            <CheckboxGroup
+                options={optionsWithDisabled}
+                disabled
+                defaultValue={['Photography']}
+                onChange={onChange}
+            />
+        </div>
+    );
+};
 ```
 ```
 
 
 
 
@@ -154,16 +154,16 @@ import React from 'react';
 import { CheckboxGroup } from '@douyinfe/semi-ui';
 import { CheckboxGroup } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const options = [
-    { label: '抖音', value: 'abc' },
-    { label: '火山', value: 'hotsoon' },
-    { label: '皮皮虾', value: 'pipixia' },
-    { label: '今日头条', value: 'toutiao' }
-  ];
-  return (
-    <CheckboxGroup options={options} direction='horizontal' />
-  )
-}
+    const options = [
+        { label: '抖音', value: 'abc' },
+        { label: '火山', value: 'hotsoon' },
+        { label: '皮皮虾', value: 'pipixia' },
+        { label: '今日头条', value: 'toutiao' }
+    ];
+    return (
+        <CheckboxGroup options={options} direction='horizontal' />
+    );
+};
 ```
 ```
 
 
 
 
@@ -177,63 +177,63 @@ import { Checkbox, Button } from '@douyinfe/semi-ui';
 
 
 class App extends React.Component {
 class App extends React.Component {
 
 
-  constructor() {
-    super();
-    this.state = {
-      checked: true,
-      disabled: false,
+    constructor() {
+        super();
+        this.state = {
+            checked: true,
+            disabled: false,
+        };
+        this.toggleChecked = this.toggleChecked.bind(this);
+        this.toggleDisable = this.toggleDisable.bind(this);
+        this.onChange = this.onChange.bind(this);
+    }
+
+    toggleChecked () {
+        this.setState({ checked: !this.state.checked });
+    };
+
+    toggleDisable () {
+        this.setState({ disabled: !this.state.disabled });
+    };
+
+    onChange (e) {
+        console.log('checked = ', e.target.checked);
+        this.setState({
+            checked: e.target.checked,
+        });
+    };
+
+    render() {
+        const label = `${this.state.checked ? 'Checked' : 'Unchecked'} ${
+            this.state.disabled ? 'Disabled' : 'Enabled'
+        }`;
+        return (
+            <div>
+                <p style={{ marginBottom: '20px' }}>
+                    <Checkbox
+                        checked={this.state.checked}
+                        disabled={this.state.disabled}
+                        onChange={this.onChange}
+                    >
+                        {label}
+                    </Checkbox>
+                </p>
+                <p>
+                    <Button type="primary" size="small" onClick={this.toggleChecked}>
+                        {!this.state.checked ? 'Check' : 'Uncheck'}
+                    </Button>
+                    <Button
+                        style={{ marginLeft: '10px' }}
+                        type="primary"
+                        size="small"
+                        onClick={this.toggleDisable}
+                    >
+                        {!this.state.disabled ? 'Disable' : 'Enable'}
+                    </Button>
+                </p>
+            </div>
+        );
     }
     }
-    this.toggleChecked = this.toggleChecked.bind(this);
-    this.toggleDisable = this.toggleDisable.bind(this);
-    this.onChange = this.onChange.bind(this);
-  }
-
-  toggleChecked () {
-    this.setState({ checked: !this.state.checked });
-  };
-
-  toggleDisable () {
-    this.setState({ disabled: !this.state.disabled });
-  };
-
-  onChange (e) {
-    console.log('checked = ', e.target.checked);
-    this.setState({
-      checked: e.target.checked,
-    });
-  };
-
-  render() {
-    const label = `${this.state.checked ? 'Checked' : 'Unchecked'} ${
-      this.state.disabled ? 'Disabled' : 'Enabled'
-    }`;
-    return (
-      <div>
-        <p style={{ marginBottom: '20px' }}>
-          <Checkbox
-            checked={this.state.checked}
-            disabled={this.state.disabled}
-            onChange={this.onChange}
-          >
-            {label}
-          </Checkbox>
-        </p>
-        <p>
-          <Button type="primary" size="small" onClick={this.toggleChecked}>
-            {!this.state.checked ? 'Check' : 'Uncheck'}
-          </Button>
-          <Button
-            style={{ marginLeft: '10px' }}
-            type="primary"
-            size="small"
-            onClick={this.toggleDisable}
-          >
-            {!this.state.disabled ? 'Disable' : 'Enable'}
-          </Button>
-        </p>
-      </div>
-    );
-  }
 }
 }
 
 
 ```
 ```
@@ -252,37 +252,37 @@ import { Checkbox, CheckboxGroup } from '@douyinfe/semi-ui';
     const [indeterminate, setIndeterminate] = useState(true);
     const [indeterminate, setIndeterminate] = useState(true);
     const [checkAll, setCheckall] = useState(false);
     const [checkAll, setCheckall] = useState(false);
     const onChange = (checkedList) => {
     const onChange = (checkedList) => {
-      setCheckedList(checkedList);
-      setIndeterminate(!!checkedList.length && checkedList.length < plainOptions.length);
-      setCheckall(checkedList.length === plainOptions.length);
-    }
+        setCheckedList(checkedList);
+        setIndeterminate(!!checkedList.length && checkedList.length < plainOptions.length);
+        setCheckall(checkedList.length === plainOptions.length);
+    };
     const onCheckAllChange = (e) => {
     const onCheckAllChange = (e) => {
-      console.log(e);
-      setCheckedList(e.target.checked ? plainOptions : []);
-      setIndeterminate(false);
-      setCheckall(e.target.checked);
-    }
+        console.log(e);
+        setCheckedList(e.target.checked ? plainOptions : []);
+        setIndeterminate(false);
+        setCheckall(e.target.checked);
+    };
 
 
     return (
     return (
         <div>
         <div>
-          <div style={{ paddingBottom: 8, borderBottom: '1px solid var(--semi-color-border)' }}>
-            <Checkbox
-              indeterminate={indeterminate}
-              onChange={onCheckAllChange}
-              checked={checkAll}
-            >
-              Check all
-            </Checkbox>
-          </div>
-          <CheckboxGroup
-            style={{marginTop:6}}
-            options={plainOptions}
-            value={checkedList}
-            onChange={onChange}
-          />
+            <div style={{ paddingBottom: 8, borderBottom: '1px solid var(--semi-color-border)' }}>
+                <Checkbox
+                    indeterminate={indeterminate}
+                    onChange={onCheckAllChange}
+                    checked={checkAll}
+                >
+                    Check all
+                </Checkbox>
+            </div>
+            <CheckboxGroup
+                style={{marginTop:6}}
+                options={plainOptions}
+                value={checkedList}
+                onChange={onChange}
+            />
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 卡片样式
 ### 卡片样式
@@ -346,26 +346,26 @@ import React from 'react';
 import { Checkbox, CheckboxGroup, Row, Col } from '@douyinfe/semi-ui';
 import { Checkbox, CheckboxGroup, Row, Col } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <CheckboxGroup style={{ width: '100%' }}>
-      <Row>
-        <Col span={8}>
-          <Checkbox value="A">A</Checkbox>
-        </Col>
-        <Col span={8}>
-          <Checkbox value="B">B</Checkbox>
-        </Col>
-        <Col span={8}>
-          <Checkbox value="C">C</Checkbox>
-        </Col>
-        <Col span={8}>
-          <Checkbox value="D">D</Checkbox>
-        </Col>
-        <Col span={8}>
-          <Checkbox value="E">E</Checkbox>
-        </Col>
-      </Row>
-  </CheckboxGroup>
-)
+    <CheckboxGroup style={{ width: '100%' }}>
+        <Row>
+            <Col span={8}>
+                <Checkbox value="A">A</Checkbox>
+            </Col>
+            <Col span={8}>
+                <Checkbox value="B">B</Checkbox>
+            </Col>
+            <Col span={8}>
+                <Checkbox value="C">C</Checkbox>
+            </Col>
+            <Col span={8}>
+                <Checkbox value="D">D</Checkbox>
+            </Col>
+            <Col span={8}>
+                <Checkbox value="E">E</Checkbox>
+            </Col>
+        </Row>
+    </CheckboxGroup>
+);
 ```
 ```
 
 
 ## API参考
 ## API参考

+ 10 - 10
content/input/datepicker/index-en-US.md

@@ -43,12 +43,12 @@ import React from 'react';
 import { DatePicker } from '@douyinfe/semi-ui';
 import { DatePicker } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  return (
-      <div>
-        <DatePicker type="dateTime" density='compact' /><br /><br />
-        <DatePicker type="dateRange" density='compact' style={{ width: 260 }} />
-      </div>
-  );
+    return (
+        <div>
+            <DatePicker type="dateTime" density='compact' /><br /><br />
+            <DatePicker type="dateRange" density='compact' style={{ width: 260 }} />
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -479,10 +479,10 @@ class App extends React.Component {
         this.disabledTime = date =>
         this.disabledTime = date =>
             dateFns.isToday(date)
             dateFns.isToday(date)
                 ? {
                 ? {
-                      disabledHours: () => [17, 18],
-                      disabledMinutes: hour => (19 === hour ? range(0, 10, 1) : []),
-                      disabledSeconds: (hour, minute) => (hour === 20 && minute === 20 ? range(0, 20, 1) : []),
-                  }
+                    disabledHours: () => [17, 18],
+                    disabledMinutes: hour => (19 === hour ? range(0, 10, 1) : []),
+                    disabledSeconds: (hour, minute) => (hour === 20 && minute === 20 ? range(0, 20, 1) : []),
+                }
                 : null;
                 : null;
 
 
         this.disabledTime2 = (date, panelType) => {
         this.disabledTime2 = (date, panelType) => {

+ 4 - 4
content/input/datepicker/index.md

@@ -438,10 +438,10 @@ class App extends React.Component {
         this.disabledTime = date =>
         this.disabledTime = date =>
             dateFns.isToday(date)
             dateFns.isToday(date)
                 ? {
                 ? {
-                      disabledHours: () => [17, 18],
-                      disabledMinutes: hour => (19 === hour ? range(0, 10, 1) : []),
-                      disabledSeconds: (hour, minute) => (hour === 20 && minute === 20 ? range(0, 20, 1) : []),
-                  }
+                    disabledHours: () => [17, 18],
+                    disabledMinutes: hour => (19 === hour ? range(0, 10, 1) : []),
+                    disabledSeconds: (hour, minute) => (hour === 20 && minute === 20 ? range(0, 20, 1) : []),
+                }
                 : null;
                 : null;
 
 
         this.disabledTime2 = (date, panelType) => {
         this.disabledTime2 = (date, panelType) => {

+ 128 - 113
content/input/form/index-en-US.md

@@ -72,7 +72,7 @@ import { Form } from '@douyinfe/semi-ui';
         <Form.Input field='userName' label='UserName' />
         <Form.Input field='userName' label='UserName' />
         <Form.Input field='password' label='Password' />
         <Form.Input field='password' label='Password' />
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 #### Other forms of support
 #### Other forms of support
@@ -99,7 +99,7 @@ import { Form } from '@douyinfe/semi-ui';
         </>
         </>
     )} layout='horizontal'>
     )} layout='horizontal'>
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 #### Via children function
 #### Via children function
@@ -127,7 +127,7 @@ import { Form } from '@douyinfe/semi-ui';
             )
             )
         }
         }
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 #### Via props.component
 #### Via props.component
@@ -139,18 +139,18 @@ import React from 'react';
 import { Form } from '@douyinfe/semi-ui';
 import { Form } from '@douyinfe/semi-ui';
 
 
 class Demo extends React.Component {
 class Demo extends React.Component {
-  constructor() { super(); }
-  render() {
-      const fields = ({ formState, formApi, values }) => (
-          <>
-              <Form.Input field='Role'/>
-              <Form.Input field='UserName' />
-              <Form.Input field='Password' />
-              <code style={{marginTop: 30}}>{JSON.stringify(formState)}</code>
-          </>
-      );
-      return <Form component={fields} layout='horizontal'/>
-  }
+    constructor() { super(); }
+    render() {
+        const fields = ({ formState, formApi, values }) => (
+            <>
+                <Form.Input field='Role'/>
+                <Form.Input field='UserName' />
+                <Form.Input field='Password' />
+                <code style={{marginTop: 30}}>{JSON.stringify(formState)}</code>
+            </>
+        );
+        return <Form component={fields} layout='horizontal'/>;
+    }
 }
 }
 ```
 ```
 
 
@@ -174,7 +174,7 @@ class BasicDemoWithInit extends React.Component {
         this.getFormApi = this.getFormApi.bind(this);
         this.getFormApi = this.getFormApi.bind(this);
     }
     }
 
 
-    getFormApi(formApi) { this.formApi = formApi }
+    getFormApi(formApi) { this.formApi = formApi; }
 
 
     render() {
     render() {
         const { Input, InputNumber, AutoComplete, Select, TreeSelect, Cascader, DatePicker, TimePicker, TextArea, CheckboxGroup, Checkbox, RadioGroup, Radio, Slider, Rating, Switch, TagInput } = Form;
         const { Input, InputNumber, AutoComplete, Select, TreeSelect, Cascader, DatePicker, TimePicker, TextArea, CheckboxGroup, Checkbox, RadioGroup, Radio, Slider, Rating, Switch, TagInput } = Form;
@@ -317,7 +317,7 @@ class BasicDemoWithInit extends React.Component {
                 </Row>
                 </Row>
                 <Row>
                 <Row>
                     <Col span={12}>
                     <Col span={12}>
-                      <TimePicker field="time" label='End Time(TimePicker)' style={{ width: '90%' }}/>
+                        <TimePicker field="time" label='End Time(TimePicker)' style={{ width: '90%' }}/>
                     </Col>
                     </Col>
                     <Col span={12}>
                     <Col span={12}>
                         <InputNumber field='number' label='Number of applications(InputNumber)' initValue={20} style={style}/>
                         <InputNumber field='number' label='Number of applications(InputNumber)' initValue={20} style={style}/>
@@ -325,15 +325,15 @@ class BasicDemoWithInit extends React.Component {
                 </Row>
                 </Row>
                 <Row>
                 <Row>
                     <Col span={12}>
                     <Col span={12}>
-                      <Slider field="range" label='Resource usage alarm threshold(%)(Slider)' initValue={10} style={{ width: '90%' }}/>
+                        <Slider field="range" label='Resource usage alarm threshold(%)(Slider)' initValue={10} style={{ width: '90%' }}/>
                     </Col>
                     </Col>
                     <Col span={12}>
                     <Col span={12}>
-                      <Switch field='switch' label='Switch(Switch)'/>
+                        <Switch field='switch' label='Switch(Switch)'/>
                     </Col>
                     </Col>
                 </Row>
                 </Row>
                 <Row>
                 <Row>
                     <Col span={12}>
                     <Col span={12}>
-                      <Rating field="rating" label='Satisfaction(Rating)' initValue={2} style={{ width: '90%' }}/>
+                        <Rating field="rating" label='Satisfaction(Rating)' initValue={2} style={{ width: '90%' }}/>
                     </Col>
                     </Col>
                     <Col span={12}>
                     <Col span={12}>
                         <TagInput 
                         <TagInput 
@@ -399,7 +399,7 @@ import { Form, Row, Col, Toast, TextArea } from '@douyinfe/semi-ui';
             )
             )
         }
         }
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 ### Form layout
 ### Form layout
@@ -412,28 +412,28 @@ import React from 'react';
 import { Form, Button, Toast } from '@douyinfe/semi-ui';
 import { Form, Button, Toast } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
- const handleSubmit = (values) => {
-   console.log(values);
-   Toast.info('Submit Success');
- }
- return (
-     <Form onSubmit={values => handleSubmit(values)} style={{width: 400}}>
-        {({formState, values, formApi}) => (
-            <>
-                <Form.Input field='phone' label='PhoneNumber' style={{ width: '100%' }} placeholder='Enter your phone number'></Form.Input>
-                <Form.Input field='password' label='Password' style={{ width: '100%' }} placeholder='Enter your password'></Form.Input>
-                <Form.Checkbox field='agree' noLabel>I have read and agree to the terms of service</Form.Checkbox>
-                <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
-                  <p>
-                      <span>Or</span><Button theme='borderless' style={{ color: 'rgb(101, 178, 252)', marginLeft: 10, cursor:'pointer' }}>Sign up</Button>
-                  </p>
-                  <Button disabled={!values.agree} htmlType='submit' type="tertiary">Log in</Button>
-                </div>
-            </>
-        )}
-    </Form>
- )
-}
+    const handleSubmit = (values) => {
+        console.log(values);
+        Toast.info('Submit Success');
+    };
+    return (
+        <Form onSubmit={values => handleSubmit(values)} style={{width: 400}}>
+            {({formState, values, formApi}) => (
+                <>
+                    <Form.Input field='phone' label='PhoneNumber' style={{ width: '100%' }} placeholder='Enter your phone number'></Form.Input>
+                    <Form.Input field='password' label='Password' style={{ width: '100%' }} placeholder='Enter your password'></Form.Input>
+                    <Form.Checkbox field='agree' noLabel>I have read and agree to the terms of service</Form.Checkbox>
+                    <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
+                        <p>
+                            <span>Or</span><Button theme='borderless' style={{ color: 'rgb(101, 178, 252)', marginLeft: 10, cursor:'pointer' }}>Sign up</Button>
+                        </p>
+                        <Button disabled={!values.agree} htmlType='submit' type="tertiary">Log in</Button>
+                    </div>
+                </>
+            )}
+        </Form>
+    );
+};
 ```
 ```
 
 
 -   Horizontal Layout: Arrange each field horizontally
 -   Horizontal Layout: Arrange each field horizontally
@@ -448,7 +448,7 @@ import { Form } from '@douyinfe/semi-ui';
         <Form.Input field='phone' label='PhoneNumber' placeholder='Enter your phone number'></Form.Input>
         <Form.Input field='phone' label='PhoneNumber' placeholder='Enter your phone number'></Form.Input>
         <Form.Input field='password' label='Password' placeholder='Enter your password'></Form.Input>
         <Form.Input field='password' label='Password' placeholder='Enter your password'></Form.Input>
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 -   Label Position, Label Align  
 -   Label Position, Label Align  
@@ -456,7 +456,9 @@ import { Form } from '@douyinfe/semi-ui';
 
 
 ```jsx live=true dir="column"
 ```jsx live=true dir="column"
 import React from 'react';
 import React from 'react';
-import { Form, Select } from '@douyinfe/semi-ui';
+import { Form, Select, Checkbox, Radio } from '@douyinfe/semi-ui';
+
+const { Option } = Select;
 
 
 class BasicDemo extends React.Component {
 class BasicDemo extends React.Component {
     constructor() {
     constructor() {
@@ -474,32 +476,32 @@ class BasicDemo extends React.Component {
     changeLabelPos(labelPosition) {
     changeLabelPos(labelPosition) {
         let labelWidth;
         let labelWidth;
         labelPosition === 'left' ? labelWidth = '180px' : labelWidth = 'auto';
         labelPosition === 'left' ? labelWidth = '180px' : labelWidth = 'auto';
-        this.setState({ labelPosition, labelWidth })
+        this.setState({ labelPosition, labelWidth });
     }
     }
 
 
-    changeLabelAlign(labelAlign) { this.setState({ labelAlign }) }
+    changeLabelAlign(labelAlign) { this.setState({ labelAlign }); }
 
 
     render() {
     render() {
         const { labelPosition, labelAlign, labelWidth } = this.state;
         const { labelPosition, labelAlign, labelWidth } = this.state;
         return (
         return (
             <>
             <>
-            <div style={{borderBottom: '1px solid var(--semi-color-text-3)', paddingBottom: 10 }}>
-                <Form.Label style={{ marginLeft: 10 }}>Switch Label Position:</Form.Label>
-                <Select onChange={this.changeLabelPos} value={labelPosition} style={{width: 100}}>
-                    <Select.Option value='top'>top</Select.Option>
-                    <Select.Option value='left'>left</Select.Option>
-                </Select>
-                <Form.Label style={{ marginLeft: 10 }}>Switch Label Text Align</Form.Label>
-                <Select onChange={this.changeLabelAlign} value={labelAlign} style={{width: 100}}>
-                    <Select.Option value='left'>left</Select.Option>
-                    <Select.Option value='right'>right</Select.Option>
-                </Select>
-            </div>
-            <Form
-                labelPosition={labelPosition}
-                labelWidth={labelWidth}
-                labelAlign={labelAlign}
-                style={{ padding: '10px', width: 600 }}>
+                <div style={{borderBottom: '1px solid var(--semi-color-text-3)', paddingBottom: 10 }}>
+                    <Form.Label style={{ marginLeft: 10 }}>Switch Label Position:</Form.Label>
+                    <Select onChange={this.changeLabelPos} value={labelPosition} style={{width: 100}}>
+                        <Select.Option value='top'>top</Select.Option>
+                        <Select.Option value='left'>left</Select.Option>
+                    </Select>
+                    <Form.Label style={{ marginLeft: 10 }}>Switch Label Text Align</Form.Label>
+                    <Select onChange={this.changeLabelAlign} value={labelAlign} style={{width: 100}}>
+                        <Select.Option value='left'>left</Select.Option>
+                        <Select.Option value='right'>right</Select.Option>
+                    </Select>
+                </div>
+                <Form
+                    labelPosition={labelPosition}
+                    labelWidth={labelWidth}
+                    labelAlign={labelAlign}
+                    style={{ padding: '10px', width: 600 }}>
                     <Form.Input
                     <Form.Input
                         field="input"
                         field="input"
                         label="PhoneNumber"
                         label="PhoneNumber"
@@ -528,7 +530,7 @@ class BasicDemo extends React.Component {
                         <Radio value="1">man</Radio>
                         <Radio value="1">man</Radio>
                         <Radio value="2">woman</Radio>
                         <Radio value="2">woman</Radio>
                     </Form.RadioGroup>
                     </Form.RadioGroup>
-            </Form>
+                </Form>
             </>
             </>
         );
         );
     }
     }
@@ -606,7 +608,7 @@ import { Form, Row, Col } from '@douyinfe/semi-ui';
             </Col>
             </Col>
         </Row>
         </Row>
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 ### wrapper Col / label Col
 ### wrapper Col / label Col
@@ -633,7 +635,7 @@ import { Form } from '@douyinfe/semi-ui';
             <Form.Select.Option value="ued">Designer</Form.Select.Option>
             <Form.Select.Option value="ued">Designer</Form.Select.Option>
         </Form.Select>
         </Form.Select>
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 ### Remove automatically added Label
 ### Remove automatically added Label
@@ -654,7 +656,7 @@ import { Form } from '@douyinfe/semi-ui';
             <Form.Select.Option value="ued">Designer</Form.Select.Option>
             <Form.Select.Option value="ued">Designer</Form.Select.Option>
         </Form.Select>
         </Form.Select>
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 ### Export Label, ErrorMessage use
 ### Export Label, ErrorMessage use
@@ -703,16 +705,16 @@ class AssistComponent extends React.Component {
                 <Form.ErrorMessage />
                 <Form.ErrorMessage />
                 <Form.Slot label={{ text: 'SlotA' }}>
                 <Form.Slot label={{ text: 'SlotA' }}>
                     <div style={{display: 'flex', alignItems: 'center', height: '100%'}}>
                     <div style={{display: 'flex', alignItems: 'center', height: '100%'}}>
-                        I'm Semi Form SlotA, a custom ReactNode
+                        {`I'm Semi Form SlotA, a custom ReactNode`}
                     </div>
                     </div>
                 </Form.Slot>
                 </Form.Slot>
                 <Form.Slot label={{ text: 'SlotB', width: 160, align: 'right' }}>
                 <Form.Slot label={{ text: 'SlotB', width: 160, align: 'right' }}>
                     <div style={{display: 'flex', alignItems: 'center', height: '100%'}}>
                     <div style={{display: 'flex', alignItems: 'center', height: '100%'}}>
-                        I'm Semi Form SlotA, i have different labelWidth and textAlign.
+                        {`I'm Semi Form SlotA, i have different labelWidth and textAlign.`}
                     </div>
                     </div>
                 </Form.Slot>
                 </Form.Slot>
             </Form>
             </Form>
-    )}
+        );}
 }
 }
 ```
 ```
 
 
@@ -735,7 +737,7 @@ import { Form } from '@douyinfe/semi-ui';
         <Form.DatePicker field="date" label='Start Date' style={{ width: '250px' }}>
         <Form.DatePicker field="date" label='Start Date' style={{ width: '250px' }}>
         </Form.DatePicker>
         </Form.DatePicker>
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 ### Using Input Group
 ### Using Input Group
@@ -763,7 +765,7 @@ import { Form, Button } from '@douyinfe/semi-ui';
         <Form.Input field='name' trigger='blur' initValue='Semi' label='Name'></Form.Input>
         <Form.Input field='name' trigger='blur' initValue='Semi' label='Name'></Form.Input>
         <Button htmlType='submit'>Submit</Button>
         <Button htmlType='submit'>Submit</Button>
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 ### Form in the Modal pop-up layer
 ### Form in the Modal pop-up layer
@@ -775,12 +777,14 @@ When submitting, use `formApi.validate()` to centrally verify the Field
 import React from 'react';
 import React from 'react';
 import { Form, Modal, Button, Row, Col } from '@douyinfe/semi-ui';
 import { Form, Modal, Button, Row, Col } from '@douyinfe/semi-ui';
 
 
+const { Option } = Select;
+
 class ModalFormDemo extends React.Component {
 class ModalFormDemo extends React.Component {
     constructor(props) {
     constructor(props) {
         super(props);
         super(props);
         this.state = {
         this.state = {
             visible: false,
             visible: false,
-        }
+        };
         this.showDialog = this.showDialog.bind(this);
         this.showDialog = this.showDialog.bind(this);
         this.handleOk = this.handleOk.bind(this);
         this.handleOk = this.handleOk.bind(this);
         this.handleCancel = this.handleCancel.bind(this);
         this.handleCancel = this.handleCancel.bind(this);
@@ -794,15 +798,15 @@ class ModalFormDemo extends React.Component {
     handleOk() {
     handleOk() {
         this.formApi.validate()
         this.formApi.validate()
             .then((values) => {
             .then((values) => {
-                console.log(values)
+                console.log(values);
             })
             })
             .catch((errors) => {
             .catch((errors) => {
-                console.log(errors)
+                console.log(errors);
             });
             });
     }
     }
 
 
     handleCancel() {
     handleCancel() {
-        this.setState({ visible: false })
+        this.setState({ visible: false });
     }
     }
 
 
     getFormApi(formApi) {
     getFormApi(formApi) {
@@ -908,11 +912,11 @@ class BasicDemoWithInit extends React.Component {
         this.getFormApi = this.getFormApi.bind(this);
         this.getFormApi = this.getFormApi.bind(this);
     }
     }
 
 
-    getFormApi(formApi) { this.formApi = formApi }
+    getFormApi(formApi) { this.formApi = formApi; }
 
 
     render() {
     render() {
         const { Select, Input } = Form;
         const { Select, Input } = Form;
-        const style = { width: '100%' }
+        const style = { width: '100%' };
         return (
         return (
             <Form initValues={this.state.initValues}>
             <Form initValues={this.state.initValues}>
                 <Input
                 <Input
@@ -933,7 +937,7 @@ class BasicDemoWithInit extends React.Component {
                     <Select.Option value="ued">Designer</Select.Option>
                     <Select.Option value="ued">Designer</Select.Option>
                 </Select>
                 </Select>
             </Form>
             </Form>
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -1055,7 +1059,7 @@ class FieldLevelValidateDemo extends React.Component {
 
 
     validateName(val) {
     validateName(val) {
         if (!val) {
         if (!val) {
-             return '【sync】can\'t be empty';
+            return '【sync】can\'t be empty';
         } else if (val.length <= 5) {
         } else if (val.length <= 5) {
             return '【sync】must more than 5';
             return '【sync】must more than 5';
         }
         }
@@ -1153,7 +1157,7 @@ import { Form, Button } from '@douyinfe/semi-ui';
             </React.Fragment>
             </React.Fragment>
         )}
         )}
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 #### Add or delete form items dynamically - by use ArrayField
 #### Add or delete form items dynamically - by use ArrayField
@@ -1172,7 +1176,7 @@ class ArrayFieldDemo extends React.Component {
                 { name: 'Face stickers', type: '2D' },
                 { name: 'Face stickers', type: '2D' },
                 { name: 'Background sticker', type: '3D' },
                 { name: 'Background sticker', type: '3D' },
             ]
             ]
-        }
+        };
     }
     }
 
 
     render() {
     render() {
@@ -1274,7 +1278,7 @@ class ArrayDemo extends React.Component {
                 </Form.Select>
                 </Form.Select>
                 <Button type='danger' onClick={() => this.remove(effect.key)} style={{ margin: 16 }}>Remove</Button>
                 <Button type='danger' onClick={() => this.remove(effect.key)} style={{ margin: 16 }}>Remove</Button>
             </div>
             </div>
-        ))
+        ));
     }
     }
     render() {
     render() {
         let { initValues } = this.state;
         let { initValues } = this.state;
@@ -1332,7 +1336,7 @@ class UseFromApiDemo extends React.Component {
                 <Form.Input field='name' initValue='mike'></Form.Input>
                 <Form.Input field='name' initValue='mike'></Form.Input>
                 <ComponentUsingFormApi />
                 <ComponentUsingFormApi />
             </Form>
             </Form>
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -1363,7 +1367,7 @@ class UseFromStateDemo extends React.Component {
                 <ComponentUsingFormState />
                 <ComponentUsingFormState />
             </Form>
             </Form>
         );
         );
-  }
+    }
 }
 }
 ```
 ```
 
 
@@ -1392,7 +1396,7 @@ class UseFieldApiDemo extends React.Component {
                 <Form.Input field='name' initValue='mike'></Form.Input>
                 <Form.Input field='name' initValue='mike'></Form.Input>
                 <ComponentUsingFieldApi />
                 <ComponentUsingFieldApi />
             </Form>
             </Form>
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -1406,26 +1410,26 @@ import React from 'react';
 import { useFieldState, Form } from '@douyinfe/semi-ui';
 import { useFieldState, Form } from '@douyinfe/semi-ui';
 
 
 class UseFieldStateDemo extends React.Component {
 class UseFieldStateDemo extends React.Component {
-  constructor() { super(); }
-  render() {
-    const ComponentUsingFieldState = props => {
-        const fieldState = useFieldState(props.field);
+    constructor() { super(); }
+    render() {
+        const ComponentUsingFieldState = props => {
+            const fieldState = useFieldState(props.field);
+            return (
+                <>
+                    <span>【{props.field}】FieldState read by 【useFieldState】:</span>
+                    <code>{JSON.stringify(fieldState)}</code>
+                </>
+            );
+        };
         return (
         return (
-            <>
-              <span>【{props.field}】FieldState read by 【useFieldState】:</span>
-              <code>{JSON.stringify(fieldState)}</code>
-            </>
+            <Form>
+                <Form.Input field='name' initValue='mike'></Form.Input>
+                <ComponentUsingFieldState field='name' />
+                <Form.Input field='country' initValue='china'></Form.Input>
+                <ComponentUsingFieldState field='country' />
+            </Form>
         );
         );
-    };
-    return (
-       <Form>
-            <Form.Input field='name' initValue='mike'></Form.Input>
-            <ComponentUsingFieldState field='name' />
-            <Form.Input field='country' initValue='china'></Form.Input>
-            <ComponentUsingFieldState field='country' />
-      </Form>
-    )
-  }
+    }
 }
 }
 ```
 ```
 
 
@@ -1637,6 +1641,9 @@ The table below describes the features available in the formApi.
 -   Via "withFormApi" HOC
 -   Via "withFormApi" HOC
 
 
 ```jsx
 ```jsx
+import React from 'react';
+import { Form, Button } from '@douyinfe/semi-ui';
+
 class FormApiDemo extends React.Component {
 class FormApiDemo extends React.Component {
     constructor() {
     constructor() {
         super();
         super();
@@ -1656,26 +1663,34 @@ class FormApiDemo extends React.Component {
     }
     }
 
 
     render() {
     render() {
-        return
-            (
+        return (
+            <>
                 <Form getFormApi={this.getFormApi} />
                 <Form getFormApi={this.getFormApi} />
                 <Form ref={this.formBRef} />
                 <Form ref={this.formBRef} />
                 <Button onClick={()=>this.changeValues()}>Change</Button>
                 <Button onClick={()=>this.changeValues()}>Change</Button>
-            )
+            </>
+        );
     }
     }
 }
 }
 ```
 ```
 
 
 ```jsx
 ```jsx
+import React from 'react';
+import { Form, Button } from '@douyinfe/semi-ui';
+
 () => {
 () => {
     // functional compoentn usage
     // functional compoentn usage
     const api = useRef();
     const api = useRef();
 
 
-    return (<Form getFormApi={formApi => api.current = formApi}>
-        <Form.Input field='a' />
-        <Button onClick={()=>{console.log(api)}}>log</Button>
-    </Form>)
-}
+    return (
+        <>
+            <Form getFormApi={formApi => api.current = formApi}>
+                <Form.Input field='a' />
+                <Button onClick={()=>{console.log(api);}}>log</Button>
+            </Form>
+        </>
+    );
+};
 ```
 ```
 ## Field Props
 ## Field Props
 
 

+ 226 - 209
content/input/form/index.md

@@ -82,8 +82,8 @@ import { IconHelpCircle } from '@douyinfe/semi-icons';
             <Form.Input field='UserName' label='用户名' style={{width:80}}/>
             <Form.Input field='UserName' label='用户名' style={{width:80}}/>
             <Form.Input field='Password' label={{ text: '密码', extra: <IconHelpCircle /> }} style={{width:176}}/>
             <Form.Input field='Password' label={{ text: '密码', extra: <IconHelpCircle /> }} style={{width:176}}/>
         </Form>
         </Form>
-    )
-}
+    );
+};
 ```
 ```
 
 
 #### 支持的其他写法
 #### 支持的其他写法
@@ -113,8 +113,8 @@ import { Form } from '@douyinfe/semi-ui';
             </>
             </>
         )} layout='horizontal' onValueChange={values=>console.log(values)}>
         )} layout='horizontal' onValueChange={values=>console.log(values)}>
         </Form>
         </Form>
-    )
-}
+    );
+};
 
 
 ```
 ```
 
 
@@ -144,8 +144,8 @@ import { Form } from '@douyinfe/semi-ui';
                 )
                 )
             }
             }
         </Form>
         </Form>
-    )
-}
+    );
+};
 ```
 ```
 
 
 #### 通过 props.component
 #### 通过 props.component
@@ -158,15 +158,15 @@ import { Form } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
     const fields = ({ formState, formApi, values }) => (
     const fields = ({ formState, formApi, values }) => (
-          <>
-              <Form.Input field='Role' style={{width:176}}/>
-              <Form.Input field='UserName' style={{width:80}}/>
-              <Form.Input field='Password' style={{width:176}}/>
-              <code style={{marginTop: 30}}>{JSON.stringify(formState)}</code>
-          </>
+        <>
+            <Form.Input field='Role' style={{width:176}}/>
+            <Form.Input field='UserName' style={{width:80}}/>
+            <Form.Input field='Password' style={{width:176}}/>
+            <code style={{marginTop: 30}}>{JSON.stringify(formState)}</code>
+        </>
     );
     );
-    return <Form component={fields} layout='horizontal' onValueChange={values=>console.log(values)}/>
-}
+    return <Form component={fields} layout='horizontal' onValueChange={values=>console.log(values)}/>;
+};
 ```
 ```
 
 
 ### 已支持的表单控件
 ### 已支持的表单控件
@@ -179,6 +179,8 @@ import { Form } from '@douyinfe/semi-ui';
 ```jsx live=true dir="column"
 ```jsx live=true dir="column"
 import React from 'react';
 import React from 'react';
 import { Form, Col, Row, Button } from '@douyinfe/semi-ui';
 import { Form, Col, Row, Button } from '@douyinfe/semi-ui';
+import { IconUpload } from '@douyinfe/semi-icons';
+
 class BasicDemoWithInit extends React.Component {
 class BasicDemoWithInit extends React.Component {
     constructor() {
     constructor() {
         super();
         super();
@@ -217,13 +219,13 @@ class BasicDemoWithInit extends React.Component {
                         fileInstance:  new File([new ArrayBuffer(2048)], 'jiafang2.jpeg', { type: 'image/jpeg' }),
                         fileInstance:  new File([new ArrayBuffer(2048)], 'jiafang2.jpeg', { type: 'image/jpeg' }),
                         url: 'https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/bf8647bffab13c38772c9ff94bf91a9d.jpg'
                         url: 'https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/bf8647bffab13c38772c9ff94bf91a9d.jpg'
                     }
                     }
-               ]
+                ]
             }
             }
         };
         };
         this.getFormApi = this.getFormApi.bind(this);
         this.getFormApi = this.getFormApi.bind(this);
     }
     }
 
 
-    getFormApi(formApi) { this.formApi = formApi }
+    getFormApi(formApi) { this.formApi = formApi; }
 
 
     render() {
     render() {
         const { Section, Input, InputNumber, AutoComplete, Select, TreeSelect, Cascader, DatePicker, TimePicker, TextArea, CheckboxGroup, Checkbox, RadioGroup, Radio, Slider, Rating, Switch, TagInput } = Form;
         const { Section, Input, InputNumber, AutoComplete, Select, TreeSelect, Cascader, DatePicker, TimePicker, TextArea, CheckboxGroup, Checkbox, RadioGroup, Radio, Slider, Rating, Switch, TagInput } = Form;
@@ -352,20 +354,20 @@ class BasicDemoWithInit extends React.Component {
                         </Col>
                         </Col>
                     </Row>
                     </Row>
                     <Row>
                     <Row>
-                      <Col span={24}>
-                        <Form.Upload
-                            field='files'
-                            label='证明文件(Upload)'
-                            action='//semi.design/api/upload'
-                        >
-                            <Button icon={<IconUpload />} theme="light">
-                                点击上传
-                            </Button>
-                        </Form.Upload>
-                      </Col>
+                        <Col span={24}>
+                            <Form.Upload
+                                field='files'
+                                label='证明文件(Upload)'
+                                action='//semi.design/api/upload'
+                            >
+                                <Button icon={<IconUpload />} theme="light">
+                                    点击上传
+                                </Button>
+                            </Form.Upload>
+                        </Col>
                     </Row>
                     </Row>
-                 </Section>
-                 <Section text='资源详情'>
+                </Section>
+                <Section text='资源详情'>
                     <Row>
                     <Row>
                         <Col span={12}>
                         <Col span={12}>
                             <TextArea
                             <TextArea
@@ -401,7 +403,7 @@ class BasicDemoWithInit extends React.Component {
                     </Row>
                     </Row>
                     <Row>
                     <Row>
                         <Col span={12}>
                         <Col span={12}>
-                        <TimePicker field="time" label='截止时刻(TimePicker)' style={{ width: '90%' }}/>
+                            <TimePicker field="time" label='截止时刻(TimePicker)' style={{ width: '90%' }}/>
                         </Col>
                         </Col>
                         <Col span={12}>
                         <Col span={12}>
                             <InputNumber field='number' label='申请数量(InputNumber)' initValue={20} style={style}/>
                             <InputNumber field='number' label='申请数量(InputNumber)' initValue={20} style={style}/>
@@ -409,15 +411,15 @@ class BasicDemoWithInit extends React.Component {
                     </Row>
                     </Row>
                     <Row>
                     <Row>
                         <Col span={12}>
                         <Col span={12}>
-                        <Slider field="range" label='资源使用报警阈值(%)(Slider)' initValue={10} style={{ width: '90%' }}/>
+                            <Slider field="range" label='资源使用报警阈值(%)(Slider)' initValue={10} style={{ width: '90%' }}/>
                         </Col>
                         </Col>
                         <Col span={12}>
                         <Col span={12}>
-                        <Switch field='switch' label='开关(Switch)'/>
+                            <Switch field='switch' label='开关(Switch)'/>
                         </Col>
                         </Col>
                     </Row>
                     </Row>
                     <Row>
                     <Row>
                         <Col span={12}>
                         <Col span={12}>
-                        <Rating field="rating" label='满意度(Rating)' initValue={2} style={{ width: '90%' }}/>
+                            <Rating field="rating" label='满意度(Rating)' initValue={2} style={{ width: '90%' }}/>
                         </Col>
                         </Col>
                     </Row>
                     </Row>
                 </Section>
                 </Section>
@@ -474,7 +476,7 @@ import { Form, Toast, Row, Col, TextArea } from '@douyinfe/semi-ui';
             )
             )
         }
         }
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 ### 表单布局
 ### 表单布局
@@ -487,28 +489,28 @@ import React from 'react';
 import { Form, Toast, Button } from '@douyinfe/semi-ui';
 import { Form, Toast, Button } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
- const handleSubmit = (values) => {
-   console.log(values);
-   Toast.info('表单已提交');
- }
- return (
-     <Form onSubmit={values => handleSubmit(values)} style={{width: 400}}>
-        {({formState, values, formApi}) => (
-            <>
-                <Form.Input field='phone' label='PhoneNumber' style={{ width: '100%' }} placeholder='Enter your phone number'></Form.Input>
-                <Form.Input field='password' label='Password' style={{ width: '100%' }} placeholder='Enter your password'></Form.Input>
-                <Form.Checkbox field='agree' noLabel>I have read and agree to the terms of service</Form.Checkbox>
-                <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
-                  <p>
-                      <span>Or</span><Button theme='borderless' style={{ color: 'rgb(101, 178, 252)', marginLeft: 10, cursor:'pointer' }}>Sign up</Button>
-                  </p>
-                  <Button disabled={!values.agree} htmlType='submit' type="tertiary">Log in</Button>
-                </div>
-            </>
-        )}
-    </Form>
- )
-}
+    const handleSubmit = (values) => {
+        console.log(values);
+        Toast.info('表单已提交');
+    };
+    return (
+        <Form onSubmit={values => handleSubmit(values)} style={{width: 400}}>
+            {({formState, values, formApi}) => (
+                <>
+                    <Form.Input field='phone' label='PhoneNumber' style={{ width: '100%' }} placeholder='Enter your phone number'></Form.Input>
+                    <Form.Input field='password' label='Password' style={{ width: '100%' }} placeholder='Enter your password'></Form.Input>
+                    <Form.Checkbox field='agree' noLabel>I have read and agree to the terms of service</Form.Checkbox>
+                    <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
+                        <p>
+                            <span>Or</span><Button theme='borderless' style={{ color: 'rgb(101, 178, 252)', marginLeft: 10, cursor:'pointer' }}>Sign up</Button>
+                        </p>
+                        <Button disabled={!values.agree} htmlType='submit' type="tertiary">Log in</Button>
+                    </div>
+                </>
+            )}
+        </Form>
+    );
+};
 ```
 ```
 
 
 -   水平布局:表单控件之间水平排列
 -   水平布局:表单控件之间水平排列
@@ -523,7 +525,7 @@ import { Form } from '@douyinfe/semi-ui';
         <Form.Input field='phone' label='PhoneNumber' placeholder='Enter your phone number'></Form.Input>
         <Form.Input field='phone' label='PhoneNumber' placeholder='Enter your phone number'></Form.Input>
         <Form.Input field='password' label='Password' placeholder='Enter your password'></Form.Input>
         <Form.Input field='password' label='Password' placeholder='Enter your password'></Form.Input>
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 -   labelPosition、labelAlign  
 -   labelPosition、labelAlign  
@@ -549,61 +551,61 @@ class BasicDemo extends React.Component {
     changeLabelPos(labelPosition) {
     changeLabelPos(labelPosition) {
         let labelWidth;
         let labelWidth;
         labelPosition === 'left' ? labelWidth = '180px' : labelWidth = 'auto';
         labelPosition === 'left' ? labelWidth = '180px' : labelWidth = 'auto';
-        this.setState({ labelPosition, labelWidth })
+        this.setState({ labelPosition, labelWidth });
     }
     }
 
 
-    changeLabelAlign(labelAlign) { this.setState({ labelAlign }) }
+    changeLabelAlign(labelAlign) { this.setState({ labelAlign }); }
 
 
     render() {
     render() {
         const { labelPosition, labelAlign, labelWidth } = this.state;
         const { labelPosition, labelAlign, labelWidth } = this.state;
         return (
         return (
             <>
             <>
-            <div style={{borderBottom: '1px solid var(--semi-color-border)', paddingBottom: 12 }}>
-                <Form.Label style={{ marginLeft: 10 }}>切换Label位置:</Form.Label>
-                <Select onChange={this.changeLabelPos} value={labelPosition} style={{width: 200}} insetLabel='labelPosition'>
-                    <Select.Option value='top'>top</Select.Option>
-                    <Select.Option value='left'>left</Select.Option>
-                </Select>
-                <Form.Label style={{ marginLeft: 10 }}>切换Label文本对齐方向:</Form.Label>
-                <Select onChange={this.changeLabelAlign} value={labelAlign} style={{width: 200}} insetLabel='labelAlign'>
-                    <Select.Option value='left'>left</Select.Option>
-                    <Select.Option value='right'>right</Select.Option>
-                </Select>
-            </div>
-            <Form
-                labelPosition={labelPosition}
-                labelWidth={labelWidth}
-                labelAlign={labelAlign}
-                key={labelPosition + labelAlign}
-                style={{ padding: '10px', width: 600 }}>
-                      <Form.Input
-                          field="input"
-                          label="手机号码"
-                          trigger='blur'
-                          style={{width: 200}}
-                          rules={[
-                              { required: true, message: 'required error' },
-                              { type: 'string', message: 'type error' },
-                              { validator: (rule, value) => value === 'muji', message: 'not muji' }
-                          ]}
-                      />
-                      <Form.Switch label="是否同意" field='agree'/>
-                      <Form.InputNumber field='price' label='价格' style={{width: 200}}/>
-                      <Form.Select label="姓名" field='name' style={{width: 200}}>
-                          <Form.Select.Option value="mike">mike</Form.Select.Option>
-                          <Form.Select.Option value="jane">jane</Form.Select.Option>
-                          <Form.Select.Option value="kate">kate</Form.Select.Option>
-                      </Form.Select>
-                      <Form.CheckboxGroup label="角色" field='role' direction='horizontal'>
-                          <Form.Checkbox value="admin">admin</Form.Checkbox>
-                          <Form.Checkbox value="user">user</Form.Checkbox>
-                          <Form.Checkbox value="guest">guest</Form.Checkbox>
-                          <Form.Checkbox value="root">root</Form.Checkbox>
-                      </Form.CheckboxGroup>
-                      <Form.RadioGroup field="性别">
-                          <Form.Radio value="1">man</Form.Radio>
-                          <Form.Radio value="2">woman</Form.Radio>
-                      </Form.RadioGroup>
+                <div style={{borderBottom: '1px solid var(--semi-color-border)', paddingBottom: 12 }}>
+                    <Form.Label style={{ marginLeft: 10 }}>切换Label位置:</Form.Label>
+                    <Select onChange={this.changeLabelPos} value={labelPosition} style={{width: 200}} insetLabel='labelPosition'>
+                        <Select.Option value='top'>top</Select.Option>
+                        <Select.Option value='left'>left</Select.Option>
+                    </Select>
+                    <Form.Label style={{ marginLeft: 10 }}>切换Label文本对齐方向:</Form.Label>
+                    <Select onChange={this.changeLabelAlign} value={labelAlign} style={{width: 200}} insetLabel='labelAlign'>
+                        <Select.Option value='left'>left</Select.Option>
+                        <Select.Option value='right'>right</Select.Option>
+                    </Select>
+                </div>
+                <Form
+                    labelPosition={labelPosition}
+                    labelWidth={labelWidth}
+                    labelAlign={labelAlign}
+                    key={labelPosition + labelAlign}
+                    style={{ padding: '10px', width: 600 }}>
+                    <Form.Input
+                        field="input"
+                        label="手机号码"
+                        trigger='blur'
+                        style={{width: 200}}
+                        rules={[
+                            { required: true, message: 'required error' },
+                            { type: 'string', message: 'type error' },
+                            { validator: (rule, value) => value === 'muji', message: 'not muji' }
+                        ]}
+                    />
+                    <Form.Switch label="是否同意" field='agree'/>
+                    <Form.InputNumber field='price' label='价格' style={{width: 200}}/>
+                    <Form.Select label="姓名" field='name' style={{width: 200}}>
+                        <Form.Select.Option value="mike">mike</Form.Select.Option>
+                        <Form.Select.Option value="jane">jane</Form.Select.Option>
+                        <Form.Select.Option value="kate">kate</Form.Select.Option>
+                    </Form.Select>
+                    <Form.CheckboxGroup label="角色" field='role' direction='horizontal'>
+                        <Form.Checkbox value="admin">admin</Form.Checkbox>
+                        <Form.Checkbox value="user">user</Form.Checkbox>
+                        <Form.Checkbox value="guest">guest</Form.Checkbox>
+                        <Form.Checkbox value="root">root</Form.Checkbox>
+                    </Form.CheckboxGroup>
+                    <Form.RadioGroup field="性别">
+                        <Form.Radio value="1">man</Form.Radio>
+                        <Form.Radio value="2">woman</Form.Radio>
+                    </Form.RadioGroup>
                 </Form>
                 </Form>
             </>
             </>
         );
         );
@@ -682,7 +684,7 @@ import { Form, Col, Row } from '@douyinfe/semi-ui';
             </Col>
             </Col>
         </Row>
         </Row>
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 ### 表单分组
 ### 表单分组
@@ -691,7 +693,7 @@ import { Form, Col, Row } from '@douyinfe/semi-ui';
 
 
 ```jsx live=true dir="column"
 ```jsx live=true dir="column"
 import React from 'react';
 import React from 'react';
-import { Form, Button } from '@douyinfe/semi-ui';
+import { Form, Button, Radio } from '@douyinfe/semi-ui';
     
     
 () => {
 () => {
     const { Section, Input, DatePicker, TimePicker, Select, Switch, InputNumber, Checkbox, CheckboxGroup, RadioGroup } = Form;
     const { Section, Input, DatePicker, TimePicker, Select, Switch, InputNumber, Checkbox, CheckboxGroup, RadioGroup } = Form;
@@ -702,16 +704,16 @@ import { Form, Button } from '@douyinfe/semi-ui';
             </Section>
             </Section>
             <Section text={'合格标准'} >
             <Section text={'合格标准'} >
                 <div style={{display:'flex'}}>
                 <div style={{display:'flex'}}>
-                   <InputNumber field='pass' initValue={60} style={{width:80}} label={{text:'及格正确率', required: true}}/>
-                   <InputNumber field='number' initValue={10} style={{width:80}} label={{text:'合格人数', required: true}}/>
+                    <InputNumber field='pass' initValue={60} style={{width:80}} label={{text:'及格正确率', required: true}}/>
+                    <InputNumber field='number' initValue={10} style={{width:80}} label={{text:'合格人数', required: true}}/>
                 </div>
                 </div>
             </Section>
             </Section>
             <Section text={'考试时间'} >
             <Section text={'考试时间'} >
-               <DatePicker field='date' type='dateTime' initValue={new Date()} style={{width:272}} label={{text:'开始时间', required: true}}/>
-               <div  style={{display:'flex'}}>
-                 <Input field='time' label='考试时长' style={{ width: 176 }} initValue={'60'} addonAfter='分钟'/>
-                 <Checkbox initValue={true} noLabel field='auto' style={{paddingTop: 30, marginLeft: 12}}>到时间自动交卷</Checkbox>
-               </div>
+                <DatePicker field='date' type='dateTime' initValue={new Date()} style={{width:272}} label={{text:'开始时间', required: true}}/>
+                <div  style={{display:'flex'}}>
+                    <Input field='time' label='考试时长' style={{ width: 176 }} initValue={'60'} addonAfter='分钟'/>
+                    <Checkbox initValue={true} noLabel field='auto' style={{paddingTop: 30, marginLeft: 12}}>到时间自动交卷</Checkbox>
+                </div>
                 <RadioGroup
                 <RadioGroup
                     field="type"
                     field="type"
                     label='有效时间'
                     label='有效时间'
@@ -732,10 +734,10 @@ import { Form, Button } from '@douyinfe/semi-ui';
                 >
                 >
                     <Radio value="always">自动放出</Radio>
                     <Radio value="always">自动放出</Radio>
                     <Radio value="user">
                     <Radio value="user">
-                      <div style={{display:'inline-block'}}>
-                      自定义放出时间
-                      <Form.DatePicker type='dateTimeRange' noLabel field='customTime' style={{width:464, display: 'inline-block'}}/>
-                      </div>
+                        <div style={{display:'inline-block'}}>
+                            自定义放出时间
+                            <Form.DatePicker type='dateTimeRange' noLabel field='customTime' style={{width:464, display: 'inline-block'}}/>
+                        </div>
                     </Radio>
                     </Radio>
                 </RadioGroup>
                 </RadioGroup>
             </Section>
             </Section>
@@ -744,11 +746,11 @@ import { Form, Button } from '@douyinfe/semi-ui';
                     <Switch field='open'  label={{ text:'对外开放', required: true }} checkedText='开' uncheckedText='关'></Switch>
                     <Switch field='open'  label={{ text:'对外开放', required: true }} checkedText='开' uncheckedText='关'></Switch>
                 </div>
                 </div>
                 <Select
                 <Select
-                  field='users'
-                  label={{ text:'考生', required: true }}
-                  style={{width: 560}}
-                  multiple
-                  initValue={['1','2','3', '4']}
+                    field='users'
+                    label={{ text:'考生', required: true }}
+                    style={{width: 560}}
+                    multiple
+                    initValue={['1','2','3', '4']}
                 >
                 >
                     <Select.Option value='1'>曲晨一</Select.Option>
                     <Select.Option value='1'>曲晨一</Select.Option>
                     <Select.Option value='2'>夏可曼</Select.Option>
                     <Select.Option value='2'>夏可曼</Select.Option>
@@ -759,8 +761,8 @@ import { Form, Button } from '@douyinfe/semi-ui';
             <Button type='primary' theme='solid' style={{ width: 120, marginTop: 12, marginRight: 4 }}>创建考试</Button>
             <Button type='primary' theme='solid' style={{ width: 120, marginTop: 12, marginRight: 4 }}>创建考试</Button>
             <Button style={{marginTop: 12}}>预览</Button>
             <Button style={{marginTop: 12}}>预览</Button>
         </Form>
         </Form>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### wrapperCol / labelCol
 ### wrapperCol / labelCol
@@ -787,7 +789,7 @@ import { Form } from '@douyinfe/semi-ui';
             <Form.Select.Option value="ued">设计</Form.Select.Option>
             <Form.Select.Option value="ued">设计</Form.Select.Option>
         </Form.Select>
         </Form.Select>
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 ### 隐藏Label
 ### 隐藏Label
@@ -808,7 +810,7 @@ import { Form } from '@douyinfe/semi-ui';
             <Form.Select.Option value="ued">设计</Form.Select.Option>
             <Form.Select.Option value="ued">设计</Form.Select.Option>
         </Form.Select>
         </Form.Select>
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 ### 导出 Label、ErrorMessage 使用
 ### 导出 Label、ErrorMessage 使用
@@ -869,7 +871,7 @@ class AssistComponent extends React.Component {
                     </div>
                     </div>
                 </Form.Slot>
                 </Form.Slot>
             </Form>
             </Form>
-    )}
+        );}
 }
 }
 ```
 ```
 
 
@@ -893,7 +895,7 @@ import { Form } from '@douyinfe/semi-ui';
         <Form.DatePicker field="date" label='开始日期' style={{ width: '250px' }} initValue={new Date()}>
         <Form.DatePicker field="date" label='开始日期' style={{ width: '250px' }} initValue={new Date()}>
         </Form.DatePicker>
         </Form.DatePicker>
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 ### 使用 helpText、extraText 放置提示信息
 ### 使用 helpText、extraText 放置提示信息
@@ -912,7 +914,7 @@ class HelpAndExtra extends React.Component {
         this.state = {
         this.state = {
             helpText: '',
             helpText: '',
             validateStatus: 'default'
             validateStatus: 'default'
-        }
+        };
         this.formApi = null;
         this.formApi = null;
         this.getFormApi = this.getFormApi.bind(this);
         this.getFormApi = this.getFormApi.bind(this);
         this.validate = this.validate.bind(this);
         this.validate = this.validate.bind(this);
@@ -925,11 +927,11 @@ class HelpAndExtra extends React.Component {
 
 
     validate(val, values) {
     validate(val, values) {
         if (!val) {
         if (!val) {
-            this.setState({ validateStatus: 'error' })
+            this.setState({ validateStatus: 'error' });
             return <span>密码不能为空</span>;
             return <span>密码不能为空</span>;
         } else if (val && val.length <= 3) {
         } else if (val && val.length <= 3) {
             this.setState({
             this.setState({
-                helpText: <span style={{ color: 'var(--semi-color-warning)' }}>'密码强度:弱'</span>,
+                helpText: <span style={{ color: 'var(--semi-color-warning)' }}>密码强度:弱</span>,
                 validateStatus: 'warning'
                 validateStatus: 'warning'
             }); // show helpText
             }); // show helpText
             return ''; // validate pass
             return ''; // validate pass
@@ -963,15 +965,19 @@ class HelpAndExtra extends React.Component {
                     field="Password"
                     field="Password"
                     validateStatus={validateStatus}
                     validateStatus={validateStatus}
                     helpText={helpText}
                     helpText={helpText}
-                    extraText={<div style={{
-                        color: 'rgba(var(--semi-blue-5), 1)',
-                        fontSize: 14,
-                        userSelect: 'none',
-                        cursor: 'pointer'
-                    }}
-                    onClick={this.random}>
-                        没有想到合适的密码?点击随机生成一个
-                    </div>}
+                    extraText={
+                        <div 
+                            style={{
+                                color: 'rgba(var(--semi-blue-5), 1)',
+                                fontSize: 14,
+                                userSelect: 'none',
+                                cursor: 'pointer'
+                            }}
+                            onClick={this.random}
+                        >
+                            没有想到合适的密码?点击随机生成一个
+                        </div>
+                    }
                 ></Form.Input>
                 ></Form.Input>
             </Form>
             </Form>
         );
         );
@@ -988,26 +994,26 @@ import React from 'react';
 import { Form } from '@douyinfe/semi-ui';
 import { Form } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const options = [
-    { label: '飞书通知', value: 'lark' },
-    { label: '邮件通知', value: 'email' },
-    { label: '顶部横幅通知', value: 'notification' }
-  ];
-  const notifyText = '未勾选时,默认为红点提醒,消息默认进入收件人消息列表。对于重要通知,可同时勾选相应的通知方式。';
-  const forceText = '对于对话框通知,可指定该消息必须在指定时长后才可置为已读。';
-  return (
-    <Form extraTextPosition='middle'>
-      <Form.CheckboxGroup
-        direction='horizontal'
-        field='notify'
-        label='通知方式'
-        extraText={notifyText}
-        options={options}
-      />
-      <Form.InputNumber field='force' label='强制读取(可选)' placeholder='秒' extraText={forceText} extraTextPosition='bottom'/>
-    </Form>
-  );
-}
+    const options = [
+        { label: '飞书通知', value: 'lark' },
+        { label: '邮件通知', value: 'email' },
+        { label: '顶部横幅通知', value: 'notification' }
+    ];
+    const notifyText = '未勾选时,默认为红点提醒,消息默认进入收件人消息列表。对于重要通知,可同时勾选相应的通知方式。';
+    const forceText = '对于对话框通知,可指定该消息必须在指定时长后才可置为已读。';
+    return (
+        <Form extraTextPosition='middle'>
+            <Form.CheckboxGroup
+                direction='horizontal'
+                field='notify'
+                label='通知方式'
+                extraText={notifyText}
+                options={options}
+            />
+            <Form.InputNumber field='force' label='强制读取(可选)' placeholder='秒' extraText={forceText} extraTextPosition='bottom'/>
+        </Form>
+    );
+};
 
 
 ```
 ```
 
 
@@ -1038,7 +1044,7 @@ import { Form, Button } from '@douyinfe/semi-ui';
         <Form.Input field='姓名' trigger='blur' initValue='Semi'></Form.Input>
         <Form.Input field='姓名' trigger='blur' initValue='Semi'></Form.Input>
         <Button htmlType='submit'>提交</Button>
         <Button htmlType='submit'>提交</Button>
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 ### Modal 弹出层中的表单
 ### Modal 弹出层中的表单
@@ -1055,7 +1061,7 @@ class ModalFormDemo extends React.Component {
         super(props);
         super(props);
         this.state = {
         this.state = {
             visible: false,
             visible: false,
-        }
+        };
         this.showDialog = this.showDialog.bind(this);
         this.showDialog = this.showDialog.bind(this);
         this.handleOk = this.handleOk.bind(this);
         this.handleOk = this.handleOk.bind(this);
         this.handleCancel = this.handleCancel.bind(this);
         this.handleCancel = this.handleCancel.bind(this);
@@ -1069,15 +1075,15 @@ class ModalFormDemo extends React.Component {
     handleOk() {
     handleOk() {
         this.formApi.validate()
         this.formApi.validate()
             .then((values) => {
             .then((values) => {
-                console.log(values)
+                console.log(values);
             })
             })
             .catch((errors) => {
             .catch((errors) => {
-                console.log(errors)
+                console.log(errors);
             });
             });
     }
     }
 
 
     handleCancel() {
     handleCancel() {
-        this.setState({ visible: false })
+        this.setState({ visible: false });
     }
     }
 
 
     getFormApi(formApi) {
     getFormApi(formApi) {
@@ -1186,11 +1192,11 @@ class BasicDemoWithInit extends React.Component {
         this.getFormApi = this.getFormApi.bind(this);
         this.getFormApi = this.getFormApi.bind(this);
     }
     }
 
 
-    getFormApi(formApi) { this.formApi = formApi }
+    getFormApi(formApi) { this.formApi = formApi; }
 
 
     render() {
     render() {
         const { Select, Input } = Form;
         const { Select, Input } = Form;
-        const style = { width: '100%' }
+        const style = { width: '100%' };
         return (
         return (
             <Form initValues={this.state.initValues}>
             <Form initValues={this.state.initValues}>
                 <Input
                 <Input
@@ -1212,7 +1218,7 @@ class BasicDemoWithInit extends React.Component {
                 </Select>
                 </Select>
                 <Button htmlType='submit'>提交</Button>
                 <Button htmlType='submit'>提交</Button>
             </Form>
             </Form>
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -1334,7 +1340,7 @@ class FieldLevelValidateDemo extends React.Component {
 
 
     validateName(val) {
     validateName(val) {
         if (!val) {
         if (!val) {
-             return '【sync】can\'t be empty';
+            return '【sync】can\'t be empty';
         } else if (val.length <= 5) {
         } else if (val.length <= 5) {
             return '【sync】must more than 5';
             return '【sync】must more than 5';
         }
         }
@@ -1434,7 +1440,7 @@ import { Form, Button } from '@douyinfe/semi-ui';
             </React.Fragment>
             </React.Fragment>
         )}
         )}
     </Form>
     </Form>
-)
+);
 ```
 ```
 
 
 #### 数组类动态增删表单项-使用 ArrayField
 #### 数组类动态增删表单项-使用 ArrayField
@@ -1446,6 +1452,7 @@ ArrayField 自带了 add、remove、addWithInitValue 等 api 用来执行新增
 ```jsx live=true dir="column" hideInDSM
 ```jsx live=true dir="column" hideInDSM
 import React from 'react';
 import React from 'react';
 import { ArrayField, TextArea, Form, Button, useFormState } from '@douyinfe/semi-ui';
 import { ArrayField, TextArea, Form, Button, useFormState } from '@douyinfe/semi-ui';
+import { IconPlusCircle, IconMinusCircle } from '@douyinfe/semi-icons';
 
 
 class ArrayFieldDemo extends React.Component {
 class ArrayFieldDemo extends React.Component {
     constructor() {
     constructor() {
@@ -1455,7 +1462,7 @@ class ArrayFieldDemo extends React.Component {
                 { name: '脸部贴纸', type: '2D' },
                 { name: '脸部贴纸', type: '2D' },
                 { name: '前景贴纸', type: '3D' },
                 { name: '前景贴纸', type: '3D' },
             ]
             ]
-        }
+        };
     }
     }
 
 
     render() {
     render() {
@@ -1472,7 +1479,7 @@ class ArrayFieldDemo extends React.Component {
                     {({ add, arrayFields, addWithInitValue }) => (
                     {({ add, arrayFields, addWithInitValue }) => (
                         <React.Fragment>
                         <React.Fragment>
                             <Button onClick={add} icon={<IconPlusCircle />} theme='light'>新增空白行</Button>
                             <Button onClick={add} icon={<IconPlusCircle />} theme='light'>新增空白行</Button>
-                            <Button  icon={<IconPlusCircle />} onClick={() => {addWithInitValue({name: '自定义贴纸', type: '2D'})}} style={{marginLeft:8}}>新增带有初始值的行</Button>
+                            <Button  icon={<IconPlusCircle />} onClick={() => {addWithInitValue({name: '自定义贴纸', type: '2D'});}} style={{marginLeft:8}}>新增带有初始值的行</Button>
                             {
                             {
                                 arrayFields.map(({ field, key, remove }, i) => (
                                 arrayFields.map(({ field, key, remove }, i) => (
                                     <div key={key} style={{ width: 1000, display: 'flex' }}>
                                     <div key={key} style={{ width: 1000, display: 'flex' }}>
@@ -1537,7 +1544,7 @@ class UseFromApiDemo extends React.Component {
                 <Form.Input field='name' initValue='mike'></Form.Input>
                 <Form.Input field='name' initValue='mike'></Form.Input>
                 <ComponentUsingFormApi />
                 <ComponentUsingFormApi />
             </Form>
             </Form>
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -1568,7 +1575,7 @@ class UseFromStateDemo extends React.Component {
                 <ComponentUsingFormState />
                 <ComponentUsingFormState />
             </Form>
             </Form>
         );
         );
-  }
+    }
 }
 }
 ```
 ```
 
 
@@ -1597,7 +1604,7 @@ class UseFieldApiDemo extends React.Component {
                 <Form.Input field='name' initValue='mike'></Form.Input>
                 <Form.Input field='name' initValue='mike'></Form.Input>
                 <ComponentUsingFieldApi />
                 <ComponentUsingFieldApi />
             </Form>
             </Form>
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -1611,28 +1618,28 @@ import React from 'react';
 import { useFieldState, Form } from '@douyinfe/semi-ui';
 import { useFieldState, Form } from '@douyinfe/semi-ui';
 
 
 class UseFieldStateDemo extends React.Component {
 class UseFieldStateDemo extends React.Component {
-  constructor() {
-    super();
-  }
-  render() {
-    const ComponentUsingFieldState = props => {
-        const fieldState = useFieldState(props.field);
+    constructor() {
+        super();
+    }
+    render() {
+        const ComponentUsingFieldState = props => {
+            const fieldState = useFieldState(props.field);
+            return (
+                <>
+                    <span>【{props.field}】FieldState read by 【useFieldState】:</span>
+                    <code>{JSON.stringify(fieldState)}</code>
+                </>
+            );
+        };
         return (
         return (
-            <>
-              <span>【{props.field}】FieldState read by 【useFieldState】:</span>
-              <code>{JSON.stringify(fieldState)}</code>
-            </>
+            <Form>
+                <Form.Input field='name' initValue='mike'></Form.Input>
+                <ComponentUsingFieldState field='name' />
+                <Form.Input field='country' initValue='china'></Form.Input>
+                <ComponentUsingFieldState field='country' />
+            </Form>
         );
         );
-    };
-    return (
-       <Form>
-            <Form.Input field='name' initValue='mike'></Form.Input>
-            <ComponentUsingFieldState field='name' />
-            <Form.Input field='country' initValue='china'></Form.Input>
-            <ComponentUsingFieldState field='country' />
-      </Form>
-    )
-  }
+    }
 }
 }
 ```
 ```
 
 
@@ -1799,7 +1806,7 @@ class withFieldDemo2 extends React.Component {
                     />
                     />
                 </div>
                 </div>
             );
             );
-        }
+        };
         const CustomField = withField(MyComponent, { valueKey: 'value', onKeyChangeFnName: 'onChange' });
         const CustomField = withField(MyComponent, { valueKey: 'value', onKeyChangeFnName: 'onChange' });
 
 
         const ComponentUsingFormState = () => {
         const ComponentUsingFormState = () => {
@@ -1902,6 +1909,9 @@ FormState 存储了所有 Form 内部的状态值,包括各表单控件的值
 -   通过[withFormApi](#HOC-withFormApi) HOC
 -   通过[withFormApi](#HOC-withFormApi) HOC
 
 
 ```jsx
 ```jsx
+import React from 'react';
+import { Form, Button } from '@douyinfe/semi-ui';
+
 class FormApiDemo extends React.Component {
 class FormApiDemo extends React.Component {
     constructor() {
     constructor() {
         super();
         super();
@@ -1922,27 +1932,34 @@ class FormApiDemo extends React.Component {
     }
     }
 
 
     render() {
     render() {
-        return <>
-            // 通过getFormApi回调获取并保存formApi
-            <Form getFormApi={this.getFormApi} />
-            // 通过ref直接获取Form组件实例上的formApi
-            <Form ref={this.formBRef} />
-            <Button onClick={()=>this.changeValues()}>Change</Button>
-        </>
+        return (
+            <>
+                {/* 通过getFormApi回调获取并保存formApi */}
+                <Form getFormApi={this.getFormApi} />
+                {/* 通过ref直接获取Form组件实例上的formApi */}
+                <Form ref={this.formBRef} />
+                <Button onClick={()=>this.changeValues()}>Change</Button>
+            </>
+        );
     }
     }
 }
 }
 ```
 ```
 
 
 ```jsx
 ```jsx
+import React from 'react';
+import { Form, Button } from '@douyinfe/semi-ui';
+
 () => {
 () => {
     // 函数式组件通过useRef存储formApi
     // 函数式组件通过useRef存储formApi
     const api = useRef();
     const api = useRef();
 
 
-    return (<Form getFormApi={formApi => api.current = formApi}>
-        <Form.Input field='a' />
-        <Button onClick={()=>{console.log(api)}}>log</Button>
-    </Form>)
-}
+    return (
+        <Form getFormApi={formApi => api.current = formApi}>
+            <Form.Input field='a' />
+            <Button onClick={()=>{console.log(api);}}>log</Button>
+        </Form>
+    );
+};
 ```
 ```
 
 
 ## Field Props
 ## Field Props

+ 184 - 184
content/input/input/index-en-US.md

@@ -25,8 +25,8 @@ import React from 'react';
 import { Input } from '@douyinfe/semi-ui';
 import { Input } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Input defaultValue='hi' autofocus></Input>
-)
+    <Input defaultValue='hi' autofocus></Input>
+);
 ```
 ```
 
 
 ### Size
 ### Size
@@ -38,14 +38,14 @@ import React from 'react';
 import { Input } from '@douyinfe/semi-ui';
 import { Input } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <>
-    <Input placeholder='large' size='large'></Input>
-    <br/><br/>
-    <Input placeholder='default'></Input>
-    <br/><br/>
-    <Input placeholder='small' size='small'></Input>
-  </>
-)
+    <>
+        <Input placeholder='large' size='large'></Input>
+        <br/><br/>
+        <Input placeholder='default'></Input>
+        <br/><br/>
+        <Input placeholder='small' size='small'></Input>
+    </>
+);
 ```
 ```
 
 
 ### Disabled
 ### Disabled
@@ -55,13 +55,13 @@ import React from 'react';
 import { Input } from '@douyinfe/semi-ui';
 import { Input } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <>
-    <Input defaultValue='enabled input'></Input>
-    <br/>
-    <br/>
-    <Input disabled defaultValue='disbaled input'></Input>
-  </>
-)
+    <>
+        <Input defaultValue='enabled input'></Input>
+        <br/>
+        <br/>
+        <Input disabled defaultValue='disbaled input'></Input>
+    </>
+);
 ```
 ```
 
 
 ### Prefix/Suffix
 ### Prefix/Suffix
@@ -72,16 +72,16 @@ import { Input, Typography } from '@douyinfe/semi-ui';
 import { IconSearch } from '@douyinfe/semi-icons';
 import { IconSearch } from '@douyinfe/semi-icons';
 
 
 () => (
 () => (
-  <>
-    <Input prefix={<IconSearch />} showClear></Input>
-    <br/><br/>
-    <Input prefix="Prefix" showClear></Input>
-    <br/><br/>
-    <Input suffix={<IconSearch />} showClear></Input>
-    <br/><br/>
-    <Input suffix={<Typography.Text strong type='secondary' style={{ marginRight: 8 }}>Suffix</Typography.Text>} showClear></Input>
-  </>
-)
+    <>
+        <Input prefix={<IconSearch />} showClear></Input>
+        <br/><br/>
+        <Input prefix="Prefix" showClear></Input>
+        <br/><br/>
+        <Input suffix={<IconSearch />} showClear></Input>
+        <br/><br/>
+        <Input suffix={<Typography.Text strong type='secondary' style={{ marginRight: 8 }}>Suffix</Typography.Text>} showClear></Input>
+    </>
+);
 ```
 ```
 
 
 ### Addon
 ### Addon
@@ -90,8 +90,8 @@ import { IconSearch } from '@douyinfe/semi-icons';
 import React from 'react';
 import React from 'react';
 import { Input } from '@douyinfe/semi-ui';
 import { Input } from '@douyinfe/semi-ui';
 () => (
 () => (
-  <Input addonBefore="http://" addonAfter=".com" />
-)
+    <Input addonBefore="http://" addonAfter=".com" />
+);
 ```
 ```
 
 
 ### Clear Icon
 ### Clear Icon
@@ -103,8 +103,8 @@ import React from 'react';
 import { Input } from '@douyinfe/semi-ui';
 import { Input } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Input showClear defaultValue='click to clear'></Input>
-)
+    <Input showClear defaultValue='click to clear'></Input>
+);
 ```
 ```
 
 
 ### Password Mode
 ### Password Mode
@@ -116,8 +116,8 @@ import React from 'react';
 import { Input } from '@douyinfe/semi-ui';
 import { Input } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Input mode="password" defaultValue="123456"></Input>
-)
+    <Input mode="password" defaultValue="123456"></Input>
+);
 ```
 ```
 
 
 ### Validation
 ### Validation
@@ -128,14 +128,14 @@ You can set different `validateStatus` to provide style feedback to the user.
 import React from 'react';
 import React from 'react';
 import { Input } from '@douyinfe/semi-ui';
 import { Input } from '@douyinfe/semi-ui';
 () => (
 () => (
-  <>
-    <Input defaultValue='ies' validateStatus='warning'></Input>
-    <br/><br/>
-    <Input defaultValue='ies' validateStatus='error'></Input>
-    <br/><br/>
-    <Input defaultValue='ies'></Input>
-  </>
-)
+    <>
+        <Input defaultValue='ies' validateStatus='warning'></Input>
+        <br/><br/>
+        <Input defaultValue='ies' validateStatus='error'></Input>
+        <br/><br/>
+        <Input defaultValue='ies'></Input>
+    </>
+);
 ```
 ```
 
 
 ### Controlled Component
 ### Controlled Component
@@ -148,26 +148,26 @@ import { Input } from '@douyinfe/semi-ui';
 
 
 class InputDemo extends React.Component {
 class InputDemo extends React.Component {
     constructor() {
     constructor() {
-        super()
+        super();
         this.state = {
         this.state = {
             value: 'controlInput',
             value: 'controlInput',
             value2: 'input'
             value2: 'input'
-        }
+        };
         this.onChange = this.onChange.bind(this);
         this.onChange = this.onChange.bind(this);
     }
     }
     onChange(value, e) {
     onChange(value, e) {
-      console.log(value)
-      this.setState({ value });
+        console.log(value);
+        this.setState({ value });
     }
     }
     render() {
     render() {
         return (
         return (
             <>
             <>
-              <Input
-                  value={this.state.value}
-                  onChange={this.onChange}>
-              </Input>
+                <Input
+                    value={this.state.value}
+                    onChange={this.onChange}>
+                </Input>
             </>
             </>
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -185,93 +185,93 @@ import React from 'react';
 import { Input, InputGroup, InputNumber, Select, AutoComplete, DatePicker } from '@douyinfe/semi-ui';
 import { Input, InputGroup, InputNumber, Select, AutoComplete, DatePicker } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
-    <InputGroup>
-      <Input placeholder="Name" style={{ width: 100 }} />
-      <InputNumber placeholder="Score" style={{ width: 140 }} />
-    </InputGroup>
-    <br/><br/><br/>
-    <InputGroup size={'small'}>
-      <Select style={{ width: '100px' }} defaultValue='home'>
-          <Select.Option value='home'>Home</Select.Option>
-          <Select.Option value='work'>Work</Select.Option>
-      </Select>
-      <AutoComplete
-          data={['Beijing Haidian']}
-          placeholder='Address: '
-          style={{ width: 180 }}
-      >
-      </AutoComplete>
-    </InputGroup>
-    <br/><br/><br/>
-    <InputGroup size={'small'}>
-      <Select style={{ width: '100px' }} defaultValue='signup'>
-          <Select.Option value='signup'>Sign Up</Select.Option>
-          <Select.Option value='signin'>Sign In</Select.Option>
-      </Select>
-      <Input placeholder="Email" style={{ width: 180 }} />
-    </InputGroup>
-    <br/><br/><br/>
-    <InputGroup size={'small'}>
-      <Input placeholder="Name" style={{ width: 100 }} />
-      <DatePicker placeholder="Birthday" />
-    </InputGroup>
-  </div>
-)
+    <div>
+        <InputGroup>
+            <Input placeholder="Name" style={{ width: 100 }} />
+            <InputNumber placeholder="Score" style={{ width: 140 }} />
+        </InputGroup>
+        <br/><br/><br/>
+        <InputGroup size={'small'}>
+            <Select style={{ width: '100px' }} defaultValue='home'>
+                <Select.Option value='home'>Home</Select.Option>
+                <Select.Option value='work'>Work</Select.Option>
+            </Select>
+            <AutoComplete
+                data={['Beijing Haidian']}
+                placeholder='Address: '
+                style={{ width: 180 }}
+            >
+            </AutoComplete>
+        </InputGroup>
+        <br/><br/><br/>
+        <InputGroup size={'small'}>
+            <Select style={{ width: '100px' }} defaultValue='signup'>
+                <Select.Option value='signup'>Sign Up</Select.Option>
+                <Select.Option value='signin'>Sign In</Select.Option>
+            </Select>
+            <Input placeholder="Email" style={{ width: 180 }} />
+        </InputGroup>
+        <br/><br/><br/>
+        <InputGroup size={'small'}>
+            <Input placeholder="Name" style={{ width: 100 }} />
+            <DatePicker placeholder="Birthday" />
+        </InputGroup>
+    </div>
+);
 ```
 ```
 
 
 ```jsx live=true
 ```jsx live=true
 import React from 'react';
 import React from 'react';
-import { Input, InputGroup, Select, Cascader } from '@douyinfe/semi-ui';
+import { Input, InputGroup, Select, Cascader, TreeSelect } from '@douyinfe/semi-ui';
 () => {
 () => {
-  const treeData = [
-    {
-        label: 'Asia',
-        value: 'Asia',
-        key: '0',
-        children: [
-            {
-                label: 'China',
-                value: 'China',
-                key: '0-0',
-                children: [
-                    { label: 'Beijing', value: 'Beijing', key: '0-0-0' },
-                    { label: 'Shanghai', value: 'Shanghai', key: '0-0-1' },
-                ],
-            },
-        ],
-    },
-    { label: 'North America', value: 'North America', key: '1' }
-  ];
-  return (
-    <>
-      <InputGroup>
-        <Select style={{ width: 100 }} defaultValue='from'>
-          <Select.Option value='from'>From: </Select.Option>
-          <Select.Option value='to'>To: </Select.Option>
-        </Select>
-        <TreeSelect
-          style={{ width: 220 }}
-          treeData={treeData}
-          placeholder="Please select"
-        />
-      </InputGroup>
-      <br/><br/>
-
-      <InputGroup>
-          <Select style={{ width: 100 }} defaultValue='from'>
-          <Select.Option value='from'>From: </Select.Option>
-          <Select.Option value='to'>To: </Select.Option>
-        </Select>
-          <Cascader
-              style={{ width: 220 }}
-              treeData={treeData}
-              placeholder="Please select"
-          />
-      </InputGroup>
-    </>
-  )
-}
+    const treeData = [
+        {
+            label: 'Asia',
+            value: 'Asia',
+            key: '0',
+            children: [
+                {
+                    label: 'China',
+                    value: 'China',
+                    key: '0-0',
+                    children: [
+                        { label: 'Beijing', value: 'Beijing', key: '0-0-0' },
+                        { label: 'Shanghai', value: 'Shanghai', key: '0-0-1' },
+                    ],
+                },
+            ],
+        },
+        { label: 'North America', value: 'North America', key: '1' }
+    ];
+    return (
+        <>
+            <InputGroup>
+                <Select style={{ width: 100 }} defaultValue='from'>
+                    <Select.Option value='from'>From: </Select.Option>
+                    <Select.Option value='to'>To: </Select.Option>
+                </Select>
+                <TreeSelect
+                    style={{ width: 220 }}
+                    treeData={treeData}
+                    placeholder="Please select"
+                />
+            </InputGroup>
+            <br/><br/>
+
+            <InputGroup>
+                <Select style={{ width: 100 }} defaultValue='from'>
+                    <Select.Option value='from'>From: </Select.Option>
+                    <Select.Option value='to'>To: </Select.Option>
+                </Select>
+                <Cascader
+                    style={{ width: 220 }}
+                    treeData={treeData}
+                    placeholder="Please select"
+                />
+            </InputGroup>
+        </>
+    );
+};
 
 
 ```
 ```
 
 
@@ -284,12 +284,12 @@ import React from 'react';
 import { TextArea } from '@douyinfe/semi-ui';
 import { TextArea } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
-    <TextArea />
-    <br/><br/>
-    <TextArea maxCount={100} showClear/>
-  </div>
-)
+    <div>
+        <TextArea />
+        <br/><br/>
+        <TextArea maxCount={100} showClear/>
+    </div>
+);
 ```
 ```
 
 
 ### Autosize TextArea
 ### Autosize TextArea
@@ -300,12 +300,12 @@ You can set `autosize` to allow TextArea resizing height with content.
 import React from 'react';
 import React from 'react';
 import { TextArea } from '@douyinfe/semi-ui';
 import { TextArea } from '@douyinfe/semi-ui';
 () => (
 () => (
-  <div>
-    <TextArea autosize rows={1} />
-    <br/><br/>
-    <TextArea autosize maxCount={100} />
-  </div>
-)
+    <div>
+        <TextArea autosize rows={1} />
+        <br/><br/>
+        <TextArea autosize maxCount={100} />
+    </div>
+);
 ```
 ```
 
 
 ### Custom calculated character string length
 ### Custom calculated character string length
@@ -325,49 +325,49 @@ import { Input, Typography, Form, Button, TextArea } from '@douyinfe/semi-ui';
 import GraphemeSplitter from 'grapheme-splitter';
 import GraphemeSplitter from 'grapheme-splitter';
 
 
 () => {
 () => {
-  const [value, setValue] = useState();
-  function getValueLength(str) {
-    if (typeof str === 'string') {
-      const splitter = new GraphemeSplitter();
-      return splitter.countGraphemes(str);
-    } else {
-      return 0;
+    const [value, setValue] = useState();
+    function getValueLength(str) {
+        if (typeof str === 'string') {
+            const splitter = new GraphemeSplitter();
+            return splitter.countGraphemes(str);
+        } else {
+            return 0;
+        }
     }
     }
-  }
 
 
-  function getTextAreaStrLength(str) {
-    const filteredStr = str.replace(/\s/g, '');
-    return filteredStr.length;
-  }
+    function getTextAreaStrLength(str) {
+        const filteredStr = str.replace(/\s/g, '');
+        return filteredStr.length;
+    }
 
 
-  return (
-    <div>
-      <h4>maxLength=10</h4>
-      <div>
-        <Typography.Text>Please input following emoji</Typography.Text>
-        <div><Typography.Text copyable>💖</Typography.Text></div>
-        <div><Typography.Text copyable>👨‍👩‍👧‍👦</Typography.Text></div>
-      </div>
-      <Input maxLength={10} getValueLength={getValueLength} onChange={setValue} style={{ width: 200, marginTop: 12, marginBottom: 12 }} />
-      {
-        value && (
-          <div>
-            <div><Typography.Text type="tertiary">{`getValueLength=${getValueLength(value)}`}</Typography.Text></div>
-            <div><Typography.Text type="tertiary">{`length=${value.length}`}</Typography.Text></div>
-          </div>
-        )
-      }
-      <br/><br/>
-      <h4>Form.Input + minLength=4</h4>
-      <Form layout="horizontal">
-        <Form.Input noLabel field="username" minLength={4} getValueLength={getValueLength} style={{ width: 200 }} />
-        <Button type="primary" htmlType="submit">Submit</Button>
-      </Form>
-      <h4>maxCount=10</h4>
-      <TextArea defaultValue="semi design" rows={2} maxCount={10} getValueLength={getTextAreaStrLength} style={{ width: 200 }} />
-    </div>
-  );
-}
+    return (
+        <div>
+            <h4>maxLength=10</h4>
+            <div>
+                <Typography.Text>Please input following emoji</Typography.Text>
+                <div><Typography.Text copyable>💖</Typography.Text></div>
+                <div><Typography.Text copyable>👨‍👩‍👧‍👦</Typography.Text></div>
+            </div>
+            <Input maxLength={10} getValueLength={getValueLength} onChange={setValue} style={{ width: 200, marginTop: 12, marginBottom: 12 }} />
+            {
+                value && (
+                    <div>
+                        <div><Typography.Text type="tertiary">{`getValueLength=${getValueLength(value)}`}</Typography.Text></div>
+                        <div><Typography.Text type="tertiary">{`length=${value.length}`}</Typography.Text></div>
+                    </div>
+                )
+            }
+            <br/><br/>
+            <h4>Form.Input + minLength=4</h4>
+            <Form layout="horizontal">
+                <Form.Input noLabel field="username" minLength={4} getValueLength={getValueLength} style={{ width: 200 }} />
+                <Button type="primary" htmlType="submit">Submit</Button>
+            </Form>
+            <h4>maxCount=10</h4>
+            <TextArea defaultValue="semi design" rows={2} maxCount={10} getValueLength={getTextAreaStrLength} style={{ width: 200 }} />
+        </div>
+    );
+};
 ```
 ```
 
 
 Answers to some questions:
 Answers to some questions:

+ 183 - 183
content/input/input/index.md

@@ -25,8 +25,8 @@ import React from 'react';
 import { Input } from '@douyinfe/semi-ui';
 import { Input } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Input defaultValue='hi' autofocus></Input>
-)
+    <Input defaultValue='hi' autofocus></Input>
+);
 ```
 ```
 
 
 ### 三种大小
 ### 三种大小
@@ -38,14 +38,14 @@ import React from 'react';
 import { Input } from '@douyinfe/semi-ui';
 import { Input } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <>
-    <Input placeholder='large' size='large'></Input>
-    <br/><br/>
-    <Input placeholder='default'></Input>
-    <br/><br/>
-    <Input placeholder='small' size='small'></Input>
-  </>
-)
+    <>
+        <Input placeholder='large' size='large'></Input>
+        <br/><br/>
+        <Input placeholder='default'></Input>
+        <br/><br/>
+        <Input placeholder='small' size='small'></Input>
+    </>
+);
 ```
 ```
 
 
 ### 不可用
 ### 不可用
@@ -57,13 +57,13 @@ import React from 'react';
 import { Input } from '@douyinfe/semi-ui';
 import { Input } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <>
-    <Input defaultValue='enabled input'></Input>
-    <br/>
-    <br/>
-    <Input disabled defaultValue='disabled input'></Input>
-  </>
-)
+    <>
+        <Input defaultValue='enabled input'></Input>
+        <br/>
+        <br/>
+        <Input disabled defaultValue='disabled input'></Input>
+    </>
+);
 ```
 ```
 
 
 ### 前缀/后缀
 ### 前缀/后缀
@@ -76,16 +76,16 @@ import { Input, Typography } from '@douyinfe/semi-ui';
 import { IconSearch } from '@douyinfe/semi-icons';
 import { IconSearch } from '@douyinfe/semi-icons';
 
 
 () => (
 () => (
-  <>
-    <Input prefix={<IconSearch />} showClear></Input>
-    <br/><br/>
-    <Input prefix="Prefix" showClear></Input>
-    <br/><br/>
-    <Input suffix={<IconSearch />} showClear></Input>
-    <br/><br/>
-    <Input suffix={<Typography.Text strong type='secondary' style={{ marginRight: 8 }}>Suffix</Typography.Text>} showClear></Input>
-  </>
-)
+    <>
+        <Input prefix={<IconSearch />} showClear></Input>
+        <br/><br/>
+        <Input prefix="Prefix" showClear></Input>
+        <br/><br/>
+        <Input suffix={<IconSearch />} showClear></Input>
+        <br/><br/>
+        <Input suffix={<Typography.Text strong type='secondary' style={{ marginRight: 8 }}>Suffix</Typography.Text>} showClear></Input>
+    </>
+);
 ```
 ```
 
 
 ### 前置/后置标签
 ### 前置/后置标签
@@ -97,8 +97,8 @@ import React from 'react';
 import { Input } from '@douyinfe/semi-ui';
 import { Input } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Input addonBefore="http://" addonAfter=".com" />
-)
+    <Input addonBefore="http://" addonAfter=".com" />
+);
 ```
 ```
 
 
 ### 带移除图标
 ### 带移除图标
@@ -110,8 +110,8 @@ import React from 'react';
 import { Input } from '@douyinfe/semi-ui';
 import { Input } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Input showClear defaultValue='click to clear'></Input>
-)
+    <Input showClear defaultValue='click to clear'></Input>
+);
 ```
 ```
 
 
 ### 密码模式
 ### 密码模式
@@ -123,8 +123,8 @@ import React from 'react';
 import { Input } from '@douyinfe/semi-ui';
 import { Input } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Input mode="password" defaultValue="123456"></Input>
-)
+    <Input mode="password" defaultValue="123456"></Input>
+);
 ```
 ```
 
 
 
 
@@ -137,14 +137,14 @@ import React from 'react';
 import { Input } from '@douyinfe/semi-ui';
 import { Input } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <>
-    <Input defaultValue='ies' validateStatus='warning'></Input>
-    <br/><br/>
-    <Input defaultValue='ies' validateStatus='error'></Input>
-    <br/><br/>
-    <Input defaultValue='ies'></Input>
-  </>
-)
+    <>
+        <Input defaultValue='ies' validateStatus='warning'></Input>
+        <br/><br/>
+        <Input defaultValue='ies' validateStatus='error'></Input>
+        <br/><br/>
+        <Input defaultValue='ies'></Input>
+    </>
+);
 ```
 ```
 
 
 ### 受控组件
 ### 受控组件
@@ -157,26 +157,26 @@ import { Input } from '@douyinfe/semi-ui';
 
 
 class InputDemo extends React.Component {
 class InputDemo extends React.Component {
     constructor() {
     constructor() {
-        super()
+        super();
         this.state = {
         this.state = {
             value: 'controlInput',
             value: 'controlInput',
             value2: 'input'
             value2: 'input'
-        }
+        };
         this.onChange = this.onChange.bind(this);
         this.onChange = this.onChange.bind(this);
     }
     }
     onChange(value, e) {
     onChange(value, e) {
-      console.log(value)
-      this.setState({ value });
+        console.log(value);
+        this.setState({ value });
     }
     }
     render() {
     render() {
         return (
         return (
             <>
             <>
-              <Input
-                  value={this.state.value}
-                  onChange={this.onChange}>
-              </Input>
+                <Input
+                    value={this.state.value}
+                    onChange={this.onChange}>
+                </Input>
             </>
             </>
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -191,97 +191,97 @@ class InputDemo extends React.Component {
 
 
 ```jsx live=true
 ```jsx live=true
 import React from 'react';
 import React from 'react';
-import { InputGroup, Input, InputNumber, Input, AutoComplete, DatePicker } from '@douyinfe/semi-ui';
+import { InputGroup, Input, InputNumber, AutoComplete, DatePicker, Select } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <div>
     <div>
-      <InputGroup>
-        <Input placeholder="Name" style={{ width: 100 }} />
-        <InputNumber placeholder="Score" style={{ width: 140 }} />
-      </InputGroup>
-      <br/><br/><br/>
-      <InputGroup size={'small'}>
-        <Select style={{ width: '100px' }} defaultValue='home'>
-            <Select.Option value='home'>Home</Select.Option>
-            <Select.Option value='work'>Work</Select.Option>
-        </Select>
-        <AutoComplete
-            data={['Beijing Haidian']}
-            placeholder='Address: '
-            style={{ width: 180 }}
-        >
-        </AutoComplete>
-      </InputGroup>
-      <br/><br/><br/>
-      <InputGroup size={'small'}>
-        <Select style={{ width: '100px' }} defaultValue='signup'>
-            <Select.Option value='signup'>Sign Up</Select.Option>
-            <Select.Option value='signin'>Sign In</Select.Option>
-        </Select>
-        <Input placeholder="Email" style={{ width: 180 }} />
-      </InputGroup>
-      <br/><br/><br/>
-      <InputGroup size={'small'}>
-        <Input placeholder="Name" style={{ width: 100 }} />
-        <DatePicker placeholder="Birthday" />
-      </InputGroup>
+        <InputGroup>
+            <Input placeholder="Name" style={{ width: 100 }} />
+            <InputNumber placeholder="Score" style={{ width: 140 }} />
+        </InputGroup>
+        <br/><br/><br/>
+        <InputGroup size={'small'}>
+            <Select style={{ width: '100px' }} defaultValue='home'>
+                <Select.Option value='home'>Home</Select.Option>
+                <Select.Option value='work'>Work</Select.Option>
+            </Select>
+            <AutoComplete
+                data={['Beijing Haidian']}
+                placeholder='Address: '
+                style={{ width: 180 }}
+            >
+            </AutoComplete>
+        </InputGroup>
+        <br/><br/><br/>
+        <InputGroup size={'small'}>
+            <Select style={{ width: '100px' }} defaultValue='signup'>
+                <Select.Option value='signup'>Sign Up</Select.Option>
+                <Select.Option value='signin'>Sign In</Select.Option>
+            </Select>
+            <Input placeholder="Email" style={{ width: 180 }} />
+        </InputGroup>
+        <br/><br/><br/>
+        <InputGroup size={'small'}>
+            <Input placeholder="Name" style={{ width: 100 }} />
+            <DatePicker placeholder="Birthday" />
+        </InputGroup>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ```jsx live=true
 ```jsx live=true
 import React from 'react';
 import React from 'react';
-import { InputGroup, Select, Cascader } from '@douyinfe/semi-ui';
+import { InputGroup, Select, Cascader, TreeSelect } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const Option = Select.Option;
-  const treeData = [
-    {
-        label: 'Asia',
-        value: 'Asia',
-        key: '0',
-        children: [
-            {
-                label: 'China',
-                value: 'China',
-                key: '0-0',
-                children: [
-                    { label: 'Beijing', value: 'Beijing', key: '0-0-0' },
-                    { label: 'Shanghai', value: 'Shanghai', key: '0-0-1' },
-                ],
-            },
-        ],
-    },
-    { label: 'North America', value: 'North America', key: '1' }
-  ];
-  return (
-    <>
-      <InputGroup>
-        <Select style={{ width: 100 }} defaultValue='from'>
-          <Select.Option value='from'>From: </Select.Option>
-          <Select.Option value='to'>To: </Select.Option>
-        </Select>
-        <TreeSelect
-          style={{ width: 220 }}
-          treeData={treeData}
-          placeholder="Please select"
-        />
-      </InputGroup>
-      <br/><br/>
-      <InputGroup>
-          <Select style={{ width: 100 }} defaultValue='from'>
-            <Select.Option value='from'>From: </Select.Option>
-            <Select.Option value='to'>To: </Select.Option>
-          </Select>
-          <Cascader
-              style={{ width: 220 }}
-              treeData={treeData}
-              placeholder="Please select"
-          />
-      </InputGroup>
-    </>
-  )
-}
+    const Option = Select.Option;
+    const treeData = [
+        {
+            label: 'Asia',
+            value: 'Asia',
+            key: '0',
+            children: [
+                {
+                    label: 'China',
+                    value: 'China',
+                    key: '0-0',
+                    children: [
+                        { label: 'Beijing', value: 'Beijing', key: '0-0-0' },
+                        { label: 'Shanghai', value: 'Shanghai', key: '0-0-1' },
+                    ],
+                },
+            ],
+        },
+        { label: 'North America', value: 'North America', key: '1' }
+    ];
+    return (
+        <>
+            <InputGroup>
+                <Select style={{ width: 100 }} defaultValue='from'>
+                    <Select.Option value='from'>From: </Select.Option>
+                    <Select.Option value='to'>To: </Select.Option>
+                </Select>
+                <TreeSelect
+                    style={{ width: 220 }}
+                    treeData={treeData}
+                    placeholder="Please select"
+                />
+            </InputGroup>
+            <br/><br/>
+            <InputGroup>
+                <Select style={{ width: 100 }} defaultValue='from'>
+                    <Select.Option value='from'>From: </Select.Option>
+                    <Select.Option value='to'>To: </Select.Option>
+                </Select>
+                <Cascader
+                    style={{ width: 220 }}
+                    treeData={treeData}
+                    placeholder="Please select"
+                />
+            </InputGroup>
+        </>
+    );
+};
 
 
 ```
 ```
 
 
@@ -294,12 +294,12 @@ import React from 'react';
 import { TextArea } from '@douyinfe/semi-ui';
 import { TextArea } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
-    <TextArea />
-    <br/><br/>
-    <TextArea maxCount={100} showClear/>
-  </div>
-)
+    <div>
+        <TextArea />
+        <br/><br/>
+        <TextArea maxCount={100} showClear/>
+    </div>
+);
 ```
 ```
 
 
 ### 自动扩展的多行输入框
 ### 自动扩展的多行输入框
@@ -311,12 +311,12 @@ import React from 'react';
 import { TextArea } from '@douyinfe/semi-ui';
 import { TextArea } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
-    <TextArea autosize rows={1} />
-    <br/><br/>
-    <TextArea autosize maxCount={100} />
-  </div>
-)
+    <div>
+        <TextArea autosize rows={1} />
+        <br/><br/>
+        <TextArea autosize maxCount={100} />
+    </div>
+);
 ```
 ```
 
 
 ### 自定义计算字符串长度
 ### 自定义计算字符串长度
@@ -336,49 +336,49 @@ import GraphemeSplitter from 'grapheme-splitter';
 import { Input, Typography, Form, TextArea, Button } from '@douyinfe/semi-ui';
 import { Input, Typography, Form, TextArea, Button } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const [value, setValue] = useState();
-  function getValueLength(str) {
-    if (typeof str === 'string') {
-      const splitter = new GraphemeSplitter();
-      return splitter.countGraphemes(str);
-    } else {
-      return 0;
+    const [value, setValue] = useState();
+    function getValueLength(str) {
+        if (typeof str === 'string') {
+            const splitter = new GraphemeSplitter();
+            return splitter.countGraphemes(str);
+        } else {
+            return 0;
+        }
     }
     }
-  }
 
 
-  function getTextAreaStrLength(str) {
-    const filteredStr = str.replace(/\s/g, '');
-    return filteredStr.length;
-  }
+    function getTextAreaStrLength(str) {
+        const filteredStr = str.replace(/\s/g, '');
+        return filteredStr.length;
+    }
 
 
-  return (
-    <div>
-      <h4>maxLength=10</h4>
-      <div>
-        <Typography.Text>尝试输入以下字符</Typography.Text>
-        <div><Typography.Text copyable>💖</Typography.Text></div>
-        <div><Typography.Text copyable>👨‍👩‍👧‍👦</Typography.Text></div>
-      </div>
-      <Input maxLength={10} getValueLength={getValueLength} onChange={setValue} style={{ width: 200, marginTop: 12, marginBottom: 12 }} />
-      {
-        value && (
-          <div>
-            <div><Typography.Text type="tertiary">{`getValueLength=${getValueLength(value)}`}</Typography.Text></div>
-            <div><Typography.Text type="tertiary">{`length=${value.length}`}</Typography.Text></div>
-          </div>
-        )
-      }
-      <br/><br/>
-      <h4>Form.Input + minLength=4</h4>
-      <Form layout="horizontal">
-        <Form.Input noLabel field="username" minLength={4} getValueLength={getValueLength} style={{ width: 200 }} />
-        <Button type="primary" htmlType="submit">提交</Button>
-      </Form>
-      <h4>maxCount=10</h4>
-      <TextArea defaultValue="semi design" rows={2} maxCount={10} getValueLength={getTextAreaStrLength} style={{ width: 200 }} />
-    </div>
-  );
-}
+    return (
+        <div>
+            <h4>maxLength=10</h4>
+            <div>
+                <Typography.Text>尝试输入以下字符</Typography.Text>
+                <div><Typography.Text copyable>💖</Typography.Text></div>
+                <div><Typography.Text copyable>👨‍👩‍👧‍👦</Typography.Text></div>
+            </div>
+            <Input maxLength={10} getValueLength={getValueLength} onChange={setValue} style={{ width: 200, marginTop: 12, marginBottom: 12 }} />
+            {
+                value && (
+                    <div>
+                        <div><Typography.Text type="tertiary">{`getValueLength=${getValueLength(value)}`}</Typography.Text></div>
+                        <div><Typography.Text type="tertiary">{`length=${value.length}`}</Typography.Text></div>
+                    </div>
+                )
+            }
+            <br/><br/>
+            <h4>Form.Input + minLength=4</h4>
+            <Form layout="horizontal">
+                <Form.Input noLabel field="username" minLength={4} getValueLength={getValueLength} style={{ width: 200 }} />
+                <Button type="primary" htmlType="submit">提交</Button>
+            </Form>
+            <h4>maxCount=10</h4>
+            <TextArea defaultValue="semi design" rows={2} maxCount={10} getValueLength={getTextAreaStrLength} style={{ width: 200 }} />
+        </div>
+    );
+};
 ```
 ```
 
 
 一些问题的回答:
 一些问题的回答:

+ 108 - 106
content/input/inputnumber/index-en-US.md

@@ -29,27 +29,27 @@ import React from 'react';
 import { InputNumber } from '@douyinfe/semi-ui';
 import { InputNumber } from '@douyinfe/semi-ui';
 
 
 class App extends React.Component {
 class App extends React.Component {
-  render() {
-    return (
-      <div style={{ width: 280 }}>
-        <label>Simple</label>
-        <InputNumber />
-        <br/><br/>
-
-        <label>Set step to 2 </label>
-        <InputNumber step={2} />
-        <br/><br/>
-
-        <label>Press shift key and click the button to increase/decrease the step size </label>
-        <InputNumber shiftStep={100} />
-        <br/><br/>
-
-        <label>Set min to 1, max to 10</label>
-        <InputNumber min={1} max={10} Default Value={1} />
-        <br/><br/>
-      </div>
-    );
-  }
+    render() {
+        return (
+            <div style={{ width: 280 }}>
+                <label>Simple</label>
+                <InputNumber />
+                <br/><br/>
+
+                <label>Set step to 2 </label>
+                <InputNumber step={2} />
+                <br/><br/>
+
+                <label>Press shift key and click the button to increase/decrease the step size </label>
+                <InputNumber shiftStep={100} />
+                <br/><br/>
+
+                <label>Set min to 1, max to 10</label>
+                <InputNumber min={1} max={10} Default Value={1} />
+                <br/><br/>
+            </div>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -58,32 +58,32 @@ import React from 'react';
 import { InputNumber } from '@douyinfe/semi-ui';
 import { InputNumber } from '@douyinfe/semi-ui';
 
 
 class App extends React.Component {
 class App extends React.Component {
-  render() {
-    return (
-      <div style={{ width: 280 }}>
-        <label>Set defaultValue to 1 </label>
-        <InputNumber defaultValue={1} />
-        <br/><br/>
-
-        <label>Set disabled to true</label>
-        <InputNumber defaultValue={2} disabled />
-        <br/><br/>
-
-        <label>Set autofocus to true </label>
-        <InputNumber defaultValue={3} autofocus />
-        <br/><br/>
-
-        <label>Set precision to 2 </label>
-        <InputNumber precision={2} defaultValue={1.234} />
-        <br/><br/>
-
-        <label>Set innerButtons=true </label>
-        <InputNumber innerButtons={true} suffix={'Hour'} defaultValue={1} style={{ width: 190}} />
-        <br/>
-
-      </div>
-    );
-  }
+    render() {
+        return (
+            <div style={{ width: 280 }}>
+                <label>Set defaultValue to 1 </label>
+                <InputNumber defaultValue={1} />
+                <br/><br/>
+
+                <label>Set disabled to true</label>
+                <InputNumber defaultValue={2} disabled />
+                <br/><br/>
+
+                <label>Set autofocus to true </label>
+                <InputNumber defaultValue={3} autofocus />
+                <br/><br/>
+
+                <label>Set precision to 2 </label>
+                <InputNumber precision={2} defaultValue={1.234} />
+                <br/><br/>
+
+                <label>Set innerButtons=true </label>
+                <InputNumber innerButtons={true} suffix={'Hour'} defaultValue={1} style={{ width: 190}} />
+                <br/>
+
+            </div>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -94,20 +94,22 @@ With `innerButtons`, you can hide the buttons on the right into the interior, wh
 
 
 ```jsx live=true
 ```jsx live=true
 import React from 'react';
 import React from 'react';
+import { InputNumber } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <InputNumber innerButtons style={{ width: 190}} />
-)
+    <InputNumber innerButtons style={{ width: 190}} />
+);
 ```
 ```
 
 
 Set `hidebuttons` to `true` to hide the buttons completely
 Set `hidebuttons` to `true` to hide the buttons completely
 
 
 ```jsx live=true
 ```jsx live=true
 import React from 'react';
 import React from 'react';
+import { InputNumber } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <InputNumber hideButtons style={{ width: 190}} />
-)
+    <InputNumber hideButtons style={{ width: 190}} />
+);
 
 
 ```
 ```
 
 
@@ -118,24 +120,24 @@ import React from 'react';
 import { InputNumber } from '@douyinfe/semi-ui';
 import { InputNumber } from '@douyinfe/semi-ui';
 
 
 class App extends React.Component {
 class App extends React.Component {
-  render() {
-    return (
-      <div style={{ width: 180 }}>
-        <label>size=default</label>
-        <InputNumber />
-        <br/><br/>
-
-        <label>size=large</label>
-        <InputNumber size="large" />
-        <br/><br/>
-
-        <label>size=small</label>
-        <InputNumber size="small" />
-        <br/>
-
-      </div>
-    );
-  }
+    render() {
+        return (
+            <div style={{ width: 180 }}>
+                <label>size=default</label>
+                <InputNumber />
+                <br/><br/>
+
+                <label>size=large</label>
+                <InputNumber size="large" />
+                <br/><br/>
+
+                <label>size=small</label>
+                <InputNumber size="small" />
+                <br/>
+
+            </div>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -148,35 +150,35 @@ import React from 'react';
 import { InputNumber } from '@douyinfe/semi-ui';
 import { InputNumber } from '@douyinfe/semi-ui';
 
 
 class App extends React.Component {
 class App extends React.Component {
-  log(v) {
-    console.log(`Changed to: [${typeof v}] ${v}`);
-  }
-
-  render() {
-    return (
-      <div style={{ width: 180 }}>
-        <label>RMB</label>
-        <InputNumber
-            onChange={this.log}
-            defaultValue={1000}
-            min={0}
-            formatter={value => `¥ ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')}
-            parser={value => value.replace(/\¥\s?|(,*)/g, '')}
-        />
-        <br/><br/>
-
-        <label>Custom string</label>
-        <InputNumber
-            onChange={this.log}
-            defaultValue={1111}
-            formatter={value => String(value).split('').join('-')}
-            parser={value => value.replace(/\-/g, '')}
-        />
-        <br/>
-
-      </div>
-    );
-  }
+    log(v) {
+        console.log(`Changed to: [${typeof v}] ${v}`);
+    }
+
+    render() {
+        return (
+            <div style={{ width: 180 }}>
+                <label>RMB</label>
+                <InputNumber
+                    onChange={this.log}
+                    defaultValue={1000}
+                    min={0}
+                    formatter={value => `¥ ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')}
+                    parser={value => value.replace(/\¥\s?|(,*)/g, '')}
+                />
+                <br/><br/>
+
+                <label>Custom string</label>
+                <InputNumber
+                    onChange={this.log}
+                    defaultValue={1111}
+                    formatter={value => String(value).split('').join('-')}
+                    parser={value => value.replace(/\-/g, '')}
+                />
+                <br/>
+
+            </div>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -188,14 +190,14 @@ import React from 'react';
 import { InputNumber } from '@douyinfe/semi-ui';
 import { InputNumber } from '@douyinfe/semi-ui';
 
 
 function Demo () {
 function Demo () {
-  return (
-    <InputNumber
-      formatter={value => `${value}`.replace(/\D/g, '')}
-      onNumberChange={number => console.log(number)}
-      min={0}
-      max={Number.MAX_SAFE_INTEGER}
-    />
-  );
+    return (
+        <InputNumber
+            formatter={value => `${value}`.replace(/\D/g, '')}
+            onNumberChange={number => console.log(number)}
+            min={0}
+            max={Number.MAX_SAFE_INTEGER}
+        />
+    );
 }
 }
 ```
 ```
 
 

+ 78 - 78
content/input/inputnumber/index.md

@@ -27,23 +27,23 @@ import { InputNumber } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <div style={{ width: 280 }}>
     <div style={{ width: 280 }}>
-      <label>简单数字输入框</label>
-      <InputNumber />
-      <br/><br/>
+        <label>简单数字输入框</label>
+        <InputNumber />
+        <br/><br/>
 
 
-      <label>设置了步长 step=2 </label>
-      <InputNumber step={2} />
-      <br/><br/>
+        <label>设置了步长 step=2 </label>
+        <InputNumber step={2} />
+        <br/><br/>
 
 
-      <label>设置 shiftStep=100, 按住 shift 同时点击按钮,可以一次增加/减少100 </label>
-      <InputNumber shiftStep={100} />
-      <br/><br/>
+        <label>设置 shiftStep=100, 按住 shift 同时点击按钮,可以一次增加/减少100 </label>
+        <InputNumber shiftStep={100} />
+        <br/><br/>
 
 
-      <label>设置了上下界 min=1,max=10</label>
-      <InputNumber min={1} max={10} defaultValue={1} />
-      <br/><br/>
+        <label>设置了上下界 min=1,max=10</label>
+        <InputNumber min={1} max={10} defaultValue={1} />
+        <br/><br/>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ```jsx live=true
 ```jsx live=true
@@ -52,27 +52,27 @@ import { InputNumber } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <div style={{ width: 280 }}>
     <div style={{ width: 280 }}>
-      <label>设置了默认值 defaultValue=1 </label>
-      <InputNumber defaultValue={1} />
-      <br/><br/>
+        <label>设置了默认值 defaultValue=1 </label>
+        <InputNumber defaultValue={1} />
+        <br/><br/>
 
 
-      <label>禁用 disabled=true</label>
-      <InputNumber defaultValue={2} disabled />
-      <br/><br/>
+        <label>禁用 disabled=true</label>
+        <InputNumber defaultValue={2} disabled />
+        <br/><br/>
 
 
-      <label>自动获得焦点 autofocus=true </label>
-      <InputNumber defaultValue={3} autofocus />
-      <br/><br/>
+        <label>自动获得焦点 autofocus=true </label>
+        <InputNumber defaultValue={3} autofocus />
+        <br/><br/>
 
 
-      <label>设置了小数位数 precision=2 </label>
-      <InputNumber precision={2} defaultValue={1.234} />
-      <br/><br/>
+        <label>设置了小数位数 precision=2 </label>
+        <InputNumber precision={2} defaultValue={1.234} />
+        <br/><br/>
 
 
-      <label>设置了 innerButtons=true </label>
-      <InputNumber innerButtons={true} suffix={'小时'} defaultValue={1} style={{ width: 190}} />
-      <br/>
+        <label>设置了 innerButtons=true </label>
+        <InputNumber innerButtons={true} suffix={'小时'} defaultValue={1} style={{ width: 190}} />
+        <br/>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 
 
@@ -85,8 +85,8 @@ import React from 'react';
 import { InputNumber } from '@douyinfe/semi-ui';
 import { InputNumber } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <InputNumber innerButtons style={{ width: 190}} />
-)
+    <InputNumber innerButtons style={{ width: 190}} />
+);
 ```
 ```
 
 
 hideButtons设为true,彻底隐藏步进器
 hideButtons设为true,彻底隐藏步进器
@@ -96,8 +96,8 @@ import React from 'react';
 import { InputNumber } from '@douyinfe/semi-ui';
 import { InputNumber } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <InputNumber hideButtons style={{ width: 190}} />
-)
+    <InputNumber hideButtons style={{ width: 190}} />
+);
 ```
 ```
 
 
 ### 尺寸
 ### 尺寸
@@ -108,19 +108,19 @@ import { InputNumber } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <div style={{ width: 180 }}>
     <div style={{ width: 180 }}>
-      <label>默认尺寸 size=default</label>
-      <InputNumber />
-      <br/><br/>
+        <label>默认尺寸 size=default</label>
+        <InputNumber />
+        <br/><br/>
 
 
-      <label>大尺寸 size=large</label>
-      <InputNumber size="large" />
-      <br/><br/>
+        <label>大尺寸 size=large</label>
+        <InputNumber size="large" />
+        <br/><br/>
 
 
-      <label>小尺寸 size=small</label>
-      <InputNumber size="small" />
-      <br/>
+        <label>小尺寸 size=small</label>
+        <InputNumber size="small" />
+        <br/>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### 自定义显示格式与解析方式
 ### 自定义显示格式与解析方式
@@ -132,33 +132,33 @@ import React from 'react';
 import { InputNumber } from '@douyinfe/semi-ui';
 import { InputNumber } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const log = (v) => {
-    console.log(`Changed to: [${typeof v}] ${v}`);
-  }
-
-  return (
-      <div style={{ width: 180 }}>
-        <label>人民币</label>
-        <InputNumber
-            onChange={this.log}
-            defaultValue={1000}
-            min={0}
-            formatter={value => `¥ ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')}
-            parser={value => value.replace(/\¥\s?|(,*)/g, '')}
-        />
-        <br/><br/>
-
-        <label>自定义串</label>
-        <InputNumber
-            onChange={this.log}
-            defaultValue={1111}
-            formatter={value => String(value).split('').join('-')}
-            parser={value => value.replace(/\-/g, '')}
-        />
-        <br/>
-      </div>
-  )
-}
+    const log = (v) => {
+        console.log(`Changed to: [${typeof v}] ${v}`);
+    };
+
+    return (
+        <div style={{ width: 180 }}>
+            <label>人民币</label>
+            <InputNumber
+                onChange={this.log}
+                defaultValue={1000}
+                min={0}
+                formatter={value => `¥ ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')}
+                parser={value => value.replace(/\¥\s?|(,*)/g, '')}
+            />
+            <br/><br/>
+
+            <label>自定义串</label>
+            <InputNumber
+                onChange={this.log}
+                defaultValue={1111}
+                formatter={value => String(value).split('').join('-')}
+                parser={value => value.replace(/\-/g, '')}
+            />
+            <br/>
+        </div>
+    );
+};
 ```
 ```
 
 
 ### 纯数字输入框
 ### 纯数字输入框
@@ -169,14 +169,14 @@ import React from 'react';
 import { InputNumber } from '@douyinfe/semi-ui';
 import { InputNumber } from '@douyinfe/semi-ui';
 
 
 function Demo () {
 function Demo () {
-  return (
-    <InputNumber
-      formatter={value => `${value}`.replace(/\D/g, '')}
-      onNumberChange={number => console.log(number)}
-      min={0}
-      max={Number.MAX_SAFE_INTEGER}
-    />
-  );
+    return (
+        <InputNumber
+            formatter={value => `${value}`.replace(/\D/g, '')}
+            onNumberChange={number => console.log(number)}
+            min={0}
+            max={Number.MAX_SAFE_INTEGER}
+        />
+    );
 }
 }
 ```
 ```
 
 

+ 2 - 2
content/input/radio/index-en-US.md

@@ -29,7 +29,7 @@ import { Radio } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <Radio>Radio</Radio>
     <Radio>Radio</Radio>
-)
+);
 
 
 ```
 ```
 
 
@@ -48,7 +48,7 @@ import { Radio } from '@douyinfe/semi-ui';
     <Radio extra="Semi Design is a design system developed and maintained by IES Front-end Team and UED Team">
     <Radio extra="Semi Design is a design system developed and maintained by IES Front-end Team and UED Team">
         Semi Design
         Semi Design
     </Radio>
     </Radio>
-)
+);
 ```
 ```
 
 
 ### Disabled
 ### Disabled

+ 11 - 11
content/input/radio/index.md

@@ -26,7 +26,7 @@ import { Radio } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <Radio>Radio</Radio>
     <Radio>Radio</Radio>
-)
+);
 ```
 ```
 
 
 ### 带辅助文本
 ### 带辅助文本
@@ -43,7 +43,7 @@ import { Radio } from '@douyinfe/semi-ui';
     <Radio extra="Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统">
     <Radio extra="Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统">
         Semi Design
         Semi Design
     </Radio>
     </Radio>
-)
+);
 ```
 ```
 
 
 ### 禁用
 ### 禁用
@@ -74,8 +74,8 @@ import { Radio, Button } from '@douyinfe/semi-ui';
                 </Button>
                 </Button>
             </div>
             </div>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 高级模式
 ### 高级模式
@@ -100,8 +100,8 @@ import { Radio } from '@douyinfe/semi-ui';
         >
         >
             允许取消选择
             允许取消选择
         </Radio>
         </Radio>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 单选组合
 ### 单选组合
@@ -117,7 +117,7 @@ import { RadioGroup, Radio } from '@douyinfe/semi-ui';
     const onChange = (e) => {
     const onChange = (e) => {
         console.log('radio checked', e.target.value);
         console.log('radio checked', e.target.value);
         setValue(e.target.value);
         setValue(e.target.value);
-    } 
+    }; 
     return (
     return (
         <RadioGroup onChange={onChange} value={value}>
         <RadioGroup onChange={onChange} value={value}>
             <Radio value={1}>A</Radio>
             <Radio value={1}>A</Radio>
@@ -126,7 +126,7 @@ import { RadioGroup, Radio } from '@douyinfe/semi-ui';
             <Radio value={4}>D</Radio>
             <Radio value={4}>D</Radio>
         </RadioGroup>
         </RadioGroup>
     );
     );
-}
+};
 ```
 ```
 
 
 ### 垂直排列
 ### 垂直排列
@@ -144,7 +144,7 @@ import { RadioGroup, Radio } from '@douyinfe/semi-ui';
         <Radio value={3}>C</Radio>
         <Radio value={3}>C</Radio>
         <Radio value={4}>D</Radio>
         <Radio value={4}>D</Radio>
     </RadioGroup>
     </RadioGroup>
-)
+);
 ```
 ```
 
 
 ### 按钮样式
 ### 按钮样式
@@ -178,8 +178,8 @@ import { RadioGroup, Radio, Space } from '@douyinfe/semi-ui';
                 <Radio value={3}>动态推送</Radio>
                 <Radio value={3}>动态推送</Radio>
             </RadioGroup>
             </RadioGroup>
         </Space>
         </Space>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 卡片样式
 ### 卡片样式

+ 5 - 5
content/input/rating/index-en-US.md

@@ -32,7 +32,7 @@ import { Rating } from '@douyinfe/semi-ui';
         <br />
         <br />
         <Rating size="small" defaultValue={5} />
         <Rating size="small" defaultValue={5} />
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### Half Star
 ### Half Star
@@ -49,7 +49,7 @@ import { Rating } from '@douyinfe/semi-ui';
         <br />
         <br />
         <Rating allowHalf defaultValue={3.65} />
         <Rating allowHalf defaultValue={3.65} />
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### Disabled
 ### Disabled
@@ -62,7 +62,7 @@ import { Rating } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <Rating disabled defaultValue={3} />
     <Rating disabled defaultValue={3} />
-)
+);
 ```
 ```
 
 
 ### Click to Clear
 ### Click to Clear
@@ -84,7 +84,7 @@ import { Rating } from '@douyinfe/semi-ui';
         <br />
         <br />
         <Rating allowClear={false} defaultValue={3} />
         <Rating allowClear={false} defaultValue={3} />
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### Text Description
 ### Text Description
@@ -153,7 +153,7 @@ import { IconLikeHeart } from '@douyinfe/semi-icons';
         <br />
         <br />
         <Rating Count={10} defaultValue={6} />
         <Rating Count={10} defaultValue={6} />
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ## API Reference
 ## API Reference

+ 6 - 6
content/input/rating/index.md

@@ -32,7 +32,7 @@ import { Rating } from '@douyinfe/semi-ui';
         <br/>
         <br/>
         <Rating size='small' defaultValue={5}/>
         <Rating size='small' defaultValue={5}/>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### 半星
 ### 半星
@@ -49,7 +49,7 @@ import { Rating } from '@douyinfe/semi-ui';
         <br/>
         <br/>
         <Rating allowHalf defaultValue={3.65}/>
         <Rating allowHalf defaultValue={3.65}/>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### 只读
 ### 只读
@@ -60,7 +60,7 @@ import { Rating } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <Rating disabled defaultValue={3} />
     <Rating disabled defaultValue={3} />
-)
+);
 ```
 ```
 
 
 ### 点击清除
 ### 点击清除
@@ -80,7 +80,7 @@ import { Rating } from '@douyinfe/semi-ui';
         <br/>
         <br/>
         <Rating allowClear={false} defaultValue={3}/>
         <Rating allowClear={false} defaultValue={3}/>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### 文案展现
 ### 文案展现
@@ -104,7 +104,7 @@ import { Rating } from '@douyinfe/semi-ui';
             <Rating tooltips={desc} onChange={change} value={value} />
             <Rating tooltips={desc} onChange={change} value={value} />
         </div>
         </div>
     );
     );
-}
+};
 ```
 ```
 
 
 ### 自定义
 ### 自定义
@@ -130,7 +130,7 @@ import { IconLikeHeart } from '@douyinfe/semi-icons';
         <br/>
         <br/>
         <Rating count={10} defaultValue={6}/>
         <Rating count={10} defaultValue={6}/>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ## API参考
 ## API参考

+ 38 - 38
content/input/select/index-en-US.md

@@ -34,7 +34,7 @@ import { Select } from '@douyinfe/semi-ui';
         </Select>
         </Select>
         <br />
         <br />
         <br />
         <br />
-        <Select style={{ width: '180px' }} defaultValue="abc" style={{ width: 120 }}>
+        <Select defaultValue="abc" style={{ width: 120 }}>
             <Select.Option value="abc">Semi</Select.Option>
             <Select.Option value="abc">Semi</Select.Option>
             <Select.Option value="hotsoon">Hotsoon</Select.Option>
             <Select.Option value="hotsoon">Hotsoon</Select.Option>
         </Select>
         </Select>
@@ -45,7 +45,7 @@ import { Select } from '@douyinfe/semi-ui';
             <Select.Option value="hotsoon">Hotsoon</Select.Option>
             <Select.Option value="hotsoon">Hotsoon</Select.Option>
         </Select>
         </Select>
     </>
     </>
-)
+);
 ```
 ```
 
 
 ### Pass Option as an array
 ### Pass Option as an array
@@ -111,7 +111,7 @@ import { Select } from '@douyinfe/semi-ui';
             <Select.Option value="xigua">BuzzVideo</Select.Option>
             <Select.Option value="xigua">BuzzVideo</Select.Option>
         </Select>
         </Select>
     </>
     </>
-)
+);
 ```
 ```
 ### With Group
 ### With Group
 
 
@@ -135,7 +135,7 @@ import { Select } from '@douyinfe/semi-ui';
             <Select.Option value="c-1">Peru</Select.Option>
             <Select.Option value="c-1">Peru</Select.Option>
         </Select.OptGroup>
         </Select.OptGroup>
     </Select>
     </Select>
-)
+);
 ```
 ```
 
 
 ```jsx live=true
 ```jsx live=true
@@ -203,7 +203,7 @@ import { Select } from '@douyinfe/semi-ui';
             <Select.Option value="hotsoon">Hotsoon</Select.Option>
             <Select.Option value="hotsoon">Hotsoon</Select.Option>
         </Select>
         </Select>
     </>
     </>
-)
+);
 ```
 ```
 
 
 ### Different validate status
 ### Different validate status
@@ -230,7 +230,7 @@ import { Select } from '@douyinfe/semi-ui';
             <Select.Option value="Capcut">Capcut</Select.Option>
             <Select.Option value="Capcut">Capcut</Select.Option>
         </Select>
         </Select>
     </>
     </>
-)
+);
 ```
 ```
 
 
 ### Configure Prefix, Suffix, Clear Button
 ### Configure Prefix, Suffix, Clear Button
@@ -268,7 +268,7 @@ import { IconVigoLogo, IconGift } from '@douyinfe/semi-icons';
             <Select.Option value="xigua">BuzzVideo</Select.Option>
             <Select.Option value="xigua">BuzzVideo</Select.Option>
         </Select>
         </Select>
     </>
     </>
-)
+);
 ```
 ```
 
 
 ### Select with inset label
 ### Select with inset label
@@ -580,7 +580,7 @@ import { Select } from '@douyinfe/semi-ui';
             <Select.Option value="app4">BuzzVideo</Select.Option>
             <Select.Option value="app4">BuzzVideo</Select.Option>
         </Select>
         </Select>
     </>
     </>
-)
+);
 ```
 ```
 ### Remote search
 ### Remote search
 
 
@@ -718,22 +718,22 @@ class CustomRender extends React.Component {
     constructor() {
     constructor() {
         super();
         super();
         this.state = {
         this.state = {
-          list: [
-            { "name": "XiaKeMan", "email": "[email protected]", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/avatarDemo.jpeg"},
-            { "name": "ShenYue", "email": "[email protected]", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/bf8647bffab13c38772c9ff94bf91a9d.jpg"},
-            { "name": "QuChenYi", "email": "[email protected]", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/8bd8224511db085ed74fea37205aede5.jpg"},
-            { "name": "WenJiaMao", "email": "[email protected]", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/6fbafc2d-e3e6-4cff-a1e2-17709c680624.png"},
-          ]
+            list: [
+                { "name": "XiaKeMan", "email": "[email protected]", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/avatarDemo.jpeg"},
+                { "name": "ShenYue", "email": "[email protected]", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/bf8647bffab13c38772c9ff94bf91a9d.jpg"},
+                { "name": "QuChenYi", "email": "[email protected]", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/8bd8224511db085ed74fea37205aede5.jpg"},
+                { "name": "WenJiaMao", "email": "[email protected]", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/6fbafc2d-e3e6-4cff-a1e2-17709c680624.png"},
+            ]
         };
         };
     }
     }
 
 
     renderSelectedItem(optionNode) {
     renderSelectedItem(optionNode) {
         return (
         return (
-          <div key={optionNode.email} style={{display: 'flex', alignItems: 'center'}}>
-            <Avatar src={optionNode.avatar} size="small">{optionNode.abbr}</Avatar>
-            <span style={{ marginLeft: 8 }}>{optionNode.email}</span>
-          </div>
-        )
+            <div key={optionNode.email} style={{display: 'flex', alignItems: 'center'}}>
+                <Avatar src={optionNode.avatar} size="small">{optionNode.abbr}</Avatar>
+                <span style={{ marginLeft: 8 }}>{optionNode.email}</span>
+            </div>
+        );
     }
     }
 
 
     // avatarSrc & avatarShape are supported after 1.6.0
     // avatarSrc & avatarShape are supported after 1.6.0
@@ -746,13 +746,13 @@ class CustomRender extends React.Component {
                 onClose={onClose}
                 onClose={onClose}
                 size='large'
                 size='large'
                 key={optionNode.name}
                 key={optionNode.name}
-                >
+            >
                 {optionNode.name}
                 {optionNode.name}
             </Tag>
             </Tag>
         );
         );
         return {
         return {
-          isRenderInTag: false,
-          content
+            isRenderInTag: false,
+            content
         };
         };
     }
     }
 
 
@@ -765,13 +765,13 @@ class CustomRender extends React.Component {
                 onClose={onClose}
                 onClose={onClose}
                 size='large'
                 size='large'
                 key={optionNode.name}
                 key={optionNode.name}
-                >
+            >
                 {optionNode.name}
                 {optionNode.name}
             </Tag>
             </Tag>
         );
         );
         return {
         return {
-          isRenderInTag: false,
-          content
+            isRenderInTag: false,
+            content
         };
         };
     }
     }
 
 
@@ -781,16 +781,16 @@ class CustomRender extends React.Component {
             paddingLeft: 24,
             paddingLeft: 24,
             paddingTop: 10,
             paddingTop: 10,
             paddingBottom: 10
             paddingBottom: 10
-        }
+        };
         return (
         return (
             <Select.Option value={item.name} style={optionStyle} showTick={true}  {...item} key={item.email}>
             <Select.Option value={item.name} style={optionStyle} showTick={true}  {...item} key={item.email}>
-               <Avatar size="small" src={item.avatar} />
+                <Avatar size="small" src={item.avatar} />
                 <div style={{ marginLeft: 8 }}>
                 <div style={{ marginLeft: 8 }}>
                     <div style={{ fontSize: 14 }}>{item.name}</div>
                     <div style={{ fontSize: 14 }}>{item.name}</div>
                     <div style={{ color: 'var(--semi-color-text-2)', fontSize: 12, lineHeight: '16px', fontWeight: 'normal' }}>{item.email}</div>
                     <div style={{ color: 'var(--semi-color-text-2)', fontSize: 12, lineHeight: '16px', fontWeight: 'normal' }}>{item.email}</div>
                 </div>
                 </div>
             </Select.Option>
             </Select.Option>
-        )
+        );
     }
     }
 
 
     render() {
     render() {
@@ -804,7 +804,7 @@ class CustomRender extends React.Component {
                     renderSelectedItem={this.renderSelectedItem}
                     renderSelectedItem={this.renderSelectedItem}
                 >
                 >
                     {
                     {
-                      list.map(item => this.renderCustomOption(item))
+                        list.map(item => this.renderCustomOption(item))
                     }
                     }
                 </Select>
                 </Select>
                 <Select
                 <Select
@@ -816,7 +816,7 @@ class CustomRender extends React.Component {
                     renderSelectedItem={this.renderMultipleWithCustomTag}
                     renderSelectedItem={this.renderMultipleWithCustomTag}
                 >
                 >
                     {
                     {
-                      list.map(item => this.renderCustomOption(item))
+                        list.map(item => this.renderCustomOption(item))
                     }
                     }
                 </Select>
                 </Select>
                 <Select
                 <Select
@@ -828,7 +828,7 @@ class CustomRender extends React.Component {
                     renderSelectedItem={this.renderMultipleWithCustomTag2}
                     renderSelectedItem={this.renderMultipleWithCustomTag2}
                 >
                 >
                     {
                     {
-                      list.map(item => this.renderCustomOption(item))
+                        list.map(item => this.renderCustomOption(item))
                     }
                     }
                 </Select>
                 </Select>
             </React.Fragment>
             </React.Fragment>
@@ -854,7 +854,7 @@ import { Select } from '@douyinfe/semi-ui';
         <Select.Option value="pipixia">Pipixia</Select.Option>
         <Select.Option value="pipixia">Pipixia</Select.Option>
         <Select.Option value="xigua">BuzzVideo</Select.Option>
         <Select.Option value="xigua">BuzzVideo</Select.Option>
     </Select>
     </Select>
-)
+);
 ```
 ```
 
 
 ### Dynamic Modification Options
 ### Dynamic Modification Options
@@ -1211,14 +1211,14 @@ import { Select, Checkbox } from '@douyinfe/semi-ui';
             <div className='option-right'>
             <div className='option-right'>
                 {label}
                 {label}
             </div>
             </div>
-        </div>
+        </div>;
     };
     };
 
 
     const optionList = [
     const optionList = [
-      { value: 'abc', label: 'Semi', otherKey:0 },
-      { value: 'capcut', label: 'Capcut', disabled: true, otherKey: 1 },
-      { value: 'cam', label: 'UlikeCam', otherKey: 2 },
-      { value: 'buzz', label: 'Buzz', otherKey: 3 },
+        { value: 'abc', label: 'Semi', otherKey:0 },
+        { value: 'capcut', label: 'Capcut', disabled: true, otherKey: 1 },
+        { value: 'cam', label: 'UlikeCam', otherKey: 2 },
+        { value: 'buzz', label: 'Buzz', otherKey: 3 },
     ];
     ];
 
 
     return <>
     return <>
@@ -1242,7 +1242,7 @@ import { Select, Checkbox } from '@douyinfe/semi-ui';
             style={{ width: 320, marginTop: 180 }}
             style={{ width: 320, marginTop: 180 }}
             renderOptionItem={renderOptionItem}
             renderOptionItem={renderOptionItem}
         />
         />
-    </>
+    </>;
 };
 };
 ```
 ```
 
 

文件差異過大導致無法顯示
+ 403 - 403
content/input/select/index.md


+ 119 - 119
content/input/slider/index-en-US.md

@@ -25,25 +25,25 @@ import React from 'react';
 import { Slider } from '@douyinfe/semi-ui';
 import { Slider } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
     <div>
     <div>
-        <div>Default</div>
-        <Slider showBoundary={true}></Slider>
-    </div>
-    <br/>
-    <br/>
-    <div>
-        <div>Range</div>
-        <Slider defaultValue={[20, 60]} range></Slider>
-    </div>
-    <br/>
-    <br/>
-    <div>
-        <div>Disabled</div>
-        <Slider defaultValue={40} disabled></Slider>
+        <div>
+            <div>Default</div>
+            <Slider showBoundary={true}></Slider>
+        </div>
+        <br/>
+        <br/>
+        <div>
+            <div>Range</div>
+            <Slider defaultValue={[20, 60]} range></Slider>
+        </div>
+        <br/>
+        <br/>
+        <div>
+            <div>Disabled</div>
+            <Slider defaultValue={40} disabled></Slider>
+        </div>
     </div>
     </div>
-  </div>
-)
+);
 ```
 ```
 
 
 ### With Input
 ### With Input
@@ -62,14 +62,14 @@ class InputSlider extends React.Component {
     }
     }
 
 
     getSliderValue(value) {
     getSliderValue(value) {
-        if(isNaN(Number(value))){
+        if (isNaN(Number(value))){
             return;
             return;
         }
         }
         this.setState({ value: value / 1 });
         this.setState({ value: value / 1 });
     }
     }
 
 
     render() {
     render() {
-        const { value } = this.state
+        const { value } = this.state;
         return (
         return (
             <div>
             <div>
                 <div style={{ width: 320, marginRight: 15 }}>
                 <div style={{ width: 320, marginRight: 15 }}>
@@ -91,13 +91,13 @@ import React from 'react';
 import { Slider } from '@douyinfe/semi-ui';
 import { Slider } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
-    <Slider tipFormatter={v => (`${v}%`)} />
-    <br/>
-    <br/>
-    <Slider tipFormatter={null} />
-  </div>
-)
+    <div>
+        <Slider tipFormatter={v => (`${v}%`)} />
+        <br/>
+        <br/>
+        <Slider tipFormatter={null} />
+    </div>
+);
 ```
 ```
 
 
 ### With Tag
 ### With Tag
@@ -109,23 +109,23 @@ import React from 'react';
 import { Slider } from '@douyinfe/semi-ui';
 import { Slider } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
-    <div>step=10</div>
-    <Slider step={10} marks={{ 0: '0', 10: '10', 20: '20', 30: '30', 40: '40', 50: '50', 100: '100' }} defaultValue={[10, 100]} range={true}></Slider>
-    <br/>
-    <br/>
-    <div>step=0.1</div>
-    <Slider step={0.1} marks={{ 0.1: '0.1', 0.2: '0.2', 0.3: '0.3', 0.4: '0.4', 0.5: '0.5' }} min={0} max={1} defaultValue={[0.1, 0.5]} range={true}></Slider>
-    <br/>
-    <br/>
-    <div>Marks</div>
-    <Slider marks={{ 20: '20c', 40: '40c' }} defaultValue={[0, 100]} range={true} ></Slider>
-    <br/>
-    <br/>
-    <div>Inclued</div>
-    <Slider marks={{ 20: '20c', 40: '40c' }} included={false} defaultValue={[0, 100]} range={true}></Slider>
-  </div>
-)
+    <div>
+        <div>step=10</div>
+        <Slider step={10} marks={{ 0: '0', 10: '10', 20: '20', 30: '30', 40: '40', 50: '50', 100: '100' }} defaultValue={[10, 100]} range={true}></Slider>
+        <br/>
+        <br/>
+        <div>step=0.1</div>
+        <Slider step={0.1} marks={{ 0.1: '0.1', 0.2: '0.2', 0.3: '0.3', 0.4: '0.4', 0.5: '0.5' }} min={0} max={1} defaultValue={[0.1, 0.5]} range={true}></Slider>
+        <br/>
+        <br/>
+        <div>Marks</div>
+        <Slider marks={{ 20: '20c', 40: '40c' }} defaultValue={[0, 100]} range={true} ></Slider>
+        <br/>
+        <br/>
+        <div>Inclued</div>
+        <Slider marks={{ 20: '20c', 40: '40c' }} included={false} defaultValue={[0, 100]} range={true}></Slider>
+    </div>
+);
 ```
 ```
 
 
 
 
@@ -136,43 +136,43 @@ import React from 'react';
 import { Slider } from '@douyinfe/semi-ui';
 import { Slider } from '@douyinfe/semi-ui';
 
 
 class SegSlider extends React.Component {
 class SegSlider extends React.Component {
-  constructor(props) {
-    super();
-    this.state = { value: [20, 60] };
-    this.changeValue = this.changeValue.bind(this);
-    this.getRailStyle = this.getRailStyle.bind(this);
-  }
-
-  changeValue(value) {
-    this.setState({ value });
-  }
-
-  getRailStyle(range) {
+    constructor(props) {
+        super();
+        this.state = { value: [20, 60] };
+        this.changeValue = this.changeValue.bind(this);
+        this.getRailStyle = this.getRailStyle.bind(this);
+    }
+
+    changeValue(value) {
+        this.setState({ value });
+    }
+
+    getRailStyle(range) {
     // color of second segment inherits from .semi-slider-track
     // color of second segment inherits from .semi-slider-track
-    const color = ['var(--semi-color-danger)', 'transparent', 'var(--semi-color-success)'];
-    const gradientPos = this.state.value.map(val => 
-      ((val - range[0]) / (range[1] - range[0])).toFixed(2) * 100
-    );
-    const style = {
-      background: `linear-gradient(to right, ${color[0]} ${gradientPos[0]}%, ${color[1]} ${gradientPos[0]}%, ${color[1]} ${gradientPos[1]}%, ${color[2]} ${gradientPos[1]}%)`
+        const color = ['var(--semi-color-danger)', 'transparent', 'var(--semi-color-success)'];
+        const gradientPos = this.state.value.map(val => 
+            ((val - range[0]) / (range[1] - range[0])).toFixed(2) * 100
+        );
+        const style = {
+            background: `linear-gradient(to right, ${color[0]} ${gradientPos[0]}%, ${color[1]} ${gradientPos[0]}%, ${color[1]} ${gradientPos[1]}%, ${color[2]} ${gradientPos[1]}%)`
+        };
+        return style;
+    }
+
+    render() {
+        const range = [10, 100];
+        const railStyle = this.getRailStyle(range);
+        return (
+            <Slider
+                range
+                min={range[0]}
+                max={range[1]}
+                onChange={this.changeValue}
+                railStyle={railStyle}
+                defaultValue={this.state.value}
+            />
+        );
     }
     }
-    return style;
-  }
-
-  render() {
-    const range = [10, 100];
-    const railStyle = this.getRailStyle(range);
-    return (
-        <Slider
-          range
-          min={range[0]}
-          max={range[1]}
-          onChange={this.changeValue}
-          railStyle={railStyle}
-          defaultValue={this.state.value}
-        />
-    );
-  }
 }
 }
 ```
 ```
 
 
@@ -185,26 +185,26 @@ import React from 'react';
 import { Slider, Button } from '@douyinfe/semi-ui';
 import { Slider, Button } from '@douyinfe/semi-ui';
 
 
 class ControllSlider extends React.Component {
 class ControllSlider extends React.Component {
-  constructor(props) {
-    super();
-    this.state = { value: 10 };
-    this.changeValue = this.changeValue.bind(this);
-  }
-
-  changeValue() {
-    this.setState({ value: this.state.value + 10 });
-  }
-
-  render() {
-    return (
-      <div>
-        <Button onClick={this.changeValue} style={{ marginRight: 20 }}>Click to change value</Button>
-        <br/>
-        <br/>
-        <Slider value={this.state.value}></Slider>
-      </div>
-    );
-  }
+    constructor(props) {
+        super();
+        this.state = { value: 10 };
+        this.changeValue = this.changeValue.bind(this);
+    }
+
+    changeValue() {
+        this.setState({ value: this.state.value + 10 });
+    }
+
+    render() {
+        return (
+            <div>
+                <Button onClick={this.changeValue} style={{ marginRight: 20 }}>Click to change value</Button>
+                <br/>
+                <br/>
+                <Slider value={this.state.value}></Slider>
+            </div>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -215,27 +215,27 @@ import React from 'react';
 import { Slider } from '@douyinfe/semi-ui';
 import { Slider } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
-      <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
-          <Slider vertical></Slider>
-      </div>
-      <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
-          <Slider vertical verticalReverse></Slider>
-      </div>
-      <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
-          <Slider vertical range defaultValue={[20, 60]}></Slider>
-      </div>
-      <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
-          <Slider vertical verticalReverse range defaultValue={[20, 60]}></Slider>
-      </div>
-      <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
-          <Slider vertical range marks={{ 20: '20c', 40: '40c' }} step={10} defaultValue={[20, 60]}></Slider>
-      </div>
-      <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
-          <Slider vertical verticalReverse range marks={{ 20: '20c', 40: '40c' }} step={10} defaultValue={[20, 60]}></Slider>
-      </div>
-  </div>
-)
+    <div>
+        <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
+            <Slider vertical></Slider>
+        </div>
+        <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
+            <Slider vertical verticalReverse></Slider>
+        </div>
+        <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
+            <Slider vertical range defaultValue={[20, 60]}></Slider>
+        </div>
+        <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
+            <Slider vertical verticalReverse range defaultValue={[20, 60]}></Slider>
+        </div>
+        <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
+            <Slider vertical range marks={{ 20: '20c', 40: '40c' }} step={10} defaultValue={[20, 60]}></Slider>
+        </div>
+        <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
+            <Slider vertical verticalReverse range marks={{ 20: '20c', 40: '40c' }} step={10} defaultValue={[20, 60]}></Slider>
+        </div>
+    </div>
+);
 ```
 ```
 
 
 ## API Reference
 ## API Reference

+ 142 - 139
content/input/slider/index.md

@@ -22,25 +22,25 @@ import React from 'react';
 import { Slider } from '@douyinfe/semi-ui';
 import { Slider } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
     <div>
     <div>
-        <div>Default</div>
-        <Slider showBoundary={true}></Slider>
-    </div>
-    <br/>
-    <br/>
-    <div>
-        <div>Range</div>
-        <Slider defaultValue={[20, 60]} range></Slider>
-    </div>
-    <br/>
-    <br/>
-    <div>
-        <div>Disabled</div>
-        <Slider defaultValue={40} disabled></Slider>
+        <div>
+            <div>Default</div>
+            <Slider showBoundary={true}></Slider>
+        </div>
+        <br/>
+        <br/>
+        <div>
+            <div>Range</div>
+            <Slider defaultValue={[20, 60]} range></Slider>
+        </div>
+        <br/>
+        <br/>
+        <div>
+            <div>Disabled</div>
+            <Slider defaultValue={40} disabled></Slider>
+        </div>
     </div>
     </div>
-  </div>
-)
+);
 ```
 ```
 
 
 ### 带输入框的
 ### 带输入框的
@@ -50,30 +50,30 @@ import React from 'react';
 import { Slider, InputNumber } from '@douyinfe/semi-ui';
 import { Slider, InputNumber } from '@douyinfe/semi-ui';
 
 
 class InputSlider extends React.Component {
 class InputSlider extends React.Component {
-  constructor(props) {
-    super();
-    this.state = { value: 10 };
-    this.getSliderValue = this.getSliderValue.bind(this);
-  }
-
-  getSliderValue(value) {
-      if(isNaN(Number(value))){
-          return;
-      }
-      this.setState({ value: value / 1 }); 
-  }
-
-  render() {
-    const { value } = this.state
-    return (
-      <div>
-          <div style={{ width: 320, marginRight: 15 }}>
-              <Slider step={1} value={value} onChange={(value) => (this.getSliderValue(value))} ></Slider>
-          </div>
-          <InputNumber onChange={(v) => this.getSliderValue(v)} style={{width: 100}} value={value} min={0} max={100} />
-      </div>
-    );
-  }
+    constructor(props) {
+        super();
+        this.state = { value: 10 };
+        this.getSliderValue = this.getSliderValue.bind(this);
+    }
+
+    getSliderValue(value) {
+        if (isNaN(Number(value))){
+            return;
+        }
+        this.setState({ value: value / 1 }); 
+    }
+
+    render() {
+        const { value } = this.state;
+        return (
+            <div>
+                <div style={{ width: 320, marginRight: 15 }}>
+                    <Slider step={1} value={value} onChange={(value) => (this.getSliderValue(value))} ></Slider>
+                </div>
+                <InputNumber onChange={(v) => this.getSliderValue(v)} style={{width: 100}} value={value} min={0} max={100} />
+            </div>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -84,13 +84,13 @@ import React from 'react';
 import { Slider } from '@douyinfe/semi-ui';
 import { Slider } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
-    <Slider tipFormatter={v => (`${v}%`)} />
-    <br/>
-    <br/>
-    <Slider tipFormatter={null} />
-  </div>
-)
+    <div>
+        <Slider tipFormatter={v => (`${v}%`)} />
+        <br/>
+        <br/>
+        <Slider tipFormatter={null} />
+    </div>
+);
 ```
 ```
 
 
 ### 带标签的
 ### 带标签的
@@ -100,23 +100,23 @@ import React from 'react';
 import { Slider } from '@douyinfe/semi-ui';
 import { Slider } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
-    <div>step=10</div>
-    <Slider step={10} marks={{ 0: '0', 10: '10', 20: '20', 30: '30', 40: '40', 50: '50', 100: '100' }} defaultValue={[10, 100]} range={true}></Slider>
-    <br/>
-    <br/>
-    <div>step=0.1</div>
-    <Slider step={0.1} marks={{ 0.1: '0.1', 0.2: '0.2', 0.3: '0.3', 0.4: '0.4', 0.5: '0.5' }} min={0} max={1} defaultValue={[0.1, 0.5]} range={true}></Slider>
-    <br/>
-    <br/>
-    <div>Marks</div>
-    <Slider marks={{ 20: '20c', 40: '40c' }} defaultValue={[0, 100]} range={true} ></Slider>
-    <br/>
-    <br/>
-    <div>Inclued</div>
-    <Slider marks={{ 20: '20c', 40: '40c' }} included={false} defaultValue={[0, 100]} range={true}></Slider>
-  </div>
-)
+    <div>
+        <div>step=10</div>
+        <Slider step={10} marks={{ 0: '0', 10: '10', 20: '20', 30: '30', 40: '40', 50: '50', 100: '100' }} defaultValue={[10, 100]} range={true}></Slider>
+        <br/>
+        <br/>
+        <div>step=0.1</div>
+        <Slider step={0.1} marks={{ 0.1: '0.1', 0.2: '0.2', 0.3: '0.3', 0.4: '0.4', 0.5: '0.5' }} min={0} max={1} defaultValue={[0.1, 0.5]} range={true}></Slider>
+        <br/>
+        <br/>
+        <div>Marks</div>
+        <Slider marks={{ 20: '20c', 40: '40c' }} defaultValue={[0, 100]} range={true} ></Slider>
+        <br/>
+        <br/>
+        <div>Inclued</div>
+        <Slider marks={{ 20: '20c', 40: '40c' }} included={false} defaultValue={[0, 100]} range={true}></Slider>
+    </div>
+);
 ```
 ```
 
 
 ### 分段背景
 ### 分段背景
@@ -126,43 +126,43 @@ import React from 'react';
 import { Slider } from '@douyinfe/semi-ui';
 import { Slider } from '@douyinfe/semi-ui';
 
 
 class SegSlider extends React.Component {
 class SegSlider extends React.Component {
-  constructor(props) {
-    super();
-    this.state = { value: [20, 60] };
-    this.changeValue = this.changeValue.bind(this);
-    this.getRailStyle = this.getRailStyle.bind(this);
-  }
-
-  changeValue(value) {
-    this.setState({ value });
-  }
-
-  getRailStyle(range) {
+    constructor(props) {
+        super();
+        this.state = { value: [20, 60] };
+        this.changeValue = this.changeValue.bind(this);
+        this.getRailStyle = this.getRailStyle.bind(this);
+    }
+
+    changeValue(value) {
+        this.setState({ value });
+    }
+
+    getRailStyle(range) {
     // color of second segment inherits from .semi-slider-track
     // color of second segment inherits from .semi-slider-track
-    const color = ['var(--semi-color-danger)', 'transparent', 'var(--semi-color-success)'];
-    const gradientPos = this.state.value.map(val => 
-      ((val - range[0]) / (range[1] - range[0])).toFixed(2) * 100
-    );
-    const style = {
-      background: `linear-gradient(to right, ${color[0]} ${gradientPos[0]}%, ${color[1]} ${gradientPos[0]}%, ${color[1]} ${gradientPos[1]}%, ${color[2]} ${gradientPos[1]}%)`
+        const color = ['var(--semi-color-danger)', 'transparent', 'var(--semi-color-success)'];
+        const gradientPos = this.state.value.map(val => 
+            ((val - range[0]) / (range[1] - range[0])).toFixed(2) * 100
+        );
+        const style = {
+            background: `linear-gradient(to right, ${color[0]} ${gradientPos[0]}%, ${color[1]} ${gradientPos[0]}%, ${color[1]} ${gradientPos[1]}%, ${color[2]} ${gradientPos[1]}%)`
+        };
+        return style;
+    }
+
+    render() {
+        const range = [10, 100];
+        const railStyle = this.getRailStyle(range);
+        return (
+            <Slider
+                range
+                min={range[0]}
+                max={range[1]}
+                onChange={this.changeValue}
+                railStyle={railStyle}
+                defaultValue={this.state.value}
+            />
+        );
     }
     }
-    return style;
-  }
-
-  render() {
-    const range = [10, 100];
-    const railStyle = this.getRailStyle(range);
-    return (
-        <Slider
-          range
-          min={range[0]}
-          max={range[1]}
-          onChange={this.changeValue}
-          railStyle={railStyle}
-          defaultValue={this.state.value}
-        />
-    );
-  }
 }
 }
 ```
 ```
 
 
@@ -173,26 +173,26 @@ import React from 'react';
 import { Slider, Button } from '@douyinfe/semi-ui';
 import { Slider, Button } from '@douyinfe/semi-ui';
 
 
 class ControllSlider extends React.Component {
 class ControllSlider extends React.Component {
-  constructor(props) {
-    super();
-    this.state = { value: 10 };
-    this.changeValue = this.changeValue.bind(this);
-  }
-
-  changeValue() {
-    this.setState({ value: this.state.value + 10 });
-  }
-
-  render() {
-    return (
-      <div>
-        <Button onClick={this.changeValue} style={{ marginRight: 20 }}>点击改变value值</Button>
-        <br/>
-        <br/>
-        <Slider value={this.state.value}></Slider>
-      </div>
-    );
-  }
+    constructor(props) {
+        super();
+        this.state = { value: 10 };
+        this.changeValue = this.changeValue.bind(this);
+    }
+
+    changeValue() {
+        this.setState({ value: this.state.value + 10 });
+    }
+
+    render() {
+        return (
+            <div>
+                <Button onClick={this.changeValue} style={{ marginRight: 20 }}>点击改变value值</Button>
+                <br/>
+                <br/>
+                <Slider value={this.state.value}></Slider>
+            </div>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -201,26 +201,29 @@ class ControllSlider extends React.Component {
 import React from 'react';
 import React from 'react';
 import { Slider } from '@douyinfe/semi-ui';
 import { Slider } from '@douyinfe/semi-ui';
 
 
-<div>
-  <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
-      <Slider vertical></Slider>
-  </div>
-  <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
-      <Slider vertical verticalReverse></Slider>
-  </div>
-  <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
-      <Slider vertical range defaultValue={[20, 60]}></Slider>
-  </div>
-  <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
-      <Slider vertical verticalReverse range defaultValue={[20, 60]}></Slider>
-  </div>
-  <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
-      <Slider vertical range marks={{ 20: '20c', 40: '40c' }} step={10} defaultValue={[20, 60]}></Slider>
-  </div>
-    <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
-      <Slider vertical verticalReverse range marks={{ 20: '20c', 40: '40c' }} step={10} defaultValue={[20, 60]}></Slider>
+() => (
+    <div>
+        <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
+            <Slider vertical></Slider>
+        </div>
+        <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
+            <Slider vertical verticalReverse></Slider>
+        </div>
+        <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
+            <Slider vertical range defaultValue={[20, 60]}></Slider>
+        </div>
+        <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
+            <Slider vertical verticalReverse range defaultValue={[20, 60]}></Slider>
+        </div>
+        <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
+            <Slider vertical range marks={{ 20: '20c', 40: '40c' }} step={10} defaultValue={[20, 60]}></Slider>
+        </div>
+        <div style={{height: 300, marginLeft: 30, marginTop: 10, paddingRight: 30, display: 'inline-block'}}>
+            <Slider vertical verticalReverse range marks={{ 20: '20c', 40: '40c' }} step={10} defaultValue={[20, 60]}></Slider>
+        </div>
     </div>
     </div>
-</div>
+);
+
 ```
 ```
 
 
 ## API参考
 ## API参考

+ 27 - 27
content/input/switch/index-en-US.md

@@ -22,14 +22,14 @@ import React from 'react';
 import { Switch } from '@douyinfe/semi-ui';
 import { Switch } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
-      <Switch onChange={(v, e) => console.log(v)}>
-      </Switch>
-      <br/>
-      <Switch defaultChecked={true} onChange={(v, e) => console.log(v)}>
-      </Switch>
-  </div>
-)
+    <div>
+        <Switch onChange={(v, e) => console.log(v)}>
+        </Switch>
+        <br/>
+        <Switch defaultChecked={true} onChange={(v, e) => console.log(v)}>
+        </Switch>
+    </div>
+);
 ```
 ```
 
 
 ### Size
 ### Size
@@ -39,7 +39,7 @@ import React from 'react';
 import { Switch } from '@douyinfe/semi-ui';
 import { Switch } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
+    <div>
         <Switch size='small'></Switch>
         <Switch size='small'></Switch>
         <Switch defaultChecked={true} size='small'></Switch>
         <Switch defaultChecked={true} size='small'></Switch>
         <Switch size='small' loading/>
         <Switch size='small' loading/>
@@ -54,8 +54,8 @@ import { Switch } from '@douyinfe/semi-ui';
         <Switch defaultChecked={true} size='large'></Switch>
         <Switch defaultChecked={true} size='large'></Switch>
         <Switch size='large' loading/>
         <Switch size='large' loading/>
         <Switch size='large' loading defaultChecked={true} />
         <Switch size='large' loading defaultChecked={true} />
-  </div>
-)
+    </div>
+);
 ```
 ```
 
 
 ### Disabled
 ### Disabled
@@ -65,12 +65,12 @@ import React from 'react';
 import { Switch } from '@douyinfe/semi-ui';
 import { Switch } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
+    <div>
         <Switch disabled></Switch>
         <Switch disabled></Switch>
         <br/>
         <br/>
         <Switch disabled checked={true}></Switch>
         <Switch disabled checked={true}></Switch>
-  </div>
-)
+    </div>
+);
 ```
 ```
 
 
 ### With text
 ### With text
@@ -97,7 +97,7 @@ import { Switch } from '@douyinfe/semi-ui';
         <Switch defaultChecked checkedText='on' uncheckedText='off' size='large' />
         <Switch defaultChecked checkedText='on' uncheckedText='off' size='large' />
         <Switch defaultChecked checkedText='|' uncheckedText='〇' size='large' style={{marginLeft:5}}/>
         <Switch defaultChecked checkedText='|' uncheckedText='〇' size='large' style={{marginLeft:5}}/>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 Compared to setting the embedded text through checkedText and uncheckedText, we recommend placing the text description outside the Switch
 Compared to setting the embedded text through checkedText and uncheckedText, we recommend placing the text description outside the Switch
@@ -110,11 +110,11 @@ import { Switch, Typography } from '@douyinfe/semi-ui';
     const { Title } = Typography;
     const { Title } = Typography;
     return (
     return (
         <div style={{display:'flex', alignItems: 'center'}}>
         <div style={{display:'flex', alignItems: 'center'}}>
-          <Title heading={6} style={{margin: 8}}>{open?'Open':'Closed'}</Title>
-          <Switch checked={open} onChange={setOpen}/>
+            <Title heading={6} style={{margin: 8}}>{open?'Open':'Closed'}</Title>
+            <Switch checked={open} onChange={setOpen}/>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### Controlled component
 ### Controlled component
@@ -127,10 +127,10 @@ import { Switch } from '@douyinfe/semi-ui';
 
 
 class Demo extends React.Component {
 class Demo extends React.Component {
     constructor() {
     constructor() {
-        super()
+        super();
         this.state = {
         this.state = {
             checked: true,
             checked: true,
-        }
+        };
         this.onChange = this.onChange.bind(this);
         this.onChange = this.onChange.bind(this);
     }
     }
     onChange(checked) {
     onChange(checked) {
@@ -139,12 +139,12 @@ class Demo extends React.Component {
     render() {
     render() {
         return (
         return (
             <>
             <>
-            <Switch
-                checked={this.state.checked}
-                onChange={this.onChange}>
-            </Switch>
+                <Switch
+                    checked={this.state.checked}
+                    onChange={this.onChange}>
+                </Switch>
             </>
             </>
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -165,7 +165,7 @@ import { Switch } from '@douyinfe/semi-ui';
         <br />
         <br />
         <Switch loading defaultChecked={true} />
         <Switch loading defaultChecked={true} />
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ## API reference
 ## API reference

+ 30 - 28
content/input/switch/index.md

@@ -23,14 +23,14 @@ import React from 'react';
 import { Switch } from '@douyinfe/semi-ui';
 import { Switch } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
-      <Switch onChange={(v, e) => console.log(v)}>
-      </Switch>
-      <br/>
-      <Switch defaultChecked={true} onChange={(v, e) => console.log(v)}>
-      </Switch>
-  </div>
-)
+    <div>
+        <Switch onChange={(v, e) => console.log(v)}>
+        </Switch>
+        <br/>
+        <Switch defaultChecked={true} onChange={(v, e) => console.log(v)}>
+        </Switch>
+    </div>
+);
 ```
 ```
 
 
 ### 尺寸
 ### 尺寸
@@ -40,7 +40,7 @@ import React from 'react';
 import { Switch } from '@douyinfe/semi-ui';
 import { Switch } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
+    <div>
         <Switch size='small'></Switch>
         <Switch size='small'></Switch>
         <Switch defaultChecked={true} size='small'></Switch>
         <Switch defaultChecked={true} size='small'></Switch>
         <Switch size='small' loading/>
         <Switch size='small' loading/>
@@ -55,8 +55,8 @@ import { Switch } from '@douyinfe/semi-ui';
         <Switch defaultChecked={true} size='large'></Switch>
         <Switch defaultChecked={true} size='large'></Switch>
         <Switch size='large' loading/>
         <Switch size='large' loading/>
         <Switch size='large' loading defaultChecked={true} />
         <Switch size='large' loading defaultChecked={true} />
-  </div>
-)
+    </div>
+);
 ```
 ```
 
 
 ### 不可用
 ### 不可用
@@ -66,12 +66,12 @@ import React from 'react';
 import { Switch } from '@douyinfe/semi-ui';
 import { Switch } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
+    <div>
         <Switch disabled></Switch>
         <Switch disabled></Switch>
         <br/>
         <br/>
         <Switch disabled checked={true}></Switch>
         <Switch disabled checked={true}></Switch>
-  </div>
-)
+    </div>
+);
 ```
 ```
 
 
 ### 带文本
 ### 带文本
@@ -98,7 +98,7 @@ import { Switch } from '@douyinfe/semi-ui';
         <Switch defaultChecked checkedText='开' uncheckedText='关' size='large' />
         <Switch defaultChecked checkedText='开' uncheckedText='关' size='large' />
         <Switch defaultChecked checkedText='|' uncheckedText='〇' size='large' style={{marginLeft:5}}/>
         <Switch defaultChecked checkedText='|' uncheckedText='〇' size='large' style={{marginLeft:5}}/>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 相比于通过chekedText与uncheckedText设置内嵌的文本,我们更推荐将文本说明放置在Switch外部
 相比于通过chekedText与uncheckedText设置内嵌的文本,我们更推荐将文本说明放置在Switch外部
@@ -111,11 +111,11 @@ import { Switch, Typography } from '@douyinfe/semi-ui';
     const { Title } = Typography;
     const { Title } = Typography;
     return (
     return (
         <div style={{display:'flex', alignItems: 'center'}}>
         <div style={{display:'flex', alignItems: 'center'}}>
-          <Title heading={6} style={{margin: 8}}>{open?'已开启':'已关闭'}</Title>
-          <Switch checked={open} onChange={setOpen}/>
+            <Title heading={6} style={{margin: 8}}>{open?'已开启':'已关闭'}</Title>
+            <Switch checked={open} onChange={setOpen}/>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 受控组件
 ### 受控组件
@@ -128,10 +128,10 @@ import { Switch } from '@douyinfe/semi-ui';
 
 
 class Demo extends React.Component {
 class Demo extends React.Component {
     constructor() {
     constructor() {
-        super()
+        super();
         this.state = {
         this.state = {
             checked: true,
             checked: true,
-        }
+        };
         this.onChange = this.onChange.bind(this);
         this.onChange = this.onChange.bind(this);
     }
     }
     onChange(checked) {
     onChange(checked) {
@@ -140,12 +140,12 @@ class Demo extends React.Component {
     render() {
     render() {
         return (
         return (
             <>
             <>
-            <Switch
-                checked={this.state.checked}
-                onChange={this.onChange}>
-            </Switch>
+                <Switch
+                    checked={this.state.checked}
+                    onChange={this.onChange}>
+                </Switch>
             </>
             </>
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -160,11 +160,13 @@ version: >= 1.29.0
 import React from 'react';
 import React from 'react';
 import { Switch } from '@douyinfe/semi-ui';
 import { Switch } from '@douyinfe/semi-ui';
 
 
-  <div>
+() => (
+    <div>
         <Switch loading />
         <Switch loading />
         <br />
         <br />
         <Switch loading defaultChecked={true} />
         <Switch loading defaultChecked={true} />
-  </div>
+    </div>
+);
 ```
 ```
 
 
 ## API 参考
 ## API 参考

+ 20 - 20
content/input/taginput/index-en-US.md

@@ -29,7 +29,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         placeholder='Please enter...'
         placeholder='Please enter...'
         onChange={v => console.log(v)}
         onChange={v => console.log(v)}
     />
     />
-)
+);
 ```
 ```
 
 
 ### Batch Add
 ### Batch Add
@@ -54,7 +54,7 @@ import { TagInput } from '@douyinfe/semi-ui';
             onChange={v => console.log(v)}
             onChange={v => console.log(v)}
         />
         />
     </>
     </>
-)
+);
 ```
 ```
 
 
 ### Batch Remove
 ### Batch Remove
@@ -72,7 +72,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         placeholder='Please enter...'
         placeholder='Please enter...'
         onChange={v => console.log(v)}
         onChange={v => console.log(v)}
     />
     />
-)
+);
 ```
 ```
 
 
 
 
@@ -89,7 +89,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         defaultValue={['Semi','Hotsoon','Pipixia']} 
         defaultValue={['Semi','Hotsoon','Pipixia']} 
         placeholder='Please enter...'
         placeholder='Please enter...'
     />
     />
-)
+);
 ```
 ```
 
 
 ### Size
 ### Size
@@ -108,7 +108,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         <br/><br/>
         <br/><br/>
         <TagInput size='large' placeholder='large'/>
         <TagInput size='large' placeholder='large'/>
     </>
     </>
-)
+);
 ```
 ```
 
 
 ### Different validate status
 ### Different validate status
@@ -128,7 +128,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         <br/><br/>
         <br/><br/>
         <TagInput placeholder='error' validateStatus='error'/>
         <TagInput placeholder='error' validateStatus='error'/>
     </>
     </>
-)
+);
 ``` 
 ``` 
 
 
 ### Prefix / Suffix
 ### Prefix / Suffix
@@ -151,7 +151,7 @@ import { IconVigoLogo, IconGift } from '@douyinfe/semi-icons';
         <br/><br/>
         <br/><br/>
         <TagInput  suffix="Suffix" showClear/>
         <TagInput  suffix="Suffix" showClear/>
     </>
     </>
-)
+);
 ``` 
 ``` 
 
 
 ### Allow Duplicates
 ### Allow Duplicates
@@ -169,7 +169,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         placeholder='Please enter...'
         placeholder='Please enter...'
         onChange={v => console.log(v)}
         onChange={v => console.log(v)}
     />
     />
-)
+);
 ```
 ```
 
 
 ### Autocomplete
 ### Autocomplete
@@ -187,7 +187,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         placeholder='Please enter...'
         placeholder='Please enter...'
         onChange={v => console.log(v)}
         onChange={v => console.log(v)}
     />
     />
-)
+);
 ```
 ```
 
 
 ### Limits
 ### Limits
@@ -222,7 +222,7 @@ import { TagInput } from '@douyinfe/semi-ui';
             }} 
             }} 
         />
         />
     </>
     </>
-)
+);
 ```
 ```
 
 
 ### Limit the number of tags displayed
 ### Limit the number of tags displayed
@@ -240,7 +240,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         restTagsPopoverProps={{ position: 'top' }}
         restTagsPopoverProps={{ position: 'top' }}
         defaultValue={['Semi','Hotsoon','Pipixia']} 
         defaultValue={['Semi','Hotsoon','Pipixia']} 
     />
     />
-)
+);
 ```
 ```
 
 
 ### Controlled Tag
 ### Controlled Tag
@@ -267,7 +267,7 @@ class TagInputDemo extends React.Component {
                 value={this.state.value}
                 value={this.state.value}
                 onChange={value => {this.onChange(value);}}
                 onChange={value => {this.onChange(value);}}
             />
             />
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -285,10 +285,10 @@ class TagInputDemo extends React.Component {
         super(props);
         super(props);
         this.state = {
         this.state = {
             value: 'abc'
             value: 'abc'
-        }
+        };
     }
     }
     handleInputChange(value, event) {
     handleInputChange(value, event) {
-      this.setState({ value });
+        this.setState({ value });
     }
     }
     render() {
     render() {
         return (
         return (
@@ -296,7 +296,7 @@ class TagInputDemo extends React.Component {
                 inputValue={this.state.value}
                 inputValue={this.state.value}
                 onInputChange={(v,e) => this.handleInputChange(v,e)}
                 onInputChange={(v,e) => this.handleInputChange(v,e)}
             />
             />
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -318,7 +318,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         onRemove={(v,i)=>{console.log(`onRemove :${v}, index:${i}`);}} 
         onRemove={(v,i)=>{console.log(`onRemove :${v}, index:${i}`);}} 
         onInputChange={(input,e)=>{console.log(`onInputChange :${input}`);}} 
         onInputChange={(input,e)=>{console.log(`onInputChange :${input}`);}} 
     />
     />
-)
+);
 ```
 ```
 
 
 ### Focus Management
 ### Focus Management
@@ -348,7 +348,7 @@ class TagInputDemo extends React.Component {
                     focus
                     focus
                 </Button>
                 </Button>
             </>
             </>
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -366,13 +366,13 @@ class CustomRender extends React.Component {
         super(props);
         super(props);
         this.state = {
         this.state = {
             value : ['xiakeman']
             value : ['xiakeman']
-        }
+        };
         this.list = [
         this.list = [
             { "name": "xiakeman", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/avatarDemo.jpeg"},
             { "name": "xiakeman", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/avatarDemo.jpeg"},
             { "name": "shenyue",  "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/bf8647bffab13c38772c9ff94bf91a9d.jpg"},
             { "name": "shenyue",  "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/bf8647bffab13c38772c9ff94bf91a9d.jpg"},
             { "name": "quchenyi", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/dbf7351bb779433d17c4f50478cf42f7.jpg"},
             { "name": "quchenyi", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/dbf7351bb779433d17c4f50478cf42f7.jpg"},
             { "name": "wenjiamao", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/7abf810ff060ac3387bd027ead92c4e0.jpg"},
             { "name": "wenjiamao", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/7abf810ff060ac3387bd027ead92c4e0.jpg"},
-        ]
+        ];
         this.mapList = new Map(this.list.map( item => [item.name,item]));
         this.mapList = new Map(this.list.map( item => [item.name,item]));
     }
     }
 
 
@@ -391,7 +391,7 @@ class CustomRender extends React.Component {
                     {`${value}@semi.com`}
                     {`${value}@semi.com`}
                 </span>
                 </span>
             </div>
             </div>
-        )
+        );
     }
     }
 
 
     render() {
     render() {

+ 20 - 20
content/input/taginput/index.md

@@ -28,7 +28,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         placeholder='请输入...'
         placeholder='请输入...'
         onChange={v => console.log(v)}
         onChange={v => console.log(v)}
     />
     />
-)
+);
 ```
 ```
 
 
 ### 批量添加
 ### 批量添加
@@ -53,7 +53,7 @@ import { TagInput } from '@douyinfe/semi-ui';
             onChange={v => console.log(v)}
             onChange={v => console.log(v)}
         />
         />
     </>
     </>
-)
+);
 ```
 ```
 
 
 ### 批量删除
 ### 批量删除
@@ -71,7 +71,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         placeholder='请输入...'
         placeholder='请输入...'
         onChange={v => console.log(v)}
         onChange={v => console.log(v)}
     />
     />
-)
+);
 ```
 ```
 
 
 ### 禁用
 ### 禁用
@@ -87,7 +87,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         defaultValue={['抖音','火山','西瓜视频']} 
         defaultValue={['抖音','火山','西瓜视频']} 
         placeholder='请输入...'
         placeholder='请输入...'
     />
     />
-)
+);
 ```
 ```
 
 
 ### 尺寸大小
 ### 尺寸大小
@@ -106,7 +106,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         <br/><br/>
         <br/><br/>
         <TagInput size='large' placeholder='large'/>
         <TagInput size='large' placeholder='large'/>
     </>
     </>
-)
+);
 ```
 ```
 
 
 ### 不同校验状态样式
 ### 不同校验状态样式
@@ -125,7 +125,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         <br/><br/>
         <br/><br/>
         <TagInput placeholder='error' validateStatus='error'/>
         <TagInput placeholder='error' validateStatus='error'/>
     </>
     </>
-)
+);
 ``` 
 ``` 
 
 
 ### 前缀 / 后缀
 ### 前缀 / 后缀
@@ -148,7 +148,7 @@ import { IconVigoLogo, IconGift } from '@douyinfe/semi-icons';
         <br/><br/>
         <br/><br/>
         <TagInput suffix="Suffix" />
         <TagInput suffix="Suffix" />
     </>
     </>
-)
+);
 ``` 
 ``` 
 
 
 ### 失焦后自动创建标签
 ### 失焦后自动创建标签
@@ -166,7 +166,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         placeholder='请输入...'
         placeholder='请输入...'
         onChange={v => console.log(v)}
         onChange={v => console.log(v)}
     />
     />
-)
+);
 ```
 ```
 
 
 ### 过滤重复标签
 ### 过滤重复标签
@@ -184,7 +184,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         placeholder='请输入...'
         placeholder='请输入...'
         onChange={v => console.log(v)}
         onChange={v => console.log(v)}
     />
     />
-)
+);
 ```
 ```
 
 
 ### 输入限制
 ### 输入限制
@@ -219,7 +219,7 @@ import { TagInput } from '@douyinfe/semi-ui';
             }} 
             }} 
         />
         />
     </>
     </>
-)
+);
 ```
 ```
 
 
 ### 限制标签展示数量
 ### 限制标签展示数量
@@ -238,7 +238,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         defaultValue={['抖音','火山','西瓜视频']}
         defaultValue={['抖音','火山','西瓜视频']}
         onChange={v => console.log(v)}
         onChange={v => console.log(v)}
     />
     />
-)
+);
 ```
 ```
 
 
 ### 标签受控
 ### 标签受控
@@ -266,7 +266,7 @@ class TagInputDemo extends React.Component {
                 value={this.state.value}
                 value={this.state.value}
                 onChange={value => {this.onChange(value);}}
                 onChange={value => {this.onChange(value);}}
             />
             />
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -284,10 +284,10 @@ class TagInputDemo extends React.Component {
         super();
         super();
         this.state = {
         this.state = {
             value: 'abc'
             value: 'abc'
-        }
+        };
     }
     }
     handleInputChange(value, event) {
     handleInputChange(value, event) {
-      this.setState({ value });
+        this.setState({ value });
     }
     }
     render() {
     render() {
         return (
         return (
@@ -295,7 +295,7 @@ class TagInputDemo extends React.Component {
                 inputValue={this.state.value}
                 inputValue={this.state.value}
                 onInputChange={(v,e) => this.handleInputChange(v,e)}
                 onInputChange={(v,e) => this.handleInputChange(v,e)}
             />
             />
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -318,7 +318,7 @@ import { TagInput } from '@douyinfe/semi-ui';
         onRemove={(v,i) => {console.log(`onRemove,移除:${v}, 序号:${i}`);}} 
         onRemove={(v,i) => {console.log(`onRemove,移除:${v}, 序号:${i}`);}} 
         onInputChange={(input,e) => {console.log(`onInputChange,当前输入内容:${input}`);}} 
         onInputChange={(input,e) => {console.log(`onInputChange,当前输入内容:${input}`);}} 
     />
     />
-)
+);
 ```
 ```
 
 
 ### 焦点管理
 ### 焦点管理
@@ -348,7 +348,7 @@ class TagInputDemo extends React.Component {
                     点击按钮聚焦
                     点击按钮聚焦
                 </Button>
                 </Button>
             </>
             </>
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -366,13 +366,13 @@ class CustomRender extends React.Component {
         super(props);
         super(props);
         this.state = {
         this.state = {
             value : ['夏可漫']
             value : ['夏可漫']
-        }
+        };
         this.list = [
         this.list = [
             { "name": "夏可漫", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/avatarDemo.jpeg"},
             { "name": "夏可漫", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/avatarDemo.jpeg"},
             { "name": "申悦",  "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/bf8647bffab13c38772c9ff94bf91a9d.jpg"},
             { "name": "申悦",  "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/bf8647bffab13c38772c9ff94bf91a9d.jpg"},
             { "name": "曲晨一", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/dbf7351bb779433d17c4f50478cf42f7.jpg"},
             { "name": "曲晨一", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/dbf7351bb779433d17c4f50478cf42f7.jpg"},
             { "name": "文嘉茂", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/7abf810ff060ac3387bd027ead92c4e0.jpg"},
             { "name": "文嘉茂", "avatar":  "https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/7abf810ff060ac3387bd027ead92c4e0.jpg"},
-        ]
+        ];
         this.mapList = new Map(this.list.map( item => [item.name,item]));
         this.mapList = new Map(this.list.map( item => [item.name,item]));
     }
     }
 
 
@@ -391,7 +391,7 @@ class CustomRender extends React.Component {
                     {`${value}@semi.com`}
                     {`${value}@semi.com`}
                 </span>
                 </span>
             </div>
             </div>
-        )
+        );
     }
     }
 
 
     render() {
     render() {

+ 41 - 41
content/input/timepicker/index.md

@@ -28,7 +28,7 @@ import React from 'react';
 import { TimePicker } from '@douyinfe/semi-ui';
 import { TimePicker } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  return <TimePicker />;
+    return <TimePicker />;
 }
 }
 ```
 ```
 
 
@@ -39,7 +39,7 @@ import React from 'react';
 import { TimePicker } from '@douyinfe/semi-ui';
 import { TimePicker } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  return <TimePicker insetLabel='时刻'/>;
+    return <TimePicker insetLabel='时刻'/>;
 }
 }
 ```
 ```
 
 
@@ -52,22 +52,22 @@ import React from 'react';
 import { TimePicker } from '@douyinfe/semi-ui';
 import { TimePicker } from '@douyinfe/semi-ui';
 
 
 class Demo extends React.Component {
 class Demo extends React.Component {
-  constructor() {
-    super();
-    this.state = {
-      value: null,
+    constructor() {
+        super();
+        this.state = {
+            value: null,
+        };
+        this.onChange = this.onChange.bind(this);
+    }
+
+    onChange(time) {
+        console.log(time);
+        this.setState({ value: time });
     };
     };
-    this.onChange = this.onChange.bind(this);
-  }
 
 
-  onChange(time) {
-    console.log(time);
-    this.setState({ value: time });
-  };
-
-  render() {
-    return <TimePicker value={this.state.value} onChange={this.onChange} />;
-  }
+    render() {
+        return <TimePicker value={this.state.value} onChange={this.onChange} />;
+    }
 }
 }
 ```
 ```
 
 
@@ -82,7 +82,7 @@ import React from 'react';
 import { TimePicker } from '@douyinfe/semi-ui';
 import { TimePicker } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  return <TimePicker format={'HH:mm'} defaultValue={'10:24'}/>;
+    return <TimePicker format={'HH:mm'} defaultValue={'10:24'}/>;
 }
 }
 ```
 ```
 
 
@@ -93,14 +93,14 @@ import React, { useState } from 'react';
 import { TimePicker, Button } from '@douyinfe/semi-ui';
 import { TimePicker, Button } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const [open, setOpen] = useState(false);
-  const closePanel = () => setOpen(false);
-  const onOpenChange = (open) =>  {
-    setOpen(open);
-    console.log(open);
-  };
-
-  return <TimePicker open={open} onOpenChange={onOpenChange} panelHeader={'Time Select'} panelFooter={<Button onClick={closePanel}>close</Button>}/>;
+    const [open, setOpen] = useState(false);
+    const closePanel = () => setOpen(false);
+    const onOpenChange = (open) =>  {
+        setOpen(open);
+        console.log(open);
+    };
+
+    return <TimePicker open={open} onOpenChange={onOpenChange} panelHeader={'Time Select'} panelFooter={<Button onClick={closePanel}>close</Button>}/>;
 }
 }
 ```
 ```
 
 
@@ -111,7 +111,7 @@ import React from 'react';
 import { TimePicker } from '@douyinfe/semi-ui';
 import { TimePicker } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  return <TimePicker defaultValue={'12:08:23'} disabled />;
+    return <TimePicker defaultValue={'12:08:23'} disabled />;
 }
 }
 ```
 ```
 
 
@@ -124,7 +124,7 @@ import React from 'react';
 import { TimePicker } from '@douyinfe/semi-ui';
 import { TimePicker } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  return <TimePicker minuteStep={15} secondStep={10} />;
+    return <TimePicker minuteStep={15} secondStep={10} />;
 }
 }
 ```
 ```
 
 
@@ -139,12 +139,12 @@ import React from 'react';
 import { TimePicker } from '@douyinfe/semi-ui';
 import { TimePicker } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  return (
-    <div>
-      <TimePicker use12Hours /><br/><br/>
-      <TimePicker use12Hours format="a h:mm" />
-    </div>
-  );
+    return (
+        <div>
+            <TimePicker use12Hours /><br/><br/>
+            <TimePicker use12Hours format="a h:mm" />
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -159,12 +159,12 @@ import React from 'react';
 import { TimePicker } from '@douyinfe/semi-ui';
 import { TimePicker } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  return (
-    <div>
-      <TimePicker type="timeRange" defaultValue={["10:23:15", "12:38:32"]} /><br/><br/>
-      <TimePicker type="timeRange" use12Hours format="a h:mm" defaultValue={["上午 08:11", "下午 11:21"]} />
-    </div>
-  );
+    return (
+        <div>
+            <TimePicker type="timeRange" defaultValue={["10:23:15", "12:38:32"]} /><br/><br/>
+            <TimePicker type="timeRange" use12Hours format="a h:mm" defaultValue={["上午 08:11", "下午 11:21"]} />
+        </div>
+    );
 }
 }
 ```
 ```
 
 
@@ -224,10 +224,10 @@ function Demo(props = {}) {
     const defaultTimestamp = 1581599305265;
     const defaultTimestamp = 1581599305265;
     const gmtList = useMemo(() => {
     const gmtList = useMemo(() => {
         const list = [];
         const list = [];
-        for(let hourOffset = -11; hourOffset <= 14 ; hourOffset++) {
+        for (let hourOffset = -11; hourOffset <= 14 ; hourOffset++) {
             const prefix = hourOffset >= 0 ? '+' : '-';
             const prefix = hourOffset >= 0 ? '+' : '-';
             const hOffset = Math.abs(parseInt(hourOffset, 10));
             const hOffset = Math.abs(parseInt(hourOffset, 10));
-            list.push(`GMT${prefix}${String(hOffset).padStart(2, '0')}:00`)
+            list.push(`GMT${prefix}${String(hOffset).padStart(2, '0')}:00`);
         }
         }
         return list;
         return list;
     }, []);
     }, []);

文件差異過大導致無法顯示
+ 425 - 425
content/input/treeselect/index-en-US.md


文件差異過大導致無法顯示
+ 450 - 450
content/input/treeselect/index.md


+ 18 - 16
content/input/upload/index-en-US.md

@@ -24,11 +24,13 @@ import React from 'react';
 import { Upload, Button } from '@douyinfe/semi-ui';
 import { Upload, Button } from '@douyinfe/semi-ui';
 import { IconUpload } from '@douyinfe/semi-icons';
 import { IconUpload } from '@douyinfe/semi-icons';
 
 
-<Upload action="//semi.design/api/upload">
-    <Button icon={<IconUpload />} theme="light">
-        Click upload
-    </Button>
-</Upload>
+() => (
+    <Upload action="//semi.design/api/upload">
+        <Button icon={<IconUpload />} theme="light">
+            Click upload
+        </Button>
+    </Upload>
+);
 ```
 ```
 
 
 ### Add prompt text
 ### Add prompt text
@@ -191,8 +193,8 @@ import { IconCamera } from '@douyinfe/semi-icons';
         >
         >
             <Avatar src={url} style={{ margin: 4 }} hoverMask={hoverMask} />
             <Avatar src={url} style={{ margin: 4 }} hoverMask={hoverMask} />
         </Upload>
         </Upload>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ```css
 ```css
@@ -207,7 +209,7 @@ Custom upload attributes can be added by setting `data`, `headers`
 
 
 ```jsx live=true width=48%
 ```jsx live=true width=48%
 import React from 'react';
 import React from 'react';
-import { Upload } from '@douyinfe/semi-ui';
+import { Upload, Button } from '@douyinfe/semi-ui';
 import { IconUpload } from '@douyinfe/semi-icons';
 import { IconUpload } from '@douyinfe/semi-icons';
 
 
 () => {
 () => {
@@ -248,7 +250,7 @@ For example, only allowing users to upload PNG and PDF files, `accept` can be wr
 
 
 ```jsx live=true width=48%
 ```jsx live=true width=48%
 import React from 'react';
 import React from 'react';
-import { Upload } from '@douyinfe/semi-ui';
+import { Upload, Button } from '@douyinfe/semi-ui';
 import { IconUpload } from '@douyinfe/semi-icons';
 import { IconUpload } from '@douyinfe/semi-icons';
 
 
 () => {
 () => {
@@ -336,7 +338,7 @@ import { IconUpload } from '@douyinfe/semi-icons';
     let action = 'https://semi.design/api/upload';
     let action = 'https://semi.design/api/upload';
     let limit = 1;
     let limit = 1;
     let onChange = props => {
     let onChange = props => {
-        console.log(props.fileList)
+        console.log(props.fileList);
     };
     };
     return (
     return (
         <Upload
         <Upload
@@ -586,7 +588,7 @@ import { IconUpload } from '@douyinfe/semi-icons';
         console.log(currentFile);
         console.log(currentFile);
         let newFileList = [...fileList]; // spread to get new array
         let newFileList = [...fileList]; // spread to get new array
         updateList(newFileList);
         updateList(newFileList);
-    }
+    };
 
 
     return (
     return (
         <Upload
         <Upload
@@ -599,8 +601,8 @@ import { IconUpload } from '@douyinfe/semi-icons';
                 Click upload
                 Click upload
             </Button>
             </Button>
         </Upload>
         </Upload>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### Photo Wall
 ### Photo Wall
@@ -752,7 +754,7 @@ import { IconBolt } from '@douyinfe/semi-icons';
     dragMainText={'Click to upload the file or drag and drop the file here'}
     dragMainText={'Click to upload the file or drag and drop the file here'}
     dragSubText="Only supports jpeg, pdf"
     dragSubText="Only supports jpeg, pdf"
     style={{ marginTop: 10 }}
     style={{ marginTop: 10 }}
-></Upload>
+></Upload>;
 ```
 ```
 
 
 You can also pass in ReactNode through `children` to completely customize the display of the drag area
 You can also pass in ReactNode through `children` to completely customize the display of the drag area
@@ -787,8 +789,8 @@ import { IconBolt } from '@douyinfe/semi-icons';
             Wow, you can really dance.
             Wow, you can really dance.
         </div>
         </div>
     </div>
     </div>
-    </Upload>
-)
+</Upload>
+);
 ```
 ```
 
 
 The scss style is as follows
 The scss style is as follows

+ 11 - 11
content/input/upload/index.md

@@ -25,10 +25,10 @@ import { Upload, Button } from '@douyinfe/semi-ui';
 import { IconUpload } from '@douyinfe/semi-icons';
 import { IconUpload } from '@douyinfe/semi-icons';
 
 
 <Upload action="https://run.mocky.io/v3/d6ac5c9e-4d39-4309-a747-7ed3b5694859">
 <Upload action="https://run.mocky.io/v3/d6ac5c9e-4d39-4309-a747-7ed3b5694859">
-    <Button icon={<IconUpload />} theme="light">
+        <Button icon={<IconUpload />} theme="light">
         点击上传
         点击上传
     </Button>
     </Button>
-</Upload>
+    </Upload>;
 ```
 ```
 
 
 ### 添加提示文本
 ### 添加提示文本
@@ -191,8 +191,8 @@ import { IconCamera } from '@douyinfe/semi-icons';
         >
         >
             <Avatar src={url} style={{ margin: 4 }} hoverMask={hoverMask} />
             <Avatar src={url} style={{ margin: 4 }} hoverMask={hoverMask} />
         </Upload>
         </Upload>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ```css
 ```css
@@ -336,7 +336,7 @@ import { IconUpload } from '@douyinfe/semi-icons';
     let action = 'https:https://run.mocky.io/v3/d6ac5c9e-4d39-4309-a747-7ed3b5694859';
     let action = 'https:https://run.mocky.io/v3/d6ac5c9e-4d39-4309-a747-7ed3b5694859';
     let limit = 1;
     let limit = 1;
     let onChange = props => {
     let onChange = props => {
-        console.log(props.fileList)
+        console.log(props.fileList);
     };
     };
     return (
     return (
         <Upload
         <Upload
@@ -575,7 +575,7 @@ import { IconUpload } from '@douyinfe/semi-icons';
         console.log(currentFile);
         console.log(currentFile);
         let newFileList = [...fileList]; // spread to get new array
         let newFileList = [...fileList]; // spread to get new array
         updateList(newFileList);
         updateList(newFileList);
-    }
+    };
 
 
     return (
     return (
         <Upload
         <Upload
@@ -588,8 +588,8 @@ import { IconUpload } from '@douyinfe/semi-icons';
                 点击上传
                 点击上传
             </Button>
             </Button>
         </Upload>
         </Upload>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 照片墙
 ### 照片墙
@@ -741,7 +741,7 @@ import { IconBolt } from '@douyinfe/semi-icons';
     dragMainText={'点击上传文件或拖拽文件到这里'}
     dragMainText={'点击上传文件或拖拽文件到这里'}
     dragSubText="仅支持jpeg、pdf"
     dragSubText="仅支持jpeg、pdf"
     style={{ marginTop: 10 }}
     style={{ marginTop: 10 }}
-></Upload>
+></Upload>;
 ```
 ```
 
 
 还可以通过 `children` 传入 ReactNode,完全自定义拖拽区的显示
 还可以通过 `children` 传入 ReactNode,完全自定义拖拽区的显示
@@ -776,8 +776,8 @@ import { IconBolt } from '@douyinfe/semi-icons';
             Wow, you can really dance.
             Wow, you can really dance.
         </div>
         </div>
     </div>
     </div>
-    </Upload>
-)
+</Upload>
+);
 ```
 ```
 
 
 Scss 样式如下
 Scss 样式如下

+ 75 - 71
content/navigation/anchor/index-en-US.md

@@ -33,7 +33,7 @@ import { Anchor } from '@douyinfe/semi-ui';
         <Anchor.Link href="#Blocks" title="Blocks" />
         <Anchor.Link href="#Blocks" title="Blocks" />
         <Anchor.Link href="#Theme" title="Theme" />
         <Anchor.Link href="#Theme" title="Theme" />
     </Anchor>
     </Anchor>
-)
+);
 ```
 ```
 
 
 ### Integrated Usage
 ### Integrated Usage
@@ -49,12 +49,13 @@ You can use `getContainer`, `targetOffset`, `offsetTop`, and `style` to create a
 -   offsetTop:`offsetTop` can trigger the current Link switch when the scrolling content reaches a specified offset from the top of the container.
 -   offsetTop:`offsetTop` can trigger the current Link switch when the scrolling content reaches a specified offset from the top of the container.
 
 
 ```jsx
 ```jsx
+import React from 'react';
 import { Anchor } from '@douyinfe/semi-ui';
 import { Anchor } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
     const getContainer = () => {
     const getContainer = () => {
         return document.querySelector('window');
         return document.querySelector('window');
-    }
+    };
     return (
     return (
         <div>
         <div>
             <span>See the fixed Anchor on the right </span>
             <span>See the fixed Anchor on the right </span>
@@ -76,8 +77,8 @@ import { Anchor } from '@douyinfe/semi-ui';
                 </Anchor.Link>
                 </Anchor.Link>
             </Anchor>
             </Anchor>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### Size
 ### Size
@@ -95,7 +96,7 @@ import { Anchor } from '@douyinfe/semi-ui';
         <Anchor.Link href="#Blocks" title="Blocks" />
         <Anchor.Link href="#Blocks" title="Blocks" />
         <Anchor.Link href="#Theme" title="Theme" />
         <Anchor.Link href="#Theme" title="Theme" />
     </Anchor>
     </Anchor>
-)
+);
 ```
 ```
 
 
 ```jsx live=true
 ```jsx live=true
@@ -109,7 +110,7 @@ import { Anchor } from '@douyinfe/semi-ui';
         <Anchor.Link href="#Blocks" title="Blocks" />
         <Anchor.Link href="#Blocks" title="Blocks" />
         <Anchor.Link href="#Theme" title="Theme" />
         <Anchor.Link href="#Theme" title="Theme" />
     </Anchor>
     </Anchor>
-)
+);
 ```
 ```
 
 
 ### Rail Theme
 ### Rail Theme
@@ -123,7 +124,7 @@ import { Anchor } from '@douyinfe/semi-ui';
 () => {
 () => {
     const getContainer = () => {
     const getContainer = () => {
         return document.querySelector('window');
         return document.querySelector('window');
-    }
+    };
     return (
     return (
         <div>
         <div>
             <Anchor
             <Anchor
@@ -138,8 +139,8 @@ import { Anchor } from '@douyinfe/semi-ui';
                 <Anchor.Link href="#Theme" title="Theme" />
                 <Anchor.Link href="#Theme" title="Theme" />
             </Anchor>
             </Anchor>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ```jsx live=true
 ```jsx live=true
@@ -149,7 +150,7 @@ import { Anchor } from '@douyinfe/semi-ui';
 () => {
 () => {
     const getContainer = () => {
     const getContainer = () => {
         return document.querySelector('window');
         return document.querySelector('window');
-    }
+    };
     return (
     return (
         <div>
         <div>
             <Anchor
             <Anchor
@@ -164,8 +165,8 @@ import { Anchor } from '@douyinfe/semi-ui';
                 <Anchor.Link href="#Theme" title="Theme" />
                 <Anchor.Link href="#Theme" title="Theme" />
             </Anchor>
             </Anchor>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ```jsx live=true
 ```jsx live=true
@@ -175,7 +176,7 @@ import { Anchor } from '@douyinfe/semi-ui';
 () => {
 () => {
     const getContainer = () => {
     const getContainer = () => {
         return document.querySelector('window');
         return document.querySelector('window');
-    }
+    };
     return (
     return (
         <div>
         <div>
             <Anchor
             <Anchor
@@ -190,8 +191,8 @@ import { Anchor } from '@douyinfe/semi-ui';
                 <Anchor.Link href="#Theme" title="Theme" />
                 <Anchor.Link href="#Theme" title="Theme" />
             </Anchor>
             </Anchor>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### Auto Collapse
 ### Auto Collapse
@@ -205,28 +206,28 @@ import { Anchor } from '@douyinfe/semi-ui';
 () => {
 () => {
     const getContainer = () => {
     const getContainer = () => {
         return document.querySelector('window');
         return document.querySelector('window');
-    }
+    };
     return (
     return (
         <div>
         <div>
-        <Anchor
-            autoCollapse={true}
-            getContainer={getContainer}
-            targetOffset={60}
-            offsetTop={100}>
-            <Anchor.Link href="#Auto_Collapse" title="1. Auto Collapse">
-                <Anchor.Link href="#Components" title="1.1 Components">
-                    <Anchor.Link href="#Avatar" title="1.1.1 Avatar" />
-                    <Anchor.Link href="#Button" title="1.1.2 Button" />
-                    <Anchor.Link href="#Icon" title="1.1.3 Icon" />
+            <Anchor
+                autoCollapse={true}
+                getContainer={getContainer}
+                targetOffset={60}
+                offsetTop={100}>
+                <Anchor.Link href="#Auto_Collapse" title="1. Auto Collapse">
+                    <Anchor.Link href="#Components" title="1.1 Components">
+                        <Anchor.Link href="#Avatar" title="1.1.1 Avatar" />
+                        <Anchor.Link href="#Button" title="1.1.2 Button" />
+                        <Anchor.Link href="#Icon" title="1.1.3 Icon" />
+                    </Anchor.Link>
+                    <Anchor.Link href="#Blocks" title="1.2 Blocks" />
+                    <Anchor.Link href="#Theme" title="1.3 Theme" />
                 </Anchor.Link>
                 </Anchor.Link>
-                <Anchor.Link href="#Blocks" title="1.2 Blocks" />
-                <Anchor.Link href="#Theme" title="1.3 Theme" />
-            </Anchor.Link>
-            <Anchor.Link href="#Design" title="2. Design" />
-        </Anchor>
+                <Anchor.Link href="#Design" title="2. Design" />
+            </Anchor>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ```jsx live=true
 ```jsx live=true
@@ -236,7 +237,7 @@ import { Anchor } from '@douyinfe/semi-ui';
 () => {
 () => {
     const getContainer = () => {
     const getContainer = () => {
         return document.querySelector('window');
         return document.querySelector('window');
-    }
+    };
     return (
     return (
         <div>
         <div>
             <Anchor
             <Anchor
@@ -256,8 +257,8 @@ import { Anchor } from '@douyinfe/semi-ui';
                 <Anchor.Link href="#Design" title="2. Design" />
                 <Anchor.Link href="#Design" title="2. Design" />
             </Anchor>
             </Anchor>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### Show Tooltip
 ### Show Tooltip
@@ -271,24 +272,24 @@ import { Anchor } from '@douyinfe/semi-ui';
 () => {
 () => {
     const getContainer = () => {
     const getContainer = () => {
         return document.querySelector('window');
         return document.querySelector('window');
-    }
+    };
     return (
     return (
         <div>
         <div>
-        <Anchor
-            showTooltip={true}
-            getContainer={getContainer}
-            targetOffset={60}
-            offsetTop={100}
-        >
-            <Anchor.Link href="#Show_Tooltip" title="Tooltip is a useful tool that displays the entire content when text is abbreviated." />
-            <Anchor.Link href="#Components" title="Components" />
-            <Anchor.Link href="#Design" title="Design" />
-            <Anchor.Link href="#Blocks" title="Blocks" />
-            <Anchor.Link href="#Theme" title="Theme" />
-        </Anchor>
+            <Anchor
+                showTooltip={true}
+                getContainer={getContainer}
+                targetOffset={60}
+                offsetTop={100}
+            >
+                <Anchor.Link href="#Show_Tooltip" title="Tooltip is a useful tool that displays the entire content when text is abbreviated." />
+                <Anchor.Link href="#Components" title="Components" />
+                <Anchor.Link href="#Design" title="Design" />
+                <Anchor.Link href="#Blocks" title="Blocks" />
+                <Anchor.Link href="#Theme" title="Theme" />
+            </Anchor>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### Tooltip Position
 ### Tooltip Position
@@ -302,25 +303,25 @@ import { Anchor } from '@douyinfe/semi-ui';
 () => {
 () => {
     const getContainer = () => {
     const getContainer = () => {
         return document.querySelector('window');
         return document.querySelector('window');
-    }
+    };
     return (
     return (
         <div>
         <div>
-        <Anchor
-            showTooltip={true}
-            position={'right'}
-            getContainer={getContainer}
-            targetOffset={60}
-            offsetTop={100}
-        >
-            <Anchor.Link href="#Tooltip_Position" title="Tooltip is a useful tool that displays the entire content when text is abbreviated." />
-            <Anchor.Link href="#Components" title="Components" />
-            <Anchor.Link href="#Design" title="Design" />
-            <Anchor.Link href="#Blocks" title="Blocks" />
-            <Anchor.Link href="#Theme" title="Theme" />
-        </Anchor>
+            <Anchor
+                showTooltip={true}
+                position={'right'}
+                getContainer={getContainer}
+                targetOffset={60}
+                offsetTop={100}
+            >
+                <Anchor.Link href="#Tooltip_Position" title="Tooltip is a useful tool that displays the entire content when text is abbreviated." />
+                <Anchor.Link href="#Components" title="Components" />
+                <Anchor.Link href="#Design" title="Design" />
+                <Anchor.Link href="#Blocks" title="Blocks" />
+                <Anchor.Link href="#Theme" title="Theme" />
+            </Anchor>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ## API Reference
 ## API Reference
@@ -365,16 +366,19 @@ import { Anchor } from '@douyinfe/semi-ui';
     - No, it means there is a problem with the id. check whether the id exists in the document;
     - No, it means there is a problem with the id. check whether the id exists in the document;
     - Yes, it may be that the scrolling container is not set correctly to ensure that the content of the document is wrapped in the scrolling container. The default scrolling container is window. If your container is a div of .my-container, you should set the scrolling container to this div.
     - Yes, it may be that the scrolling container is not set correctly to ensure that the content of the document is wrapped in the scrolling container. The default scrolling container is window. If your container is a div of .my-container, you should set the scrolling container to this div.
     
     
-    ```jsx
-    function() {
+    ```text
+    import React from 'react';
+    import { Anchor } from '@douyinfe/semi-ui';
+
+    function App() {
         const getContainer = () => {
         const getContainer = () => {
             return document.querySelector('.my-container');
             return document.querySelector('.my-container');
-        }
+        };
         return (
         return (
             <Anchor
             <Anchor
                 /* Other props */
                 /* Other props */
                 getContainer={getContainer}
                 getContainer={getContainer}
-                >
+            >
                 /* Links */
                 /* Links */
             </Anchor>
             </Anchor>
         )
         )

+ 62 - 58
content/navigation/anchor/index.md

@@ -31,7 +31,7 @@ import { Anchor } from '@douyinfe/semi-ui';
         <Anchor.Link href="#物料平台" title="物料平台" />
         <Anchor.Link href="#物料平台" title="物料平台" />
         <Anchor.Link href="#主题商店" title="主题商店" />
         <Anchor.Link href="#主题商店" title="主题商店" />
     </Anchor>  
     </Anchor>  
-)
+);
 ```
 ```
 
 
 ### 综合使用
 ### 综合使用
@@ -47,12 +47,13 @@ import { Anchor } from '@douyinfe/semi-ui';
 -   偏移距离:`offsetTop` 可以在滚动内容距离容器顶部达到指定偏移量时触发当前 Link 切换。
 -   偏移距离:`offsetTop` 可以在滚动内容距离容器顶部达到指定偏移量时触发当前 Link 切换。
 
 
 ```jsx
 ```jsx
+import React from 'react';
 import { Anchor } from '@douyinfe/semi-ui';
 import { Anchor } from '@douyinfe/semi-ui';
 
 
 () =>  {
 () =>  {
     const getContainer = () => {
     const getContainer = () => {
         return document.querySelector('window');
         return document.querySelector('window');
-    }
+    };
     return (
     return (
         <div>
         <div>
             <span>请看右侧固定的 Anchor </span>
             <span>请看右侧固定的 Anchor </span>
@@ -74,8 +75,8 @@ import { Anchor } from '@douyinfe/semi-ui';
                 </Anchor.Link>
                 </Anchor.Link>
             </Anchor>
             </Anchor>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 尺寸
 ### 尺寸
@@ -93,7 +94,7 @@ import { Anchor } from '@douyinfe/semi-ui';
         <Anchor.Link href="#物料平台" title="物料平台" />
         <Anchor.Link href="#物料平台" title="物料平台" />
         <Anchor.Link href="#主题商店" title="主题商店" />
         <Anchor.Link href="#主题商店" title="主题商店" />
     </Anchor>
     </Anchor>
-)
+);
 ```
 ```
 
 
 ```jsx live=true
 ```jsx live=true
@@ -107,7 +108,7 @@ import { Anchor } from '@douyinfe/semi-ui';
         <Anchor.Link href="#物料平台" title="物料平台" />
         <Anchor.Link href="#物料平台" title="物料平台" />
         <Anchor.Link href="#主题商店" title="主题商店" />
         <Anchor.Link href="#主题商店" title="主题商店" />
     </Anchor>
     </Anchor>
-)
+);
 ```
 ```
 
 
 ### 滑轨主题
 ### 滑轨主题
@@ -121,7 +122,7 @@ import { Anchor } from '@douyinfe/semi-ui';
 () => {
 () => {
     const getContainer = () => {
     const getContainer = () => {
         return document.querySelector('window');
         return document.querySelector('window');
-    }
+    };
     return (
     return (
         <div>
         <div>
             <Anchor
             <Anchor
@@ -137,8 +138,8 @@ import { Anchor } from '@douyinfe/semi-ui';
                 <Anchor.Link href="#主题商店" title="主题商店" />
                 <Anchor.Link href="#主题商店" title="主题商店" />
             </Anchor>
             </Anchor>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ```jsx live=true
 ```jsx live=true
@@ -148,7 +149,7 @@ import { Anchor } from '@douyinfe/semi-ui';
 () => {
 () => {
     const getContainer = () => {
     const getContainer = () => {
         return document.querySelector('window');
         return document.querySelector('window');
-    }
+    };
     return (
     return (
         <div>
         <div>
             <Anchor
             <Anchor
@@ -164,8 +165,8 @@ import { Anchor } from '@douyinfe/semi-ui';
                 <Anchor.Link href="#主题商店" title="主题商店" />
                 <Anchor.Link href="#主题商店" title="主题商店" />
             </Anchor>
             </Anchor>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ```jsx live=true
 ```jsx live=true
@@ -175,7 +176,7 @@ import { Anchor } from '@douyinfe/semi-ui';
 () => {
 () => {
     const getContainer = () => {
     const getContainer = () => {
         return document.querySelector('window');
         return document.querySelector('window');
-    }
+    };
     return (
     return (
         <div>
         <div>
             <Anchor
             <Anchor
@@ -191,8 +192,8 @@ import { Anchor } from '@douyinfe/semi-ui';
                 <Anchor.Link href="#主题商店" title="主题商店" />
                 <Anchor.Link href="#主题商店" title="主题商店" />
             </Anchor>
             </Anchor>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 动态展示
 ### 动态展示
@@ -206,28 +207,28 @@ import { Anchor } from '@douyinfe/semi-ui';
 () => {
 () => {
     const getContainer = () => {
     const getContainer = () => {
         return document.querySelector('window');
         return document.querySelector('window');
-    }
+    };
     return (
     return (
         <div>
         <div>
-        <Anchor
-            autoCollapse={true}
-            getContainer={getContainer}
-            targetOffset={60}
-            offsetTop={100}>
-            <Anchor.Link href="#动态展示" title="1. 动态展示">
-                <Anchor.Link href="#组件" title="1.1 组件">
-                    <Anchor.Link href="#头像" title="1.1.1 Avatar" />
-                    <Anchor.Link href="#按钮" title="1.1.2 Button" />
-                    <Anchor.Link href="#图标" title="1.1.3 Icon" />
+            <Anchor
+                autoCollapse={true}
+                getContainer={getContainer}
+                targetOffset={60}
+                offsetTop={100}>
+                <Anchor.Link href="#动态展示" title="1. 动态展示">
+                    <Anchor.Link href="#组件" title="1.1 组件">
+                        <Anchor.Link href="#头像" title="1.1.1 Avatar" />
+                        <Anchor.Link href="#按钮" title="1.1.2 Button" />
+                        <Anchor.Link href="#图标" title="1.1.3 Icon" />
+                    </Anchor.Link>
+                    <Anchor.Link href="#物料" title="1.2 物料" />
+                    <Anchor.Link href="#主题商店" title="1.3 主题商店" />
                 </Anchor.Link>
                 </Anchor.Link>
-                <Anchor.Link href="#物料" title="1.2 物料" />
-                <Anchor.Link href="#主题商店" title="1.3 主题商店" />
-            </Anchor.Link>
-            <Anchor.Link href="#设计语言" title="2. 设计语言" />
-        </Anchor>
+                <Anchor.Link href="#设计语言" title="2. 设计语言" />
+            </Anchor>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ```jsx live=true
 ```jsx live=true
@@ -237,28 +238,28 @@ import { Anchor } from '@douyinfe/semi-ui';
 () => {
 () => {
     const getContainer = () => {
     const getContainer = () => {
         return document.querySelector('window');
         return document.querySelector('window');
-    }
+    };
     return (
     return (
         <div>
         <div>
-        <Anchor
-            autoCollapse={false}
-            getContainer={getContainer}
-            targetOffset={60}
-            offsetTop={100}>
-            <Anchor.Link href="#动态展示" title="1. 动态展示">
-                <Anchor.Link href="#组件" title="1.1 组件">
-                    <Anchor.Link href="#头像" title="1.1.1 Avatar" />
-                    <Anchor.Link href="#按钮" title="1.1.2 Button" />
-                    <Anchor.Link href="#图标" title="1.1.3 Icon" />
+            <Anchor
+                autoCollapse={false}
+                getContainer={getContainer}
+                targetOffset={60}
+                offsetTop={100}>
+                <Anchor.Link href="#动态展示" title="1. 动态展示">
+                    <Anchor.Link href="#组件" title="1.1 组件">
+                        <Anchor.Link href="#头像" title="1.1.1 Avatar" />
+                        <Anchor.Link href="#按钮" title="1.1.2 Button" />
+                        <Anchor.Link href="#图标" title="1.1.3 Icon" />
+                    </Anchor.Link>
+                    <Anchor.Link href="#物料" title="1.2 物料" />
+                    <Anchor.Link href="#主题商店" title="1.3 主题商店" />
                 </Anchor.Link>
                 </Anchor.Link>
-                <Anchor.Link href="#物料" title="1.2 物料" />
-                <Anchor.Link href="#主题商店" title="1.3 主题商店" />
-            </Anchor.Link>
-            <Anchor.Link href="#设计语言" title="2. 设计语言" />
-        </Anchor>
+                <Anchor.Link href="#设计语言" title="2. 设计语言" />
+            </Anchor>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 显示工具提示
 ### 显示工具提示
@@ -272,7 +273,7 @@ import { Anchor } from '@douyinfe/semi-ui';
 () => {
 () => {
     const getContainer = () => {
     const getContainer = () => {
         return document.querySelector('window');
         return document.querySelector('window');
-    }
+    };
     return (
     return (
         <div>
         <div>
             <Anchor
             <Anchor
@@ -288,8 +289,8 @@ import { Anchor } from '@douyinfe/semi-ui';
                 <Anchor.Link href="#主题商店" title="主题商店" />
                 <Anchor.Link href="#主题商店" title="主题商店" />
             </Anchor>
             </Anchor>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 工具提示位置
 ### 工具提示位置
@@ -303,7 +304,7 @@ import { Anchor } from '@douyinfe/semi-ui';
 () => {
 () => {
     const getContainer = () => {
     const getContainer = () => {
         return document.querySelector('window');
         return document.querySelector('window');
-    }
+    };
     return (
     return (
         <div>
         <div>
             <Anchor
             <Anchor
@@ -320,8 +321,8 @@ import { Anchor } from '@douyinfe/semi-ui';
                 <Anchor.Link href="#主题商店" title="主题商店" />
                 <Anchor.Link href="#主题商店" title="主题商店" />
             </Anchor>
             </Anchor>
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ## API 参考
 ## API 参考
@@ -367,7 +368,10 @@ import { Anchor } from '@douyinfe/semi-ui';
     - 不可以,说明 href 有问题,检查文档中是否存在该 id;
     - 不可以,说明 href 有问题,检查文档中是否存在该 id;
     - 可以,可能是滚动容器设置不正确,确保文档内容被包裹在滚动容器内。滚动容器默认为 window,如果你的容器是 .my-container 的 div,则应该将滚动容器设置为该 div。
     - 可以,可能是滚动容器设置不正确,确保文档内容被包裹在滚动容器内。滚动容器默认为 window,如果你的容器是 .my-container 的 div,则应该将滚动容器设置为该 div。
     
     
-    ```jsx
+    ```text
+    import React from 'react';
+    import { Anchor } from '@douyinfe/semi-ui';
+
     function() {
     function() {
         // 此容器不是 Anchor 组件的容器,是文档内容的容器,因为要根据文档容器去计算当前是哪个 id 在容器上方
         // 此容器不是 Anchor 组件的容器,是文档内容的容器,因为要根据文档容器去计算当前是哪个 id 在容器上方
         const getContainer = () => {
         const getContainer = () => {

+ 12 - 12
content/navigation/breadcrumb/index-en-US.md

@@ -28,7 +28,7 @@ import { Breadcrumb } from '@douyinfe/semi-ui';
         <Breadcrumb.Item>Breadcrumb</Breadcrumb.Item>
         <Breadcrumb.Item>Breadcrumb</Breadcrumb.Item>
         <Breadcrumb.Item>Default</Breadcrumb.Item>
         <Breadcrumb.Item>Default</Breadcrumb.Item>
     </Breadcrumb>
     </Breadcrumb>
-)
+);
 ```
 ```
 
 
 ### With Icons
 ### With Icons
@@ -44,7 +44,7 @@ import { IconHome, IconArticle } from '@douyinfe/semi-icons';
         <Breadcrumb.Item icon={<IconArticle />}>Breadcrumb</Breadcrumb.Item>
         <Breadcrumb.Item icon={<IconArticle />}>Breadcrumb</Breadcrumb.Item>
         <Breadcrumb.Item>With Icon</Breadcrumb.Item>
         <Breadcrumb.Item>With Icon</Breadcrumb.Item>
     </Breadcrumb>
     </Breadcrumb>
-)
+);
 ```
 ```
 
 
 ### Size
 ### Size
@@ -70,7 +70,7 @@ import { IconHome } from '@douyinfe/semi-icons';
             <Breadcrumb.Item>Loose</Breadcrumb.Item>
             <Breadcrumb.Item>Loose</Breadcrumb.Item>
         </Breadcrumb>
         </Breadcrumb>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### Custom Separator
 ### Custom Separator
@@ -79,7 +79,7 @@ Default separator is `/`.
 
 
 ```jsx live=true
 ```jsx live=true
 import React from 'react';
 import React from 'react';
-import { Breadcrumb } from '@douyinfe/semi-ui';
+import { Breadcrumb, Tag } from '@douyinfe/semi-ui';
 import { IconArrowRight } from '@douyinfe/semi-icons';
 import { IconArrowRight } from '@douyinfe/semi-icons';
 
 
 () => (
 () => (
@@ -95,7 +95,7 @@ import { IconArrowRight } from '@douyinfe/semi-icons';
             <Breadcrumb.Item>Breadcrumb</Breadcrumb.Item>
             <Breadcrumb.Item>Breadcrumb</Breadcrumb.Item>
             <Breadcrumb.Item>Default</Breadcrumb.Item>
             <Breadcrumb.Item>Default</Breadcrumb.Item>
         </Breadcrumb>
         </Breadcrumb>
-        <Tag>v>=1.16.0</Tag>
+        <Tag>{`v>=1.16.0`}</Tag>
         <br/>
         <br/>
         <Breadcrumb size={'small'} >
         <Breadcrumb size={'small'} >
             <Breadcrumb.Item separator=":">Semi-ui</Breadcrumb.Item>
             <Breadcrumb.Item separator=":">Semi-ui</Breadcrumb.Item>
@@ -103,7 +103,7 @@ import { IconArrowRight } from '@douyinfe/semi-icons';
             <Breadcrumb.Item>Default</Breadcrumb.Item>
             <Breadcrumb.Item>Default</Breadcrumb.Item>
         </Breadcrumb>
         </Breadcrumb>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### Truncated Logic
 ### Truncated Logic
@@ -147,8 +147,8 @@ import { Breadcrumb, Typography } from '@douyinfe/semi-ui';
                 routes={routes}
                 routes={routes}
             />
             />
         </>
         </>
-    )
-}
+    );
+};
 ```
 ```
 
 
 When the path exceeds 4 levels, the second level to the penultimate one will be replaced by ellipsis. You can click the ellipsis to reveal all levels.
 When the path exceeds 4 levels, the second level to the penultimate one will be replaced by ellipsis. You can click the ellipsis to reveal all levels.
@@ -168,7 +168,7 @@ import { Breadcrumb } from '@douyinfe/semi-ui';
         <Breadcrumb.Item>Penultimate</Breadcrumb.Item>
         <Breadcrumb.Item>Penultimate</Breadcrumb.Item>
         <Breadcrumb.Item>Detail</Breadcrumb.Item>
         <Breadcrumb.Item>Detail</Breadcrumb.Item>
     </Breadcrumb>
     </Breadcrumb>
-)
+);
 ```
 ```
 
 
 ### Custom Ellipsis
 ### Custom Ellipsis
@@ -189,7 +189,7 @@ import { Breadcrumb } from '@douyinfe/semi-ui';
         <Breadcrumb.Item>Penultimate</Breadcrumb.Item>
         <Breadcrumb.Item>Penultimate</Breadcrumb.Item>
         <Breadcrumb.Item>Detail</Breadcrumb.Item>
         <Breadcrumb.Item>Detail</Breadcrumb.Item>
     </Breadcrumb>
     </Breadcrumb>
-)
+);
 ```
 ```
 
 
 If you want to customize other forms of rendering for the ellipsis area, you can use the `renderMore()` method.
 If you want to customize other forms of rendering for the ellipsis area, you can use the `renderMore()` method.
@@ -217,7 +217,7 @@ function Demo() {
                     ))
                     ))
                 }
                 }
             </>
             </>
-        )
+        );
         return (
         return (
             <Popover
             <Popover
                 content={content}
                 content={content}
@@ -290,7 +290,7 @@ import { IconHome, IconArticle } from '@douyinfe/semi-icons';
             routes={['Index', 'This is a very long level', 'Detail']}
             routes={['Index', 'This is a very long level', 'Detail']}
         />
         />
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ## API reference
 ## API reference

+ 12 - 12
content/navigation/breadcrumb/index.md

@@ -28,7 +28,7 @@ import { Breadcrumb } from '@douyinfe/semi-ui';
         <Breadcrumb.Item>Breadcrumb</Breadcrumb.Item>
         <Breadcrumb.Item>Breadcrumb</Breadcrumb.Item>
         <Breadcrumb.Item>Default</Breadcrumb.Item>
         <Breadcrumb.Item>Default</Breadcrumb.Item>
     </Breadcrumb>
     </Breadcrumb>
-)
+);
 ```
 ```
 
 
 ### 带图标的
 ### 带图标的
@@ -46,7 +46,7 @@ import { IconHome, IconArticle } from '@douyinfe/semi-icons';
         <Breadcrumb.Item icon={<IconArticle size="small" />}>Breadcrumb</Breadcrumb.Item>
         <Breadcrumb.Item icon={<IconArticle size="small" />}>Breadcrumb</Breadcrumb.Item>
         <Breadcrumb.Item>With Icon</Breadcrumb.Item>
         <Breadcrumb.Item>With Icon</Breadcrumb.Item>
     </Breadcrumb>
     </Breadcrumb>
-)
+);
 ```
 ```
 
 
 ### 尺寸
 ### 尺寸
@@ -72,7 +72,7 @@ import { IconHome } from '@douyinfe/semi-icons';
             <Breadcrumb.Item>Loose</Breadcrumb.Item>
             <Breadcrumb.Item>Loose</Breadcrumb.Item>
         </Breadcrumb>
         </Breadcrumb>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### 自定义的分隔符
 ### 自定义的分隔符
@@ -81,7 +81,7 @@ import { IconHome } from '@douyinfe/semi-icons';
 
 
 ```jsx live=true
 ```jsx live=true
 import React from 'react';
 import React from 'react';
-import { Breadcrumb } from '@douyinfe/semi-ui';
+import { Breadcrumb, Tag } from '@douyinfe/semi-ui';
 import { IconArrowRight } from '@douyinfe/semi-icons';
 import { IconArrowRight } from '@douyinfe/semi-icons';
 
 
 () => (
 () => (
@@ -98,7 +98,7 @@ import { IconArrowRight } from '@douyinfe/semi-icons';
             <Breadcrumb.Item>Default</Breadcrumb.Item>
             <Breadcrumb.Item>Default</Breadcrumb.Item>
         </Breadcrumb>
         </Breadcrumb>
         <br/>
         <br/>
-        <Tag>v>=1.16.0</Tag>
+        <Tag>{`v>=1.16.0`}</Tag>
         <br/>
         <br/>
         <Breadcrumb size={'small'} >
         <Breadcrumb size={'small'} >
             <Breadcrumb.Item separator=":">Semi-ui</Breadcrumb.Item>
             <Breadcrumb.Item separator=":">Semi-ui</Breadcrumb.Item>
@@ -106,7 +106,7 @@ import { IconArrowRight } from '@douyinfe/semi-icons';
             <Breadcrumb.Item>Default</Breadcrumb.Item>
             <Breadcrumb.Item>Default</Breadcrumb.Item>
         </Breadcrumb>
         </Breadcrumb>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### 截断逻辑
 ### 截断逻辑
@@ -151,8 +151,8 @@ import { Breadcrumb, Typography } from '@douyinfe/semi-ui';
                 routes={routes}
                 routes={routes}
             />
             />
         </>
         </>
-    )
-}
+    );
+};
 ```
 ```
 
 
 当路径层级超过 4 个级别,则:第二层至倒数第三层省略,点击省略号展开显示全部级别;如果过长则自动换行。
 当路径层级超过 4 个级别,则:第二层至倒数第三层省略,点击省略号展开显示全部级别;如果过长则自动换行。
@@ -172,7 +172,7 @@ import { Breadcrumb } from '@douyinfe/semi-ui';
         <Breadcrumb.Item>上一层</Breadcrumb.Item>
         <Breadcrumb.Item>上一层</Breadcrumb.Item>
         <Breadcrumb.Item>详情页</Breadcrumb.Item>
         <Breadcrumb.Item>详情页</Breadcrumb.Item>
     </Breadcrumb>
     </Breadcrumb>
-)
+);
 ```
 ```
 
 
 ### 自定义省略号区域
 ### 自定义省略号区域
@@ -193,7 +193,7 @@ import { Breadcrumb } from '@douyinfe/semi-ui';
         <Breadcrumb.Item>上一层</Breadcrumb.Item>
         <Breadcrumb.Item>上一层</Breadcrumb.Item>
         <Breadcrumb.Item>详情页</Breadcrumb.Item>
         <Breadcrumb.Item>详情页</Breadcrumb.Item>
     </Breadcrumb>
     </Breadcrumb>
-)
+);
 ```
 ```
 
 
 如果想要为省略号区域自定义其他形式的渲染,则可以使用 `renderMore()` 方法。
 如果想要为省略号区域自定义其他形式的渲染,则可以使用 `renderMore()` 方法。
@@ -221,7 +221,7 @@ function Demo() {
                     ))
                     ))
                 }
                 }
             </>
             </>
-        )
+        );
         return (
         return (
             <Popover
             <Popover
                 content={content}
                 content={content}
@@ -293,7 +293,7 @@ import { IconHome, IconArticle } from '@douyinfe/semi-icons';
             routes={['首页', '当这个页面标题很长时需要省略', '详情页']}
             routes={['首页', '当这个页面标题很长时需要省略', '详情页']}
         />
         />
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ## API 参考
 ## API 参考

+ 4 - 4
content/navigation/navigation/index-en-US.md

@@ -456,8 +456,8 @@ class NavApp extends React.Component {
     render() {
     render() {
         return (
         return (
             <>
             <>
-            {this.renderHorizontal()}
-            {this.renderVertical()}
+                {this.renderHorizontal()}
+                {this.renderVertical()}
             </>
             </>
         );
         );
     }
     }
@@ -648,7 +648,7 @@ function NavApp (props = {}) {
 
 
     const onCollapseChange = isCollapsed => {
     const onCollapseChange = isCollapsed => {
         setIsCollapsed(isCollapsed);
         setIsCollapsed(isCollapsed);
-    }
+    };
 
 
     const items = useMemo(() => [
     const items = useMemo(() => [
         { itemKey: 'user', text: 'User Management', icon: <IconUser /> },
         { itemKey: 'user', text: 'User Management', icon: <IconUser /> },
@@ -685,7 +685,7 @@ function NavApp (props = {}) {
             onOpenChange={onOpenChange}
             onOpenChange={onOpenChange}
             onSelect={onSelect}
             onSelect={onSelect}
         />
         />
-    )
+    );
 }
 }
 ```
 ```
 
 

+ 4 - 4
content/navigation/navigation/index.md

@@ -457,8 +457,8 @@ class NavApp extends React.Component {
     render() {
     render() {
         return (
         return (
             <>
             <>
-            {this.renderHorizontal()}
-            {this.renderVertical()}
+                {this.renderHorizontal()}
+                {this.renderVertical()}
             </>
             </>
         );
         );
     }
     }
@@ -649,7 +649,7 @@ function NavApp (props = {}) {
 
 
     const onCollapseChange = isCollapsed => {
     const onCollapseChange = isCollapsed => {
         setIsCollapsed(isCollapsed);
         setIsCollapsed(isCollapsed);
-    }
+    };
 
 
     const items = useMemo(() => [
     const items = useMemo(() => [
         { itemKey: 'user', text: '用户管理', icon: <IconUser /> },
         { itemKey: 'user', text: '用户管理', icon: <IconUser /> },
@@ -686,7 +686,7 @@ function NavApp (props = {}) {
             onOpenChange={onOpenChange}
             onOpenChange={onOpenChange}
             onSelect={onSelect}
             onSelect={onSelect}
         />
         />
-    )
+    );
 }
 }
 ```
 ```
 
 

+ 9 - 9
content/navigation/pagination/index-en-US.md

@@ -31,7 +31,7 @@ import { Pagination } from '@douyinfe/semi-ui';
         <Pagination total={200} style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={200} style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={80} pageSize={30} style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={80} pageSize={30} style={{ marginBottom: 12 }}></Pagination>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### Show total page number
 ### Show total page number
@@ -47,7 +47,7 @@ import { Pagination } from '@douyinfe/semi-ui';
         <Pagination total={80} showTotal style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={80} showTotal style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={200} showTotal style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={200} showTotal style={{ marginBottom: 12 }}></Pagination>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### Specify current page number
 ### Specify current page number
@@ -62,7 +62,7 @@ import { Pagination } from '@douyinfe/semi-ui';
     <div>
     <div>
         <Pagination total={80} showTotal defaultCurrentPage={3}></Pagination>
         <Pagination total={80} showTotal defaultCurrentPage={3}></Pagination>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### Capacity switching per page
 ### Capacity switching per page
@@ -80,7 +80,7 @@ import { Pagination } from '@douyinfe/semi-ui';
         <br/>
         <br/>
         <Pagination total={300} showSizeChanger></Pagination>
         <Pagination total={300} showSizeChanger></Pagination>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### Jump to a page quickly
 ### Jump to a page quickly
@@ -99,7 +99,7 @@ import { Pagination } from '@douyinfe/semi-ui';
         <Pagination total={80} showQuickJumper style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={80} showQuickJumper style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={300} showQuickJumper></Pagination>
         <Pagination total={300} showQuickJumper></Pagination>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 
 
@@ -123,7 +123,7 @@ import { Pagination } from '@douyinfe/semi-ui';
             onPageChange={onPageChange}>
             onPageChange={onPageChange}>
         </Pagination>
         </Pagination>
     );
     );
-}
+};
 ```
 ```
 
 
 ### Preset capacity per page
 ### Preset capacity per page
@@ -149,7 +149,7 @@ import { Pagination } from '@douyinfe/semi-ui';
             pageSizeOpts={[10, 20, 50, 200]}>
             pageSizeOpts={[10, 20, 50, 200]}>
         </Pagination>
         </Pagination>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### Mini version
 ### Mini version
@@ -162,7 +162,7 @@ import { Pagination } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <Pagination total={90} size="small"></Pagination>
     <Pagination total={90} size="small"></Pagination>
-)
+);
 ```
 ```
 
 
 Turn on hoverShowPageSelect to quickly switch hover page numbers (provided after v1.27.0)
 Turn on hoverShowPageSelect to quickly switch hover page numbers (provided after v1.27.0)
@@ -173,7 +173,7 @@ import { Pagination } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <Pagination total={90} size="small" hoverShowPageSelect></Pagination>
     <Pagination total={90} size="small" hoverShowPageSelect></Pagination>
-)
+);
 ```
 ```
 
 
 ## API reference
 ## API reference

+ 9 - 9
content/navigation/pagination/index.md

@@ -30,7 +30,7 @@ import { Pagination } from '@douyinfe/semi-ui';
         <Pagination total={200} style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={200} style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={80} pageSize={30} style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={80} pageSize={30} style={{ marginBottom: 12 }}></Pagination>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### 总页数显示
 ### 总页数显示
@@ -46,7 +46,7 @@ import { Pagination } from '@douyinfe/semi-ui';
         <Pagination total={80} showTotal style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={80} showTotal style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={200} showTotal style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={200} showTotal style={{ marginBottom: 12 }}></Pagination>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### 指定当前页码
 ### 指定当前页码
@@ -61,7 +61,7 @@ import { Pagination } from '@douyinfe/semi-ui';
     <div>
     <div>
         <Pagination total={80} showTotal defaultCurrentPage={3}></Pagination>
         <Pagination total={80} showTotal defaultCurrentPage={3}></Pagination>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### 每页容量切换
 ### 每页容量切换
@@ -77,7 +77,7 @@ import { Pagination } from '@douyinfe/semi-ui';
         <Pagination total={80} showSizeChanger style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={80} showSizeChanger style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={300} showSizeChanger></Pagination>
         <Pagination total={300} showSizeChanger></Pagination>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### 快速跳转至某页
 ### 快速跳转至某页
@@ -95,7 +95,7 @@ import { Pagination } from '@douyinfe/semi-ui';
         <Pagination total={80} showQuickJumper style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={80} showQuickJumper style={{ marginBottom: 12 }}></Pagination>
         <Pagination total={300} showQuickJumper></Pagination>
         <Pagination total={300} showQuickJumper></Pagination>
     </div>
     </div>
-)
+);
 ```
 ```
 ### 页码受控
 ### 页码受控
 
 
@@ -117,7 +117,7 @@ import { Pagination } from '@douyinfe/semi-ui';
             onPageChange={onPageChange}>
             onPageChange={onPageChange}>
         </Pagination>
         </Pagination>
     );
     );
-}
+};
 ```
 ```
 
 
 ### 预设每页容量可选值
 ### 预设每页容量可选值
@@ -142,7 +142,7 @@ import { Pagination } from '@douyinfe/semi-ui';
             pageSizeOpts={[10, 20, 50, 200]}>
             pageSizeOpts={[10, 20, 50, 200]}>
         </Pagination>
         </Pagination>
     </div>
     </div>
-)
+);
 ```
 ```
 
 
 ### 迷你版本
 ### 迷你版本
@@ -155,7 +155,7 @@ import { Pagination } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <Pagination total={90} size="small"></Pagination>
     <Pagination total={90} size="small"></Pagination>
-)
+);
 ```
 ```
 
 
 开启 hoverShowPageSelect,可以 hover 页码快速切换(v1.27.0后提供)
 开启 hoverShowPageSelect,可以 hover 页码快速切换(v1.27.0后提供)
@@ -166,7 +166,7 @@ import { Pagination } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <Pagination total={90} size="small" hoverShowPageSelect></Pagination>
     <Pagination total={90} size="small" hoverShowPageSelect></Pagination>
-)
+);
 
 
 ```
 ```
 ## API 参考
 ## API 参考

+ 91 - 91
content/navigation/steps/index-en-US.md

@@ -19,7 +19,7 @@ When the task is complex or has a sequential relationship, it is broken down int
 
 
 ```jsx
 ```jsx
 import { Steps } from '@douyinfe/semi-ui';
 import { Steps } from '@douyinfe/semi-ui';
-const Step = Steps. Step.;
+const Step = Steps.Step;
 ```
 ```
 
 
 ### Default step bar(Deprecated)
 ### Default step bar(Deprecated)
@@ -48,12 +48,12 @@ import React from 'react';
 import { Steps } from '@douyinfe/semi-ui';
 import { Steps } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Steps type="basic" current={1}>
-      <Steps.Step title="Finished" description="This is a description" />
-      <Steps.Step title="In Progress" description="This is a description" />
-      <Steps.Step title="Waiting" description="This is a description" />
-  </Steps>
-)
+    <Steps type="basic" current={1}>
+        <Steps.Step title="Finished" description="This is a description" />
+        <Steps.Step title="In Progress" description="This is a description" />
+        <Steps.Step title="Waiting" description="This is a description" />
+    </Steps>
+);
 
 
 ```
 ```
 
 
@@ -73,15 +73,15 @@ import React from 'react';
 import { Steps } from '@douyinfe/semi-ui';
 import { Steps } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div style={{ display: 'flex', justifyContent: 'center' }}>
-      <Steps type="nav" current={1} style={{ margin: 'auto' }}>
-          <Steps.Step title="Register an account" />
-          <Steps.Step title="There is a lot of text in this project" />
-          <Steps.Step title="Product Usage" />
-          <Steps.Step title="Looking forward to trying out features" />
-      </Steps>
-  </div>
-)
+    <div style={{ display: 'flex', justifyContent: 'center' }}>
+        <Steps type="nav" current={1} style={{ margin: 'auto' }}>
+            <Steps.Step title="Register an account" />
+            <Steps.Step title="There is a lot of text in this project" />
+            <Steps.Step title="Product Usage" />
+            <Steps.Step title="Looking forward to trying out features" />
+        </Steps>
+    </div>
+);
 ```
 ```
 
 
 ### Mini size step bar
 ### Mini size step bar
@@ -98,7 +98,7 @@ import { Steps } from '@douyinfe/semi-ui';
         <Steps.Step title="In Progress" description="This is a description" />
         <Steps.Step title="In Progress" description="This is a description" />
         <Steps.Step title="Waiting" description="This is a description" />
         <Steps.Step title="Waiting" description="This is a description" />
     </Steps>
     </Steps>
-)
+);
 ```
 ```
 
 
 ```jsx live=true dir="column"
 ```jsx live=true dir="column"
@@ -106,15 +106,15 @@ import React from 'react';
 import { Steps } from '@douyinfe/semi-ui';
 import { Steps } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div style={{ display: 'flex', justifyContent: 'center' }}>
-    <Steps type="nav" size="small" current={1} style={{ margin: 'auto' }}>
-        <Steps.Step title="Register an account" />
-        <Steps.Step title="There is a lot of text in this project" />
-        <Steps.Step title="Product Usage" />
-        <Steps.Step title="Looking forward to trying out features" />
-    </Steps>
-  </div>  
-)
+    <div style={{ display: 'flex', justifyContent: 'center' }}>
+        <Steps type="nav" size="small" current={1} style={{ margin: 'auto' }}>
+            <Steps.Step title="Register an account" />
+            <Steps.Step title="There is a lot of text in this project" />
+            <Steps.Step title="Product Usage" />
+            <Steps.Step title="Looking forward to trying out features" />
+        </Steps>
+    </div>  
+);
 ```
 ```
 
 
 ### Processing progress
 ### Processing progress
@@ -168,7 +168,7 @@ class App extends React.Component {
                         <Step key={item.title} title={item.title} />
                         <Step key={item.title} title={item.title} />
                     ))}
                     ))}
                 </Steps>
                 </Steps>
-                <div class Name="steps-content" style={{ marginTop: 4, marginBottom: 4 }}>
+                <div className Name="steps-content" style={{ marginTop: 4, marginBottom: 4 }}>
                     {steps[current].content}
                     {steps[current].content}
                 </div>
                 </div>
                 <div className="steps-action">
                 <div className="steps-action">
@@ -203,12 +203,12 @@ import React from 'react';
 import { Steps } from '@douyinfe/semi-ui';
 import { Steps } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Steps direction="vertical" current={1} style={{ width: 300 }}>
-      <Steps.Step title="Finished" description="This is a description" />
-      <Steps.Step title="In Progress" description="This is a description" />
-      <Steps.Step title="Waiting" description="This is a description" />
-  </Steps>
-)
+    <Steps direction="vertical" current={1} style={{ width: 300 }}>
+        <Steps.Step title="Finished" description="This is a description" />
+        <Steps.Step title="In Progress" description="This is a description" />
+        <Steps.Step title="Waiting" description="This is a description" />
+    </Steps>
+);
 ```
 ```
 
 
 ```jsx live=true dir="column"
 ```jsx live=true dir="column"
@@ -216,12 +216,12 @@ import React from 'react';
 import { Steps } from '@douyinfe/semi-ui';
 import { Steps } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Steps direction="vertical" type="basic" current={1}>
-      <Steps.Step title="Finished" description="This is a description" />
-      <Steps.Step title="In Progress" description="This is a description" />
-      <Steps.Step title="Waiting" description="This is a description" />
-  </Steps>
-)
+    <Steps direction="vertical" type="basic" current={1}>
+        <Steps.Step title="Finished" description="This is a description" />
+        <Steps.Step title="In Progress" description="This is a description" />
+        <Steps.Step title="Waiting" description="This is a description" />
+    </Steps>
+);
 ```
 ```
 
 
 ### Specify step status
 ### Specify step status
@@ -233,12 +233,12 @@ import React from 'react';
 import { Steps } from '@douyinfe/semi-ui';
 import { Steps } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Steps type="basic" current={1} status="error">
-      <Steps.Step title="Finished" description="This is a description" />
-      <Steps.Step title="In Process" description="This is a description" />
-      <Steps.Step title="Waiting" description="This is a description" />
-  </Steps>
-)
+    <Steps type="basic" current={1} status="error">
+        <Steps.Step title="Finished" description="This is a description" />
+        <Steps.Step title="In Process" description="This is a description" />
+        <Steps.Step title="Waiting" description="This is a description" />
+    </Steps>
+);
 ```
 ```
 
 
 ### Custom icons
 ### Custom icons
@@ -251,13 +251,13 @@ import { Steps } from '@douyinfe/semi-ui';
 import { IconHome, IconLock, IconClear, IconTickCircle } from '@douyinfe/semi-icons';
 import { IconHome, IconLock, IconClear, IconTickCircle } from '@douyinfe/semi-icons';
 
 
 () => (
 () => (
-  <Steps type="basic">
-    <Steps.Step status="finish" title="Login" icon={<IconHome />} />
-    <Steps.Step status="finish" title="Verification" icon={<IconLock />} />
-    <Steps.Step status="process" title="Pay" icon={<IconClear />} />
-    <Steps.Step status="wait" title="Done" icon={<IconTickCircle />} />
-  </Steps>
-)
+    <Steps type="basic">
+        <Steps.Step status="finish" title="Login" icon={<IconHome />} />
+        <Steps.Step status="finish" title="Verification" icon={<IconLock />} />
+        <Steps.Step status="process" title="Pay" icon={<IconClear />} />
+        <Steps.Step status="wait" title="Done" icon={<IconTickCircle />} />
+    </Steps>
+);
 ```
 ```
 
 
 ### onChange CallBack
 ### onChange CallBack
@@ -269,45 +269,45 @@ import React from 'react';
 import { Steps } from '@douyinfe/semi-ui';
 import { Steps } from '@douyinfe/semi-ui';
 
 
 class App extends React.Component {
 class App extends React.Component {
-  constructor(props) {
-    super(props);
-    this.state = {
-      current: 1,
-    };
-  }
-
-  onChange(index) {
-    this.setState({ current: index });
-  }
-
-  render() {
-    const { current } = this.state;
-    const { Step } = Steps;
-    const steps = [
-      {
-        title: 'First',
-        content: 'First-content',
-      },
-      {
-        title: 'Second',
-        content: 'Second-content',
-      },
-      {
-        title: 'Last',
-        content: 'Last-content',
-      },
-    ];
-
-    return (
-      <div>
-        <Steps type="basic" current={current} onChange={index => this.onChange(index)}>
-          {steps.map(item => (
-            <Step key={item.title} title={item.title} />
-          ))}
-        </Steps>
-      </div>
-    );
-  }
+    constructor(props) {
+        super(props);
+        this.state = {
+            current: 1,
+        };
+    }
+
+    onChange(index) {
+        this.setState({ current: index });
+    }
+
+    render() {
+        const { current } = this.state;
+        const { Step } = Steps;
+        const steps = [
+            {
+                title: 'First',
+                content: 'First-content',
+            },
+            {
+                title: 'Second',
+                content: 'Second-content',
+            },
+            {
+                title: 'Last',
+                content: 'Last-content',
+            },
+        ];
+
+        return (
+            <div>
+                <Steps type="basic" current={current} onChange={index => this.onChange(index)}>
+                    {steps.map(item => (
+                        <Step key={item.title} title={item.title} />
+                    ))}
+                </Steps>
+            </div>
+        );
+    }
 }
 }
 ```
 ```
 
 

+ 162 - 162
content/navigation/steps/index.md

@@ -32,11 +32,11 @@ import { Steps } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <Steps current={1}>
     <Steps current={1}>
-      <Steps.Step title="Finished" description="This is a description" />
-      <Steps.Step title="In Progress" description="This is a description" />
-      <Steps.Step title="Waiting" description="This is a description" />
+        <Steps.Step title="Finished" description="This is a description" />
+        <Steps.Step title="In Progress" description="This is a description" />
+        <Steps.Step title="Waiting" description="This is a description" />
     </Steps>
     </Steps>
-)
+);
 ```
 ```
 
 
 ### 简单步骤条(新版)
 ### 简单步骤条(新版)
@@ -48,12 +48,12 @@ import React from 'react';
 import { Steps } from '@douyinfe/semi-ui';
 import { Steps } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Steps type="basic" current={1}>
-    <Steps.Step title="Finished" description="This is a description" />
-    <Steps.Step title="In Progress" description="This is a description" />
-    <Steps.Step title="Waiting" description="This is a description" />
-  </Steps>
-)
+    <Steps type="basic" current={1}>
+        <Steps.Step title="Finished" description="This is a description" />
+        <Steps.Step title="In Progress" description="This is a description" />
+        <Steps.Step title="Waiting" description="This is a description" />
+    </Steps>
+);
 ```
 ```
 
 
 ### 导航步骤条
 ### 导航步骤条
@@ -72,15 +72,15 @@ import React from 'react';
 import { Steps } from '@douyinfe/semi-ui';
 import { Steps } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div style={{display:'flex',justifyContent:'center'}}>
-    <Steps type="nav" current={1} style={{margin:'auto'}}>
-      <Steps.Step title="注册账号" />
-      <Steps.Step title="这个项目的文字比较多多多多" />
-      <Steps.Step title="产品用途" />
-      <Steps.Step title="期待尝试功能" />
-    </Steps>
-  </div>
-)
+    <div style={{display:'flex',justifyContent:'center'}}>
+        <Steps type="nav" current={1} style={{margin:'auto'}}>
+            <Steps.Step title="注册账号" />
+            <Steps.Step title="这个项目的文字比较多多多多" />
+            <Steps.Step title="产品用途" />
+            <Steps.Step title="期待尝试功能" />
+        </Steps>
+    </div>
+);
 ```
 ```
 
 
 
 
@@ -93,12 +93,12 @@ import React from 'react';
 import { Steps } from '@douyinfe/semi-ui';
 import { Steps } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Steps type="basic" size="small" current={1}>
-    <Steps.Step title="Finished" description="This is a description" />
-    <Steps.Step title="In Progress" description="This is a description" />
-    <Steps.Step title="Waiting" description="This is a description" />
-  </Steps>
-)
+    <Steps type="basic" size="small" current={1}>
+        <Steps.Step title="Finished" description="This is a description" />
+        <Steps.Step title="In Progress" description="This is a description" />
+        <Steps.Step title="Waiting" description="This is a description" />
+    </Steps>
+);
 ```
 ```
 
 
 ```jsx live=true dir="column"
 ```jsx live=true dir="column"
@@ -106,15 +106,15 @@ import React from 'react';
 import { Steps } from '@douyinfe/semi-ui';
 import { Steps } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div style={{display:'flex',justifyContent:'center'}}>
-    <Steps type="nav" size="small" current={1} style={{margin:'auto'}}>
-      <Steps.Step title="注册账号" />
-      <Steps.Step title="这个项目的文字比较多多多多" />
-      <Steps.Step title="产品用途" />
-      <Steps.Step title="期待尝试功能" />
-    </Steps>
-  </div>
-)
+    <div style={{display:'flex',justifyContent:'center'}}>
+        <Steps type="nav" size="small" current={1} style={{margin:'auto'}}>
+            <Steps.Step title="注册账号" />
+            <Steps.Step title="这个项目的文字比较多多多多" />
+            <Steps.Step title="产品用途" />
+            <Steps.Step title="期待尝试功能" />
+        </Steps>
+    </div>
+);
 
 
 ```
 ```
 
 
@@ -127,69 +127,69 @@ import React from 'react';
 import { Steps, Button } from '@douyinfe/semi-ui';
 import { Steps, Button } from '@douyinfe/semi-ui';
 
 
 class App extends React.Component {
 class App extends React.Component {
-  constructor(props) {
-    super(props);
-    this.state = {
-      current: 0,
-    };
-  }
-
-  next() {
-    const current = this.state.current + 1;
-    this.setState({ current });
-  }
-
-  prev() {
-    const current = this.state.current - 1;
-    this.setState({ current });
-  }
-
-  render() {
-    const { current } = this.state;
-    const { Step } = Steps;
-    const steps = [
-      {
-        title: 'First',
-        content: 'First-content',
-      },
-      {
-        title: 'Second',
-        content: 'Second-content',
-      },
-      {
-        title: 'Last',
-        content: 'Last-content',
-      },
-    ];
-
-    return (
-      <div>
-        <Steps type="basic" current={current}>
-          {steps.map(item => (
-            <Step key={item.title} title={item.title} />
-          ))}
-        </Steps>
-        <div className="steps-content" style={{marginTop: 4, marginBottom: 4}}>{steps[current].content}</div>
-        <div className="steps-action">
-          {current < steps.length - 1 && (
-            <Button type="primary" onClick={() => this.next()}>
-              Next
-            </Button>
-          )}
-          {current === steps.length - 1 && (
-            <Button type="primary" onClick={() => console.log('Processing complete!')}>
-              Done
-            </Button>
-          )}
-          {current > 0 && (
-            <Button style={{ marginLeft: 8 }} onClick={() => this.prev()}>
-              Previous
-            </Button>
-          )}
-        </div>
-      </div>
-    );
-  }
+    constructor(props) {
+        super(props);
+        this.state = {
+            current: 0,
+        };
+    }
+
+    next() {
+        const current = this.state.current + 1;
+        this.setState({ current });
+    }
+
+    prev() {
+        const current = this.state.current - 1;
+        this.setState({ current });
+    }
+
+    render() {
+        const { current } = this.state;
+        const { Step } = Steps;
+        const steps = [
+            {
+                title: 'First',
+                content: 'First-content',
+            },
+            {
+                title: 'Second',
+                content: 'Second-content',
+            },
+            {
+                title: 'Last',
+                content: 'Last-content',
+            },
+        ];
+
+        return (
+            <div>
+                <Steps type="basic" current={current}>
+                    {steps.map(item => (
+                        <Step key={item.title} title={item.title} />
+                    ))}
+                </Steps>
+                <div className="steps-content" style={{marginTop: 4, marginBottom: 4}}>{steps[current].content}</div>
+                <div className="steps-action">
+                    {current < steps.length - 1 && (
+                        <Button type="primary" onClick={() => this.next()}>
+                            Next
+                        </Button>
+                    )}
+                    {current === steps.length - 1 && (
+                        <Button type="primary" onClick={() => console.log('Processing complete!')}>
+                            Done
+                        </Button>
+                    )}
+                    {current > 0 && (
+                        <Button style={{ marginLeft: 8 }} onClick={() => this.prev()}>
+                            Previous
+                        </Button>
+                    )}
+                </div>
+            </div>
+        );
+    }
 }
 }
 
 
 ```
 ```
@@ -203,12 +203,12 @@ import React from 'react';
 import { Steps } from '@douyinfe/semi-ui';
 import { Steps } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Steps direction="vertical" current={1} style={{width: 300}}>
-    <Steps.Step title="Finished" description="This is a description" />
-    <Steps.Step title="In Progress" description="This is a description" />
-    <Steps.Step title="Waiting" description="This is a description" />
-  </Steps>
-)
+    <Steps direction="vertical" current={1} style={{width: 300}}>
+        <Steps.Step title="Finished" description="This is a description" />
+        <Steps.Step title="In Progress" description="This is a description" />
+        <Steps.Step title="Waiting" description="This is a description" />
+    </Steps>
+);
 ```
 ```
 
 
 ```jsx live=true dir="column"
 ```jsx live=true dir="column"
@@ -216,12 +216,12 @@ import React from 'react';
 import { Steps } from '@douyinfe/semi-ui';
 import { Steps } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Steps direction="vertical" type="basic" current={1}>
-    <Steps.Step title="Finished" description="This is a description" />
-    <Steps.Step title="In Progress" description="This is a description" />
-    <Steps.Step title="Waiting" description="This is a description" />
-  </Steps>
-)
+    <Steps direction="vertical" type="basic" current={1}>
+        <Steps.Step title="Finished" description="This is a description" />
+        <Steps.Step title="In Progress" description="This is a description" />
+        <Steps.Step title="Waiting" description="This is a description" />
+    </Steps>
+);
 ```
 ```
 
 
 ### 指定步骤状态
 ### 指定步骤状态
@@ -233,12 +233,12 @@ import React from 'react';
 import { Steps } from '@douyinfe/semi-ui';
 import { Steps } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Steps type="basic" current={1} status="error">
-    <Steps.Step title="Finished" description="This is a description" />
-    <Steps.Step title="In Process" description="This is a description" />
-    <Steps.Step title="Waiting" description="This is a description" />
-  </Steps>
-)
+    <Steps type="basic" current={1} status="error">
+        <Steps.Step title="Finished" description="This is a description" />
+        <Steps.Step title="In Process" description="This is a description" />
+        <Steps.Step title="Waiting" description="This is a description" />
+    </Steps>
+);
 ```
 ```
 
 
 ### 自定义图标/状态
 ### 自定义图标/状态
@@ -252,14 +252,14 @@ import { Steps } from '@douyinfe/semi-ui';
 import { IconHome, IconLock } from '@douyinfe/semi-icons';
 import { IconHome, IconLock } from '@douyinfe/semi-icons';
 
 
 () => (
 () => (
-  <Steps type="basic">
-    <Steps.Step status="finish" title="已完成" />
-    <Steps.Step status="error" title="错误" />
-    <Steps.Step status="warning" title="警告" />
-    <Steps.Step status="process" title="正在进行" icon={<IconHome size="extra-large" />} />
-    <Steps.Step status="wait" title="等待" icon={<IconLock size="extra-large" />} />
-  </Steps>
-)
+    <Steps type="basic">
+        <Steps.Step status="finish" title="已完成" />
+        <Steps.Step status="error" title="错误" />
+        <Steps.Step status="warning" title="警告" />
+        <Steps.Step status="process" title="正在进行" icon={<IconHome size="extra-large" />} />
+        <Steps.Step status="wait" title="等待" icon={<IconLock size="extra-large" />} />
+    </Steps>
+);
 ```
 ```
 
 
 ### onChange 回调
 ### onChange 回调
@@ -271,45 +271,45 @@ import React from 'react';
 import { Steps } from '@douyinfe/semi-ui';
 import { Steps } from '@douyinfe/semi-ui';
 
 
 class App extends React.Component {
 class App extends React.Component {
-  constructor(props) {
-    super(props);
-    this.state = {
-      current: 1,
-    };
-  }
-
-  onChange(index) {
-    this.setState({ current: index });
-  }
-
-  render() {
-    const { current } = this.state;
-    const { Step } = Steps;
-    const steps = [
-      {
-        title: 'First',
-        content: 'First-content',
-      },
-      {
-        title: 'Second',
-        content: 'Second-content',
-      },
-      {
-        title: 'Last',
-        content: 'Last-content',
-      },
-    ];
-
-    return (
-      <div>
-        <Steps type="basic" current={current} onChange={index => this.onChange(index)}>
-          {steps.map(item => (
-            <Step key={item.title} title={item.title} />
-          ))}
-        </Steps>
-      </div>
-    );
-  }
+    constructor(props) {
+        super(props);
+        this.state = {
+            current: 1,
+        };
+    }
+
+    onChange(index) {
+        this.setState({ current: index });
+    }
+
+    render() {
+        const { current } = this.state;
+        const { Step } = Steps;
+        const steps = [
+            {
+                title: 'First',
+                content: 'First-content',
+            },
+            {
+                title: 'Second',
+                content: 'Second-content',
+            },
+            {
+                title: 'Last',
+                content: 'Last-content',
+            },
+        ];
+
+        return (
+            <div>
+                <Steps type="basic" current={current} onChange={index => this.onChange(index)}>
+                    {steps.map(item => (
+                        <Step key={item.title} title={item.title} />
+                    ))}
+                </Steps>
+            </div>
+        );
+    }
 }
 }
 ```
 ```
 
 

+ 6 - 5
content/navigation/tabs/index-en-US.md

@@ -84,8 +84,8 @@ class App extends React.Component {
                             not meet my needs?
                             not meet my needs?
                         </p>
                         </p>
                         <p style={{ lineHeight: 1.8, color: 'var(--semi-color-text-1)' }}>
                         <p style={{ lineHeight: 1.8, color: 'var(--semi-color-text-1)' }}>
-                            Give feedbacks in the upper right corner, submit an Issue, describe your needs as well as
-                            the business scenario. We'll handle these issues with priorities.
+                            {`Give feedbacks in the upper right corner, submit an Issue, describe your needs as well as
+                            the business scenario. We'll handle these issues with priorities.`}
                         </p>
                         </p>
                         <p style={{ lineHeight: 1.8, color: 'var(--semi-color-text-0)', fontWeight: 600 }}>
                         <p style={{ lineHeight: 1.8, color: 'var(--semi-color-text-0)', fontWeight: 600 }}>
                             Q: Have questions when using components?
                             Q: Have questions when using components?
@@ -140,6 +140,7 @@ class TabDemo extends React.Component {
     }
     }
 
 
     render() {
     render() {
+        // eslint-disable-next-line react/jsx-key
         const contentList = [<div>Document</div>, <div>Quick Start</div>, <div>Help</div>];
         const contentList = [<div>Document</div>, <div>Quick Start</div>, <div>Help</div>];
         const tabList = [
         const tabList = [
             { tab: 'Document', itemKey: '1' },
             { tab: 'Document', itemKey: '1' },
@@ -305,8 +306,8 @@ class App extends React.Component {
     render() {
     render() {
         return (
         return (
             <Tabs style={{ width: '60%', margin: '20px' }} type="card" collapsible>
             <Tabs style={{ width: '60%', margin: '20px' }} type="card" collapsible>
-                {[0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map(i => (
-                    <TabPane tab={`Tab-${i}`} itemKey={`Tab-${i}`}>
+                {[0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map((item, index) => (
+                    <TabPane tab={`Tab-${item}`} itemKey={`Tab-${item}`} key={item}>
                         Content of card tab {i}
                         Content of card tab {i}
                     </TabPane>
                     </TabPane>
                 ))}
                 ))}
@@ -474,7 +475,7 @@ class App extends React.Component {
                 }
                 }
             >
             >
                 {panes.map(pane => (
                 {panes.map(pane => (
-                    <TabPane tab={pane.title} itemKey={pane.itemKey}>
+                    <TabPane tab={pane.title} itemKey={pane.itemKey} key={pane.itemKey}>
                         {pane.content}
                         {pane.content}
                     </TabPane>
                     </TabPane>
                 ))}
                 ))}

+ 41 - 40
content/navigation/tabs/index.md

@@ -92,7 +92,7 @@ import { Tabs, TabPane } from '@douyinfe/semi-ui';
             </TabPane>
             </TabPane>
         </Tabs>
         </Tabs>
     </div>
     </div>
-)
+);
 
 
 ```
 ```
 
 
@@ -112,7 +112,7 @@ import { Tabs, TabPane } from '@douyinfe/semi-ui';
             帮助
             帮助
         </TabPane>
         </TabPane>
     </Tabs>
     </Tabs>
-)
+);
 ```
 ```
 
 
 ```jsx live=true
 ```jsx live=true
@@ -131,6 +131,7 @@ class TabDemo extends React.Component {
     }
     }
 
 
     render() {
     render() {
+        // eslint-disable-next-line react/jsx-key
         const contentList = [<div>文档</div>, <div>快速起步</div>, <div>帮助</div>];
         const contentList = [<div>文档</div>, <div>快速起步</div>, <div>帮助</div>];
         const tabList = [
         const tabList = [
             { tab: '文档', itemKey: '1' },
             { tab: '文档', itemKey: '1' },
@@ -162,42 +163,42 @@ import { Tabs, TabPane } from '@douyinfe/semi-ui';
 import { IconFile, IconGlobe, IconHelpCircle } from '@douyinfe/semi-icons';
 import { IconFile, IconGlobe, IconHelpCircle } from '@douyinfe/semi-icons';
 
 
 () => (
 () => (
-  <Tabs>
-      <TabPane
-          tab={
-              <span>
-                  <IconFile />
-                  文档
-              </span>
-          }
-          itemKey="1"
-      >
-          文档
-      </TabPane>
-      <TabPane
-          tab={
-              <span>
-                  <IconGlobe />
-                  快速起步
-              </span>
-          }
-          itemKey="2"
-      >
-          快速起步
-      </TabPane>
-      <TabPane
-          tab={
-              <span>
-                  <IconHelpCircle />
-                  帮助
-              </span>
-          }
-          itemKey="3"
-      >
-          帮助
-      </TabPane>
-  </Tabs>
-)
+    <Tabs>
+        <TabPane
+            tab={
+                <span>
+                    <IconFile />
+                    文档
+                </span>
+            }
+            itemKey="1"
+        >
+            文档
+        </TabPane>
+        <TabPane
+            tab={
+                <span>
+                    <IconGlobe />
+                    快速起步
+                </span>
+            }
+            itemKey="2"
+        >
+            快速起步
+        </TabPane>
+        <TabPane
+            tab={
+                <span>
+                    <IconHelpCircle />
+                    帮助
+                </span>
+            }
+            itemKey="3"
+        >
+            帮助
+        </TabPane>
+    </Tabs>
+);
 ```
 ```
 
 
 ### 垂直的标签栏
 ### 垂直的标签栏
@@ -406,7 +407,7 @@ import { Tabs, TabPane, Button } from '@douyinfe/semi-ui';
             帮助
             帮助
         </TabPane>
         </TabPane>
     </Tabs>
     </Tabs>
-)
+);
 ```
 ```
 
 
 ### 标签栏二次封装
 ### 标签栏二次封装
@@ -439,7 +440,7 @@ import { Tabs, TabPane } from '@douyinfe/semi-ui';
             帮助
             帮助
         </TabPane>
         </TabPane>
     </Tabs>
     </Tabs>
-)
+);
 ```
 ```
 
 
 ### 动态更新
 ### 动态更新

文件差異過大導致無法顯示
+ 555 - 555
content/navigation/tree/index-en-US.md


+ 201 - 201
content/navigation/tree/index.md

@@ -55,20 +55,20 @@ import { Tree } from '@douyinfe/semi-ui';
             value: 'North America',
             value: 'North America',
             key: '1',
             key: '1',
         }
         }
-    ]
+    ];
     const style = {
     const style = {
         width: 260,
         width: 260,
         height: 420,
         height: 420,
         border: '1px solid var(--semi-color-border)'
         border: '1px solid var(--semi-color-border)'
-    }
+    };
     return (
     return (
         <Tree
         <Tree
             treeData={treeData}
             treeData={treeData}
             defaultExpandAll
             defaultExpandAll
             style={style}
             style={style}
         />
         />
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 多选
 ### 多选
@@ -144,7 +144,7 @@ import { Tree } from '@douyinfe/semi-ui';
         width: 260,
         width: 260,
         height: 420,
         height: 420,
         border: '1px solid var(--semi-color-border)'
         border: '1px solid var(--semi-color-border)'
-    }
+    };
     return (
     return (
         <Tree
         <Tree
             treeData={treeData}
             treeData={treeData}
@@ -152,8 +152,8 @@ import { Tree } from '@douyinfe/semi-ui';
             defaultExpandAll
             defaultExpandAll
             style={style}
             style={style}
         />
         />
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 可搜索的
 ### 可搜索的
@@ -166,10 +166,10 @@ import { Tree, Switch } from '@douyinfe/semi-ui';
 
 
 class Demo extends React.Component {
 class Demo extends React.Component {
     constructor() {
     constructor() {
-        super()
+        super();
         this.state = {
         this.state = {
             showFilteredOnly: false,
             showFilteredOnly: false,
-        }
+        };
         this.onChange = this.onChange.bind(this);
         this.onChange = this.onChange.bind(this);
     }
     }
     onChange(showFilteredOnly) {
     onChange(showFilteredOnly) {
@@ -230,12 +230,12 @@ class Demo extends React.Component {
                     }
                     }
                 ]
                 ]
             }
             }
-        ]
+        ];
         const style = {
         const style = {
             width: 260,
             width: 260,
             height: 420,
             height: 420,
             border: '1px solid var(--semi-color-border)'
             border: '1px solid var(--semi-color-border)'
-        }
+        };
         const { showFilteredOnly } = this.state;
         const { showFilteredOnly } = this.state;
         return (
         return (
             <>
             <>
@@ -254,7 +254,7 @@ class Demo extends React.Component {
                     style={style}
                     style={style}
                 />
                 />
             </>
             </>
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -267,29 +267,29 @@ import React from 'react';
 import { Tree } from '@douyinfe/semi-ui';
 import { Tree } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const json = {
-    "Node1": {
-      "Child Node1": '0-0-1',
-      "Child Node2": '0-0-2',
-    },
-    "Node2": "0-1"
-  }
-  const style = {
-    width: 260,
-    height: 420,
-    border: '1px solid var(--semi-color-border)'
-  }
-  return (
-    <Tree
-      treeDataSimpleJson={json}
-      multiple
-      onChange={e => console.log('当前所有选中项: ', e)}
-      onSelect={e => console.log('当前选项: ', e)}
-      style={style}
-    />
-
-  )
-}
+    const json = {
+        "Node1": {
+            "Child Node1": '0-0-1',
+            "Child Node2": '0-0-2',
+        },
+        "Node2": "0-1"
+    };
+    const style = {
+        width: 260,
+        height: 420,
+        border: '1px solid var(--semi-color-border)'
+    };
+    return (
+        <Tree
+            treeDataSimpleJson={json}
+            multiple
+            onChange={e => console.log('当前所有选中项: ', e)}
+            onSelect={e => console.log('当前选项: ', e)}
+            style={style}
+        />
+
+    );
+};
 ```
 ```
 
 
 ### 行显示节点
 ### 行显示节点
@@ -355,7 +355,7 @@ import { Tree } from '@douyinfe/semi-ui';
                 }
                 }
             ]
             ]
         }
         }
-    ]
+    ];
     return (
     return (
         <div>
         <div>
             <Tree
             <Tree
@@ -371,8 +371,8 @@ import { Tree } from '@douyinfe/semi-ui';
                 blockNode={false}
                 blockNode={false}
             />
             />
         </div>
         </div>
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 自定义节点内容
 ### 自定义节点内容
@@ -397,18 +397,18 @@ import { Tree, ButtonGroup, Button } from '@douyinfe/semi-ui';
             <Button
             <Button
                 onClick={e => {
                 onClick={e => {
                     Toast.info(opts);
                     Toast.info(opts);
-                    e.stopPropagation()
+                    e.stopPropagation();
                 }}
                 }}
             >提示</Button>
             >提示</Button>
             <Button>点击</Button>
             <Button>点击</Button>
         </ButtonGroup>
         </ButtonGroup>
-    )
+    );
 
 
     const style = {
     const style = {
         display: 'flex',
         display: 'flex',
         justifyContent: 'space-between',
         justifyContent: 'space-between',
         alignItems: 'center'
         alignItems: 'center'
-    }
+    };
 
 
     const treeDataWithNode = [
     const treeDataWithNode = [
         {
         {
@@ -448,14 +448,14 @@ import { Tree, ButtonGroup, Button } from '@douyinfe/semi-ui';
         width: 260,
         width: 260,
         height: 420,
         height: 420,
         border: '1px solid var(--semi-color-border)'
         border: '1px solid var(--semi-color-border)'
-    }
+    };
     return (
     return (
         <Tree
         <Tree
             treeData={treeDataWithNode}
             treeData={treeDataWithNode}
             style={treeStyle}
             style={treeStyle}
         />
         />
-    )
-}
+    );
+};
 ```
 ```
 
 
 过长省略。在**v>=1.6.0**的版本中,可以使用 `renderLabel` 来实现文本过长省略的效果。
 过长省略。在**v>=1.6.0**的版本中,可以使用 `renderLabel` 来实现文本过长省略的效果。
@@ -465,59 +465,59 @@ import { Tree, Button, Typography } from '@douyinfe/semi-ui';
 import { IconMore } from '@douyinfe/semi-icons';
 import { IconMore } from '@douyinfe/semi-icons';
 
 
 () => {
 () => {
-  const renderBtn = (content) => (
-    <Button
-      onClick={e => {
-        Toast.info({ content });
-        e.stopPropagation()
-      }}
-      icon={<IconMore />}
-      size="small"
-    />
-  )
-  const renderLabel = (label, item) => (
-    <div style={{ display: 'flex' }}>
-      <Typography.Text
-        ellipsis={{ showTooltip: true }}
-        style={{ width: 'calc(100% - 48px)' }}
-      >
-        {label}
-      </Typography.Text>
-      {renderBtn(item.key)}
-    </div>
-  );
-  const treeDataWithNode = [
-    {
-      label: '亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲',
-      value: 'yazhou',
-      key: 'yazhou',
-      children: [
-        {
-          label: '中国中国中国中国中国中国中国中国',
-          value: 'zhongguo',
-          key: 'zhongguo'
-        },
+    const renderBtn = (content) => (
+        <Button
+            onClick={e => {
+                Toast.info({ content });
+                e.stopPropagation();
+            }}
+            icon={<IconMore />}
+            size="small"
+        />
+    );
+    const renderLabel = (label, item) => (
+        <div style={{ display: 'flex' }}>
+            <Typography.Text
+                ellipsis={{ showTooltip: true }}
+                style={{ width: 'calc(100% - 48px)' }}
+            >
+                {label}
+            </Typography.Text>
+            {renderBtn(item.key)}
+        </div>
+    );
+    const treeDataWithNode = [
         {
         {
-          label: '日本日本日本日本日本日本日本日本',
-          value: 'riben',
-          key: 'riben',
-        },
-      ],
-    }
-  ];
-  const treeStyle = {
-    width: 260,
-    height: 420,
-    border: '1px solid var(--semi-color-border)'
-  }
-  return (
-    <Tree
-      treeData={treeDataWithNode}
-      renderLabel={renderLabel}
-      style={treeStyle}
-    />
-  )
-}
+            label: '亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲',
+            value: 'yazhou',
+            key: 'yazhou',
+            children: [
+                {
+                    label: '中国中国中国中国中国中国中国中国',
+                    value: 'zhongguo',
+                    key: 'zhongguo'
+                },
+                {
+                    label: '日本日本日本日本日本日本日本日本',
+                    value: 'riben',
+                    key: 'riben',
+                },
+            ],
+        }
+    ];
+    const treeStyle = {
+        width: 260,
+        height: 420,
+        border: '1px solid var(--semi-color-border)'
+    };
+    return (
+        <Tree
+            treeData={treeDataWithNode}
+            renderLabel={renderLabel}
+            style={treeStyle}
+        />
+    );
+};
 ```
 ```
 
 
 
 
@@ -530,40 +530,40 @@ import { Tree } from '@douyinfe/semi-ui';
 import { IconMapPin } from '@douyinfe/semi-icons';
 import { IconMapPin } from '@douyinfe/semi-icons';
 
 
 () => {
 () => {
-  const treeData = [
-    {
-      label: 'Asia',
-      value: 'Asia',
-      key: '0',
-      icon: (<IconMapPin style={{ color: 'var(--semi-color-text-2)' }} />),
-      children: [
-        {
-          label: 'China',
-          value: 'China',
-          key: '0-0',
-          icon: (<IconMapPin style={{ color: 'var(--semi-color-text-2)' }} />)
-        },
+    const treeData = [
         {
         {
-          label: 'Japan',
-          value: 'Japan',
-          key: '0-1',
-          icon: (<IconMapPin style={{ color: 'var(--semi-color-text-2)' }} />)
-        },
-      ],
-    }
-  ]
-  const style = {
-    width: 260,
-    height: 420,
-    border: '1px solid var(--semi-color-border)'
-  }
-  return (
-    <Tree
-      treeData={treeData}
-      style={style}
-    />
-  )
-}
+            label: 'Asia',
+            value: 'Asia',
+            key: '0',
+            icon: (<IconMapPin style={{ color: 'var(--semi-color-text-2)' }} />),
+            children: [
+                {
+                    label: 'China',
+                    value: 'China',
+                    key: '0-0',
+                    icon: (<IconMapPin style={{ color: 'var(--semi-color-text-2)' }} />)
+                },
+                {
+                    label: 'Japan',
+                    value: 'Japan',
+                    key: '0-1',
+                    icon: (<IconMapPin style={{ color: 'var(--semi-color-text-2)' }} />)
+                },
+            ],
+        }
+    ];
+    const style = {
+        width: 260,
+        height: 420,
+        border: '1px solid var(--semi-color-border)'
+    };
+    return (
+        <Tree
+            treeData={treeData}
+            style={style}
+        />
+    );
+};
 ```
 ```
 
 
 ### 目录树模式
 ### 目录树模式
@@ -629,20 +629,20 @@ import { Tree } from '@douyinfe/semi-ui';
                 }
                 }
             ]
             ]
         }
         }
-    ]
+    ];
     const style = {
     const style = {
         width: 260,
         width: 260,
         height: 420,
         height: 420,
         border: '1px solid var(--semi-color-border)'
         border: '1px solid var(--semi-color-border)'
-    }
+    };
     return (
     return (
         <Tree
         <Tree
             treeData={treeData}
             treeData={treeData}
             directory
             directory
             style={style}
             style={style}
         />
         />
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 禁用
 ### 禁用
@@ -710,12 +710,12 @@ import { Tree } from '@douyinfe/semi-ui';
                 }
                 }
             ]
             ]
         }
         }
-    ]
+    ];
     const style = {
     const style = {
         width: 260,
         width: 260,
         height: 420,
         height: 420,
         border: '1px solid var(--semi-color-border)'
         border: '1px solid var(--semi-color-border)'
-    }
+    };
     return (
     return (
         <Tree
         <Tree
             treeData={treeData}
             treeData={treeData}
@@ -724,8 +724,8 @@ import { Tree } from '@douyinfe/semi-ui';
             disableStrictly
             disableStrictly
             style={style}
             style={style}
         />
         />
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 默认展开
 ### 默认展开
@@ -764,7 +764,7 @@ import { Tree, Button } from '@douyinfe/semi-ui';
     };
     };
     const [tree, setTree] = useState(json);
     const [tree, setTree] = useState(json);
     const handleClick = () => {
     const handleClick = () => {
-        setTree(json2)
+        setTree(json2);
     };
     };
     return (
     return (
         <>
         <>
@@ -791,7 +791,7 @@ import { Tree, Button } from '@douyinfe/semi-ui';
             </div>
             </div>
         </>
         </>
     );
     );
-}
+};
 
 
 ```
 ```
 
 
@@ -804,13 +804,13 @@ import { Tree } from '@douyinfe/semi-ui';
 
 
 class Demo extends React.Component {
 class Demo extends React.Component {
     constructor() {
     constructor() {
-        super()
+        super();
         this.state = {
         this.state = {
             value: 'Shanghai'
             value: 'Shanghai'
         };
         };
     }
     }
     onChange(value) {
     onChange(value) {
-        this.setState({value})
+        this.setState({value});
     }
     }
     render() {
     render() {
         const treeData = [
         const treeData = [
@@ -848,7 +848,7 @@ class Demo extends React.Component {
             width: 260,
             width: 260,
             height: 420,
             height: 420,
             border: '1px solid var(--semi-color-border)'
             border: '1px solid var(--semi-color-border)'
-        }
+        };
         return (
         return (
             <Tree
             <Tree
                 treeData={treeData}
                 treeData={treeData}
@@ -856,7 +856,7 @@ class Demo extends React.Component {
                 onChange={value => this.onChange(value)}
                 onChange={value => this.onChange(value)}
                 style={style}
                 style={style}
             />
             />
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -915,7 +915,7 @@ class Demo extends React.Component {
             width: 260,
             width: 260,
             height: 420,
             height: 420,
             border: '1px solid var(--semi-color-border)'
             border: '1px solid var(--semi-color-border)'
-        }
+        };
         return (
         return (
             <>
             <>
                 <div>
                 <div>
@@ -930,7 +930,7 @@ class Demo extends React.Component {
                     style={style}
                     style={style}
                 />
                 />
             </>
             </>
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -955,7 +955,7 @@ class Demo extends React.Component {
         this.state = {
         this.state = {
             gData: [],
             gData: [],
             total: 0,
             total: 0,
-        }
+        };
         this.onGen = this.onGen.bind(this);
         this.onGen = this.onGen.bind(this);
     }
     }
 
 
@@ -1006,7 +1006,7 @@ class Demo extends React.Component {
         const style = {
         const style = {
             width: 260,
             width: 260,
             border: '1px solid var(--semi-color-border)'
             border: '1px solid var(--semi-color-border)'
-        }
+        };
         return (
         return (
             <div style={{ padding: '0 20px' }}>
             <div style={{ padding: '0 20px' }}>
                 <Button onClick={this.onGen}>生成数据: </Button>
                 <Button onClick={this.onGen}>生成数据: </Button>
@@ -1040,14 +1040,14 @@ import { Tree, Button } from '@douyinfe/semi-ui';
 
 
 class Demo extends React.Component {
 class Demo extends React.Component {
     constructor() {
     constructor() {
-        super()
+        super();
         this.state = {
         this.state = {
             treeData: [{
             treeData: [{
                 key: '0',
                 key: '0',
                 label: 'item-0',
                 label: 'item-0',
                 value: '0'
                 value: '0'
             }],
             }],
-        }
+        };
         this.add = this.add.bind(this);
         this.add = this.add.bind(this);
     }
     }
     add() {
     add() {
@@ -1059,7 +1059,7 @@ class Demo extends React.Component {
                     key: `${i}-${ci}`,
                     key: `${i}-${ci}`,
                     label: `Leaf-${i}-${ci}`,
                     label: `Leaf-${i}-${ci}`,
                     value: `${i}-${ci}`
                     value: `${i}-${ci}`
-                }
+                };
                 return child;
                 return child;
             });
             });
             const item = {
             const item = {
@@ -1069,7 +1069,7 @@ class Demo extends React.Component {
                 children
                 children
             };
             };
             return item;
             return item;
-        })
+        });
         this.setState({ treeData });
         this.setState({ treeData });
     }
     }
     render() {
     render() {
@@ -1078,7 +1078,7 @@ class Demo extends React.Component {
             width: 260,
             width: 260,
             height: 420,
             height: 420,
             border: '1px solid var(--semi-color-border)'
             border: '1px solid var(--semi-color-border)'
-        }
+        };
         return (
         return (
             <div style={style}>
             <div style={style}>
                 <Tree
                 <Tree
@@ -1089,7 +1089,7 @@ class Demo extends React.Component {
                     动态改变数据
                     动态改变数据
                 </Button>
                 </Button>
             </div>
             </div>
-        )
+        );
     }
     }
 }
 }
 ```
 ```
@@ -1250,43 +1250,43 @@ import { Tree } from '@douyinfe/semi-ui';
             data.forEach((item, ind, arr) => {
             data.forEach((item, ind, arr) => {
                 if (item.key === key) return callback(item, ind, arr);
                 if (item.key === key) return callback(item, ind, arr);
                 if (item.children) return loop(item.children, key, callback);
                 if (item.children) return loop(item.children, key, callback);
-            })
-        }
+            });
+        };
         let dragObj;
         let dragObj;
         loop(data, dragKey, (item, ind, arr) => {
         loop(data, dragKey, (item, ind, arr) => {
             arr.splice(ind, 1);
             arr.splice(ind, 1);
             dragObj = item;
             dragObj = item;
-        })
+        });
 
 
         if (!dropToGap) {
         if (!dropToGap) {
             // inset into the dropPosition
             // inset into the dropPosition
             loop(data, dropKey, (item, ind, arr) => {
             loop(data, dropKey, (item, ind, arr) => {
                 item.children = item.children || [];
                 item.children = item.children || [];
-                item.children.push(dragObj)
-            })
+                item.children.push(dragObj);
+            });
         } else if (dropPosition === 1 && node.children && node.expanded) {
         } else if (dropPosition === 1 && node.children && node.expanded) {
             // has children && expanded and drop into the node bottom gap
             // has children && expanded and drop into the node bottom gap
             // insert to the top 
             // insert to the top 
             loop(data, dropKey, item => {
             loop(data, dropKey, item => {
                 item.children = item.children || [];
                 item.children = item.children || [];
-                item.children.unshift(dragObj)
-            })
+                item.children.unshift(dragObj);
+            });
         } else {
         } else {
             let dropNodeInd;
             let dropNodeInd;
             let dropNodePosArr;
             let dropNodePosArr;
             loop(data, dropKey, (item, ind, arr) => {
             loop(data, dropKey, (item, ind, arr) => {
                 dropNodePosArr = arr;
                 dropNodePosArr = arr;
                 dropNodeInd = ind;
                 dropNodeInd = ind;
-            })
+            });
             if (dropPosition === -1) {
             if (dropPosition === -1) {
                 // insert to top
                 // insert to top
-                dropNodePosArr.splice(dropNodeInd, 0, dragObj)
+                dropNodePosArr.splice(dropNodeInd, 0, dragObj);
             } else {
             } else {
                 // insert to bottom
                 // insert to bottom
-                dropNodePosArr.splice(dropNodeInd + 1, 0, dragObj)
+                dropNodePosArr.splice(dropNodeInd + 1, 0, dragObj);
             }
             }
         }
         }
-        setTreeData(data)
+        setTreeData(data);
     }
     }
 
 
     return <Tree
     return <Tree
@@ -1343,8 +1343,8 @@ import { Tree, Checkbox } from '@douyinfe/semi-ui';
                 </div> : null}
                 </div> : null}
                 <span>{label}</span>
                 <span>{label}</span>
             </li>
             </li>
-        )
-    }
+        );
+    };
 
 
     const treeData = [
     const treeData = [
         {
         {
@@ -1400,13 +1400,13 @@ import { Tree, Checkbox } from '@douyinfe/semi-ui';
                 }
                 }
             ]
             ]
         }
         }
-    ]
+    ];
 
 
     const treeStyle = {
     const treeStyle = {
         width: 260,
         width: 260,
         height: 420,
         height: 420,
         border: '1px solid var(--semi-color-border)'
         border: '1px solid var(--semi-color-border)'
-    }
+    };
     return (
     return (
         <Tree
         <Tree
             treeData={treeData}
             treeData={treeData}
@@ -1415,8 +1415,8 @@ import { Tree, Checkbox } from '@douyinfe/semi-ui';
             leafOnly
             leafOnly
             style={treeStyle}
             style={treeStyle}
         />
         />
-    )
-}
+    );
+};
 ```
 ```
 
 
 第二个是针对 “希望只有叶子节点可以单选,父节点只起到分组作用” 的场景。  
 第二个是针对 “希望只有叶子节点可以单选,父节点只起到分组作用” 的场景。  
@@ -1445,7 +1445,7 @@ import { Tree } from '@douyinfe/semi-ui';
                 {isLeaf ? null : expandIcon}
                 {isLeaf ? null : expandIcon}
                 <span>{label}</span>
                 <span>{label}</span>
             </li>
             </li>
-        )
+        );
     };
     };
 
 
     const treeData = [
     const treeData = [
@@ -1508,7 +1508,7 @@ import { Tree } from '@douyinfe/semi-ui';
         width: 260,
         width: 260,
         height: 420,
         height: 420,
         border: '1px solid var(--semi-color-border)'
         border: '1px solid var(--semi-color-border)'
-    }
+    };
     return (
     return (
         <Tree
         <Tree
             treeData={treeData}
             treeData={treeData}
@@ -1517,7 +1517,7 @@ import { Tree } from '@douyinfe/semi-ui';
             onChange={(...args) => console.log('change', ...args)}
             onChange={(...args) => console.log('change', ...args)}
         />
         />
     );
     );
-}
+};
 ```
 ```
 
 
 第三个是针对 “单选选中父节点同时也高亮子节点” 的场景。
 第三个是针对 “单选选中父节点同时也高亮子节点” 的场景。
@@ -1576,7 +1576,7 @@ import { IconFixedStroked, IconSectionStroked, IconAbsoluteStroked, IconInnerSec
                 }
                 }
             ]
             ]
         }
         }
-    ]
+    ];
     const findDescendantKeys = (node) => {
     const findDescendantKeys = (node) => {
         let res = [node.key];
         let res = [node.key];
         const findChild = item => {
         const findChild = item => {
@@ -1592,12 +1592,12 @@ import { IconFixedStroked, IconSectionStroked, IconAbsoluteStroked, IconInnerSec
         };
         };
         findChild(node);
         findChild(node);
         return res;
         return res;
-    }
+    };
     const handleSelect = (key, bool, node) => {
     const handleSelect = (key, bool, node) => {
         setSelected(new Set([key]));
         setSelected(new Set([key]));
         const descendantKeys = findDescendantKeys(node);
         const descendantKeys = findDescendantKeys(node);
         setSelectedThroughParent(new Set(descendantKeys));
         setSelectedThroughParent(new Set(descendantKeys));
-    }
+    };
     const renderLabel = ({
     const renderLabel = ({
         className,
         className,
         data,
         data,
@@ -1611,7 +1611,7 @@ import { IconFixedStroked, IconSectionStroked, IconAbsoluteStroked, IconInnerSec
                 ? 'rgba(var(--semi-blue-0), 1)'
                 ? 'rgba(var(--semi-blue-0), 1)'
                 : selectedThroughParent.has(key)
                 : selectedThroughParent.has(key)
                     ? 'rgba(var(--semi-blue-0), .5)' : 'transparent'
                     ? 'rgba(var(--semi-blue-0), .5)' : 'transparent'
-        }
+        };
         return (
         return (
             <li
             <li
                 className={className}
                 className={className}
@@ -1623,14 +1623,14 @@ import { IconFixedStroked, IconSectionStroked, IconAbsoluteStroked, IconInnerSec
                 {icon}
                 {icon}
                 <span>{label}</span>
                 <span>{label}</span>
             </li>
             </li>
-        )
-    }
+        );
+    };
 
 
     const treeStyle = {
     const treeStyle = {
         width: 260,
         width: 260,
         height: 420,
         height: 420,
         border: '1px solid var(--semi-color-border)'
         border: '1px solid var(--semi-color-border)'
-    }
+    };
 
 
     return (
     return (
         <Tree
         <Tree
@@ -1640,8 +1640,8 @@ import { IconFixedStroked, IconSectionStroked, IconAbsoluteStroked, IconInnerSec
             style={treeStyle}
             style={treeStyle}
             defaultExpandAll
             defaultExpandAll
         />
         />
-    )
-}
+    );
+};
 ```
 ```
 
 
 ### 可拖拽的高级定制
 ### 可拖拽的高级定制
@@ -1703,7 +1703,7 @@ import { IconFixedStroked, IconSectionStroked, IconAbsoluteStroked, IconInnerSec
                 }
                 }
             ]
             ]
         }
         }
-    ]
+    ];
     const [treeData, setTreeData] = useState(defaultTreeData);
     const [treeData, setTreeData] = useState(defaultTreeData);
 
 
     const onDrop = (info) => {
     const onDrop = (info) => {
@@ -1718,40 +1718,40 @@ import { IconFixedStroked, IconSectionStroked, IconAbsoluteStroked, IconInnerSec
             data.forEach((item, ind, arr) => {
             data.forEach((item, ind, arr) => {
                 if (item.key === key) return callback(item, ind, arr);
                 if (item.key === key) return callback(item, ind, arr);
                 if (item.children) return loop(item.children, key, callback);
                 if (item.children) return loop(item.children, key, callback);
-            })
-        }
+            });
+        };
 
 
         let dragObj;
         let dragObj;
         loop(data, dragKey, (item, ind, arr) => {
         loop(data, dragKey, (item, ind, arr) => {
             arr.splice(ind, 1);
             arr.splice(ind, 1);
             dragObj = item;
             dragObj = item;
-        })
+        });
 
 
         if (!dropToGap) {
         if (!dropToGap) {
             loop(data, dropKey, (item, ind, arr) => {
             loop(data, dropKey, (item, ind, arr) => {
                 item.children = item.children || [];
                 item.children = item.children || [];
-                item.children.push(dragObj)
-            })
+                item.children.push(dragObj);
+            });
         } else if (dropPosition === 1 && node.children && node.expanded) {
         } else if (dropPosition === 1 && node.children && node.expanded) {
             loop(data, dropKey, item => {
             loop(data, dropKey, item => {
                 item.children = item.children || [];
                 item.children = item.children || [];
-                item.children.unshift(dragObj)
-            })
+                item.children.unshift(dragObj);
+            });
         } else {
         } else {
             let dropNodeInd;
             let dropNodeInd;
             let dropNodePosArr;
             let dropNodePosArr;
             loop(data, dropKey, (item, ind, arr) => {
             loop(data, dropKey, (item, ind, arr) => {
                 dropNodePosArr = arr;
                 dropNodePosArr = arr;
                 dropNodeInd = ind;
                 dropNodeInd = ind;
-            })
+            });
             if (dropPosition === -1) {
             if (dropPosition === -1) {
-                dropNodePosArr.splice(dropNodeInd, 0, dragObj)
+                dropNodePosArr.splice(dropNodeInd, 0, dragObj);
             } else {
             } else {
-                dropNodePosArr.splice(dropNodeInd + 1, 0, dragObj)
+                dropNodePosArr.splice(dropNodeInd + 1, 0, dragObj);
             }
             }
         }
         }
-        setTreeData(data)
-    }
+        setTreeData(data);
+    };
 
 
     const findDescendantKeys = (node) => {
     const findDescendantKeys = (node) => {
         const res = [node.key];
         const res = [node.key];
@@ -1768,13 +1768,13 @@ import { IconFixedStroked, IconSectionStroked, IconAbsoluteStroked, IconInnerSec
         };
         };
         findChild(node);
         findChild(node);
         return res;
         return res;
-    }
+    };
 
 
     const handleSelect = (key, bool, node) => {
     const handleSelect = (key, bool, node) => {
         setSelected(new Set([key]));
         setSelected(new Set([key]));
         const descendantKeys = findDescendantKeys(node);
         const descendantKeys = findDescendantKeys(node);
         setSelectedThroughParent(new Set(descendantKeys));
         setSelectedThroughParent(new Set(descendantKeys));
-    }
+    };
 
 
     const renderLabel = ({
     const renderLabel = ({
         className,
         className,
@@ -1789,7 +1789,7 @@ import { IconFixedStroked, IconSectionStroked, IconAbsoluteStroked, IconInnerSec
                 ? 'rgba(var(--semi-blue-0), 1)'
                 ? 'rgba(var(--semi-blue-0), 1)'
                 : selectedThroughParent.has(key)
                 : selectedThroughParent.has(key)
                     ? 'rgba(var(--semi-blue-0), .5)' : 'transparent'
                     ? 'rgba(var(--semi-blue-0), .5)' : 'transparent'
-        }
+        };
         return (
         return (
             <li
             <li
                 className={className}
                 className={className}
@@ -1801,14 +1801,14 @@ import { IconFixedStroked, IconSectionStroked, IconAbsoluteStroked, IconInnerSec
                 {icon}
                 {icon}
                 <span>{label}</span>
                 <span>{label}</span>
             </li>
             </li>
-        )
-    }
+        );
+    };
 
 
     const treeStyle = {
     const treeStyle = {
         width: 260,
         width: 260,
         height: 420,
         height: 420,
         border: '1px solid var(--semi-color-border)'
         border: '1px solid var(--semi-color-border)'
-    }
+    };
 
 
 
 
     return <Tree
     return <Tree

+ 155 - 155
content/other/configprovider/index-en-US.md

@@ -28,10 +28,10 @@ function Demo(props = {}) {
     const defaultTimestamp = 1581599305265;
     const defaultTimestamp = 1581599305265;
     const gmtList = useMemo(() => {
     const gmtList = useMemo(() => {
         const list = [];
         const list = [];
-        for(let hourOffset = -11; hourOffset <= 14 ; hourOffset++) {
+        for (let hourOffset = -11; hourOffset <= 14 ; hourOffset++) {
             const prefix = hourOffset >= 0 ? '+' : '-';
             const prefix = hourOffset >= 0 ? '+' : '-';
             const hOffset = Math.abs(parseInt(hourOffset, 10));
             const hOffset = Math.abs(parseInt(hourOffset, 10));
-            list.push(`GMT${prefix}${String(hOffset).padStart(2, '0')}:00`)
+            list.push(`GMT${prefix}${String(hOffset).padStart(2, '0')}:00`);
         }
         }
         return list;
         return list;
     }, []);
     }, []);
@@ -75,7 +75,7 @@ Special components:
 
 
 ```jsx live=true dir="column" hideInDSM
 ```jsx live=true dir="column" hideInDSM
 import React, { useState } from 'react';
 import React, { useState } from 'react';
-import { ConfigProvider, ButtonGroup, Button, Row, Col, Spin, Notification, DatePicker, TimePicker, Timeline, Popover, Tag, Tooltip, Badge, Avatar, Steps, Pagination, Modal, Breadcrumb, Rating, Nav, Spin, Cascader, Radio, Select, Input, Typography, TextArea, Checkbox, Switch } from '@douyinfe/semi-ui';
+import { ConfigProvider, ButtonGroup, Button, Row, Col, Notification, DatePicker, TimePicker, Timeline, Popover, Tag, Tooltip, Badge, Avatar, Steps, Pagination, Modal, Breadcrumb, Rating, Nav, Spin, Cascader, Radio, Select, Input, Typography, TextArea, Checkbox, Switch } from '@douyinfe/semi-ui';
 import { IconVigoLogo, IconEdit, IconCamera, IconList, IconSidebar, IconChevronDown } from '@douyinfe/semi-icons';
 import { IconVigoLogo, IconEdit, IconCamera, IconList, IconSidebar, IconChevronDown } from '@douyinfe/semi-icons';
 import en_GB from '@douyinfe/semi-ui/locale/source/en_GB';
 import en_GB from '@douyinfe/semi-ui/locale/source/en_GB';
 
 
@@ -86,56 +86,56 @@ function Demo(props = {}) {
     const titleStyle = {margin: '50px 0 16px 0'};
     const titleStyle = {margin: '50px 0 16px 0'};
     const rowStyle = {margin: '16px 10px'};
     const rowStyle = {margin: '16px 10px'};
     const badgeStyle = {
     const badgeStyle = {
-      width: '42px',
-      height: '42px',
-      borderRadius: '4px',
-      display: 'inline-block',
+        width: '42px',
+        height: '42px',
+        borderRadius: '4px',
+        display: 'inline-block',
     };
     };
     const tagStyle = {marginRight: 8, marginBottom: 8};
     const tagStyle = {marginRight: 8, marginBottom: 8};
     const buttonStyle = {...tagStyle};
     const buttonStyle = {...tagStyle};
     const opts = {
     const opts = {
-      title: 'Hi,Bytedance',
-      content: 'ies dance dance dance',
-      duration: 3,
-      direction,
+        title: 'Hi,Bytedance',
+        content: 'ies dance dance dance',
+        duration: 3,
+        direction,
     };
     };
     const treeData = [
     const treeData = [
         {
         {
-          label: 'Zhejiang',
-          value: 'zhejiang',
-          children: [
-              {
-                  label: 'Hangzhou',
-                  value: 'hangzhou',
-                  children: [
-                      {
-                          label: 'Xihu',
-                          value: 'xihu',
-                      },
-                      {
-                          label: 'Xianhan',
-                          value: 'xiaoshan',
-                      },
-                      {
-                          label: 'Lin’an',
-                          value: 'linan',
-                      },
-                  ],
-              },
-              {
-                  label: 'Ningbo',
-                  value: 'ningbo',
-                  children: [
-                      {
-                          label: 'Haishu',
-                          value: 'haishu',
-                      },
-                      {
-                          label: 'Jiangbei',
-                          value: 'jiangbei',
-                      }
-                  ]
-              },
+            label: 'Zhejiang',
+            value: 'zhejiang',
+            children: [
+                {
+                    label: 'Hangzhou',
+                    value: 'hangzhou',
+                    children: [
+                        {
+                            label: 'Xihu',
+                            value: 'xihu',
+                        },
+                        {
+                            label: 'Xianhan',
+                            value: 'xiaoshan',
+                        },
+                        {
+                            label: 'Lin’an',
+                            value: 'linan',
+                        },
+                    ],
+                },
+                {
+                    label: 'Ningbo',
+                    value: 'ningbo',
+                    children: [
+                        {
+                            label: 'Haishu',
+                            value: 'haishu',
+                        },
+                        {
+                            label: 'Jiangbei',
+                            value: 'jiangbei',
+                        }
+                    ]
+                },
             ],
             ],
         }
         }
     ];
     ];
@@ -149,79 +149,79 @@ function Demo(props = {}) {
                 </ButtonGroup>
                 </ButtonGroup>
             </div>
             </div>
             <ConfigProvider direction={direction} locale={en_GB}>
             <ConfigProvider direction={direction} locale={en_GB}>
-            <Row>
-                <h3 style={titleStyle}>Buttons</h3>
-            </Row>
-            <Row style={rowStyle}>
-                <Button loading={true} theme="solid" style={{ marginRight: 8 }}>Loading</Button>
-                <Button icon={<IconSidebar />} theme="solid" style={{ marginRight: 8 }}>Collapsing</Button>
-                <Button icon={<IconChevronDown />} theme="solid" iconPosition={"right"} style={{ marginRight: 8 }}>Expand options</Button >
-                <br/><br/>
-                <ButtonGroup>
-                  <Button>Copy</Button>
-                  <Button>Query</Button>
-                  <Button>Cut</Button>
-                </ButtonGroup>
-            </Row>
-            <Row>
-                <h3 style={titleStyle}>Input</h3>
-            </Row>
-            <Row style={rowStyle} gutter={16}>
-                <Col span={12}>
-                    <Input placeholder='Input something'></Input>
-                    <br/><br/>
-                    <Input disabled placeholder='Input something'></Input>
-                    <br/><br/>
-                    <Input prefix="Prefix" showClear></Input>
-                    <br/><br/>
-                    <Input suffix={<Typography.Text strong type='secondary' style={{margin: '0 8px'}}>Suffix</Typography.Text>} showClear></Input>
-                    <br/><br/>
-                    <TextArea placeholder="Input something" maxCount={100} />
-                    <br/><br/>
-                    <div style={flexStyle}>
-                        <Switch style={{marginRight: 8}} defaultChecked={true}></Switch>
-                        <Switch style={{marginRight: 8}}></Switch>
-                        <Switch disabled defaultChecked={true} style={{marginRight: 8}}></Switch>
-                    </div>
-                    <div style={flexStyle}>
-                        <Checkbox style={{marginRight: 8}} defaultChecked>Checkbox</Checkbox>
-                        <Checkbox style={{marginRight: 8}} disabled defaultChecked>Disabled Checkbox</Checkbox>
-                        <Checkbox style={{marginRight: 8}} disabled>Disabled Checkbox</Checkbox>
-                    </div>
-                    <div style={{...flexStyle, marginBottom: 0}}>
-                        <Radio style={{marginRight: 8}} defaultChecked>Radio</Radio>
-                        <Radio style={{marginRight: 8}} disabled defaultChecked>Disabled Radio</Radio>
-                        <Radio style={{marginRight: 8}} disabled>Disabled Radio</Radio>
-                    </div>
-                </Col>
-                <Col span={12}>
-                    <DatePicker onChange={(date, dateString) => console.log(dateString)} style={{width: '100%'}}/>
-                    <br/><br/>
-                    <TimePicker style={{width: '100%'}} />
-                    <br/><br/>
-                    <Select style={{ width: '100%' }} placeholder="Select-single">
-                      <Option value='abc'>Semi</Option>
-                      <Option value='hotsoon'>Hotsoon</Option>
-                      <Option value='pipixia' disabled>Pipixia</Option>
-                      <Option value='xigua'>Xigua</Option>
-                    </Select>
-                    <br/><br/>
-                    <Select disabled style={{ width: '100%' }} placeholder="Select-disabled">
-                      <Option value='abc'>Semi</Option>
-                      <Option value='hotsoon'>Hotsoon</Option>
-                      <Option value='pipixia' disabled>Pipixia</Option>
-                      <Option value='xigua'>Xigua</Option>
-                    </Select>
-                    <br/><br/>
-                    <Select multiple style={{ width: '100%' }} placeholder="Select-mutiple">
-                      <Option value='abc'>Semi</Option>
-                      <Option value='hotsoon'>Hotsoon</Option>
-                      <Option value='pipixia' disabled>Pipixia</Option>
-                      <Option value='xigua'>Xigua</Option>
-                    </Select>
+                <Row>
+                    <h3 style={titleStyle}>Buttons</h3>
+                </Row>
+                <Row style={rowStyle}>
+                    <Button loading={true} theme="solid" style={{ marginRight: 8 }}>Loading</Button>
+                    <Button icon={<IconSidebar />} theme="solid" style={{ marginRight: 8 }}>Collapsing</Button>
+                    <Button icon={<IconChevronDown />} theme="solid" iconPosition={"right"} style={{ marginRight: 8 }}>Expand options</Button >
                     <br/><br/>
                     <br/><br/>
-                    <Cascader style={{ width: '100%' }} treeData={treeData} placeholder="Cascader"/>
-                  </Col>
+                    <ButtonGroup>
+                        <Button>Copy</Button>
+                        <Button>Query</Button>
+                        <Button>Cut</Button>
+                    </ButtonGroup>
+                </Row>
+                <Row>
+                    <h3 style={titleStyle}>Input</h3>
+                </Row>
+                <Row style={rowStyle} gutter={16}>
+                    <Col span={12}>
+                        <Input placeholder='Input something'></Input>
+                        <br/><br/>
+                        <Input disabled placeholder='Input something'></Input>
+                        <br/><br/>
+                        <Input prefix="Prefix" showClear></Input>
+                        <br/><br/>
+                        <Input suffix={<Typography.Text strong type='secondary' style={{margin: '0 8px'}}>Suffix</Typography.Text>} showClear></Input>
+                        <br/><br/>
+                        <TextArea placeholder="Input something" maxCount={100} />
+                        <br/><br/>
+                        <div style={flexStyle}>
+                            <Switch style={{marginRight: 8}} defaultChecked={true}></Switch>
+                            <Switch style={{marginRight: 8}}></Switch>
+                            <Switch disabled defaultChecked={true} style={{marginRight: 8}}></Switch>
+                        </div>
+                        <div style={flexStyle}>
+                            <Checkbox style={{marginRight: 8}} defaultChecked>Checkbox</Checkbox>
+                            <Checkbox style={{marginRight: 8}} disabled defaultChecked>Disabled Checkbox</Checkbox>
+                            <Checkbox style={{marginRight: 8}} disabled>Disabled Checkbox</Checkbox>
+                        </div>
+                        <div style={{...flexStyle, marginBottom: 0}}>
+                            <Radio style={{marginRight: 8}} defaultChecked>Radio</Radio>
+                            <Radio style={{marginRight: 8}} disabled defaultChecked>Disabled Radio</Radio>
+                            <Radio style={{marginRight: 8}} disabled>Disabled Radio</Radio>
+                        </div>
+                    </Col>
+                    <Col span={12}>
+                        <DatePicker onChange={(date, dateString) => console.log(dateString)} style={{width: '100%'}}/>
+                        <br/><br/>
+                        <TimePicker style={{width: '100%'}} />
+                        <br/><br/>
+                        <Select style={{ width: '100%' }} placeholder="Select-single">
+                            <Option value='abc'>Semi</Option>
+                            <Option value='hotsoon'>Hotsoon</Option>
+                            <Option value='pipixia' disabled>Pipixia</Option>
+                            <Option value='xigua'>Xigua</Option>
+                        </Select>
+                        <br/><br/>
+                        <Select disabled style={{ width: '100%' }} placeholder="Select-disabled">
+                            <Option value='abc'>Semi</Option>
+                            <Option value='hotsoon'>Hotsoon</Option>
+                            <Option value='pipixia' disabled>Pipixia</Option>
+                            <Option value='xigua'>Xigua</Option>
+                        </Select>
+                        <br/><br/>
+                        <Select multiple style={{ width: '100%' }} placeholder="Select-mutiple">
+                            <Option value='abc'>Semi</Option>
+                            <Option value='hotsoon'>Hotsoon</Option>
+                            <Option value='pipixia' disabled>Pipixia</Option>
+                            <Option value='xigua'>Xigua</Option>
+                        </Select>
+                        <br/><br/>
+                        <Cascader style={{ width: '100%' }} treeData={treeData} placeholder="Cascader"/>
+                    </Col>
                 </Row>
                 </Row>
                 <Row>
                 <Row>
                     <h3 style={titleStyle}>Navigation</h3>
                     <h3 style={titleStyle}>Navigation</h3>
@@ -267,37 +267,37 @@ function Demo(props = {}) {
                     <h3 style={titleStyle}>Display</h3>
                     <h3 style={titleStyle}>Display</h3>
                 </Row>
                 </Row>
                 <Row style={rowStyle}>
                 <Row style={rowStyle}>
-                   <div style={{ display: 'flex' }}>
-                      <div style={{ padding: 8 }}>
-                          <Badge count={5} theme='solid' >
-                              <Avatar color='blue' shape='square' style={badgeStyle}>XZ</Avatar>
-                          </Badge>
-                      </div>
-                      <div style={{ padding: 8 }}>
-                          <Badge count={5} theme='light' >
-                              <Avatar color='cyan' shape='square' style={badgeStyle}>YB</Avatar>
-                          </Badge>
-                      </div>
-                      <div style={{ padding: 8 }}>
-                          <Badge count={5} theme='inverted'>
-                              <Avatar color='indigo' shape='square' style={badgeStyle}>LX</Avatar>
-                          </Badge>
-                      </div>
-                      <div style={{ padding: 8 }}>
-                          <Badge dot theme='solid' >
-                              <Avatar color='light-blue' shape='square' style={badgeStyle}>YZ</Avatar>
-                          </Badge>
-                      </div>
-                      <div style={{ padding: 8 }}>
-                          <Badge dot theme='light' >
-                              <Avatar color='teal' shape='square' style={badgeStyle}>HW</Avatar>
-                          </Badge>
-                      </div>
-                      <div style={{ padding: '8px', borderRadius: '4px', backgroundColor: 'var(--semi-color-fill-0)' }}>
-                          <Badge dot theme='inverted'>
-                              <Avatar color='green' shape='square' style={badgeStyle}>XM</Avatar>
-                          </Badge>
-                      </div>
+                    <div style={{ display: 'flex' }}>
+                        <div style={{ padding: 8 }}>
+                            <Badge count={5} theme='solid' >
+                                <Avatar color='blue' shape='square' style={badgeStyle}>XZ</Avatar>
+                            </Badge>
+                        </div>
+                        <div style={{ padding: 8 }}>
+                            <Badge count={5} theme='light' >
+                                <Avatar color='cyan' shape='square' style={badgeStyle}>YB</Avatar>
+                            </Badge>
+                        </div>
+                        <div style={{ padding: 8 }}>
+                            <Badge count={5} theme='inverted'>
+                                <Avatar color='indigo' shape='square' style={badgeStyle}>LX</Avatar>
+                            </Badge>
+                        </div>
+                        <div style={{ padding: 8 }}>
+                            <Badge dot theme='solid' >
+                                <Avatar color='light-blue' shape='square' style={badgeStyle}>YZ</Avatar>
+                            </Badge>
+                        </div>
+                        <div style={{ padding: 8 }}>
+                            <Badge dot theme='light' >
+                                <Avatar color='teal' shape='square' style={badgeStyle}>HW</Avatar>
+                            </Badge>
+                        </div>
+                        <div style={{ padding: '8px', borderRadius: '4px', backgroundColor: 'var(--semi-color-fill-0)' }}>
+                            <Badge dot theme='inverted'>
+                                <Avatar color='green' shape='square' style={badgeStyle}>XM</Avatar>
+                            </Badge>
+                        </div>
                     </div>
                     </div>
                     <br/>
                     <br/>
                     <div>
                     <div>
@@ -314,11 +314,11 @@ function Demo(props = {}) {
                     </div>
                     </div>
                     <br/>
                     <br/>
                     <div style={{display: 'flex', alignItems: 'center'}}>
                     <div style={{display: 'flex', alignItems: 'center'}}>
-                      <Popover content={'hi semi-design'} style={{padding: 8}}><Tag style={{marginRight: 8}}>I am Popover</Tag></Popover>
-                      <Tooltip content={'hi semi-design'}>
-                          <Tag style={{marginRight: 8}}>I am Tooltip</Tag>
-                      </Tooltip>
-                      <Rating defaultValue={3} size='small' style={{marginRight: 8}} />
+                        <Popover content={'hi semi-design'} style={{padding: 8}}><Tag style={{marginRight: 8}}>I am Popover</Tag></Popover>
+                        <Tooltip content={'hi semi-design'}>
+                            <Tag style={{marginRight: 8}}>I am Tooltip</Tag>
+                        </Tooltip>
+                        <Rating defaultValue={3} size='small' style={{marginRight: 8}} />
                     </div>
                     </div>
                     <br/>
                     <br/>
                     <Timeline>
                     <Timeline>
@@ -358,7 +358,7 @@ function Demo(props = {}) {
                     <Button onClick={() => Toast.info(opts)} style={buttonStyle}>Toast of prompt information</Button>
                     <Button onClick={() => Toast.info(opts)} style={buttonStyle}>Toast of prompt information</Button>
                     <Button type="warning" onClick={() => Toast.warning(opts)} style={buttonStyle}>Toast of waning information</Button>
                     <Button type="warning" onClick={() => Toast.warning(opts)} style={buttonStyle}>Toast of waning information</Button>
                     <Button type="danger" onClick={() => Toast.error(opts)} style={buttonStyle}>Toast of failure information</Button>
                     <Button type="danger" onClick={() => Toast.error(opts)} style={buttonStyle}>Toast of failure information</Button>
-                     <br/><br/>
+                    <br/><br/>
                     <Spin tip='I am loading...'>
                     <Spin tip='I am loading...'>
                         <div style={{
                         <div style={{
                             backgroundColor: 'var(--semi-color-primary-light-default',
                             backgroundColor: 'var(--semi-color-primary-light-default',

+ 155 - 155
content/other/configprovider/index.md

@@ -29,10 +29,10 @@ function Demo(props = {}) {
     const defaultTimestamp = 1581599305265;
     const defaultTimestamp = 1581599305265;
     const gmtList = useMemo(() => {
     const gmtList = useMemo(() => {
         const list = [];
         const list = [];
-        for(let hourOffset = -11; hourOffset <= 14 ; hourOffset++) {
+        for (let hourOffset = -11; hourOffset <= 14 ; hourOffset++) {
             const prefix = hourOffset >= 0 ? '+' : '-';
             const prefix = hourOffset >= 0 ? '+' : '-';
             const hOffset = Math.abs(parseInt(hourOffset, 10));
             const hOffset = Math.abs(parseInt(hourOffset, 10));
-            list.push(`GMT${prefix}${String(hOffset).padStart(2, '0')}:00`)
+            list.push(`GMT${prefix}${String(hOffset).padStart(2, '0')}:00`);
         }
         }
         return list;
         return list;
     }, []);
     }, []);
@@ -79,7 +79,7 @@ function Demo(props = {}) {
 
 
 ```jsx live=true dir="column" hideInDSM
 ```jsx live=true dir="column" hideInDSM
 import React, { useState } from 'react';
 import React, { useState } from 'react';
-import { ConfigProvider, ButtonGroup, Button, Row, Col, Spin, Notification, DatePicker, TimePicker, Timeline, Popover, Tag, Tooltip, Badge, Avatar, Steps, Pagination, Modal, Breadcrumb, Rating, Nav, Spin, Cascader, Radio, Select, Input, Typography, TextArea, Checkbox, Switch } from '@douyinfe/semi-ui';
+import { ConfigProvider, ButtonGroup, Button, Row, Col, Notification, DatePicker, TimePicker, Timeline, Popover, Tag, Tooltip, Badge, Avatar, Steps, Pagination, Modal, Breadcrumb, Rating, Nav, Spin, Cascader, Radio, Select, Input, Typography, TextArea, Checkbox, Switch } from '@douyinfe/semi-ui';
 import { IconVigoLogo, IconEdit, IconCamera, IconList, IconSidebar, IconChevronDown } from '@douyinfe/semi-icons';
 import { IconVigoLogo, IconEdit, IconCamera, IconList, IconSidebar, IconChevronDown } from '@douyinfe/semi-icons';
 
 
 function Demo(props = {}) {
 function Demo(props = {}) {
@@ -89,56 +89,56 @@ function Demo(props = {}) {
     const titleStyle = {margin: '50px 0 16px 0'};
     const titleStyle = {margin: '50px 0 16px 0'};
     const rowStyle = {margin: '16px 10px'};
     const rowStyle = {margin: '16px 10px'};
     const badgeStyle = {
     const badgeStyle = {
-      width: '42px',
-      height: '42px',
-      borderRadius: '4px',
-      display: 'inline-block',
+        width: '42px',
+        height: '42px',
+        borderRadius: '4px',
+        display: 'inline-block',
     };
     };
     const tagStyle = {marginRight: 8, marginBottom: 8};
     const tagStyle = {marginRight: 8, marginBottom: 8};
     const buttonStyle = {...tagStyle};
     const buttonStyle = {...tagStyle};
     const opts = {
     const opts = {
-      title: 'Hi,Bytedance',
-      content: 'ies dance dance dance',
-      duration: 3,
-      direction,
+        title: 'Hi,Bytedance',
+        content: 'ies dance dance dance',
+        duration: 3,
+        direction,
     };
     };
     const treeData = [
     const treeData = [
         {
         {
-          label: '浙江省',
-          value: 'zhejiang',
-          children: [
-              {
-                  label: '杭州市',
-                  value: 'hangzhou',
-                  children: [
-                      {
-                          label: '西湖区',
-                          value: 'xihu',
-                      },
-                      {
-                          label: '萧山区',
-                          value: 'xiaoshan',
-                      },
-                      {
-                          label: '临安区',
-                          value: 'linan',
-                      },
-                  ],
-              },
-              {
-                  label: '宁波市',
-                  value: 'ningbo',
-                  children: [
-                      {
-                          label: '海曙区',
-                          value: 'haishu',
-                      },
-                      {
-                          label: '江北区',
-                          value: 'jiangbei',
-                      }
-                  ]
-              },
+            label: '浙江省',
+            value: 'zhejiang',
+            children: [
+                {
+                    label: '杭州市',
+                    value: 'hangzhou',
+                    children: [
+                        {
+                            label: '西湖区',
+                            value: 'xihu',
+                        },
+                        {
+                            label: '萧山区',
+                            value: 'xiaoshan',
+                        },
+                        {
+                            label: '临安区',
+                            value: 'linan',
+                        },
+                    ],
+                },
+                {
+                    label: '宁波市',
+                    value: 'ningbo',
+                    children: [
+                        {
+                            label: '海曙区',
+                            value: 'haishu',
+                        },
+                        {
+                            label: '江北区',
+                            value: 'jiangbei',
+                        }
+                    ]
+                },
             ],
             ],
         }
         }
     ];
     ];
@@ -152,79 +152,79 @@ function Demo(props = {}) {
                 </ButtonGroup>
                 </ButtonGroup>
             </div>
             </div>
             <ConfigProvider direction={direction}>
             <ConfigProvider direction={direction}>
-            <Row>
-                <h3 style={titleStyle}>Buttons</h3>
-            </Row>
-            <Row style={rowStyle}>
-                <Button loading={true} theme="solid" style={{ marginRight: 8 }}>加载</Button>
-                <Button icon={<IconSidebar />} theme="solid" style={{ marginRight: 8 }}>收起</Button>
-                <Button icon={<IconChevronDown />} theme="solid" iconPosition={"right"} style={{ marginRight: 8 }}>展开选项</Button >
-                <br/><br/>
-                <ButtonGroup>
-                  <Button>拷贝</Button>
-                  <Button>查询</Button>
-                  <Button>剪切</Button>
-                </ButtonGroup>
-            </Row>
-            <Row>
-                <h3 style={titleStyle}>Input</h3>
-            </Row>
-            <Row style={rowStyle} gutter={16}>
-                <Col span={12}>
-                    <Input placeholder='输入框'></Input>
-                    <br/><br/>
-                    <Input disabled placeholder='输入框'></Input>
-                    <br/><br/>
-                    <Input prefix="Prefix" showClear></Input>
-                    <br/><br/>
-                    <Input suffix={<Typography.Text strong type='secondary' style={{margin: '0 8px'}}>Suffix</Typography.Text>} showClear></Input>
-                    <br/><br/>
-                    <TextArea placeholder="文本框" maxCount={100} />
-                    <br/><br/>
-                    <div style={flexStyle}>
-                        <Switch style={{marginRight: 8}} defaultChecked={true}></Switch>
-                        <Switch style={{marginRight: 8}}></Switch>
-                        <Switch disabled defaultChecked={true} style={{marginRight: 8}}></Switch>
-                    </div>
-                    <div style={flexStyle}>
-                        <Checkbox style={{marginRight: 8}} defaultChecked>多选框</Checkbox>
-                        <Checkbox style={{marginRight: 8}} disabled defaultChecked>禁用的多选框</Checkbox>
-                        <Checkbox style={{marginRight: 8}}>禁用的多选框</Checkbox>
-                    </div>
-                    <div style={{...flexStyle, marginBottom: 0}}>
-                        <Radio style={{marginRight: 8}} defaultChecked>单选框</Radio>
-                        <Radio style={{marginRight: 8}} disabled defaultChecked>禁用的单选框</Radio>
-                        <Radio style={{marginRight: 8}}>禁用的单选框</Radio>
-                    </div>
-                </Col>
-                <Col span={12}>
-                    <DatePicker onChange={(date, dateString) => console.log(dateString)} style={{width: '100%'}}/>
-                    <br/><br/>
-                    <TimePicker style={{width: '100%'}} />
-                    <br/><br/>
-                    <Select style={{ width: '100%' }} placeholder="选择器-单选">
-                      <Option value='abc'>抖音</Option>
-                      <Option value='hotsoon'>火山</Option>
-                      <Option value='pipixia' disabled>皮皮虾</Option>
-                      <Option value='xigua'>西瓜视频</Option>
-                    </Select>
-                    <br/><br/>
-                    <Select disabled style={{ width: '100%' }} placeholder="选择器-禁用">
-                      <Option value='abc'>抖音</Option>
-                      <Option value='hotsoon'>火山</Option>
-                      <Option value='pipixia' disabled>皮皮虾</Option>
-                      <Option value='xigua'>西瓜视频</Option>
-                    </Select>
-                    <br/><br/>
-                    <Select multiple style={{ width: '100%' }} placeholder="选择器-多选">
-                      <Option value='abc'>抖音</Option>
-                      <Option value='hotsoon'>火山</Option>
-                      <Option value='pipixia' disabled>皮皮虾</Option>
-                      <Option value='xigua'>西瓜视频</Option>
-                    </Select>
+                <Row>
+                    <h3 style={titleStyle}>Buttons</h3>
+                </Row>
+                <Row style={rowStyle}>
+                    <Button loading={true} theme="solid" style={{ marginRight: 8 }}>加载</Button>
+                    <Button icon={<IconSidebar />} theme="solid" style={{ marginRight: 8 }}>收起</Button>
+                    <Button icon={<IconChevronDown />} theme="solid" iconPosition={"right"} style={{ marginRight: 8 }}>展开选项</Button >
                     <br/><br/>
                     <br/><br/>
-                    <Cascader style={{ width: '100%' }} treeData={treeData} placeholder="级联选择器"/>
-                  </Col>
+                    <ButtonGroup>
+                        <Button>拷贝</Button>
+                        <Button>查询</Button>
+                        <Button>剪切</Button>
+                    </ButtonGroup>
+                </Row>
+                <Row>
+                    <h3 style={titleStyle}>Input</h3>
+                </Row>
+                <Row style={rowStyle} gutter={16}>
+                    <Col span={12}>
+                        <Input placeholder='输入框'></Input>
+                        <br/><br/>
+                        <Input disabled placeholder='输入框'></Input>
+                        <br/><br/>
+                        <Input prefix="Prefix" showClear></Input>
+                        <br/><br/>
+                        <Input suffix={<Typography.Text strong type='secondary' style={{margin: '0 8px'}}>Suffix</Typography.Text>} showClear></Input>
+                        <br/><br/>
+                        <TextArea placeholder="文本框" maxCount={100} />
+                        <br/><br/>
+                        <div style={flexStyle}>
+                            <Switch style={{marginRight: 8}} defaultChecked={true}></Switch>
+                            <Switch style={{marginRight: 8}}></Switch>
+                            <Switch disabled defaultChecked={true} style={{marginRight: 8}}></Switch>
+                        </div>
+                        <div style={flexStyle}>
+                            <Checkbox style={{marginRight: 8}} defaultChecked>多选框</Checkbox>
+                            <Checkbox style={{marginRight: 8}} disabled defaultChecked>禁用的多选框</Checkbox>
+                            <Checkbox style={{marginRight: 8}}>禁用的多选框</Checkbox>
+                        </div>
+                        <div style={{...flexStyle, marginBottom: 0}}>
+                            <Radio style={{marginRight: 8}} defaultChecked>单选框</Radio>
+                            <Radio style={{marginRight: 8}} disabled defaultChecked>禁用的单选框</Radio>
+                            <Radio style={{marginRight: 8}}>禁用的单选框</Radio>
+                        </div>
+                    </Col>
+                    <Col span={12}>
+                        <DatePicker onChange={(date, dateString) => console.log(dateString)} style={{width: '100%'}}/>
+                        <br/><br/>
+                        <TimePicker style={{width: '100%'}} />
+                        <br/><br/>
+                        <Select style={{ width: '100%' }} placeholder="选择器-单选">
+                            <Option value='abc'>抖音</Option>
+                            <Option value='hotsoon'>火山</Option>
+                            <Option value='pipixia' disabled>皮皮虾</Option>
+                            <Option value='xigua'>西瓜视频</Option>
+                        </Select>
+                        <br/><br/>
+                        <Select disabled style={{ width: '100%' }} placeholder="选择器-禁用">
+                            <Option value='abc'>抖音</Option>
+                            <Option value='hotsoon'>火山</Option>
+                            <Option value='pipixia' disabled>皮皮虾</Option>
+                            <Option value='xigua'>西瓜视频</Option>
+                        </Select>
+                        <br/><br/>
+                        <Select multiple style={{ width: '100%' }} placeholder="选择器-多选">
+                            <Option value='abc'>抖音</Option>
+                            <Option value='hotsoon'>火山</Option>
+                            <Option value='pipixia' disabled>皮皮虾</Option>
+                            <Option value='xigua'>西瓜视频</Option>
+                        </Select>
+                        <br/><br/>
+                        <Cascader style={{ width: '100%' }} treeData={treeData} placeholder="级联选择器"/>
+                    </Col>
                 </Row>
                 </Row>
                 <Row>
                 <Row>
                     <h3 style={titleStyle}>Navigation</h3>
                     <h3 style={titleStyle}>Navigation</h3>
@@ -270,37 +270,37 @@ function Demo(props = {}) {
                     <h3 style={titleStyle}>Display</h3>
                     <h3 style={titleStyle}>Display</h3>
                 </Row>
                 </Row>
                 <Row style={rowStyle}>
                 <Row style={rowStyle}>
-                   <div style={{ display: 'flex' }}>
-                      <div style={{ padding: 8 }}>
-                          <Badge count={5} theme='solid' >
-                              <Avatar color='blue' shape='square' style={badgeStyle}>XZ</Avatar>
-                          </Badge>
-                      </div>
-                      <div style={{ padding: 8 }}>
-                          <Badge count={5} theme='light' >
-                              <Avatar color='cyan' shape='square' style={badgeStyle}>YB</Avatar>
-                          </Badge>
-                      </div>
-                      <div style={{ padding: 8 }}>
-                          <Badge count={5} theme='inverted'>
-                              <Avatar color='indigo' shape='square' style={badgeStyle}>LX</Avatar>
-                          </Badge>
-                      </div>
-                      <div style={{ padding: 8 }}>
-                          <Badge dot theme='solid' >
-                              <Avatar color='light-blue' shape='square' style={badgeStyle}>YZ</Avatar>
-                          </Badge>
-                      </div>
-                      <div style={{ padding: 8 }}>
-                          <Badge dot theme='light' >
-                              <Avatar color='teal' shape='square' style={badgeStyle}>HW</Avatar>
-                          </Badge>
-                      </div>
-                      <div style={{ padding: '8px', borderRadius: '4px', backgroundColor: 'var(--semi-color-fill-0)' }}>
-                          <Badge dot theme='inverted'>
-                              <Avatar color='green' shape='square' style={badgeStyle}>XM</Avatar>
-                          </Badge>
-                      </div>
+                    <div style={{ display: 'flex' }}>
+                        <div style={{ padding: 8 }}>
+                            <Badge count={5} theme='solid' >
+                                <Avatar color='blue' shape='square' style={badgeStyle}>XZ</Avatar>
+                            </Badge>
+                        </div>
+                        <div style={{ padding: 8 }}>
+                            <Badge count={5} theme='light' >
+                                <Avatar color='cyan' shape='square' style={badgeStyle}>YB</Avatar>
+                            </Badge>
+                        </div>
+                        <div style={{ padding: 8 }}>
+                            <Badge count={5} theme='inverted'>
+                                <Avatar color='indigo' shape='square' style={badgeStyle}>LX</Avatar>
+                            </Badge>
+                        </div>
+                        <div style={{ padding: 8 }}>
+                            <Badge dot theme='solid' >
+                                <Avatar color='light-blue' shape='square' style={badgeStyle}>YZ</Avatar>
+                            </Badge>
+                        </div>
+                        <div style={{ padding: 8 }}>
+                            <Badge dot theme='light' >
+                                <Avatar color='teal' shape='square' style={badgeStyle}>HW</Avatar>
+                            </Badge>
+                        </div>
+                        <div style={{ padding: '8px', borderRadius: '4px', backgroundColor: 'var(--semi-color-fill-0)' }}>
+                            <Badge dot theme='inverted'>
+                                <Avatar color='green' shape='square' style={badgeStyle}>XM</Avatar>
+                            </Badge>
+                        </div>
                     </div>
                     </div>
                     <br/>
                     <br/>
                     <div>
                     <div>
@@ -317,11 +317,11 @@ function Demo(props = {}) {
                     </div>
                     </div>
                     <br/>
                     <br/>
                     <div style={{display: 'flex', alignItems: 'center'}}>
                     <div style={{display: 'flex', alignItems: 'center'}}>
-                      <Popover content={'hi semi-design'} style={{padding: 8}}><Tag style={{marginRight: 8}}>I am Popover</Tag></Popover>
-                      <Tooltip content={'hi semi-design'}>
-                          <Tag style={{marginRight: 8}}>I am Tooltip</Tag>
-                      </Tooltip>
-                      <Rating defaultValue={3} size='small' style={{marginRight: 8}} />
+                        <Popover content={'hi semi-design'} style={{padding: 8}}><Tag style={{marginRight: 8}}>I am Popover</Tag></Popover>
+                        <Tooltip content={'hi semi-design'}>
+                            <Tag style={{marginRight: 8}}>I am Tooltip</Tag>
+                        </Tooltip>
+                        <Rating defaultValue={3} size='small' style={{marginRight: 8}} />
                     </div>
                     </div>
                     <br/>
                     <br/>
                     <Timeline>
                     <Timeline>
@@ -360,7 +360,7 @@ function Demo(props = {}) {
                     <Button onClick={() => Toast.info(opts)} style={buttonStyle}>提示信息的提示</Button>
                     <Button onClick={() => Toast.info(opts)} style={buttonStyle}>提示信息的提示</Button>
                     <Button type="warning" onClick={() => Toast.warning(opts)} style={buttonStyle}>警告信息的提示</Button>
                     <Button type="warning" onClick={() => Toast.warning(opts)} style={buttonStyle}>警告信息的提示</Button>
                     <Button type="danger" onClick={() => Toast.error(opts)} style={buttonStyle}>失败信息的提示</Button>
                     <Button type="danger" onClick={() => Toast.error(opts)} style={buttonStyle}>失败信息的提示</Button>
-                     <br/><br/>
+                    <br/><br/>
                     <Spin tip='I am loading...'>
                     <Spin tip='I am loading...'>
                         <div style={{
                         <div style={{
                             backgroundColor: 'var(--semi-color-primary-light-default',
                             backgroundColor: 'var(--semi-color-primary-light-default',

+ 12 - 8
content/other/locale/index-en-US.md

@@ -30,7 +30,8 @@ brief: Internationalized components to provide multilingual support for Semi com
 `LocaleProvider` uses the context feature of React, and you only need to wrap the periphery of the application once to take effect globally.  
 `LocaleProvider` uses the context feature of React, and you only need to wrap the periphery of the application once to take effect globally.  
 When you need to switch the language, you can directly switch the locale passed in by the props.
 When you need to switch the language, you can directly switch the locale passed in by the props.
 
 
-```js
+```jsx
+import React from 'react';
 import zh_CN from '@douyinfe/semi-ui/lib/es/locale/source/zh_CN';
 import zh_CN from '@douyinfe/semi-ui/lib/es/locale/source/zh_CN';
 import en_GB from '@douyinfe/semi-ui/lib/es/locale/source/en_GB';
 import en_GB from '@douyinfe/semi-ui/lib/es/locale/source/en_GB';
 import en_US from '@douyinfe/semi-ui/lib/es/locale/source/en_US';
 import en_US from '@douyinfe/semi-ui/lib/es/locale/source/en_US';
@@ -51,7 +52,8 @@ import { LocaleProvider } from '@douyinfe/semi-ui';
 
 
 return (
 return (
     <LocaleProvider locale={en_GB}>
     <LocaleProvider locale={en_GB}>
-        <App/>
+        {/* eslint-disable-next-line react/jsx-no-undef */}
+        <App />
     </LocaleProvider>
     </LocaleProvider>
 );
 );
 ```
 ```
@@ -107,13 +109,15 @@ import zh_TW from '@douyinfe/semi-ui/lib/es/locale/source/zh_TW';
 import ar from '@douyinfe/semi-ui/lib/es/locale/source/ar';
 import ar from '@douyinfe/semi-ui/lib/es/locale/source/ar';
 import { LocaleProvider, ConfigProvider, Pagination, Modal, Button, Select, Cascader, DatePicker, TreeSelect, Table, TimePicker, List, Calendar, Typography } from '@douyinfe/semi-ui';
 import { LocaleProvider, ConfigProvider, Pagination, Modal, Button, Select, Cascader, DatePicker, TreeSelect, Table, TimePicker, List, Calendar, Typography } from '@douyinfe/semi-ui';
 
 
+const { Option } = Select;
+
 class I18nDemo extends React.Component {
 class I18nDemo extends React.Component {
     constructor(props) {
     constructor(props) {
         super(props);
         super(props);
         this.state = {
         this.state = {
             locale: en_GB,
             locale: en_GB,
             localeCode: 'en_GB',
             localeCode: 'en_GB',
-        }
+        };
         this.onLanguageChange = this.onLanguageChange.bind(this);
         this.onLanguageChange = this.onLanguageChange.bind(this);
     }
     }
 
 
@@ -130,8 +134,8 @@ class I18nDemo extends React.Component {
             'ms_MY': ms_MY,
             'ms_MY': ms_MY,
             'th_TH': th_TH,
             'th_TH': th_TH,
             'tr_TR': tr_TR,
             'tr_TR': tr_TR,
-        }
-        this.setState({ locale: language[code], localeCode: code })
+        };
+        this.setState({ locale: language[code], localeCode: code });
     }
     }
 
 
     render() {
     render() {
@@ -206,10 +210,10 @@ class I18nDemo extends React.Component {
                             visible={modalVisible}
                             visible={modalVisible}
                             onOk={() => setModalVisible(false)}
                             onOk={() => setModalVisible(false)}
                             onCancel={() => setModalVisible(false)}
                             onCancel={() => setModalVisible(false)}
-                            >
+                        >
                             <p>This is the content of a basic modal.</p>
                             <p>This is the content of a basic modal.</p>
                             <p>More content...</p>
                             <p>More content...</p>
-                    </Modal>
+                        </Modal>
                     </div>
                     </div>
                     <h5>Select & Cascader</h5>
                     <h5>Select & Cascader</h5>
                     <div style={style}>
                     <div style={style}>
@@ -270,7 +274,7 @@ class I18nDemo extends React.Component {
                     </ConfigProvider>
                     </ConfigProvider>
                 </LocaleProvider>
                 </LocaleProvider>
             </>
             </>
-        )
+        );
     }
     }
 }
 }
 ```
 ```

+ 10 - 8
content/other/locale/index.md

@@ -28,7 +28,8 @@ brief: 国际化组件,为 Semi 组件提供多语言支持
 LocaleProvider 使用了 React 的 context 上下文特性,你只需要在应用外围包裹一次即可全局生效  
 LocaleProvider 使用了 React 的 context 上下文特性,你只需要在应用外围包裹一次即可全局生效  
 当需要切换语言时,直接切换 props 传入的 locale 即可
 当需要切换语言时,直接切换 props 传入的 locale 即可
 
 
-```js hideInDSM
+```jsx hideInDSM
+import React from 'react';
 import zh_CN from '@douyinfe/semi-ui/lib/es/locale/source/zh_CN';
 import zh_CN from '@douyinfe/semi-ui/lib/es/locale/source/zh_CN';
 import en_GB from '@douyinfe/semi-ui/lib/es/locale/source/en_GB';
 import en_GB from '@douyinfe/semi-ui/lib/es/locale/source/en_GB';
 import en_US from '@douyinfe/semi-ui/lib/es/locale/source/en_US';
 import en_US from '@douyinfe/semi-ui/lib/es/locale/source/en_US';
@@ -49,7 +50,8 @@ import { LocaleProvider } from '@douyinfe/semi-ui';
 // 在locale中传入相应的语言包即可
 // 在locale中传入相应的语言包即可
 return (
 return (
     <LocaleProvider locale={en_GB}>
     <LocaleProvider locale={en_GB}>
-        <App/>
+        {/* eslint-disable-next-line react/jsx-no-undef */}
+        <App />
     </LocaleProvider>
     </LocaleProvider>
 );
 );
 ```
 ```
@@ -114,7 +116,7 @@ class I18nDemo extends React.Component {
         this.state = {
         this.state = {
             locale: zh_CN,
             locale: zh_CN,
             localeCode: 'zh_CN',
             localeCode: 'zh_CN',
-        }
+        };
         this.onLanguageChange = this.onLanguageChange.bind(this);
         this.onLanguageChange = this.onLanguageChange.bind(this);
     }
     }
 
 
@@ -133,8 +135,8 @@ class I18nDemo extends React.Component {
             'tr_TR': tr_TR,
             'tr_TR': tr_TR,
             'pt_BR': pt_BR,
             'pt_BR': pt_BR,
             'zh_TW': zh_TW,
             'zh_TW': zh_TW,
-        }
-        this.setState({ locale: language[code], localeCode: code })
+        };
+        this.setState({ locale: language[code], localeCode: code });
     }
     }
 
 
     render() {
     render() {
@@ -209,10 +211,10 @@ class I18nDemo extends React.Component {
                             visible={modalVisible}
                             visible={modalVisible}
                             onOk={() => setModalVisible(false)}
                             onOk={() => setModalVisible(false)}
                             onCancel={() => setModalVisible(false)}
                             onCancel={() => setModalVisible(false)}
-                            >
+                        >
                             <p>This is the content of a basic modal.</p>
                             <p>This is the content of a basic modal.</p>
                             <p>More content...</p>
                             <p>More content...</p>
-                    </Modal>
+                        </Modal>
                     </div>
                     </div>
                     <h5>Select & Cascader</h5>
                     <h5>Select & Cascader</h5>
                     <div style={style}>
                     <div style={style}>
@@ -281,7 +283,7 @@ class I18nDemo extends React.Component {
                     </ConfigProvider>
                     </ConfigProvider>
                 </LocaleProvider>
                 </LocaleProvider>
             </>
             </>
-        )
+        );
     }
     }
 }
 }
 ```
 ```

+ 2 - 2
content/show/avatar/index-en-US.md

@@ -208,7 +208,7 @@ function Demo() {
                     {`+${restNumber}`}
                     {`+${restNumber}`}
                 </Avatar>
                 </Avatar>
             </Popover>
             </Popover>
-        )
+        );
     };
     };
 
 
     return (
     return (
@@ -219,7 +219,7 @@ function Demo() {
             <Avatar style={{ color: '#f56a00', backgroundColor: '#fde3cf' }}>ZL</Avatar>
             <Avatar style={{ color: '#f56a00', backgroundColor: '#fde3cf' }}>ZL</Avatar>
             <Avatar style={{ backgroundColor: '#87d068' }} >YZ</Avatar>
             <Avatar style={{ backgroundColor: '#87d068' }} >YZ</Avatar>
         </AvatarGroup>
         </AvatarGroup>
-    )
+    );
 }
 }
 ```
 ```
 
 

+ 6 - 5
content/show/badge/index-en-US.md

@@ -23,6 +23,7 @@ The basic type of Badge is `count`. The `dot` property changes a badge into a sm
 ```jsx live=true
 ```jsx live=true
 import React from 'react';
 import React from 'react';
 import { Badge, Avatar } from '@douyinfe/semi-ui';
 import { Badge, Avatar } from '@douyinfe/semi-ui';
+import { IconLock } from '@douyinfe/semi-icons';
 
 
 () => {
 () => {
     const style = {
     const style = {
@@ -53,7 +54,7 @@ import { Badge, Avatar } from '@douyinfe/semi-ui';
             </Badge>
             </Badge>
         </div>
         </div>
     );
     );
-}
+};
 ```
 ```
 
 
 ### Maximum Value
 ### Maximum Value
@@ -93,7 +94,7 @@ import { Badge, Avatar } from '@douyinfe/semi-ui';
             </Badge>
             </Badge>
         </div>
         </div>
     );
     );
-}
+};
 ```
 ```
 
 
 ### Position
 ### Position
@@ -133,7 +134,7 @@ import { Badge, Avatar } from '@douyinfe/semi-ui';
             </Badge>
             </Badge>
         </div>
         </div>
     );
     );
-}
+};
 ```
 ```
 
 
 ### Theming
 ### Theming
@@ -189,7 +190,7 @@ import { Badge, Avatar } from '@douyinfe/semi-ui';
             </div>
             </div>
         </div>
         </div>
     );
     );
-}
+};
 ```
 ```
 
 
 `type` support the following values: `primary`(default),`secondary`,`tertiary`,`warning` and `danger`.
 `type` support the following values: `primary`(default),`secondary`,`tertiary`,`warning` and `danger`.
@@ -243,7 +244,7 @@ import { Badge, Avatar } from '@douyinfe/semi-ui';
             </div>
             </div>
         </div>
         </div>
     );
     );
-}
+};
 ```
 ```
 
 
 ### Independent Usage
 ### Independent Usage

+ 5 - 5
content/show/badge/index.md

@@ -52,7 +52,7 @@ import { IconLock } from '@douyinfe/semi-icons';
             </Badge>
             </Badge>
         </div>
         </div>
     );  
     );  
-}
+};
 ```
 ```
 
 
 ### 设置显示数字最大值
 ### 设置显示数字最大值
@@ -92,7 +92,7 @@ import { Badge, Avatar } from '@douyinfe/semi-ui';
             </Badge>
             </Badge>
         </div>
         </div>
     );
     );
-}
+};
 ```
 ```
 
 
 ### 设置徽标位置
 ### 设置徽标位置
@@ -132,7 +132,7 @@ import { Badge, Avatar } from '@douyinfe/semi-ui';
             </Badge>
             </Badge>
         </div>
         </div>
     );
     );
-}
+};
 ```
 ```
 
 
 ### 设置徽标样式
 ### 设置徽标样式
@@ -188,7 +188,7 @@ import { Badge, Avatar } from '@douyinfe/semi-ui';
             </div>
             </div>
         </div>
         </div>
     );
     );
-}
+};
 ```
 ```
 
 
 `type` 支持如下类型:`primary`,`secondary`,`tertiary`,`warning` 和 `danger`。默认类型为 `primary`。
 `type` 支持如下类型:`primary`,`secondary`,`tertiary`,`warning` 和 `danger`。默认类型为 `primary`。
@@ -242,7 +242,7 @@ import { Badge, Avatar } from '@douyinfe/semi-ui';
             </div>
             </div>
         </div>
         </div>
     );
     );
-}
+};
 ```
 ```
 
 
 ### 独立使用
 ### 独立使用

+ 30 - 30
content/show/calendar/index-en-US.md

@@ -26,7 +26,7 @@ import { Calendar } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <Calendar mode="day"></Calendar>
     <Calendar mode="day"></Calendar>
-)
+);
 ```
 ```
 
 
 ### Week Mode
 ### Week Mode
@@ -39,7 +39,7 @@ import { Calendar } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <Calendar mode="week"></Calendar>
     <Calendar mode="week"></Calendar>
-)
+);
 ```
 ```
 
 
 ### Month Mode
 ### Month Mode
@@ -52,7 +52,7 @@ import { Calendar } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <Calendar mode="month"></Calendar>
     <Calendar mode="month"></Calendar>
-)
+);
 ```
 ```
 
 
 ### Range Mode
 ### Range Mode
@@ -65,7 +65,7 @@ import { Calendar } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
     <Calendar mode="range" range={[new Date(2020, 8, 26), new Date(2020, 8, 31)]} />
     <Calendar mode="range" range={[new Date(2020, 8, 26), new Date(2020, 8, 31)]} />
-)
+);
 ```
 ```
 
 
 ### Render Events
 ### Render Events
@@ -218,18 +218,18 @@ import { Calendar } from '@douyinfe/semi-ui';
     };
     };
     const displayValue = new Date(2019, 6, 23, 8, 32, 0);
     const displayValue = new Date(2019, 6, 23, 8, 32, 0);
     const dateRender = (dateString) => {
     const dateRender = (dateString) => {
-      if (dateString === new Date(2019, 6, 23).toString()) {
-        return (
-          <>
-            <div style={{...dailyEventStyle, top: '500px', height: 50}}>Eating 🍰</div>
-            <div style={{...dailyEventStyle, top: '0', height: 400}}>Sleeping 😪</div>
-            <div style={{...dailyEventStyle, top: '700px', height: 100}}>Playstation 🎮</div>
-          </>
-        )
-      } else {
-        return null;
-      }
-    }
+        if (dateString === new Date(2019, 6, 23).toString()) {
+            return (
+                <>
+                    <div style={{...dailyEventStyle, top: '500px', height: 50}}>Eating 🍰</div>
+                    <div style={{...dailyEventStyle, top: '0', height: 400}}>Sleeping 😪</div>
+                    <div style={{...dailyEventStyle, top: '700px', height: 100}}>Playstation 🎮</div>
+                </>
+            );
+        } else {
+            return null;
+        }
+    };
     return (
     return (
         <Calendar 
         <Calendar 
             height={700}
             height={700}
@@ -238,7 +238,7 @@ import { Calendar } from '@douyinfe/semi-ui';
             dateGridRender={dateRender}
             dateGridRender={dateRender}
         />
         />
     );
     );
-}
+};
 ```
 ```
 
 
 #### Customized Date Cell Style
 #### Customized Date Cell Style
@@ -258,19 +258,19 @@ import { Calendar } from '@douyinfe/semi-ui';
     };
     };
     const displayValue = new Date(2019, 6, 23, 8, 32, 0);
     const displayValue = new Date(2019, 6, 23, 8, 32, 0);
     const importDates = [
     const importDates = [
-      new Date(2019, 6, 2),
-      new Date(2019, 6, 8),
-      new Date(2019, 6, 19),
-      new Date(2019, 6, 23)
-    ]
+        new Date(2019, 6, 2),
+        new Date(2019, 6, 8),
+        new Date(2019, 6, 19),
+        new Date(2019, 6, 23)
+    ];
     const dateRender = (dateString) => {
     const dateRender = (dateString) => {
-      if (importDates.filter(date => date.toString() === dateString).length) {
-        return (
-          <div style={importantDate} />
-        )
-      } 
-      return null;
-    }
+        if (importDates.filter(date => date.toString() === dateString).length) {
+            return (
+                <div style={importantDate} />
+            );
+        } 
+        return null;
+    };
     return (
     return (
         <Calendar 
         <Calendar 
             height={700}
             height={700}
@@ -279,7 +279,7 @@ import { Calendar } from '@douyinfe/semi-ui';
             dateGridRender={dateRender}
             dateGridRender={dateRender}
         />
         />
     );
     );
-}
+};
 ```
 ```
 
 
 ## API Reference
 ## API Reference

+ 445 - 444
content/show/card/index-en-US.md

@@ -24,21 +24,21 @@ import React from 'react';
 import { Card, Typography } from '@douyinfe/semi-ui';
 import { Card, Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
+    const { Text } = Typography;
   
   
-  return (
-    <Card 
-      title='Semi Design' 
-      style={{ maxWidth: 360 }}
-      headerExtraContent={
-        <Text link>
-          More
-        </Text>
-      }
-    >
-        Semi Design is a design system developed and maintained by IES-FE & IES-UED. The design system includes a design language and a set of reusable front-end components, helping designers and developers to more easily create high-quality, consistent user experience, design-compliant Web applications.
-    </Card>
-  );
+    return (
+        <Card 
+            title='Semi Design' 
+            style={{ maxWidth: 360 }}
+            headerExtraContent={
+                <Text link>
+                    More
+                </Text>
+            }
+        >
+            Semi Design is a design system developed and maintained by IES-FE & IES-UED. The design system includes a design language and a set of reusable front-end components, helping designers and developers to more easily create high-quality, consistent user experience, design-compliant Web applications.
+        </Card>
+    );
 }
 }
 
 
 ```
 ```
@@ -53,45 +53,45 @@ import { Card, Popover, Avatar } from '@douyinfe/semi-ui';
 import { IconInfoCircle } from '@douyinfe/semi-icons';
 import { IconInfoCircle } from '@douyinfe/semi-icons';
 
 
 function Demo() {
 function Demo() {
-  const { Meta } = Card;
-
-  return (
-    <>
-      <Card style={{ maxWidth: 360 }} >
-        Semi Design is a design system developed and maintained by IES-FE & IES-UED.
-      </Card>
-      <br />
-      <Card 
-        style={{ maxWidth: 360 }} 
-        bodyStyle={{ 
-          display: 'flex',
-          alignItems: 'center',
-          justifyContent: 'space-between'
-        }}
-      >
-        <Meta 
-          title="Semi Doc" 
-          avatar={
-            <Avatar 
-              size="default"
-              src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
-            />
-          }
-        />
-        <Popover
-          position='top'
-          showArrow
-          content={
-              <article style={{ padding: 6 }}>
-                  This is a card.
-              </article>
-          }
-        >
-            <IconInfoCircle style={{color:'var(--semi-color-primary)'}}/>
-        </Popover>
-      </Card>
-    </>
-  );
+    const { Meta } = Card;
+
+    return (
+        <>
+            <Card style={{ maxWidth: 360 }} >
+                Semi Design is a design system developed and maintained by IES-FE & IES-UED.
+            </Card>
+            <br />
+            <Card 
+                style={{ maxWidth: 360 }} 
+                bodyStyle={{ 
+                    display: 'flex',
+                    alignItems: 'center',
+                    justifyContent: 'space-between'
+                }}
+            >
+                <Meta 
+                    title="Semi Doc" 
+                    avatar={
+                        <Avatar 
+                            size="default"
+                            src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
+                        />
+                    }
+                />
+                <Popover
+                    position='top'
+                    showArrow
+                    content={
+                        <article style={{ padding: 6 }}>
+                            This is a card.
+                        </article>
+                    }
+                >
+                    <IconInfoCircle style={{color:'var(--semi-color-primary)'}}/>
+                </Popover>
+            </Card>
+        </>
+    );
 }
 }
 
 
 ```
 ```
@@ -105,21 +105,21 @@ import React from 'react';
 import { Card } from '@douyinfe/semi-ui';
 import { Card } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Meta } = Card;
-
-  return (
-    <Card
-      style={{ maxWidth: 300 }}
-      cover={ 
-        <img 
-          alt="example" 
-          src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/card-cover-docs-demo2.jpeg" 
-        />
-      }
-    >
-      <Meta title="Card cover" />
-    </Card>
-  );
+    const { Meta } = Card;
+
+    return (
+        <Card
+            style={{ maxWidth: 300 }}
+            cover={ 
+                <img 
+                    alt="example" 
+                    src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/card-cover-docs-demo2.jpeg" 
+                />
+            }
+        >
+            <Meta title="Card cover" />
+        </Card>
+    );
 }
 }
 
 
 ```
 ```
@@ -133,24 +133,24 @@ import React from 'react';
 import { Card } from '@douyinfe/semi-ui';
 import { Card } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  return (
-    <div 
-      style={{
-        display: 'inline-block',
-        padding: 20,
-        backgroundColor: 'var(--semi-color-fill-0)'
-      }}
-    >
-      <Card 
-        style={{ maxWidth: 360 }}
-        bordered={false}
-        headerLine={true}
-        title='Semi Design'
-      >
-        Semi Design is a design system developed and maintained by IES-FE & IES-UED. The design system includes a design language and a set of reusable front-end components, helping designers and developers to more easily create high-quality, consistent user experience, design-compliant Web applications.
-      </Card>
-    </div>
-  );
+    return (
+        <div 
+            style={{
+                display: 'inline-block',
+                padding: 20,
+                backgroundColor: 'var(--semi-color-fill-0)'
+            }}
+        >
+            <Card 
+                style={{ maxWidth: 360 }}
+                bordered={false}
+                headerLine={true}
+                title='Semi Design'
+            >
+                Semi Design is a design system developed and maintained by IES-FE & IES-UED. The design system includes a design language and a set of reusable front-end components, helping designers and developers to more easily create high-quality, consistent user experience, design-compliant Web applications.
+            </Card>
+        </div>
+    );
 }
 }
 
 
 ```
 ```
@@ -166,73 +166,73 @@ import { Card, Avatar, Popover } from '@douyinfe/semi-ui';
 import { IconInfoCircle } from '@douyinfe/semi-icons';
 import { IconInfoCircle } from '@douyinfe/semi-icons';
 
 
 function Demo() {
 function Demo() {
-  const { Meta } = Card;
-
-  return (
-    <div>
-      <Card 
-        shadows='hover'
-        style={{ maxWidth: 360 }} 
-        bodyStyle={{ 
-          display: 'flex',
-          alignItems: 'center',
-          justifyContent: 'space-between'
-        }}
-      >
-        <Meta 
-          title="Semi Doc" 
-          avatar={
-            <Avatar 
-              size="default"
-              src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
-            />
-          }
-        />
-        <Popover
-          position='top'
-          showArrow
-          content={
-              <article style={{ padding: 6 }}>
-                  This is a card.
-              </article>
-          }
-        >
-            <IconInfoCircle style={{color:'var(--semi-color-primary)'}}/>
-        </Popover>
-      </Card>
-      <br/>
-      <Card 
-        shadows='always'
-        style={{ maxWidth: 360 }} 
-        bodyStyle={{ 
-          display: 'flex',
-          alignItems: 'center',
-          justifyContent: 'space-between'
-        }}
-      >
-        <Meta 
-          title="Semi Doc" 
-          avatar={
-            <Avatar 
-              size="default"
-              src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
-            />
-          }
-        />
-        <Popover
-          position='top'
-          showArrow
-          content={
-              <article style={{ padding: 6 }}>
-                  This is a card.
-              </article>
-          }
-        >
-            <IconInfoCircle style={{color:'var(--semi-color-primary)'}}/>
-        </Popover>
-      </Card>
-    </div>
-  );
+    const { Meta } = Card;
+
+    return (
+        <div>
+            <Card 
+                shadows='hover'
+                style={{ maxWidth: 360 }} 
+                bodyStyle={{ 
+                    display: 'flex',
+                    alignItems: 'center',
+                    justifyContent: 'space-between'
+                }}
+            >
+                <Meta 
+                    title="Semi Doc" 
+                    avatar={
+                        <Avatar 
+                            size="default"
+                            src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
+                        />
+                    }
+                />
+                <Popover
+                    position='top'
+                    showArrow
+                    content={
+                        <article style={{ padding: 6 }}>
+                            This is a card.
+                        </article>
+                    }
+                >
+                    <IconInfoCircle style={{color:'var(--semi-color-primary)'}}/>
+                </Popover>
+            </Card>
+            <br/>
+            <Card 
+                shadows='always'
+                style={{ maxWidth: 360 }} 
+                bodyStyle={{ 
+                    display: 'flex',
+                    alignItems: 'center',
+                    justifyContent: 'space-between'
+                }}
+            >
+                <Meta 
+                    title="Semi Doc" 
+                    avatar={
+                        <Avatar 
+                            size="default"
+                            src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
+                        />
+                    }
+                />
+                <Popover
+                    position='top'
+                    showArrow
+                    content={
+                        <article style={{ padding: 6 }}>
+                            This is a card.
+                        </article>
+                    }
+                >
+                    <IconInfoCircle style={{color:'var(--semi-color-primary)'}}/>
+                </Popover>
+            </Card>
+        </div>
+    );
 }
 }
 
 
 ```
 ```
@@ -246,47 +246,47 @@ import React from 'react';
 import { Card, Avatar, Space, Button, Typography } from '@douyinfe/semi-ui';
 import { Card, Avatar, Space, Button, Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Meta } = Card;
-  const { Text } = Typography;
-
-  return (
-    <Card
-      style={{ maxWidth: 360 }}
-      title={
-        <Meta 
-          title="Semi Doc" 
-          description="Easily manage your project icons and easily upload, update and share a series of project icons." 
-          avatar={
-            <Avatar 
-              size="default"
-              src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
-            />
-          }
-        />
-      }
-      headerExtraContent={
-        <Text link>
-            More
-        </Text>
-      }
-      cover={ 
-        <img 
-          alt="example" 
-          src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/card-cover-docs-demo.jpeg" 
-        />
-      }
-      footerLine={ true }
-      footerStyle={{ display: 'flex', justifyContent: 'flex-end' }}
-      footer={
-        <Space>
-          <Button theme='borderless' type='primary'>Featured Case</Button>
-          <Button theme='solid' type='primary'>Start</Button>
-        </Space>
-      }
-    >
-      Semi Design is a design system developed and maintained by IES-FE & IES-UED. 
-    </Card>
-  );
+    const { Meta } = Card;
+    const { Text } = Typography;
+
+    return (
+        <Card
+            style={{ maxWidth: 360 }}
+            title={
+                <Meta 
+                    title="Semi Doc" 
+                    description="Easily manage your project icons and easily upload, update and share a series of project icons." 
+                    avatar={
+                        <Avatar 
+                            size="default"
+                            src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
+                        />
+                    }
+                />
+            }
+            headerExtraContent={
+                <Text link>
+                    More
+                </Text>
+            }
+            cover={ 
+                <img 
+                    alt="example" 
+                    src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/card-cover-docs-demo.jpeg" 
+                />
+            }
+            footerLine={ true }
+            footerStyle={{ display: 'flex', justifyContent: 'flex-end' }}
+            footer={
+                <Space>
+                    <Button theme='borderless' type='primary'>Featured Case</Button>
+                    <Button theme='solid' type='primary'>Start</Button>
+                </Space>
+            }
+        >
+            Semi Design is a design system developed and maintained by IES-FE & IES-UED. 
+        </Card>
+    );
 }
 }
 
 
 ```
 ```
@@ -301,33 +301,33 @@ import React from 'react';
 import { Card, Typography } from '@douyinfe/semi-ui';
 import { Card, Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
+    const { Text } = Typography;
   
   
-  return (
-    <Card title='Card title' >
-      <Card 
-        title='Inner Card title'
-        style={{ marginBottom: 20 }}
-        headerExtraContent={
-          <Text link>
-            More
-          </Text>
-        }
-      >
-        Inner Card content
-      </Card>
-      <Card 
-        title='Inner Card title'
-        headerExtraContent={
-          <Text link>
-            More
-          </Text>
-        }
-      >
-        Inner Card content
-      </Card>
-    </Card>
-  );
+    return (
+        <Card title='Card title' >
+            <Card 
+                title='Inner Card title'
+                style={{ marginBottom: 20 }}
+                headerExtraContent={
+                    <Text link>
+                        More
+                    </Text>
+                }
+            >
+                Inner Card content
+            </Card>
+            <Card 
+                title='Inner Card title'
+                headerExtraContent={
+                    <Text link>
+                        More
+                    </Text>
+                }
+            >
+                Inner Card content
+            </Card>
+        </Card>
+    );
 }
 }
 
 
 ```
 ```
@@ -341,44 +341,44 @@ import React from 'react';
 import { Card, Row, Col } from '@douyinfe/semi-ui';
 import { Card, Row, Col } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  return (
-    <div 
-      style={{
-        backgroundColor: 'var(--semi-color-fill-0)', 
-        padding: 20
-      }}
-    >
-      <Row gutter={[16,16]}>
-        <Col span={8}>
-          <Card title='Card Title' bordered={false} >
-              Card Content
-          </Card>
-        </Col>
-        <Col span={8}>
-          <Card title='Card Title' bordered={false} >
-              Card Content
-          </Card>
-        </Col>
-        <Col span={8}>
-          <Card title='Card Title' bordered={false} >
-              Card Content
-          </Card>
-        </Col>
-      </Row>
-      <Row gutter={[16,16]}>
-        <Col span={16}>
-          <Card title='Card Title' bordered={false} >
-              Card Content
-          </Card>
-        </Col>
-        <Col span={8}>
-          <Card title='Card Title' bordered={false} >
-              Card Content
-          </Card>
-        </Col>
-      </Row>
-    </div>
-  );
+    return (
+        <div 
+            style={{
+                backgroundColor: 'var(--semi-color-fill-0)', 
+                padding: 20
+            }}
+        >
+            <Row gutter={[16,16]}>
+                <Col span={8}>
+                    <Card title='Card Title' bordered={false} >
+                        Card Content
+                    </Card>
+                </Col>
+                <Col span={8}>
+                    <Card title='Card Title' bordered={false} >
+                        Card Content
+                    </Card>
+                </Col>
+                <Col span={8}>
+                    <Card title='Card Title' bordered={false} >
+                        Card Content
+                    </Card>
+                </Col>
+            </Row>
+            <Row gutter={[16,16]}>
+                <Col span={16}>
+                    <Card title='Card Title' bordered={false} >
+                        Card Content
+                    </Card>
+                </Col>
+                <Col span={8}>
+                    <Card title='Card Title' bordered={false} >
+                        Card Content
+                    </Card>
+                </Col>
+            </Row>
+        </div>
+    );
 }
 }
 
 
 ```
 ```
@@ -392,25 +392,25 @@ import React, { useState } from 'react';
 import { Card, Switch } from '@douyinfe/semi-ui';
 import { Card, Switch } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const [loading, setLoading] = useState(true);
-  const { Meta } = Card;
-
-  return (
-    <>
-      <Switch onChange={ v => setLoading(!v) } />
-      <br />
-      <br />
-      <Card 
-        style={{ maxWidth: 360 }}
-        loading={ loading }
-      >
-        <Meta 
-          title="Semi Design" 
-          description="Semi Design is a design system developed and maintained by IES-FE & IES-UED."
-        />
-      </Card>
-    </>
-  );
+    const [loading, setLoading] = useState(true);
+    const { Meta } = Card;
+
+    return (
+        <>
+            <Switch onChange={ v => setLoading(!v) } />
+            <br />
+            <br />
+            <Card 
+                style={{ maxWidth: 360 }}
+                loading={ loading }
+            >
+                <Meta 
+                    title="Semi Design" 
+                    description="Semi Design is a design system developed and maintained by IES-FE & IES-UED."
+                />
+            </Card>
+        </>
+    );
 }
 }
 
 
 ```
 ```
@@ -424,70 +424,70 @@ import React, { useState } from 'react';
 import { Card, Switch, Skeleton, Typography, Avatar } from '@douyinfe/semi-ui';
 import { Card, Switch, Skeleton, Typography, Avatar } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const [loading, setLoading] = useState(true);
-  const { Meta } = Card;
-  const { Title, Paragraph, Image } = Skeleton;
-
-  return (
-    <>
-      <Switch onChange={ v => setLoading(!v) } />
-      <br />
-      <br />
-      <Card
-        style={{ maxWidth: 360 }}
-        title={
-          <Meta 
-            title={
-              <Skeleton
-                style={{width:80}}
-                placeholder={<Title />}
-                loading={loading}
-              >
-                <Typography.Title heading={5}>
-                  Semi Design
-                </Typography.Title>
-              </Skeleton>
-            } 
-            description={
-              <Skeleton 
-                style={{width:150, marginTop: 12}} 
-                placeholder={<Paragraph rows={1} />} 
-                loading={loading}
-              >
-                  <Typography.Text>
-                    Semi Design is a design system developed and maintained by IES-FE & IES-UED.
-                  </Typography.Text>
-              </Skeleton>
-            }
-            avatar={
-              <Skeleton placeholder={<Skeleton.Avatar />} loading={loading}>
-                <Avatar 
-                  size="default"
-                  src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
-                />
-              </Skeleton>
-            }
-          />
-        }
-        headerExtraContent={
-          <Skeleton style={{width: 50}} placeholder={<Paragraph rows={1} />} loading={loading}>
-            <Typography.Text link>
-                More
-            </Typography.Text>
-          </Skeleton>
-        }
-        cover={ 
-          <Skeleton style={{maxWidth: '100%', height: 260}} placeholder={<Image />} loading={loading}>
-            <img 
-              alt="example" 
-              src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/card-cover-docs-demo.jpeg" 
-            />
-          </Skeleton> 
-        }
-      >
-      </Card>
-    </>
-  );
+    const [loading, setLoading] = useState(true);
+    const { Meta } = Card;
+    const { Title, Paragraph, Image } = Skeleton;
+
+    return (
+        <>
+            <Switch onChange={ v => setLoading(!v) } />
+            <br />
+            <br />
+            <Card
+                style={{ maxWidth: 360 }}
+                title={
+                    <Meta 
+                        title={
+                            <Skeleton
+                                style={{width:80}}
+                                placeholder={<Title />}
+                                loading={loading}
+                            >
+                                <Typography.Title heading={5}>
+                                    Semi Design
+                                </Typography.Title>
+                            </Skeleton>
+                        } 
+                        description={
+                            <Skeleton 
+                                style={{width:150, marginTop: 12}} 
+                                placeholder={<Paragraph rows={1} />} 
+                                loading={loading}
+                            >
+                                <Typography.Text>
+                                    Semi Design is a design system developed and maintained by IES-FE & IES-UED.
+                                </Typography.Text>
+                            </Skeleton>
+                        }
+                        avatar={
+                            <Skeleton placeholder={<Skeleton.Avatar />} loading={loading}>
+                                <Avatar 
+                                    size="default"
+                                    src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
+                                />
+                            </Skeleton>
+                        }
+                    />
+                }
+                headerExtraContent={
+                    <Skeleton style={{width: 50}} placeholder={<Paragraph rows={1} />} loading={loading}>
+                        <Typography.Text link>
+                            More
+                        </Typography.Text>
+                    </Skeleton>
+                }
+                cover={ 
+                    <Skeleton style={{maxWidth: '100%', height: 260}} placeholder={<Image />} loading={loading}>
+                        <img 
+                            alt="example" 
+                            src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/card-cover-docs-demo.jpeg" 
+                        />
+                    </Skeleton> 
+                }
+            >
+            </Card>
+        </>
+    );
 }
 }
 
 
 ```
 ```
@@ -501,28 +501,28 @@ import React from 'react';
 import { Card, Tabs, TabPane } from '@douyinfe/semi-ui';
 import { Card, Tabs, TabPane } from '@douyinfe/semi-ui';
 
 
 function demo() {
 function demo() {
-  return (
-    <Card title='Card title'>
-      <Tabs 
-        type="line" 
-        style={{
-          marginTop: -20,
-          marginBottom: -20
-        }}
-      >
-        <TabPane tab="Tab 1" itemKey="1">
-          <p>content1</p>
-          <p>content1</p>
-          <p>content1</p>
-        </TabPane>
-        <TabPane tab="Tab 2" itemKey="2">
-          <p>content2</p>
-          <p>content2</p>
-          <p>content2</p>
-        </TabPane>
-      </Tabs>
-    </Card>
-  );
+    return (
+        <Card title='Card title'>
+            <Tabs 
+                type="line" 
+                style={{
+                    marginTop: -20,
+                    marginBottom: -20
+                }}
+            >
+                <TabPane tab="Tab 1" itemKey="1">
+                    <p>content1</p>
+                    <p>content1</p>
+                    <p>content1</p>
+                </TabPane>
+                <TabPane tab="Tab 2" itemKey="2">
+                    <p>content2</p>
+                    <p>content2</p>
+                    <p>content2</p>
+                </TabPane>
+            </Tabs>
+        </Card>
+    );
 }
 }
 
 
 ```
 ```
@@ -536,28 +536,29 @@ import React from 'react';
 import { Card, Rating } from '@douyinfe/semi-ui';
 import { Card, Rating } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Meta } = Card;
-
-  return (
-    <Card
-      style={{ maxWidth: 360 }}
-      actions={[    
-        <Rating size='small' defaultValue={4}/>
-      ]}
-      headerLine={ false }
-      cover={ 
-        <img 
-          alt="example" 
-          src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/card-cover-docs-demo.jpeg" 
-        />
-      }
-    >
-      <Meta 
-        title="Semi Doc" 
-        description="Easily manage your project icons and easily upload, update and share a series of project icons." 
-      />
-    </Card>
-  );
+    const { Meta } = Card;
+
+    return (
+        <Card
+            style={{ maxWidth: 360 }}
+            actions={[    
+                // eslint-disable-next-line react/jsx-key
+                <Rating size='small' defaultValue={4}/>
+            ]}
+            headerLine={ false }
+            cover={ 
+                <img 
+                    alt="example" 
+                    src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/card-cover-docs-demo.jpeg" 
+                />
+            }
+        >
+            <Meta 
+                title="Semi Doc" 
+                description="Easily manage your project icons and easily upload, update and share a series of project icons." 
+            />
+        </Card>
+    );
 }
 }
 
 
 ```
 ```
@@ -571,42 +572,42 @@ import React, { useState } from 'react';
 import { Card, CardGroup, Typography, Slider } from '@douyinfe/semi-ui';
 import { Card, CardGroup, Typography, Slider } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
-  const [ spacing, setSpacing ] = useState(12);
-
-  return (
-    <>
-      <Text>Slide to adjust the card spacing</Text>
-      <Slider 
-        defaultValue={12}
-        max={40}
-        min={10}
-        style={{ width:360 }}
-        onChange={v=> setSpacing(v)}
-      />
-      <br />
-      <CardGroup spacing={spacing}>
-          {
-            new Array(8).fill(null).map((v,idx)=>(
-              <Card 
-                key={idx}
-                shadows='hover'
-                title='Card title'
-                headerLine={false}
-                style={{ width:260 }}
-                headerExtraContent={
-                  <Text link>
-                    More
-                  </Text>
+    const { Text } = Typography;
+    const [ spacing, setSpacing ] = useState(12);
+
+    return (
+        <>
+            <Text>Slide to adjust the card spacing</Text>
+            <Slider 
+                defaultValue={12}
+                max={40}
+                min={10}
+                style={{ width:360 }}
+                onChange={v=> setSpacing(v)}
+            />
+            <br />
+            <CardGroup spacing={spacing}>
+                {
+                    new Array(8).fill(null).map((v,idx)=>(
+                        <Card 
+                            key={idx}
+                            shadows='hover'
+                            title='Card title'
+                            headerLine={false}
+                            style={{ width:260 }}
+                            headerExtraContent={
+                                <Text link>
+                                    More
+                                </Text>
+                            }
+                        >
+                            <Text>Card content</Text>
+                        </Card>
+                    ))
                 }
                 }
-              >
-                <Text>Card content</Text>
-              </Card>
-            ))
-          }
-      </CardGroup>
-    </>
-  );
+            </CardGroup>
+        </>
+    );
 }
 }
 
 
 ```
 ```
@@ -620,30 +621,30 @@ import React from 'react';
 import { Card, CardGroup, Typography } from '@douyinfe/semi-ui';
 import { Card, CardGroup, Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
-
-  return (
-    <CardGroup type='grid'>
-      {
-        new Array(7).fill(null).map((v,idx)=>(
-          <Card 
-            key={idx}
-            shadows='hover'
-            title='Card title'
-            headerLine={false}
-            style={{ width:260 }}
-            headerExtraContent={
-              <Text link>
-                More
-              </Text>
-            }
-          >
-            <Text>Card content</Text>
-          </Card>
-        ))
-      }     
-    </CardGroup>
-  );
+    const { Text } = Typography;
+
+    return (
+        <CardGroup type='grid'>
+            {
+                new Array(7).fill(null).map((v,idx)=>(
+                    <Card 
+                        key={idx}
+                        shadows='hover'
+                        title='Card title'
+                        headerLine={false}
+                        style={{ width:260 }}
+                        headerExtraContent={
+                            <Text link>
+                                More
+                            </Text>
+                        }
+                    >
+                        <Text>Card content</Text>
+                    </Card>
+                ))
+            }     
+        </CardGroup>
+    );
 }
 }
 
 
 ```
 ```

+ 445 - 444
content/show/card/index.md

@@ -24,21 +24,21 @@ import React from 'react';
 import { Card, Typography } from '@douyinfe/semi-ui';
 import { Card, Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
+    const { Text } = Typography;
   
   
-  return (
-    <Card 
-      title='Semi Design' 
-      style={{ maxWidth: 360 }}
-      headerExtraContent={
-        <Text link>
-          更多
-        </Text>
-      }
-    >
-        Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
-    </Card>
-  );
+    return (
+        <Card 
+            title='Semi Design' 
+            style={{ maxWidth: 360 }}
+            headerExtraContent={
+                <Text link>
+                    更多
+                </Text>
+            }
+        >
+            Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
+        </Card>
+    );
 }
 }
 
 
 ```
 ```
@@ -53,45 +53,45 @@ import { Card, Popover, Avatar } from '@douyinfe/semi-ui';
 import { IconInfoCircle } from '@douyinfe/semi-icons';
 import { IconInfoCircle } from '@douyinfe/semi-icons';
 
 
 function Demo() {
 function Demo() {
-  const { Meta } = Card;
-
-  return (
-    <>
-      <Card style={{ maxWidth: 360 }} >
-        Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。
-      </Card>
-      <br />
-      <Card 
-        style={{ maxWidth: 360 }} 
-        bodyStyle={{ 
-          display: 'flex',
-          alignItems: 'center',
-          justifyContent: 'space-between'
-        }}
-      >
-        <Meta 
-          title="Semi Doc" 
-          avatar={
-            <Avatar 
-              size="default"
-              src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
-            />
-          }
-        />
-        <Popover
-          position='top'
-          showArrow
-          content={
-              <article style={{ padding: 6 }}>
-                  这是一个 Card
-              </article>
-          }
-        >
-            <IconInfoCircle style={{color:'var(--semi-color-primary)'}}/>
-        </Popover>
-      </Card>
-    </>
-  );
+    const { Meta } = Card;
+
+    return (
+        <>
+            <Card style={{ maxWidth: 360 }} >
+                Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。
+            </Card>
+            <br />
+            <Card 
+                style={{ maxWidth: 360 }} 
+                bodyStyle={{ 
+                    display: 'flex',
+                    alignItems: 'center',
+                    justifyContent: 'space-between'
+                }}
+            >
+                <Meta 
+                    title="Semi Doc" 
+                    avatar={
+                        <Avatar 
+                            size="default"
+                            src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
+                        />
+                    }
+                />
+                <Popover
+                    position='top'
+                    showArrow
+                    content={
+                        <article style={{ padding: 6 }}>
+                            这是一个 Card
+                        </article>
+                    }
+                >
+                    <IconInfoCircle style={{color:'var(--semi-color-primary)'}}/>
+                </Popover>
+            </Card>
+        </>
+    );
 }
 }
 
 
 ```
 ```
@@ -105,21 +105,21 @@ import React from 'react';
 import { Card } from '@douyinfe/semi-ui';
 import { Card } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Meta } = Card;
-
-  return (
-    <Card
-      style={{ maxWidth: 300 }}
-      cover={ 
-        <img 
-          alt="example" 
-          src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/card-cover-docs-demo2.jpeg" 
-        />
-      }
-    >
-      <Meta title="卡片封面" />
-    </Card>
-  );
+    const { Meta } = Card;
+
+    return (
+        <Card
+            style={{ maxWidth: 300 }}
+            cover={ 
+                <img 
+                    alt="example" 
+                    src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/card-cover-docs-demo2.jpeg" 
+                />
+            }
+        >
+            <Meta title="卡片封面" />
+        </Card>
+    );
 }
 }
 
 
 ```
 ```
@@ -133,24 +133,24 @@ import React from 'react';
 import { Card } from '@douyinfe/semi-ui';
 import { Card } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  return (
-    <div 
-      style={{
-        display: 'inline-block',
-        padding: 20,
-        backgroundColor: 'var(--semi-color-fill-0)'
-      }}
-    >
-      <Card 
-        style={{ maxWidth: 360 }}
-        bordered={false}
-        headerLine={true}
-        title='Semi Design'
-      >
-        Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
-      </Card>
-    </div>
-  );
+    return (
+        <div 
+            style={{
+                display: 'inline-block',
+                padding: 20,
+                backgroundColor: 'var(--semi-color-fill-0)'
+            }}
+        >
+            <Card 
+                style={{ maxWidth: 360 }}
+                bordered={false}
+                headerLine={true}
+                title='Semi Design'
+            >
+                Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。
+            </Card>
+        </div>
+    );
 }
 }
 
 
 ```
 ```
@@ -166,73 +166,73 @@ import { Card, Avatar, Popover } from '@douyinfe/semi-ui';
 import { IconInfoCircle } from '@douyinfe/semi-icons';
 import { IconInfoCircle } from '@douyinfe/semi-icons';
 
 
 function Demo() {
 function Demo() {
-  const { Meta } = Card;
-
-  return (
-    <div>
-      <Card 
-        shadows='hover'
-        style={{ maxWidth: 360 }} 
-        bodyStyle={{ 
-          display: 'flex',
-          alignItems: 'center',
-          justifyContent: 'space-between'
-        }}
-      >
-        <Meta 
-          title="Semi Doc" 
-          avatar={
-            <Avatar 
-              size="default"
-              src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
-            />
-          }
-        />
-        <Popover
-          position='top'
-          showArrow
-          content={
-              <article style={{ padding: 6 }}>
-                  这是一个 Card
-              </article>
-          }
-        >
-            <IconInfoCircle style={{color:'var(--semi-color-primary)'}}/>
-        </Popover>
-      </Card>
-      <br/>
-      <Card 
-        shadows='always'
-        style={{ maxWidth: 360 }} 
-        bodyStyle={{ 
-          display: 'flex',
-          alignItems: 'center',
-          justifyContent: 'space-between'
-        }}
-      >
-        <Meta 
-          title="Semi Doc" 
-          avatar={
-            <Avatar 
-              size="default"
-              src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
-            />
-          }
-        />
-        <Popover
-          position='top'
-          showArrow
-          content={
-              <article style={{ padding: 6 }}>
-                  这是一个 Card
-              </article>
-          }
-        >
-            <IconInfoCircle style={{color:'var(--semi-color-primary)'}}/>
-        </Popover>
-      </Card>
-    </div>
-  );
+    const { Meta } = Card;
+
+    return (
+        <div>
+            <Card 
+                shadows='hover'
+                style={{ maxWidth: 360 }} 
+                bodyStyle={{ 
+                    display: 'flex',
+                    alignItems: 'center',
+                    justifyContent: 'space-between'
+                }}
+            >
+                <Meta 
+                    title="Semi Doc" 
+                    avatar={
+                        <Avatar 
+                            size="default"
+                            src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
+                        />
+                    }
+                />
+                <Popover
+                    position='top'
+                    showArrow
+                    content={
+                        <article style={{ padding: 6 }}>
+                            这是一个 Card
+                        </article>
+                    }
+                >
+                    <IconInfoCircle style={{color:'var(--semi-color-primary)'}}/>
+                </Popover>
+            </Card>
+            <br/>
+            <Card 
+                shadows='always'
+                style={{ maxWidth: 360 }} 
+                bodyStyle={{ 
+                    display: 'flex',
+                    alignItems: 'center',
+                    justifyContent: 'space-between'
+                }}
+            >
+                <Meta 
+                    title="Semi Doc" 
+                    avatar={
+                        <Avatar 
+                            size="default"
+                            src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
+                        />
+                    }
+                />
+                <Popover
+                    position='top'
+                    showArrow
+                    content={
+                        <article style={{ padding: 6 }}>
+                            这是一个 Card
+                        </article>
+                    }
+                >
+                    <IconInfoCircle style={{color:'var(--semi-color-primary)'}}/>
+                </Popover>
+            </Card>
+        </div>
+    );
 }
 }
 
 
 ```
 ```
@@ -246,47 +246,47 @@ import React from 'react';
 import { Card, Avatar, Space, Button, Typography } from '@douyinfe/semi-ui';
 import { Card, Avatar, Space, Button, Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Meta } = Card;
-  const { Text } = Typography;
-
-  return (
-    <Card
-      style={{ maxWidth: 340 }}
-      title={
-        <Meta 
-          title="Semi Doc" 
-          description="全面、易用、优质" 
-          avatar={
-            <Avatar 
-              size="default"
-              src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
-            />
-          }
-        />
-      }
-      headerExtraContent={
-        <Text link>
-            More
-        </Text>
-      }
-      cover={ 
-        <img 
-          alt="example" 
-          src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/card-cover-docs-demo.jpeg" 
-        />
-      }
-      footerLine={ true }
-      footerStyle={{ display: 'flex', justifyContent: 'flex-end' }}
-      footer={
-        <Space>
-          <Button theme='borderless' type='primary'>精选案例</Button>
-          <Button theme='solid' type='primary'>开始使用</Button>
-        </Space>
-      }
-    >
-      Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。
-    </Card>
-  );
+    const { Meta } = Card;
+    const { Text } = Typography;
+
+    return (
+        <Card
+            style={{ maxWidth: 340 }}
+            title={
+                <Meta 
+                    title="Semi Doc" 
+                    description="全面、易用、优质" 
+                    avatar={
+                        <Avatar 
+                            size="default"
+                            src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
+                        />
+                    }
+                />
+            }
+            headerExtraContent={
+                <Text link>
+                    More
+                </Text>
+            }
+            cover={ 
+                <img 
+                    alt="example" 
+                    src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/card-cover-docs-demo.jpeg" 
+                />
+            }
+            footerLine={ true }
+            footerStyle={{ display: 'flex', justifyContent: 'flex-end' }}
+            footer={
+                <Space>
+                    <Button theme='borderless' type='primary'>精选案例</Button>
+                    <Button theme='solid' type='primary'>开始使用</Button>
+                </Space>
+            }
+        >
+            Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。
+        </Card>
+    );
 }
 }
 
 
 ```
 ```
@@ -301,33 +301,33 @@ import React from 'react';
 import { Card, Typography } from '@douyinfe/semi-ui';
 import { Card, Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
+    const { Text } = Typography;
   
   
-  return (
-    <Card title='Card title' >
-      <Card 
-        title='Inner Card title'
-        style={{ marginBottom: 20 }}
-        headerExtraContent={
-          <Text link>
-            More
-          </Text>
-        }
-      >
-        Inner Card content
-      </Card>
-      <Card 
-        title='Inner Card title'
-        headerExtraContent={
-          <Text link>
-            More
-          </Text>
-        }
-      >
-        Inner Card content
-      </Card>
-    </Card>
-  );
+    return (
+        <Card title='Card title' >
+            <Card 
+                title='Inner Card title'
+                style={{ marginBottom: 20 }}
+                headerExtraContent={
+                    <Text link>
+                        More
+                    </Text>
+                }
+            >
+                Inner Card content
+            </Card>
+            <Card 
+                title='Inner Card title'
+                headerExtraContent={
+                    <Text link>
+                        More
+                    </Text>
+                }
+            >
+                Inner Card content
+            </Card>
+        </Card>
+    );
 }
 }
 
 
 ```
 ```
@@ -341,44 +341,44 @@ import React from 'react';
 import { Card, Row, Col } from '@douyinfe/semi-ui';
 import { Card, Row, Col } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  return (
-    <div 
-      style={{
-        backgroundColor: 'var(--semi-color-fill-0)', 
-        padding: 20
-      }}
-    >
-      <Row gutter={[16,16]}>
-        <Col span={8}>
-          <Card title='Card Title' bordered={false} >
-              Card Content
-          </Card>
-        </Col>
-        <Col span={8}>
-          <Card title='Card Title' bordered={false} >
-              Card Content
-          </Card>
-        </Col>
-        <Col span={8}>
-          <Card title='Card Title' bordered={false} >
-              Card Content
-          </Card>
-        </Col>
-      </Row>
-      <Row gutter={[16,16]}>
-        <Col span={16}>
-          <Card title='Card Title' bordered={false} >
-              Card Content
-          </Card>
-        </Col>
-        <Col span={8}>
-          <Card title='Card Title' bordered={false} >
-              Card Content
-          </Card>
-        </Col>
-      </Row>
-    </div>
-  );
+    return (
+        <div 
+            style={{
+                backgroundColor: 'var(--semi-color-fill-0)', 
+                padding: 20
+            }}
+        >
+            <Row gutter={[16,16]}>
+                <Col span={8}>
+                    <Card title='Card Title' bordered={false} >
+                        Card Content
+                    </Card>
+                </Col>
+                <Col span={8}>
+                    <Card title='Card Title' bordered={false} >
+                        Card Content
+                    </Card>
+                </Col>
+                <Col span={8}>
+                    <Card title='Card Title' bordered={false} >
+                        Card Content
+                    </Card>
+                </Col>
+            </Row>
+            <Row gutter={[16,16]}>
+                <Col span={16}>
+                    <Card title='Card Title' bordered={false} >
+                        Card Content
+                    </Card>
+                </Col>
+                <Col span={8}>
+                    <Card title='Card Title' bordered={false} >
+                        Card Content
+                    </Card>
+                </Col>
+            </Row>
+        </div>
+    );
 }
 }
 
 
 ```
 ```
@@ -392,25 +392,25 @@ import React, { useState } from 'react';
 import { Card, Switch } from '@douyinfe/semi-ui';
 import { Card, Switch } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const [loading, setLoading] = useState(true);
-  const { Meta } = Card;
-
-  return (
-    <>
-      <Switch onChange={ v => setLoading(!v) } />
-      <br />
-      <br />
-      <Card 
-        style={{ maxWidth: 360 }}
-        loading={ loading }
-      >
-        <Meta 
-          title="Semi Doc" 
-          description="全面、易用、优质"
-        />
-      </Card>
-    </>
-  );
+    const [loading, setLoading] = useState(true);
+    const { Meta } = Card;
+
+    return (
+        <>
+            <Switch onChange={ v => setLoading(!v) } />
+            <br />
+            <br />
+            <Card 
+                style={{ maxWidth: 360 }}
+                loading={ loading }
+            >
+                <Meta 
+                    title="Semi Doc" 
+                    description="全面、易用、优质"
+                />
+            </Card>
+        </>
+    );
 }
 }
 
 
 ```
 ```
@@ -424,70 +424,70 @@ import React, { useState } from 'react';
 import { Card, Switch, Skeleton, Avatar, Typography } from '@douyinfe/semi-ui';
 import { Card, Switch, Skeleton, Avatar, Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const [loading, setLoading] = useState(true);
-  const { Meta } = Card;
-  const { Title, Paragraph, Image } = Skeleton;
-
-  return (
-    <>
-      <Switch onChange={ v => setLoading(!v) } />
-      <br />
-      <br />
-      <Card
-        style={{ maxWidth: 300 }}
-        title={
-          <Meta 
-            title={
-              <Skeleton
-                style={{ width:80 }}
-                placeholder={<Title />}
-                loading={loading}
-              >
-                <Typography.Title heading={5}>
-                  Semi Doc
-                </Typography.Title>
-              </Skeleton>
-            } 
-            description={
-              <Skeleton 
-                style={{ width:150, marginTop: 12 }} 
-                placeholder={<Paragraph rows={1} />} 
-                loading={loading}
-              >
-                  <Typography.Text>
-                    全面、易用、优质
-                  </Typography.Text>
-              </Skeleton>
-            }
-            avatar={
-              <Skeleton placeholder={<Skeleton.Avatar />} loading={loading}>
-                <Avatar 
-                  size="default"
-                  src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
-                />
-              </Skeleton>
-            }
-          />
-        }
-        headerExtraContent={
-          <Skeleton style={{ width: 50 }} placeholder={<Paragraph rows={1} />} loading={loading}>
-            <Typography.Text link>
-                More
-            </Typography.Text>
-          </Skeleton>
-        }
-        cover={ 
-          <Skeleton style={{ maxWidth: '100%', height: 220 }} placeholder={<Image />} loading={loading}>
-            <img 
-              alt="example" 
-              src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/card-cover-docs-demo.jpeg" 
-            />
-          </Skeleton> 
-        }
-      >
-      </Card>
-    </>
-  );
+    const [loading, setLoading] = useState(true);
+    const { Meta } = Card;
+    const { Title, Paragraph, Image } = Skeleton;
+
+    return (
+        <>
+            <Switch onChange={ v => setLoading(!v) } />
+            <br />
+            <br />
+            <Card
+                style={{ maxWidth: 300 }}
+                title={
+                    <Meta 
+                        title={
+                            <Skeleton
+                                style={{ width:80 }}
+                                placeholder={<Title />}
+                                loading={loading}
+                            >
+                                <Typography.Title heading={5}>
+                                    Semi Doc
+                                </Typography.Title>
+                            </Skeleton>
+                        } 
+                        description={
+                            <Skeleton 
+                                style={{ width:150, marginTop: 12 }} 
+                                placeholder={<Paragraph rows={1} />} 
+                                loading={loading}
+                            >
+                                <Typography.Text>
+                                    全面、易用、优质
+                                </Typography.Text>
+                            </Skeleton>
+                        }
+                        avatar={
+                            <Skeleton placeholder={<Skeleton.Avatar />} loading={loading}>
+                                <Avatar 
+                                    size="default"
+                                    src='https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/card-meta-avatar-docs-demo.jpg'
+                                />
+                            </Skeleton>
+                        }
+                    />
+                }
+                headerExtraContent={
+                    <Skeleton style={{ width: 50 }} placeholder={<Paragraph rows={1} />} loading={loading}>
+                        <Typography.Text link>
+                            More
+                        </Typography.Text>
+                    </Skeleton>
+                }
+                cover={ 
+                    <Skeleton style={{ maxWidth: '100%', height: 220 }} placeholder={<Image />} loading={loading}>
+                        <img 
+                            alt="example" 
+                            src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/card-cover-docs-demo.jpeg" 
+                        />
+                    </Skeleton> 
+                }
+            >
+            </Card>
+        </>
+    );
 }
 }
 
 
 ```
 ```
@@ -501,28 +501,28 @@ import React from 'react';
 import { Card, Tabs, TabPane } from '@douyinfe/semi-ui';
 import { Card, Tabs, TabPane } from '@douyinfe/semi-ui';
 
 
 function demo() {
 function demo() {
-  return (
-    <Card title='Card title'>
-      <Tabs 
-        type="line" 
-        style={{
-          marginTop: -20,
-          marginBottom: -20
-        }}
-      >
-        <TabPane tab="Tab 1" itemKey="1">
-          <p>content1</p>
-          <p>content1</p>
-          <p>content1</p>
-        </TabPane>
-        <TabPane tab="Tab 2" itemKey="2">
-          <p>content2</p>
-          <p>content2</p>
-          <p>content2</p>
-        </TabPane>
-      </Tabs>
-    </Card>
-  );
+    return (
+        <Card title='Card title'>
+            <Tabs 
+                type="line" 
+                style={{
+                    marginTop: -20,
+                    marginBottom: -20
+                }}
+            >
+                <TabPane tab="Tab 1" itemKey="1">
+                    <p>content1</p>
+                    <p>content1</p>
+                    <p>content1</p>
+                </TabPane>
+                <TabPane tab="Tab 2" itemKey="2">
+                    <p>content2</p>
+                    <p>content2</p>
+                    <p>content2</p>
+                </TabPane>
+            </Tabs>
+        </Card>
+    );
 }
 }
 
 
 ```
 ```
@@ -536,28 +536,29 @@ import React from 'react';
 import { Card, Rating } from '@douyinfe/semi-ui';
 import { Card, Rating } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Meta } = Card;
-
-  return (
-    <Card
-      style={{ maxWidth: 300 }}
-      actions={[    
-        <Rating size='small' defaultValue={4}/>
-      ]}
-      headerLine={ false }
-      cover={ 
-        <img 
-          alt="example" 
-          src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/card-cover-docs-demo.jpeg" 
-        />
-      }
-    >
-      <Meta 
-        title="Semi Doc" 
-        description="全面、易用、优质" 
-      />
-    </Card>
-  );
+    const { Meta } = Card;
+
+    return (
+        <Card
+            style={{ maxWidth: 300 }}
+            actions={[    
+                // eslint-disable-next-line react/jsx-key
+                <Rating size='small' defaultValue={4}/>
+            ]}
+            headerLine={ false }
+            cover={ 
+                <img 
+                    alt="example" 
+                    src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/card-cover-docs-demo.jpeg" 
+                />
+            }
+        >
+            <Meta 
+                title="Semi Doc" 
+                description="全面、易用、优质" 
+            />
+        </Card>
+    );
 }
 }
 
 
 ```
 ```
@@ -571,42 +572,42 @@ import React, { useState } from 'react';
 import { Card, CardGroup, Typography, Slider } from '@douyinfe/semi-ui';
 import { Card, CardGroup, Typography, Slider } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
-  const [ spacing, setSpacing ] = useState(12);
-
-  return (
-    <>
-      <Text>滑动调节 Card 间距</Text>
-      <Slider 
-        defaultValue={12}
-        max={40}
-        min={10}
-        style={{ width:360 }}
-        onChange={v=> setSpacing(v)}
-      />
-      <br />
-      <CardGroup spacing={spacing}>
-          {
-            new Array(8).fill(null).map((v,idx)=>(
-              <Card 
-                key={idx}
-                shadows='hover'
-                title='Card title'
-                headerLine={false}
-                style={{ width:260 }}
-                headerExtraContent={
-                  <Text link>
-                    More
-                  </Text>
+    const { Text } = Typography;
+    const [ spacing, setSpacing ] = useState(12);
+
+    return (
+        <>
+            <Text>滑动调节 Card 间距</Text>
+            <Slider 
+                defaultValue={12}
+                max={40}
+                min={10}
+                style={{ width:360 }}
+                onChange={v=> setSpacing(v)}
+            />
+            <br />
+            <CardGroup spacing={spacing}>
+                {
+                    new Array(8).fill(null).map((v,idx)=>(
+                        <Card 
+                            key={idx}
+                            shadows='hover'
+                            title='Card title'
+                            headerLine={false}
+                            style={{ width:260 }}
+                            headerExtraContent={
+                                <Text link>
+                                    More
+                                </Text>
+                            }
+                        >
+                            <Text>Card content</Text>
+                        </Card>
+                    ))
                 }
                 }
-              >
-                <Text>Card content</Text>
-              </Card>
-            ))
-          }
-      </CardGroup>
-    </>
-  );
+            </CardGroup>
+        </>
+    );
 }
 }
 
 
 ```
 ```
@@ -620,30 +621,30 @@ import React from 'react';
 import { Card, CardGroup, Typography } from '@douyinfe/semi-ui';
 import { Card, CardGroup, Typography } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-  const { Text } = Typography;
-
-  return (
-    <CardGroup type='grid'>
-      {
-        new Array(7).fill(null).map((v,idx)=>(
-          <Card 
-            key={idx}
-            shadows='hover'
-            title='Card title'
-            headerLine={false}
-            style={{ width:260 }}
-            headerExtraContent={
-              <Text link>
-                More
-              </Text>
-            }
-          >
-            <Text>Card content</Text>
-          </Card>
-        ))
-      }     
-    </CardGroup>
-  );
+    const { Text } = Typography;
+
+    return (
+        <CardGroup type='grid'>
+            {
+                new Array(7).fill(null).map((v,idx)=>(
+                    <Card 
+                        key={idx}
+                        shadows='hover'
+                        title='Card title'
+                        headerLine={false}
+                        style={{ width:260 }}
+                        headerExtraContent={
+                            <Text link>
+                                More
+                            </Text>
+                        }
+                    >
+                        <Text>Card content</Text>
+                    </Card>
+                ))
+            }     
+        </CardGroup>
+    );
 }
 }
 
 
 ```
 ```

+ 18 - 13
content/show/collapse/index-en-US.md

@@ -163,17 +163,22 @@ import { IconCopy } from '@douyinfe/semi-icons';
     You can prevent the event from bubbling to Collapse.Header in the onClick event callback of the custom element. If the custom element does not provide an event object, wrap a layer of div to prevent bubbling in the div onClick.
     You can prevent the event from bubbling to Collapse.Header in the onClick event callback of the custom element. If the custom element does not provide an event object, wrap a layer of div to prevent bubbling in the div onClick.
 
 
 ```jsx
 ```jsx
-<Collapse>
-    <Collapse.Panel
-        header={
-            <div style={{ display: 'inline-flex' }} onClick={e => e.stopPropagation()}>
-                <span>Panel header</span>
-                <Input />
-            </div>
-        }
-        itemKey="1"
-    >
-        <p>Hi, bytedance dance dance. This is the docsite of Semi UI. </p>
-    </Collapse.Panel>
-</Collapse>
+import React from 'react';
+import { Collapse, Input } from '@douyinfe/semi-ui';
+
+() => (
+    <Collapse>
+        <Collapse.Panel
+            header={
+                <div style={{ display: 'inline-flex' }} onClick={e => e.stopPropagation()}>
+                    <span>Panel header</span>
+                    <Input />
+                </div>
+            }
+            itemKey="1"
+        >
+            <p>Hi, bytedance dance dance. This is the docsite of Semi UI. </p>
+        </Collapse.Panel>
+    </Collapse>
+);
 ```
 ```

+ 18 - 13
content/show/collapse/index.md

@@ -167,17 +167,22 @@ import { IconCopy } from '@douyinfe/semi-icons';
     可以在自定义元素的 onClick 事件回调中,阻止事件冒泡至 Collapse.Header 即可。若自定义元素未提供 event 对象,再包裹一层 div,于 div onClick 中阻止冒泡亦可。
     可以在自定义元素的 onClick 事件回调中,阻止事件冒泡至 Collapse.Header 即可。若自定义元素未提供 event 对象,再包裹一层 div,于 div onClick 中阻止冒泡亦可。
 
 
 ```jsx
 ```jsx
-<Collapse>
-    <Collapse.Panel
-        header={
-            <div style={{ display: 'inline-flex' }} onClick={e => e.stopPropagation()}>
-                <span>Panel header</span>
-                <Input />
-            </div>
-        }
-        itemKey="1"
-    >
-        <p>Hi, bytedance dance dance. This is the docsite of Semi UI. </p>
-    </Collapse.Panel>
-</Collapse>
+import React from 'react';
+import { Collapse, Input } from '@douyinfe/semi-ui';
+
+() => (
+    <Collapse>
+        <Collapse.Panel
+            header={
+                <div style={{ display: 'inline-flex' }} onClick={e => e.stopPropagation()}>
+                    <span>Panel header</span>
+                    <Input />
+                </div>
+            }
+            itemKey="1"
+        >
+            <p>Hi, bytedance dance dance. This is the docsite of Semi UI. </p>
+        </Collapse.Panel>
+    </Collapse>
+);
 ```
 ```

+ 2 - 2
content/show/collapsible/index-en-US.md

@@ -257,9 +257,9 @@ class Demo extends React.Component {
         const maskStyle = isOpen
         const maskStyle = isOpen
             ? {}
             ? {}
             : {
             : {
-                  WebkitMaskImage:
+                WebkitMaskImage:
                       'linear-gradient(to bottom, black 0%, rgba(0, 0, 0, 1) 60%, rgba(0, 0, 0, 0.2) 80%, transparent 100%)',
                       'linear-gradient(to bottom, black 0%, rgba(0, 0, 0, 1) 60%, rgba(0, 0, 0, 0.2) 80%, transparent 100%)',
-              };
+            };
         const collapsed = (
         const collapsed = (
             <div>
             <div>
                 <p>Nothing can ever happen twice.</p>
                 <p>Nothing can ever happen twice.</p>

+ 2 - 2
content/show/collapsible/index.md

@@ -290,9 +290,9 @@ class Demo extends React.Component {
         const maskStyle = isOpen
         const maskStyle = isOpen
             ? {}
             ? {}
             : {
             : {
-                  WebkitMaskImage:
+                WebkitMaskImage:
                       'linear-gradient(to bottom, black 0%, rgba(0, 0, 0, 1) 60%, rgba(0, 0, 0, 0.2) 80%, transparent 100%)',
                       'linear-gradient(to bottom, black 0%, rgba(0, 0, 0, 1) 60%, rgba(0, 0, 0, 0.2) 80%, transparent 100%)',
-              };
+            };
         const collapsed = (
         const collapsed = (
             <ul>
             <ul>
                 <li>
                 <li>

+ 1 - 1
content/show/dropdown/index-en-US.md

@@ -136,7 +136,7 @@ function Demo() {
                 visible
                 visible
                 render={
                 render={
                     <Dropdown.Menu>
                     <Dropdown.Menu>
-                        <Dropdown.Item icon={<Icon type="box" />} active>
+                        <Dropdown.Item icon={<IconBox />} active>
                             Menu Item 1
                             Menu Item 1
                         </Dropdown.Item>
                         </Dropdown.Item>
                         <Dropdown.Item icon={<IconSetting />}>Menu Item 2</Dropdown.Item>
                         <Dropdown.Item icon={<IconSetting />}>Menu Item 2</Dropdown.Item>

+ 11 - 8
content/show/list/index-en-US.md

@@ -92,6 +92,7 @@ import { List, ButtonGroup, Button, Avatar } from '@douyinfe/semi-ui';
 class ContentList extends React.Component {
 class ContentList extends React.Component {
     render() {
     render() {
         const data = [
         const data = [
+            // eslint-disable-next-line react/jsx-key
             <p
             <p
                 style={{
                 style={{
                     color: 'var(--semi-color-text-2)',
                     color: 'var(--semi-color-text-2)',
@@ -102,15 +103,17 @@ class ContentList extends React.Component {
                     textOverflow: 'ellipsis',
                     textOverflow: 'ellipsis',
                 }}
                 }}
             >
             >
-                Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is
-                heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.
+                {`Life's but a walking shadow, a poor player, that struts and frets his hour upon the stage, and then is
+                heard no more; it is a tale told by an idiot, full of sound and fury, signifying nothing.`}
             </p>,
             </p>,
+            // eslint-disable-next-line react/jsx-key
             <p style={{ color: 'var(--semi-color-text-2)', margin: '4px 0', width: 500 }}>
             <p style={{ color: 'var(--semi-color-text-2)', margin: '4px 0', width: 500 }}>
                 Come what come may, time and the hour run through the roughest day.
                 Come what come may, time and the hour run through the roughest day.
             </p>,
             </p>,
+            // eslint-disable-next-line react/jsx-key
             <p style={{ color: 'var(--semi-color-text-2)', margin: '4px 0', width: 500 }}>
             <p style={{ color: 'var(--semi-color-text-2)', margin: '4px 0', width: 500 }}>
-                Where shall we three meet again in thunder, lightning, or in rain? When the hurlyburly's done, when the
-                battle's lost and won
+                {`Where shall we three meet again in thunder, lightning, or in rain? When the hurlyburly's done, when the
+                battle's lost and won`}
             </p>,
             </p>,
         ];
         ];
 
 
@@ -181,9 +184,9 @@ class LayoutList extends React.Component {
                                 <div>
                                 <div>
                                     <span style={{ color: 'var(--semi-color-text-0)', fontWeight: 500 }}>{item.title}</span>
                                     <span style={{ color: 'var(--semi-color-text-0)', fontWeight: 500 }}>{item.title}</span>
                                     <p style={{ color: 'var(--semi-color-text-2)', margin: '4px 0' }}>
                                     <p style={{ color: 'var(--semi-color-text-2)', margin: '4px 0' }}>
-                                        Life's but a walking shadow, a poor player, that struts and frets his hour upon
+                                        {` Life's but a walking shadow, a poor player, that struts and frets his hour upon
                                         the stage, and then is heard no more; it is a tale told by an idiot, full of
                                         the stage, and then is heard no more; it is a tale told by an idiot, full of
-                                        sound and fury, signifying nothing.
+                                        sound and fury, signifying nothing.`}
                                     </p>
                                     </p>
                                 </div>
                                 </div>
                             }
                             }
@@ -500,7 +503,7 @@ You can integrate [react-infinite-scroller](https://github.com/CassetteRocks/rea
 
 
 ```jsx live=true dir="column" noInline=true hideInDSM
 ```jsx live=true dir="column" noInline=true hideInDSM
 import React from 'react';
 import React from 'react';
-import { List, Avatar, Spin } from '@douyinfe/semi-ui';
+import { List, Avatar, Spin, Button } from '@douyinfe/semi-ui';
 import InfiniteScroll from 'react-infinite-scroller';
 import InfiniteScroll from 'react-infinite-scroller';
 
 
 class ScrollLoad extends React.Component {
 class ScrollLoad extends React.Component {
@@ -569,7 +572,7 @@ class ScrollLoad extends React.Component {
 
 
         return (
         return (
             <div
             <div
-                class
+                className
                 Name="light-scrollbar"
                 Name="light-scrollbar"
                 style={{ height: 420, overflow: 'auto', border: '1px solid var(--semi-color-border)', padding: 10 }}
                 style={{ height: 420, overflow: 'auto', border: '1px solid var(--semi-color-border)', padding: 10 }}
             >
             >

+ 4 - 1
content/show/list/index.md

@@ -91,6 +91,7 @@ import { List, Avatar, ButtonGroup, Button } from '@douyinfe/semi-ui';
 class ContentList extends React.Component {
 class ContentList extends React.Component {
     render() {
     render() {
         const data = [
         const data = [
+            // eslint-disable-next-line react/jsx-key
             <p
             <p
                 style={{
                 style={{
                     color: 'var(--semi-color-text-2)',
                     color: 'var(--semi-color-text-2)',
@@ -105,11 +106,13 @@ class ContentList extends React.Component {
                 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的
                 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的
                 Web 应用。
                 Web 应用。
             </p>,
             </p>,
+            // eslint-disable-next-line react/jsx-key
             <p style={{ color: 'var(--semi-color-text-2)', margin: '4px 0', width: 500 }}>
             <p style={{ color: 'var(--semi-color-text-2)', margin: '4px 0', width: 500 }}>
                 Semi Design 是由互娱社区前端团队与 UED
                 Semi Design 是由互娱社区前端团队与 UED
                 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的
                 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的
                 Web 应用。
                 Web 应用。
             </p>,
             </p>,
+            // eslint-disable-next-line react/jsx-key
             <p style={{ color: 'var(--semi-color-text-2)', margin: '4px 0', width: 500 }}>
             <p style={{ color: 'var(--semi-color-text-2)', margin: '4px 0', width: 500 }}>
                 Semi Design 以用户中心、内容优先、设计人性化的设计系统,打造一致、好看、好用、高效的用户体验。
                 Semi Design 以用户中心、内容优先、设计人性化的设计系统,打造一致、好看、好用、高效的用户体验。
             </p>,
             </p>,
@@ -205,7 +208,7 @@ render(LayoutList);
 
 
 ```jsx live=true dir="column" noInline=true
 ```jsx live=true dir="column" noInline=true
 import React from 'react';
 import React from 'react';
-import { List, Descriptions, ButtonGroup, Butto, Rating } from '@douyinfe/semi-ui';
+import { List, Descriptions, ButtonGroup, Rating, Button } from '@douyinfe/semi-ui';
 
 
 class LayoutList extends React.Component {
 class LayoutList extends React.Component {
     render() {
     render() {

+ 419 - 420
content/show/modal/index-en-US.md

@@ -23,51 +23,51 @@ import React from 'react';
 import { Modal, Button } from '@douyinfe/semi-ui';
 import { Modal, Button } from '@douyinfe/semi-ui';
 
 
 class modalDemo extends React.Component {
 class modalDemo extends React.Component {
-  constructor() {
-    super();
-    this.state = {visible: false};
-    this.showDialog = this.showDialog.bind(this);
-    this.handleOk = this.handleOk.bind(this);
-    this.handleCancel = this.handleCancel.bind(this);
-  }
-  showDialog() {
-    this.setState({
-      visible: true
-    });
-  }
-  handleOk(e) {
-    this.setState({
-      visible: false
-    });
-      console.log('Ok button clicked')
-  }
-  handleAfterClose(){
-    console.log('After Close callback executed')
-  }
-  handleCancel(e) {
-    this.setState({
-      visible: false
-    });
-    console.log('Cancel button clicked')
-  }
-  render() {
-    return (
-      <>
-        <Button onClick={this.showDialog}>Open Modal</Button>
-        <Modal
-          title="Basic Modal"
-          visible={this.state.visible}
-          onOk={this.handleOk}
-          afterClose={this.handleAfterClose} // >= 1.16.0
-          onCancel={this.handleCancel}
-        >
-          This is the content of a basic modal.
-          <br/>
-          More content...
-        </Modal>
-      </>
-    );
-  }
+    constructor() {
+        super();
+        this.state = {visible: false};
+        this.showDialog = this.showDialog.bind(this);
+        this.handleOk = this.handleOk.bind(this);
+        this.handleCancel = this.handleCancel.bind(this);
+    }
+    showDialog() {
+        this.setState({
+            visible: true
+        });
+    }
+    handleOk(e) {
+        this.setState({
+            visible: false
+        });
+        console.log('Ok button clicked');
+    }
+    handleAfterClose(){
+        console.log('After Close callback executed');
+    }
+    handleCancel(e) {
+        this.setState({
+            visible: false
+        });
+        console.log('Cancel button clicked');
+    }
+    render() {
+        return (
+            <>
+                <Button onClick={this.showDialog}>Open Modal</Button>
+                <Modal
+                    title="Basic Modal"
+                    visible={this.state.visible}
+                    onOk={this.handleOk}
+                    afterClose={this.handleAfterClose} // >= 1.16.0
+                    onCancel={this.handleCancel}
+                >
+                    This is the content of a basic modal.
+                    <br/>
+                    More content...
+                </Modal>
+            </>
+        );
+    }
 }
 }
 
 
 ```
 ```
@@ -81,45 +81,45 @@ import React from 'react';
 import { Modal, Button } from '@douyinfe/semi-ui';
 import { Modal, Button } from '@douyinfe/semi-ui';
 
 
 class modalDemo extends React.Component {
 class modalDemo extends React.Component {
-  constructor() {
-    super();
-    this.state = {visible: false};
-    this.showDialog = this.showDialog.bind(this);
-    this.handleOk = this.handleOk.bind(this);
-    this.handleCancel = this.handleCancel.bind(this);
-  }
-  showDialog() {
-    this.setState({
-      visible: true
-    });
-  }
-  handleOk(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  handleCancel(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  render() {
-    return (
-      <>
-        <Button onClick={this.showDialog}>Mask Not Closable</Button>
-        <Modal
-          title="Modal Title"
-          visible={this.state.visible}
-          onOk={this.handleOk}
-          onCancel={this.handleCancel}
-          maskClosable={false}
-        >
-          <p>This is a modal that cannot be closed by clicking on the mask.</p>
-          <p>More content...</p>
-        </Modal>
-      </>
-    );
-  }
+    constructor() {
+        super();
+        this.state = {visible: false};
+        this.showDialog = this.showDialog.bind(this);
+        this.handleOk = this.handleOk.bind(this);
+        this.handleCancel = this.handleCancel.bind(this);
+    }
+    showDialog() {
+        this.setState({
+            visible: true
+        });
+    }
+    handleOk(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    handleCancel(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    render() {
+        return (
+            <>
+                <Button onClick={this.showDialog}>Mask Not Closable</Button>
+                <Modal
+                    title="Modal Title"
+                    visible={this.state.visible}
+                    onOk={this.handleOk}
+                    onCancel={this.handleCancel}
+                    maskClosable={false}
+                >
+                    <p>This is a modal that cannot be closed by clicking on the mask.</p>
+                    <p>More content...</p>
+                </Modal>
+            </>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -134,46 +134,46 @@ import React from 'react';
 import { Modal, Button } from '@douyinfe/semi-ui';
 import { Modal, Button } from '@douyinfe/semi-ui';
 
 
 class modalDemo extends React.Component {
 class modalDemo extends React.Component {
-  constructor() {
-    super();
-    this.state = {visible: false};
-    this.showDialog = this.showDialog.bind(this);
-    this.handleOk = this.handleOk.bind(this);
-    this.handleCancel = this.handleCancel.bind(this);
-  }
-  showDialog() {
-    this.setState({
-      visible: true
-    });
-  }
-  handleOk(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  handleCancel(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  render() {
-    return (
-      <>
-        <Button onClick={this.showDialog}>Custom Button Text</Button>
-        <Modal
-          title="Custom Button Text"
-          visible={this.state.visible}
-          onOk={this.handleOk}
-          onCancel={this.handleCancel}
-          okText={'Sounds great!'}
-          cancelText={'No, thanks.'}
-        >
-          <p>This is a modal with customized button texts.</p>
-          <p>More content...</p>
-        </Modal>
-      </>
-    );
-  }
+    constructor() {
+        super();
+        this.state = {visible: false};
+        this.showDialog = this.showDialog.bind(this);
+        this.handleOk = this.handleOk.bind(this);
+        this.handleCancel = this.handleCancel.bind(this);
+    }
+    showDialog() {
+        this.setState({
+            visible: true
+        });
+    }
+    handleOk(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    handleCancel(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    render() {
+        return (
+            <>
+                <Button onClick={this.showDialog}>Custom Button Text</Button>
+                <Modal
+                    title="Custom Button Text"
+                    visible={this.state.visible}
+                    onOk={this.handleOk}
+                    onCancel={this.handleCancel}
+                    okText={'Sounds great!'}
+                    cancelText={'No, thanks.'}
+                >
+                    <p>This is a modal with customized button texts.</p>
+                    <p>More content...</p>
+                </Modal>
+            </>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -186,46 +186,46 @@ import React from 'react';
 import { Modal, Button } from '@douyinfe/semi-ui';
 import { Modal, Button } from '@douyinfe/semi-ui';
 
 
 class modalDemo extends React.Component {
 class modalDemo extends React.Component {
-  constructor() {
-    super();
-    this.state = {visible: false};
-    this.showDialog = this.showDialog.bind(this);
-    this.handleOk = this.handleOk.bind(this);
-    this.handleCancel = this.handleCancel.bind(this);
-  }
-  showDialog() {
-    this.setState({
-      visible: true
-    });
-  }
-  handleOk(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  handleCancel(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  render() {
-    return (
-      <>
-        <Button onClick={this.showDialog}>Custom Button Properties</Button>
-        <Modal
-          title="Custom Button Properties"
-          visible={this.state.visible}
-          onOk={this.handleOk}
-          onCancel={this.handleCancel}
-          okButtonProps={{size: 'small', type: 'warning'}}
-          cancelButtonProps={{size: 'small', disabled: true}}
-        >
-          <p>This is a modal with customized button props.</p>
-          <p>More content...</p>
-        </Modal>
-      </>
-    );
-  }
+    constructor() {
+        super();
+        this.state = {visible: false};
+        this.showDialog = this.showDialog.bind(this);
+        this.handleOk = this.handleOk.bind(this);
+        this.handleCancel = this.handleCancel.bind(this);
+    }
+    showDialog() {
+        this.setState({
+            visible: true
+        });
+    }
+    handleOk(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    handleCancel(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    render() {
+        return (
+            <>
+                <Button onClick={this.showDialog}>Custom Button Properties</Button>
+                <Modal
+                    title="Custom Button Properties"
+                    visible={this.state.visible}
+                    onOk={this.handleOk}
+                    onCancel={this.handleCancel}
+                    okButtonProps={{size: 'small', type: 'warning'}}
+                    cancelButtonProps={{size: 'small', disabled: true}}
+                >
+                    <p>This is a modal with customized button props.</p>
+                    <p>More content...</p>
+                </Modal>
+            </>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -238,49 +238,49 @@ import React from 'react';
 import { Modal, Button } from '@douyinfe/semi-ui';
 import { Modal, Button } from '@douyinfe/semi-ui';
 
 
 class modalDemo extends React.Component {
 class modalDemo extends React.Component {
-  constructor() {
-    super();
-    this.state = {visible: false};
-    this.showDialog = this.showDialog.bind(this);
-    this.handleOk = this.handleOk.bind(this);
-    this.handleCancel = this.handleCancel.bind(this);
-  }
-  showDialog() {
-    this.setState({
-      visible: true
-    });
-  }
-  handleOk(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  handleCancel(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  render() {
-    return (
-      <>
-        <Button onClick={this.showDialog}>Customized Footer</Button>
-        <Modal
-          title="Customized Footer"
-          visible={this.state.visible}
-          onOk={this.handleOk}
-          onCancel={this.handleCancel}
-          footer={
-            <Button type="primary" onClick={this.handleOk}>
-              Yes, I Understand
-            </Button>
-          }
-        >
-          <p>This is a modal with a customized footer.</p>
-          <p>More content...</p>
-        </Modal>
-      </>
-    );
-  }
+    constructor() {
+        super();
+        this.state = {visible: false};
+        this.showDialog = this.showDialog.bind(this);
+        this.handleOk = this.handleOk.bind(this);
+        this.handleCancel = this.handleCancel.bind(this);
+    }
+    showDialog() {
+        this.setState({
+            visible: true
+        });
+    }
+    handleOk(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    handleCancel(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    render() {
+        return (
+            <>
+                <Button onClick={this.showDialog}>Customized Footer</Button>
+                <Modal
+                    title="Customized Footer"
+                    visible={this.state.visible}
+                    onOk={this.handleOk}
+                    onCancel={this.handleCancel}
+                    footer={
+                        <Button type="primary" onClick={this.handleOk}>
+                            Yes, I Understand
+                        </Button>
+                    }
+                >
+                    <p>This is a modal with a customized footer.</p>
+                    <p>More content...</p>
+                </Modal>
+            </>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -293,53 +293,53 @@ import React from 'react';
 import { Modal, Button } from '@douyinfe/semi-ui';
 import { Modal, Button } from '@douyinfe/semi-ui';
 
 
 class modalDemo extends React.Component {
 class modalDemo extends React.Component {
-  constructor() {
-    super();
-    this.state = {visible: false};
-    this.showDialog = this.showDialog.bind(this);
-    this.handleOk = this.handleOk.bind(this);
-    this.handleCancel = this.handleCancel.bind(this);
-  }
-  showDialog() {
-    this.setState({
-      visible: true
-    });
-  }
-  handleOk(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  handleCancel(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  render() {
-    return (
-      <>
-        <Button onClick={this.showDialog}>Custom Style</Button>
-        <Modal
-          title="Custom Style"
-          visible={this.state.visible}
-          onOk={this.handleOk}
-          onCancel={this.handleCancel}
-          centered
-          bodyStyle={{overflow: 'auto', height: 200}}
-        >
-            <p style={{lineHeight: 1.8}}>Semi Design is a design system developed and maintained by IES Front-end Team and UED Team</p>
-            <p style={{lineHeight: 1.8}}>Semi Design create a consistent, good-looking, easy-to-use, and efficient user experience with a user-centric, content-first, and human-friendly design system.
-            </p>
-            <ul>
-              <li><p>Content-first</p></li>
-              <li><p>Customized theming</p></li>
-              <li><p>Internationalized</p></li>
-              <li><p>Humanism</p></li>
-            </ul>
-        </Modal>
-      </>
-    );
-  }
+    constructor() {
+        super();
+        this.state = {visible: false};
+        this.showDialog = this.showDialog.bind(this);
+        this.handleOk = this.handleOk.bind(this);
+        this.handleCancel = this.handleCancel.bind(this);
+    }
+    showDialog() {
+        this.setState({
+            visible: true
+        });
+    }
+    handleOk(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    handleCancel(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    render() {
+        return (
+            <>
+                <Button onClick={this.showDialog}>Custom Style</Button>
+                <Modal
+                    title="Custom Style"
+                    visible={this.state.visible}
+                    onOk={this.handleOk}
+                    onCancel={this.handleCancel}
+                    centered
+                    bodyStyle={{overflow: 'auto', height: 200}}
+                >
+                    <p style={{lineHeight: 1.8}}>Semi Design is a design system developed and maintained by IES Front-end Team and UED Team</p>
+                    <p style={{lineHeight: 1.8}}>Semi Design create a consistent, good-looking, easy-to-use, and efficient user experience with a user-centric, content-first, and human-friendly design system.
+                    </p>
+                    <ul>
+                        <li><p>Content-first</p></li>
+                        <li><p>Customized theming</p></li>
+                        <li><p>Internationalized</p></li>
+                        <li><p>Humanism</p></li>
+                    </ul>
+                </Modal>
+            </>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -353,90 +353,90 @@ import { Modal, Button, List } from '@douyinfe/semi-ui';
 import { IconVigoLogo, IconSemiLogo } from '@douyinfe/semi-icons';
 import { IconVigoLogo, IconSemiLogo } from '@douyinfe/semi-icons';
 
 
 class modalDemo extends React.Component {
 class modalDemo extends React.Component {
-  constructor() {
-    super();
-    this.state = {visible: false};
-    this.showDialog = this.showDialog.bind(this);
-    this.handleOk = this.handleOk.bind(this);
-    this.handleCancel = this.handleCancel.bind(this);
-  }
-  showDialog() {
-    this.setState({
-      visible: true
-    });
-  }
-  handleOk(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  handleCancel(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  render() {
-    const data = [
-      {
-        icon: <IconSemiLogo style={{fontSize: 48}} />,
-        title: 'Boost new feature adoption with Integration',
-        content: 'Sample data is prepared for you to demostrate how Integration may be useful for your team'
-      },
-      {
-        icon: <IconVigoLogo style={{fontSize: 48}} />,
-        title: 'Introducing Dark Mode',
-        content: 'Sample data is prepared for you to demostrate how Integration may be useful for your team'
-      },
-      {
-        icon: <IconSemiLogo style={{fontSize: 48}} />,
-        title: 'New List Component',
-        content: 'Sample data is prepared for you to demostrate how Integration may be useful for your team'
-      },
-    ];
-    const btnStyle = {
-      width: 240,
-      margin: '4px 50px',
-    };
-    const footer = (
-      <div style={{textAlign: 'center'}}>
-        <Button type="primary" theme="solid" onClick={this.handleOk} style={btnStyle}>
-          Continue
-        </Button>
-        <Button type="primary" theme="borderless" onClick={this.handleCancel} style={btnStyle}>
-          Learn more features
-        </Button>
-      </div>
-    );
-    return (
-      <>
-        <Button onClick={this.showDialog}>Customized Modal</Button>
-        <Modal
-          header={null}
-          visible={this.state.visible}
-          onOk={this.handleOk}
-          onCancel={this.handleCancel}
-          footer={footer}
-        >
-          <h3 style={{textAlign: 'center', fontSize: 24, margin: 40}}>Semi Design New Features</h3>
-          <List
-            dataSource={data}
-            split={false}
-            renderItem={item => (
-                <List.Item
-                    header={item.icon}
-                    main={
-                        <div>
-                            <h6 style={{margin: 0, fontSize: 16}}>{item.title}</h6>
-                            <p style={{marginTop: 4, color: 'var(--semi-color-text-1)'}}>{item.content}</p>
-                        </div>
-                    }
-                />)
-            }
-          />
-        </Modal>
-      </>
-    );
-  }
+    constructor() {
+        super();
+        this.state = {visible: false};
+        this.showDialog = this.showDialog.bind(this);
+        this.handleOk = this.handleOk.bind(this);
+        this.handleCancel = this.handleCancel.bind(this);
+    }
+    showDialog() {
+        this.setState({
+            visible: true
+        });
+    }
+    handleOk(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    handleCancel(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    render() {
+        const data = [
+            {
+                icon: <IconSemiLogo style={{fontSize: 48}} />,
+                title: 'Boost new feature adoption with Integration',
+                content: 'Sample data is prepared for you to demostrate how Integration may be useful for your team'
+            },
+            {
+                icon: <IconVigoLogo style={{fontSize: 48}} />,
+                title: 'Introducing Dark Mode',
+                content: 'Sample data is prepared for you to demostrate how Integration may be useful for your team'
+            },
+            {
+                icon: <IconSemiLogo style={{fontSize: 48}} />,
+                title: 'New List Component',
+                content: 'Sample data is prepared for you to demostrate how Integration may be useful for your team'
+            },
+        ];
+        const btnStyle = {
+            width: 240,
+            margin: '4px 50px',
+        };
+        const footer = (
+            <div style={{textAlign: 'center'}}>
+                <Button type="primary" theme="solid" onClick={this.handleOk} style={btnStyle}>
+                    Continue
+                </Button>
+                <Button type="primary" theme="borderless" onClick={this.handleCancel} style={btnStyle}>
+                    Learn more features
+                </Button>
+            </div>
+        );
+        return (
+            <>
+                <Button onClick={this.showDialog}>Customized Modal</Button>
+                <Modal
+                    header={null}
+                    visible={this.state.visible}
+                    onOk={this.handleOk}
+                    onCancel={this.handleCancel}
+                    footer={footer}
+                >
+                    <h3 style={{textAlign: 'center', fontSize: 24, margin: 40}}>Semi Design New Features</h3>
+                    <List
+                        dataSource={data}
+                        split={false}
+                        renderItem={item => (
+                            <List.Item
+                                header={item.icon}
+                                main={
+                                    <div>
+                                        <h6 style={{margin: 0, fontSize: 16}}>{item.title}</h6>
+                                        <p style={{marginTop: 4, color: 'var(--semi-color-text-1)'}}>{item.content}</p>
+                                    </div>
+                                }
+                            />)
+                        }
+                    />
+                </Modal>
+            </>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -449,26 +449,26 @@ import React from 'react';
 import { Modal, Button } from '@douyinfe/semi-ui';
 import { Modal, Button } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const [visible, setVisible] = useState(false);
-  const onClose = () => {
-    setVisible(false);
-  }
-  return (
-    <>
-        <Button onClick={() => setVisible(true)}>Open Full Screen Modal</Button>
-        <Modal
-          title="Title of Modal"
-          fullScreen
-          visible={visible}
-          onOk={onClose}
-          onCancel={onClose}
-        >
-          <p>This is a full screen modal</p>
-          <p>More content...</p>
-        </Modal>
-    </>
-  )
-}
+    const [visible, setVisible] = useState(false);
+    const onClose = () => {
+        setVisible(false);
+    };
+    return (
+        <>
+            <Button onClick={() => setVisible(true)}>Open Full Screen Modal</Button>
+            <Modal
+                title="Title of Modal"
+                fullScreen
+                visible={visible}
+                onOk={onClose}
+                onCancel={onClose}
+            >
+                <p>This is a full screen modal</p>
+                <p>More content...</p>
+            </Modal>
+        </>
+    );
+};
 ```
 ```
 
 
 ### Confirm Modal
 ### Confirm Modal
@@ -481,79 +481,78 @@ import { Modal, Button } from '@douyinfe/semi-ui';
 import { IconSend } from '@douyinfe/semi-icons';
 import { IconSend } from '@douyinfe/semi-icons';
 
 
 ModalComponent = function(props) {
 ModalComponent = function(props) {
-  function success() {
-    Modal.success({ 'title': 'This is a success message', 'content': 'bla bla bla...'});
-  }
-
-  function info() {
-      Modal.info({ 'title': 'Here is some info', 'content': 'bla bla bla...' });
-  }
-
-  function error() {
-      Modal.error({ 'title': 'Unfortunately, there is an error', 'content': 'bla bla bla...' });
-  }
-
-  function warning() {
-      Modal.warning({ 'title': 'Warning: be cautious ahead', 'content': 'bla bla bla...' });
-  }
-
-  function confirm() {
-      Modal.confirm({ 'title': 'Are you sure ?', 'content': 'bla bla bla...' });
-  }
-
-  function custom() {
-      Modal.info({ 'title': 'This is a custom modal', 'content': 'bla bla bla...', icon: <IconSend />, cancelButtonProps: { theme: 'borderless' }, okButtonProps: { theme: 'solid' }, });
-  }
-
-  return (
-    <div>
-        <Button onClick={info}>Info</Button>
-        <br/>
-        <br/>
-        <Button onClick={success}>Success</Button>
-        <br/>
-        <br/>
-        <Button onClick={error} type="danger">Error</Button>
-        <br/>
-        <br/>
-        <Button onClick={warning} type="warning">Warning</Button>
-        <br/>
-        <br/>
-        <Button onClick={confirm} type="primary">Confirm</Button>
-        <br/>
-        <br/>
-        <Button onClick={custom}>Custom</Button>
-    </div>
-  )
-}
+    function success() {
+        Modal.success({ 'title': 'This is a success message', 'content': 'bla bla bla...'});
+    }
+
+    function info() {
+        Modal.info({ 'title': 'Here is some info', 'content': 'bla bla bla...' });
+    }
+
+    function error() {
+        Modal.error({ 'title': 'Unfortunately, there is an error', 'content': 'bla bla bla...' });
+    }
+
+    function warning() {
+        Modal.warning({ 'title': 'Warning: be cautious ahead', 'content': 'bla bla bla...' });
+    }
+
+    function confirm() {
+        Modal.confirm({ 'title': 'Are you sure ?', 'content': 'bla bla bla...' });
+    }
+
+    function custom() {
+        Modal.info({ 'title': 'This is a custom modal', 'content': 'bla bla bla...', icon: <IconSend />, cancelButtonProps: { theme: 'borderless' }, okButtonProps: { theme: 'solid' }, });
+    }
+
+    return (
+        <div>
+            <Button onClick={info}>Info</Button>
+            <br/>
+            <br/>
+            <Button onClick={success}>Success</Button>
+            <br/>
+            <br/>
+            <Button onClick={error} type="danger">Error</Button>
+            <br/>
+            <br/>
+            <Button onClick={warning} type="warning">Warning</Button>
+            <br/>
+            <br/>
+            <Button onClick={confirm} type="primary">Confirm</Button>
+            <br/>
+            <br/>
+            <Button onClick={custom}>Custom</Button>
+        </div>
+    );
+};
 ```
 ```
 
 
 ### useModal Hooks
 ### useModal Hooks
 You could use `Modal.useModal` to create a `contextHolder` that could access context.
 You could use `Modal.useModal` to create a `contextHolder` that could access context.
 ```jsx live=true hideInDSM
 ```jsx live=true hideInDSM
 import React from 'react';
 import React from 'react';
-import { Modal } from '@douyinfe/semi-ui';
 import { ConfigProvider, Modal, Button } from '@douyinfe/semi-ui';
 import { ConfigProvider, Modal, Button } from '@douyinfe/semi-ui';
 import en_GB from '@douyinfe/semi-ui/lib/es/locale/source/en_GB';
 import en_GB from '@douyinfe/semi-ui/lib/es/locale/source/en_GB';
 
 
 function Demo(props = {}) {
 function Demo(props = {}) {
-  const [modal, contextHolder] = Modal.useModal();
-  const config = { 'title': 'This is a success message', 'content': 'Context consumer' }
+    const [modal, contextHolder] = Modal.useModal();
+    const config = { 'title': 'This is a success message', 'content': 'Context consumer' };
 
 
-  return (
-      <ConfigProvider locale={en_GB}>
-        <div>
-            <Button
-                onClick={() => {
-                    modal.confirm(config);
-                }}
-            >
-              Confirm Modal
-          </Button>
-        </div>
-        {contextHolder}
-      </ConfigProvider>
-  );
+    return (
+        <ConfigProvider locale={en_GB}>
+            <div>
+                <Button
+                    onClick={() => {
+                        modal.confirm(config);
+                    }}
+                >
+                    Confirm Modal
+                </Button>
+            </div>
+            {contextHolder}
+        </ConfigProvider>
+    );
 }
 }
 ```
 ```
 
 

+ 418 - 419
content/show/modal/index.md

@@ -23,51 +23,51 @@ import React from 'react';
 import { Modal, Button } from '@douyinfe/semi-ui';
 import { Modal, Button } from '@douyinfe/semi-ui';
 
 
 class modalDemo extends React.Component {
 class modalDemo extends React.Component {
-  constructor() {
-    super();
-    this.state = {visible: false};
-    this.showDialog = this.showDialog.bind(this);
-    this.handleOk = this.handleOk.bind(this);
-    this.handleCancel = this.handleCancel.bind(this);
-  }
-  showDialog() {
-    this.setState({
-      visible: true
-    });
-  }
-  handleOk(e) {
-    this.setState({
-      visible: false
-    });
-      console.log('Ok button clicked')
-  }
-  handleAfterClose(){
-    console.log('After Close callback executed')
-  }
-  handleCancel(e) {
-    this.setState({
-      visible: false
-    });
-    console.log('Cancel button clicked')
-  }
-  render() {
-    return (
-      <>
-        <Button onClick={this.showDialog}>打开弹窗</Button>
-        <Modal
-          title="基本对话框"
-          visible={this.state.visible}
-          onOk={this.handleOk}
-          afterClose={this.handleAfterClose} //>=1.16.0
-          onCancel={this.handleCancel}
-        >
-          This is the content of a basic modal.
-          <br/>
-          More content...
-        </Modal>
-      </>
-    );
-  }
+    constructor() {
+        super();
+        this.state = {visible: false};
+        this.showDialog = this.showDialog.bind(this);
+        this.handleOk = this.handleOk.bind(this);
+        this.handleCancel = this.handleCancel.bind(this);
+    }
+    showDialog() {
+        this.setState({
+            visible: true
+        });
+    }
+    handleOk(e) {
+        this.setState({
+            visible: false
+        });
+        console.log('Ok button clicked');
+    }
+    handleAfterClose(){
+        console.log('After Close callback executed');
+    }
+    handleCancel(e) {
+        this.setState({
+            visible: false
+        });
+        console.log('Cancel button clicked');
+    }
+    render() {
+        return (
+            <>
+                <Button onClick={this.showDialog}>打开弹窗</Button>
+                <Modal
+                    title="基本对话框"
+                    visible={this.state.visible}
+                    onOk={this.handleOk}
+                    afterClose={this.handleAfterClose} //>=1.16.0
+                    onCancel={this.handleCancel}
+                >
+                    This is the content of a basic modal.
+                    <br/>
+                    More content...
+                </Modal>
+            </>
+        );
+    }
 }
 }
 
 
 ```
 ```
@@ -81,45 +81,45 @@ import React from 'react';
 import { Modal, Button } from '@douyinfe/semi-ui';
 import { Modal, Button } from '@douyinfe/semi-ui';
 
 
 class modalDemo extends React.Component {
 class modalDemo extends React.Component {
-  constructor() {
-    super();
-    this.state = {visible: false};
-    this.showDialog = this.showDialog.bind(this);
-    this.handleOk = this.handleOk.bind(this);
-    this.handleCancel = this.handleCancel.bind(this);
-  }
-  showDialog() {
-    this.setState({
-      visible: true
-    });
-  }
-  handleOk(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  handleCancel(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  render() {
-    return (
-      <>
-        <Button onClick={this.showDialog}>点击遮罩层不可关闭</Button>
-        <Modal
-          title="对话框标题"
-          visible={this.state.visible}
-          onOk={this.handleOk}
-          onCancel={this.handleCancel}
-          maskClosable={false}
-        >
-          <p>This is a modal that cannot be closed by clicking on the mask.</p>
-          <p>More content...</p>
-        </Modal>
-      </>
-    );
-  }
+    constructor() {
+        super();
+        this.state = {visible: false};
+        this.showDialog = this.showDialog.bind(this);
+        this.handleOk = this.handleOk.bind(this);
+        this.handleCancel = this.handleCancel.bind(this);
+    }
+    showDialog() {
+        this.setState({
+            visible: true
+        });
+    }
+    handleOk(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    handleCancel(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    render() {
+        return (
+            <>
+                <Button onClick={this.showDialog}>点击遮罩层不可关闭</Button>
+                <Modal
+                    title="对话框标题"
+                    visible={this.state.visible}
+                    onOk={this.handleOk}
+                    onCancel={this.handleCancel}
+                    maskClosable={false}
+                >
+                    <p>This is a modal that cannot be closed by clicking on the mask.</p>
+                    <p>More content...</p>
+                </Modal>
+            </>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -134,46 +134,46 @@ import React from 'react';
 import { Modal, Button } from '@douyinfe/semi-ui';
 import { Modal, Button } from '@douyinfe/semi-ui';
 
 
 class modalDemo extends React.Component {
 class modalDemo extends React.Component {
-  constructor() {
-    super();
-    this.state = {visible: false};
-    this.showDialog = this.showDialog.bind(this);
-    this.handleOk = this.handleOk.bind(this);
-    this.handleCancel = this.handleCancel.bind(this);
-  }
-  showDialog() {
-    this.setState({
-      visible: true
-    });
-  }
-  handleOk(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  handleCancel(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  render() {
-    return (
-      <>
-        <Button onClick={this.showDialog}>自定义按钮文字</Button>
-        <Modal
-          title="自定义按钮文字"
-          visible={this.state.visible}
-          onOk={this.handleOk}
-          onCancel={this.handleCancel}
-          okText={'Sounds great!'}
-          cancelText={'No, thanks.'}
-        >
-          <p>This is a modal with customized button texts.</p>
-          <p>More content...</p>
-        </Modal>
-      </>
-    );
-  }
+    constructor() {
+        super();
+        this.state = {visible: false};
+        this.showDialog = this.showDialog.bind(this);
+        this.handleOk = this.handleOk.bind(this);
+        this.handleCancel = this.handleCancel.bind(this);
+    }
+    showDialog() {
+        this.setState({
+            visible: true
+        });
+    }
+    handleOk(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    handleCancel(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    render() {
+        return (
+            <>
+                <Button onClick={this.showDialog}>自定义按钮文字</Button>
+                <Modal
+                    title="自定义按钮文字"
+                    visible={this.state.visible}
+                    onOk={this.handleOk}
+                    onCancel={this.handleCancel}
+                    okText={'Sounds great!'}
+                    cancelText={'No, thanks.'}
+                >
+                    <p>This is a modal with customized button texts.</p>
+                    <p>More content...</p>
+                </Modal>
+            </>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -186,46 +186,46 @@ import React from 'react';
 import { Modal, Button } from '@douyinfe/semi-ui';
 import { Modal, Button } from '@douyinfe/semi-ui';
 
 
 class modalDemo extends React.Component {
 class modalDemo extends React.Component {
-  constructor() {
-    super();
-    this.state = {visible: false};
-    this.showDialog = this.showDialog.bind(this);
-    this.handleOk = this.handleOk.bind(this);
-    this.handleCancel = this.handleCancel.bind(this);
-  }
-  showDialog() {
-    this.setState({
-      visible: true
-    });
-  }
-  handleOk(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  handleCancel(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  render() {
-    return (
-      <>
-        <Button onClick={this.showDialog}>自定义按钮属性</Button>
-        <Modal
-          title="自定义按钮属性"
-          visible={this.state.visible}
-          onOk={this.handleOk}
-          onCancel={this.handleCancel}
-          okButtonProps={{size: 'small', type: 'warning'}}
-          cancelButtonProps={{size: 'small', disabled: true}}
-        >
-          <p>This is a modal with customized button props.</p>
-          <p>More content...</p>
-        </Modal>
-      </>
-    );
-  }
+    constructor() {
+        super();
+        this.state = {visible: false};
+        this.showDialog = this.showDialog.bind(this);
+        this.handleOk = this.handleOk.bind(this);
+        this.handleCancel = this.handleCancel.bind(this);
+    }
+    showDialog() {
+        this.setState({
+            visible: true
+        });
+    }
+    handleOk(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    handleCancel(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    render() {
+        return (
+            <>
+                <Button onClick={this.showDialog}>自定义按钮属性</Button>
+                <Modal
+                    title="自定义按钮属性"
+                    visible={this.state.visible}
+                    onOk={this.handleOk}
+                    onCancel={this.handleCancel}
+                    okButtonProps={{size: 'small', type: 'warning'}}
+                    cancelButtonProps={{size: 'small', disabled: true}}
+                >
+                    <p>This is a modal with customized button props.</p>
+                    <p>More content...</p>
+                </Modal>
+            </>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -238,49 +238,49 @@ import React from 'react';
 import { Modal, Button } from '@douyinfe/semi-ui';
 import { Modal, Button } from '@douyinfe/semi-ui';
 
 
 class modalDemo extends React.Component {
 class modalDemo extends React.Component {
-  constructor() {
-    super();
-    this.state = {visible: false};
-    this.showDialog = this.showDialog.bind(this);
-    this.handleOk = this.handleOk.bind(this);
-    this.handleCancel = this.handleCancel.bind(this);
-  }
-  showDialog() {
-    this.setState({
-      visible: true
-    });
-  }
-  handleOk(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  handleCancel(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  render() {
-    return (
-      <>
-        <Button onClick={this.showDialog}>自定义页脚样式</Button>
-        <Modal
-          title="自定义页脚"
-          visible={this.state.visible}
-          onOk={this.handleOk}
-          onCancel={this.handleCancel}
-          footer={
-            <Button type="primary" onClick={this.handleOk}>
-              Yes, I Understand
-            </Button>
-          }
-        >
-          <p>This is a modal with a customized footer.</p>
-          <p>More content...</p>
-        </Modal>
-      </>
-    );
-  }
+    constructor() {
+        super();
+        this.state = {visible: false};
+        this.showDialog = this.showDialog.bind(this);
+        this.handleOk = this.handleOk.bind(this);
+        this.handleCancel = this.handleCancel.bind(this);
+    }
+    showDialog() {
+        this.setState({
+            visible: true
+        });
+    }
+    handleOk(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    handleCancel(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    render() {
+        return (
+            <>
+                <Button onClick={this.showDialog}>自定义页脚样式</Button>
+                <Modal
+                    title="自定义页脚"
+                    visible={this.state.visible}
+                    onOk={this.handleOk}
+                    onCancel={this.handleCancel}
+                    footer={
+                        <Button type="primary" onClick={this.handleOk}>
+                            Yes, I Understand
+                        </Button>
+                    }
+                >
+                    <p>This is a modal with a customized footer.</p>
+                    <p>More content...</p>
+                </Modal>
+            </>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -294,52 +294,52 @@ import React from 'react';
 import { Modal, Button } from '@douyinfe/semi-ui';
 import { Modal, Button } from '@douyinfe/semi-ui';
 
 
 class modalDemo extends React.Component {
 class modalDemo extends React.Component {
-  constructor() {
-    super();
-    this.state = {visible: false};
-    this.showDialog = this.showDialog.bind(this);
-    this.handleOk = this.handleOk.bind(this);
-    this.handleCancel = this.handleCancel.bind(this);
-  }
-  showDialog() {
-    this.setState({
-      visible: true
-    });
-  }
-  handleOk(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  handleCancel(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  render() {
-    return (
-      <>
-        <Button onClick={this.showDialog}>自定义对话框样式</Button>
-        <Modal
-          title="自定义样式"
-          visible={this.state.visible}
-          onOk={this.handleOk}
-          onCancel={this.handleCancel}
-          centered
-          bodyStyle={{overflow: 'auto', height: 200}}
-        >
-            <p style={{lineHeight: 1.8}}>Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。</p>
-            <p style={{lineHeight: 1.8}}>区别于其他的设计系统而言,Semi Design 以用户中心、内容优先、设计人性化为设计理念,具有以下优势:</p>
-            <ul>
-              <li><p>Semi Design 以内容优先进行设计。</p></li>
-              <li><p>更容易地自定义主题。</p></li>
-              <li><p>适用国际化场景。</p></li>
-              <li><p>效率场景加入人性化关怀</p></li>
-            </ul>
-        </Modal>
-      </>
-    );
-  }
+    constructor() {
+        super();
+        this.state = {visible: false};
+        this.showDialog = this.showDialog.bind(this);
+        this.handleOk = this.handleOk.bind(this);
+        this.handleCancel = this.handleCancel.bind(this);
+    }
+    showDialog() {
+        this.setState({
+            visible: true
+        });
+    }
+    handleOk(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    handleCancel(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    render() {
+        return (
+            <>
+                <Button onClick={this.showDialog}>自定义对话框样式</Button>
+                <Modal
+                    title="自定义样式"
+                    visible={this.state.visible}
+                    onOk={this.handleOk}
+                    onCancel={this.handleCancel}
+                    centered
+                    bodyStyle={{overflow: 'auto', height: 200}}
+                >
+                    <p style={{lineHeight: 1.8}}>Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统。设计系统包含设计语言以及一整套可复用的前端组件,帮助设计师与开发者更容易地打造高质量的、用户体验一致的、符合设计规范的 Web 应用。</p>
+                    <p style={{lineHeight: 1.8}}>区别于其他的设计系统而言,Semi Design 以用户中心、内容优先、设计人性化为设计理念,具有以下优势:</p>
+                    <ul>
+                        <li><p>Semi Design 以内容优先进行设计。</p></li>
+                        <li><p>更容易地自定义主题。</p></li>
+                        <li><p>适用国际化场景。</p></li>
+                        <li><p>效率场景加入人性化关怀</p></li>
+                    </ul>
+                </Modal>
+            </>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -353,90 +353,90 @@ import { Modal, Button, List } from '@douyinfe/semi-ui';
 import { IconVigoLogo, IconSemiLogo } from '@douyinfe/semi-icons';
 import { IconVigoLogo, IconSemiLogo } from '@douyinfe/semi-icons';
 
 
 class modalDemo extends React.Component {
 class modalDemo extends React.Component {
-  constructor() {
-    super();
-    this.state = {visible: false};
-    this.showDialog = this.showDialog.bind(this);
-    this.handleOk = this.handleOk.bind(this);
-    this.handleCancel = this.handleCancel.bind(this);
-  }
-  showDialog() {
-    this.setState({
-      visible: true
-    });
-  }
-  handleOk(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  handleCancel(e) {
-    this.setState({
-      visible: false
-    });
-  }
-  render() {
-    const data = [
-      {
-        icon: <IconSemiLogo style={{fontSize: 48}} />,
-        title: 'Boost new feature adoption with Integration',
-        content: 'Sample data is prepared for you to demostrate how Integration may be useful for your team'
-      },
-      {
-        icon: <IconVigoLogo style={{fontSize: 48}} />,
-        title: 'Introducing Dark Mode',
-        content: 'Sample data is prepared for you to demostrate how Integration may be useful for your team'
-      },
-      {
-        icon: <IconSemiLogo style={{fontSize: 48}} />,
-        title: 'New List Component',
-        content: 'Sample data is prepared for you to demostrate how Integration may be useful for your team'
-      },
-    ];
-    const btnStyle = {
-      width: 240,
-      margin: '4px 50px',
-    };
-    const footer = (
-      <div style={{textAlign: 'center'}}>
-        <Button type="primary" theme="solid" onClick={this.handleOk} style={btnStyle}>
-          Continue
-        </Button>
-        <Button type="primary" theme="borderless" onClick={this.handleCancel} style={btnStyle}>
-          Learn more features
-        </Button>
-      </div>
-    );
-    return (
-      <>
-        <Button onClick={this.showDialog}>自定义对话框</Button>
-        <Modal
-          header={null}
-          visible={this.state.visible}
-          onOk={this.handleOk}
-          onCancel={this.handleCancel}
-          footer={footer}
-        >
-          <h3 style={{textAlign: 'center', fontSize: 24, margin: 40}}>Semi Design New Features</h3>
-          <List
-            dataSource={data}
-            split={false}
-            renderItem={item => (
-                <List.Item
-                    header={item.icon}
-                    main={
-                        <div>
-                            <h6 style={{margin: 0, fontSize: 16}}>{item.title}</h6>
-                            <p style={{marginTop: 4, color: 'var(--semi-color-text-1)'}}>{item.content}</p>
-                        </div>
-                    }
-                />)
-            }
-          />
-        </Modal>
-      </>
-    );
-  }
+    constructor() {
+        super();
+        this.state = {visible: false};
+        this.showDialog = this.showDialog.bind(this);
+        this.handleOk = this.handleOk.bind(this);
+        this.handleCancel = this.handleCancel.bind(this);
+    }
+    showDialog() {
+        this.setState({
+            visible: true
+        });
+    }
+    handleOk(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    handleCancel(e) {
+        this.setState({
+            visible: false
+        });
+    }
+    render() {
+        const data = [
+            {
+                icon: <IconSemiLogo style={{fontSize: 48}} />,
+                title: 'Boost new feature adoption with Integration',
+                content: 'Sample data is prepared for you to demostrate how Integration may be useful for your team'
+            },
+            {
+                icon: <IconVigoLogo style={{fontSize: 48}} />,
+                title: 'Introducing Dark Mode',
+                content: 'Sample data is prepared for you to demostrate how Integration may be useful for your team'
+            },
+            {
+                icon: <IconSemiLogo style={{fontSize: 48}} />,
+                title: 'New List Component',
+                content: 'Sample data is prepared for you to demostrate how Integration may be useful for your team'
+            },
+        ];
+        const btnStyle = {
+            width: 240,
+            margin: '4px 50px',
+        };
+        const footer = (
+            <div style={{textAlign: 'center'}}>
+                <Button type="primary" theme="solid" onClick={this.handleOk} style={btnStyle}>
+                    Continue
+                </Button>
+                <Button type="primary" theme="borderless" onClick={this.handleCancel} style={btnStyle}>
+                    Learn more features
+                </Button>
+            </div>
+        );
+        return (
+            <>
+                <Button onClick={this.showDialog}>自定义对话框</Button>
+                <Modal
+                    header={null}
+                    visible={this.state.visible}
+                    onOk={this.handleOk}
+                    onCancel={this.handleCancel}
+                    footer={footer}
+                >
+                    <h3 style={{textAlign: 'center', fontSize: 24, margin: 40}}>Semi Design New Features</h3>
+                    <List
+                        dataSource={data}
+                        split={false}
+                        renderItem={item => (
+                            <List.Item
+                                header={item.icon}
+                                main={
+                                    <div>
+                                        <h6 style={{margin: 0, fontSize: 16}}>{item.title}</h6>
+                                        <p style={{marginTop: 4, color: 'var(--semi-color-text-1)'}}>{item.content}</p>
+                                    </div>
+                                }
+                            />)
+                        }
+                    />
+                </Modal>
+            </>
+        );
+    }
 }
 }
 ```
 ```
 
 
@@ -450,26 +450,26 @@ import React from 'react';
 import { Modal, Button } from '@douyinfe/semi-ui';
 import { Modal, Button } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const [visible, setVisible] = useState(false);
-  const onClose = () => {
-    setVisible(false);
-  }
-  return (
-    <>
-        <Button onClick={() => setVisible(true)}>打开全屏弹窗</Button>
-        <Modal
-          title="全屏对话框标题"
-          fullScreen
-          visible={visible}
-          onOk={onClose}
-          onCancel={onClose}
-        >
-          <p>This is a full screen modal</p>
-          <p>More content...</p>
-        </Modal>
-    </>
-  )
-}
+    const [visible, setVisible] = useState(false);
+    const onClose = () => {
+        setVisible(false);
+    };
+    return (
+        <>
+            <Button onClick={() => setVisible(true)}>打开全屏弹窗</Button>
+            <Modal
+                title="全屏对话框标题"
+                fullScreen
+                visible={visible}
+                onOk={onClose}
+                onCancel={onClose}
+            >
+                <p>This is a full screen modal</p>
+                <p>More content...</p>
+            </Modal>
+        </>
+    );
+};
 ```
 ```
 
 
 
 
@@ -484,79 +484,78 @@ import { Modal, Button } from '@douyinfe/semi-ui';
 import { IconSend } from '@douyinfe/semi-icons';
 import { IconSend } from '@douyinfe/semi-icons';
 
 
 ModalComponent = function(props) {
 ModalComponent = function(props) {
-  function success() {
-    Modal.success({ 'title': 'This is a success message', 'content': 'bla bla bla...'});
-  }
-
-  function info() {
-      Modal.info({ 'title': 'Here is some info', 'content': 'bla bla bla...' });
-  }
-
-  function error() {
-      Modal.error({ 'title': 'Unfortunately, there is an error', 'content': 'bla bla bla...' });
-  }
-
-  function warning() {
-      Modal.warning({ 'title': 'Warning: be cautious ahead', 'content': 'bla bla bla...' });
-  }
-
-  function confirm() {
-      Modal.confirm({ 'title': 'Are you sure ?', 'content': 'bla bla bla...' });
-  }
-
-  function custom() {
-      Modal.info({ 'title': 'This is a custom modal', 'content': 'bla bla bla...', icon: <IconSend />, cancelButtonProps: { theme: 'borderless' }, okButtonProps: { theme: 'solid' }, });
-  }
-
-  return (
-    <div>
-        <Button onClick={info}>Info</Button>
-        <br/>
-        <br/>
-        <Button onClick={success}>Success</Button>
-        <br/>
-        <br/>
-        <Button onClick={error} type="danger">Error</Button>
-        <br/>
-        <br/>
-        <Button onClick={warning} type="warning">Warning</Button>
-        <br/>
-        <br/>
-        <Button onClick={confirm} type="primary">Confirm</Button>
-        <br/>
-        <br/>
-        <Button onClick={custom}>Custom</Button>
-    </div>
-  )
-}
+    function success() {
+        Modal.success({ 'title': 'This is a success message', 'content': 'bla bla bla...'});
+    }
+
+    function info() {
+        Modal.info({ 'title': 'Here is some info', 'content': 'bla bla bla...' });
+    }
+
+    function error() {
+        Modal.error({ 'title': 'Unfortunately, there is an error', 'content': 'bla bla bla...' });
+    }
+
+    function warning() {
+        Modal.warning({ 'title': 'Warning: be cautious ahead', 'content': 'bla bla bla...' });
+    }
+
+    function confirm() {
+        Modal.confirm({ 'title': 'Are you sure ?', 'content': 'bla bla bla...' });
+    }
+
+    function custom() {
+        Modal.info({ 'title': 'This is a custom modal', 'content': 'bla bla bla...', icon: <IconSend />, cancelButtonProps: { theme: 'borderless' }, okButtonProps: { theme: 'solid' }, });
+    }
+
+    return (
+        <div>
+            <Button onClick={info}>Info</Button>
+            <br/>
+            <br/>
+            <Button onClick={success}>Success</Button>
+            <br/>
+            <br/>
+            <Button onClick={error} type="danger">Error</Button>
+            <br/>
+            <br/>
+            <Button onClick={warning} type="warning">Warning</Button>
+            <br/>
+            <br/>
+            <Button onClick={confirm} type="primary">Confirm</Button>
+            <br/>
+            <br/>
+            <Button onClick={custom}>Custom</Button>
+        </div>
+    );
+};
 ```
 ```
 
 
 ### Hooks用法
 ### Hooks用法
 通过  Modal.useModal 创建支持读取 context 的 contextHolder。
 通过  Modal.useModal 创建支持读取 context 的 contextHolder。
 ```jsx live=true hideInDSM
 ```jsx live=true hideInDSM
 import React from 'react';
 import React from 'react';
-import { Modal } from '@douyinfe/semi-ui';
 import { ConfigProvider, Button, Modal } from '@douyinfe/semi-ui';
 import { ConfigProvider, Button, Modal } from '@douyinfe/semi-ui';
 import en_GB from '@douyinfe/semi-ui/lib/es/locale/source/en_GB';
 import en_GB from '@douyinfe/semi-ui/lib/es/locale/source/en_GB';
 
 
 function Demo(props = {}) {
 function Demo(props = {}) {
-  const [modal, contextHolder] = Modal.useModal();
-  const config = { 'title': 'This is a success message', 'content': 'Context consumer' }
+    const [modal, contextHolder] = Modal.useModal();
+    const config = { 'title': 'This is a success message', 'content': 'Context consumer' };
 
 
-  return (
-      <ConfigProvider locale={en_GB}>
-        <div>
-            <Button
-                onClick={() => {
-                    modal.confirm(config);
-                }}
-            >
-              Confirm Modal
-          </Button>
-        </div>
-        {contextHolder}
-      </ConfigProvider>
-  );
+    return (
+        <ConfigProvider locale={en_GB}>
+            <div>
+                <Button
+                    onClick={() => {
+                        modal.confirm(config);
+                    }}
+                >
+                    Confirm Modal
+                </Button>
+            </div>
+            {contextHolder}
+        </ConfigProvider>
+    );
 }
 }
 ```
 ```
 
 

+ 1 - 1
content/show/overflowlist/index-en-US.md

@@ -178,7 +178,7 @@ import { IconAlarm, IconBookmark, IconCamera, IconDuration, IconEdit, IconFolder
 () => {
 () => {
     const [width, setWidth] = useState(100);
     const [width, setWidth] = useState(100);
     const renderOverflow = items => {
     const renderOverflow = items => {
-        return items.map(item => <Tag style={{ marginRight: 8, marginLeft: 8, flex: '0 0 auto' }}>+{item.length}</Tag>);
+        return items.map(item => <Tag style={{ marginRight: 8, marginLeft: 8, flex: '0 0 auto' }} key={item.key}>+{item.length}</Tag>);
     };
     };
     const renderItem = (item, ind) => {
     const renderItem = (item, ind) => {
         return (
         return (

+ 1 - 1
content/show/overflowlist/index.md

@@ -176,7 +176,7 @@ import { IconAlarm, IconBookmark, IconCamera, IconDuration, IconEdit, IconFolder
 () => {
 () => {
     const [width, setWidth] = useState(100);
     const [width, setWidth] = useState(100);
     const renderOverflow = items => {
     const renderOverflow = items => {
-        return items.map(item => <Tag style={{ marginRight: 8, marginLeft: 8, flex: '0 0 auto' }}>+{item.length}</Tag>);
+        return items.map(item => <Tag style={{ marginRight: 8, marginLeft: 8, flex: '0 0 auto' }} key={item.key}>+{item.length}</Tag>);
     };
     };
     const renderItem = (item, ind) => {
     const renderItem = (item, ind) => {
         return (
         return (

+ 1 - 1
content/show/sidesheet/index-en-US.md

@@ -201,7 +201,7 @@ Use `title`, `footer`(v>=1.3.0) and other Semi Components, you could create cust
 
 
 ```jsx live=true hideInDSM
 ```jsx live=true hideInDSM
 import React from 'react';
 import React from 'react';
-import { SideSheet, Button, Typography, Banner } from '@douyinfe/semi-ui';
+import { SideSheet, Button, Typography, Banner, Form } from '@douyinfe/semi-ui';
 
 
 class Demo extends React.Component {
 class Demo extends React.Component {
     constructor() {
     constructor() {

+ 34 - 28
content/show/table/index-en-US.md

@@ -29,7 +29,7 @@ class App extends React.Component {
         this.columns = [
         this.columns = [
             {
             {
                 title: 'Name',
                 title: 'Name',
-                Data Index: 'name',
+                dateIndex: 'name',
                 render: text => <a>{text}</a>,
                 render: text => <a>{text}</a>,
             },
             },
             {
             {
@@ -1689,7 +1689,7 @@ const ChildrenDataSelectedDemo = (props = {}) => {
             dataSource={data}
             dataSource={data}
         />
         />
     );
     );
-}
+};
 
 
 render(ChildrenDataSelectedDemo);
 render(ChildrenDataSelectedDemo);
 ```
 ```
@@ -1805,7 +1805,7 @@ function App() {
             title: 'Name',
             title: 'Name',
             dataIndex: 'name',
             dataIndex: 'name',
             render: (text, record, index) => {
             render: (text, record, index) => {
-                console.log(text, record, index)
+                console.log(text, record, index);
                 return <a>{text}</a>;
                 return <a>{text}</a>;
             },
             },
         },
         },
@@ -2920,11 +2920,11 @@ class App extends React.Component {
             let pagination = checked
             let pagination = checked
                 ? false
                 ? false
                 : {
                 : {
-                      currentPage: 1,
-                      pageSize: 8,
-                      total: data.length,
-                      onPageChange: page => this.setPage(page),
-                  };
+                    currentPage: 1,
+                    pageSize: 8,
+                    total: data.length,
+                    onPageChange: page => this.setPage(page),
+                };
 
 
             this.setState({ pagination });
             this.setState({ pagination });
         };
         };
@@ -3665,28 +3665,33 @@ function App() {
 > Also in `column.onCell` `column.onHeaderCell` Properties or events supported by td / th can also be returned.
 > Also in `column.onCell` `column.onHeaderCell` Properties or events supported by td / th can also be returned.
 
 
 ```jsx noInline=true
 ```jsx noInline=true
-<Table
-    onRow={(record, index) => {
-        return {
-            onClick: event => {},
-            onMouseEnter: event => {},
-            onMouseLeave: event => {},
-            className: '',
+import React from 'react';
+import { Table } from '@douyinfe/semi-ui';
+
+() => (
+    <Table
+        onRow={(record, index) => {
+            return {
+                onClick: event => {},
+                onMouseEnter: event => {},
+                onMouseLeave: event => {},
+                className: '',
             // ...
             // ...
             // Other attributes or events that can be applied to tr
             // Other attributes or events that can be applied to tr
-        };
-    }}
-    onHeaderRow={(columns, index) => {
-        return {
-            onClick: event => {},
-            onMouseEnter: event => {},
-            onMouseLeave: event => {},
-            className: '',
+            };
+        }}
+        onHeaderRow={(columns, index) => {
+            return {
+                onClick: event => {},
+                onMouseEnter: event => {},
+                onMouseLeave: event => {},
+                className: '',
             // ...
             // ...
             // Other attributes or events that can be applied to th
             // Other attributes or events that can be applied to th
-        };
-    }}
-/>
+            };
+        }}
+    />
+);
 ```
 ```
 
 
 ## Column
 ## Column
@@ -3826,9 +3831,10 @@ function Demo() {
 ## FAQ
 ## FAQ
 - **Why is the table data not updated?**  
 - **Why is the table data not updated?**  
     At present, all parameters of the table component are shallow comparison. That is to say, if the parameter value type is an array or object, you need to manually change its reference to trigger the update. Similarly, if you don't want to trigger additional updates, try not to use literal values when passing parameters directly or define reference parameter values in the render process:
     At present, all parameters of the table component are shallow comparison. That is to say, if the parameter value type is an array or object, you need to manually change its reference to trigger the update. Similarly, if you don't want to trigger additional updates, try not to use literal values when passing parameters directly or define reference parameter values in the render process:
-    ```jsx
+    ```text
     // ...render() {
     // ...render() {
-        <Table dataSource={[/*...*/]} columns={[/*...*/]} />}
+        <Table dataSource={[/*...*/]} columns={[/*...*/]} />
+    // }
     ```
     ```
     The above writing method will trigger the update of data in the table every time render (the current selected row will be cleared and the row key array will be expanded, etc.). In order to improve performance and avoid some exceptions, please define some reference type parameters outside the render method as far as possible (if hooks are used, please use useMemo or useState for storage).**
     The above writing method will trigger the update of data in the table every time render (the current selected row will be cleared and the row key array will be expanded, etc.). In order to improve performance and avoid some exceptions, please define some reference type parameters outside the render method as far as possible (if hooks are used, please use useMemo or useState for storage).**
 
 

+ 53 - 48
content/show/table/index.md

@@ -92,7 +92,7 @@ class App extends React.Component {
                 title: 'Name',
                 title: 'Name',
                 dataIndex: 'name',
                 dataIndex: 'name',
                 render: (text, record, index) => {
                 render: (text, record, index) => {
-                    console.log(text, record, index)
+                    console.log(text, record, index);
                     return <a>{text}</a>;
                     return <a>{text}</a>;
                 },
                 },
             },
             },
@@ -337,13 +337,13 @@ class TableApp extends React.Component {
 
 
     removeRecord(key) {
     removeRecord(key) {
         let dataSource = [...this.state.dataSource];
         let dataSource = [...this.state.dataSource];
-        if(key != null) {
+        if (key != null) {
             let idx = dataSource.findIndex(data => data.key === key);
             let idx = dataSource.findIndex(data => data.key === key);
 
 
-             if(idx > -1) {
-                 dataSource.splice(idx, 1)
-                 this.setState({ dataSource });
-             }
+            if (idx > -1) {
+                dataSource.splice(idx, 1);
+                this.setState({ dataSource });
+            }
         }
         }
     }
     }
 
 
@@ -502,7 +502,7 @@ class App extends React.Component {
                     dataSource,
                     dataSource,
                 });
                 });
             });
             });
-        }
+        };
 
 
         this.state = {
         this.state = {
             loading: false,
             loading: false,
@@ -543,7 +543,7 @@ render(App);
 
 
 ```jsx live=true noInline=true dir="column"
 ```jsx live=true noInline=true dir="column"
 import React from 'react';
 import React from 'react';
-import { Table } from '@douyinfe/semi-ui';
+import { Table, Tooltip, Tag } from '@douyinfe/semi-ui';
 
 
 class TableApp extends React.Component {
 class TableApp extends React.Component {
     constructor() {
     constructor() {
@@ -880,7 +880,7 @@ class App extends React.Component {
             },
             },
         ];
         ];
 
 
-        this.expandRowRender = (record, index) => index < 2 ? (<Table columns={this.expandColumns} dataSource={this.expandData} />) : <p>{record.description}</p>
+        this.expandRowRender = (record, index) => index < 2 ? (<Table columns={this.expandColumns} dataSource={this.expandData} />) : <p>{record.description}</p>;
     }
     }
     render() {
     render() {
         return (
         return (
@@ -953,7 +953,7 @@ class App extends React.Component {
             },
             },
         ];
         ];
 
 
-        this.expandRowRender = record => <p>{record.description}</p>
+        this.expandRowRender = record => <p>{record.description}</p>;
     }
     }
     render() {
     render() {
         return (
         return (
@@ -1027,7 +1027,7 @@ class App extends React.Component {
             },
             },
         ];
         ];
 
 
-        this.expandRowRender = record => <p>{record.description}</p>
+        this.expandRowRender = record => <p>{record.description}</p>;
     }
     }
     render() {
     render() {
         return (
         return (
@@ -1665,7 +1665,7 @@ const ChildrenDataSelectedDemo = (props = {}) => {
             dataSource={data}
             dataSource={data}
         />
         />
     );
     );
-}
+};
 
 
 render(ChildrenDataSelectedDemo);
 render(ChildrenDataSelectedDemo);
 ```
 ```
@@ -1781,7 +1781,7 @@ function App() {
             title: 'Name',
             title: 'Name',
             dataIndex: 'name',
             dataIndex: 'name',
             render: (text, record, index) => {
             render: (text, record, index) => {
-                console.log(text, record, index)
+                console.log(text, record, index);
                 return <a>{text}</a>;
                 return <a>{text}</a>;
             },
             },
         },
         },
@@ -1856,7 +1856,7 @@ render(App);
 
 
 ```jsx live=true noInline=true dir="column"
 ```jsx live=true noInline=true dir="column"
 import React from 'react';
 import React from 'react';
-import { Table, Tooltip } from '@douyinfe/semi-ui';
+import { Table, Tooltip, Tag } from '@douyinfe/semi-ui';
 
 
 class ResizableDemo extends React.Component {
 class ResizableDemo extends React.Component {
     constructor() {
     constructor() {
@@ -2266,7 +2266,7 @@ function Demo() {
                         // onMouseLeave: () => {
                         // onMouseLeave: () => {
                         //     console.log(`Grouped row mouse leave: `, group, index);
                         //     console.log(`Grouped row mouse leave: `, group, index);
                         // },
                         // },
-                        onClick: e => { console.log(`Grouped row clicked: `, group, index) }
+                        onClick: e => { console.log(`Grouped row clicked: `, group, index); }
                     };
                     };
                 }}
                 }}
                 clickGroupedRowToExpand // if you want to click the entire row to expand
                 clickGroupedRowToExpand // if you want to click the entire row to expand
@@ -2300,7 +2300,7 @@ import { Table, Tag, Tooltip, Button } from '@douyinfe/semi-ui';
 class VirtualizedFixedDemo extends React.Component {
 class VirtualizedFixedDemo extends React.Component {
     constructor(props = {}) {
     constructor(props = {}) {
         super(props);
         super(props);
-        this.virtualizedListRef = React.createRef()
+        this.virtualizedListRef = React.createRef();
         this.columns = [
         this.columns = [
             {
             {
                 title: 'Name',
                 title: 'Name',
@@ -2810,7 +2810,7 @@ class App extends React.Component {
 
 
             this.setState({ columns });
             this.setState({ columns });
 
 
-            if(!checked) {
+            if (!checked) {
                 this.setPage(null, null, []);
                 this.setPage(null, null, []);
             }
             }
         };
         };
@@ -2889,11 +2889,11 @@ class App extends React.Component {
             let pagination = checked
             let pagination = checked
                 ? false
                 ? false
                 : {
                 : {
-                      currentPage: 1,
-                      pageSize: 8,
-                      total: data.length,
-                      onPageChange: page => this.setPage(page),
-                  };
+                    currentPage: 1,
+                    pageSize: 8,
+                    total: data.length,
+                    onPageChange: page => this.setPage(page),
+                };
 
 
             this.setState({ pagination });
             this.setState({ pagination });
         };
         };
@@ -3193,7 +3193,7 @@ function Demo(props = {}) {
     );
     );
 }
 }
 
 
-render(Demo)
+render(Demo);
 ```
 ```
 
 
 ### 表头合并
 ### 表头合并
@@ -3296,7 +3296,7 @@ function Demo() {
     );
     );
 }
 }
 
 
-render(Demo)
+render(Demo);
 ```
 ```
 
 
 #### 合并表头 JSX 写法
 #### 合并表头 JSX 写法
@@ -3369,7 +3369,7 @@ function Demo() {
     );
     );
 }
 }
 
 
-render(Demo)
+render(Demo);
 ```
 ```
 
 
 
 
@@ -3644,28 +3644,33 @@ onHeaderRow中可以返回 th 支持的属性或者事件
 onRow中可以返回 tr 支持的属性或者事件
 onRow中可以返回 tr 支持的属性或者事件
 
 
 ```jsx
 ```jsx
-<Table
-    onRow={(record, index) => {
-        return {
-            onClick: event => {}, // 点击行
-            onMouseEnter: event => {}, // 鼠标移入行
-            onMouseLeave: event => {}, // 鼠标移出行
-            className: '',
-            // ...
-            // 其他可以作用于 tr 的属性或事件
-        };
-    }}
-    onHeaderRow={(columns, index) => {
-        return {
-            onClick: event => {}, // 点击表头行
-            onMouseEnter: event => {}, // 鼠标移入表头行
-            onMouseLeave: event => {}, // 鼠标移出表头行
-            className: '',
-            // ...
-            // 其他可以作用于 th 的属性或事件
-        };
-    }}
-/>
+import React from 'react';
+import { Table } from '@douyinfe/semi-ui';
+
+() => (
+    <Table
+        onRow={(record, index) => {
+            return {
+                onClick: event => {}, // 点击行
+                onMouseEnter: event => {}, // 鼠标移入行
+                onMouseLeave: event => {}, // 鼠标移出行
+                className: '',
+                // ...
+                // 其他可以作用于 tr 的属性或事件
+            };
+        }}
+        onHeaderRow={(columns, index) => {
+            return {
+                onClick: event => {}, // 点击表头行
+                onMouseEnter: event => {}, // 鼠标移入表头行
+                onMouseLeave: event => {}, // 鼠标移出表头行
+                className: '',
+                // ...
+                // 其他可以作用于 th 的属性或事件
+            };
+        }}
+    />
+);
 ```
 ```
 
 
 ## Column
 ## Column
@@ -3809,7 +3814,7 @@ function Demo() {
 
 
 - **表格数据为何没有更新?**  
 - **表格数据为何没有更新?**  
     Table 组件目前所有参数都为浅层对比,也就是说如果该参数值类型为一个 Array 或者 Object,你需要手动改变其引用才能触发更新。同理,如果你不想触发额外更新,尽量不要直接在传参的时候使用字面量或是在 render 过程中定义引用型参数值:
     Table 组件目前所有参数都为浅层对比,也就是说如果该参数值类型为一个 Array 或者 Object,你需要手动改变其引用才能触发更新。同理,如果你不想触发额外更新,尽量不要直接在传参的时候使用字面量或是在 render 过程中定义引用型参数值:
-    ```jsx
+    ```text
     // ...render() {
     // ...render() {
         <Table dataSource={[/*...*/]} columns={[/*...*/]} />}
         <Table dataSource={[/*...*/]} columns={[/*...*/]} />}
     ```
     ```

+ 95 - 95
content/show/tag/index.md

@@ -27,16 +27,16 @@ import React from 'react';
 import { Tag, Space } from '@douyinfe/semi-ui';
 import { Tag, Space } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <div>
-    <Space>
-      <Tag> default tag </Tag>
-      <Tag closable> Closable Tag </Tag>
-      <Tag closable onClose={(value, e) => e.preventDefault()}>
-        Closable Tag, Prevent Default
-      </Tag>
-    </Space>
-  </div>
-)
+    <div>
+        <Space>
+            <Tag> default tag </Tag>
+            <Tag closable> Closable Tag </Tag>
+            <Tag closable onClose={(value, e) => e.preventDefault()}>
+                Closable Tag, Prevent Default
+            </Tag>
+        </Space>
+    </div>
+);
 ```
 ```
 
 
 ### 尺寸
 ### 尺寸
@@ -48,11 +48,11 @@ import React from 'react';
 import { Tag, Space } from '@douyinfe/semi-ui';
 import { Tag, Space } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Space>
-    <Tag size='small'> small tag </Tag>
-    <Tag size='large'> large tag </Tag>
-  </Space>
-)
+    <Space>
+        <Tag size='small'> small tag </Tag>
+        <Tag size='large'> large tag </Tag>
+    </Space>
+);
 ```
 ```
 
 
 ### 颜色
 ### 颜色
@@ -64,16 +64,16 @@ import React from 'react';
 import { Tag, Space } from '@douyinfe/semi-ui';
 import { Tag, Space } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Space wrap>
-    <Tag color='grey'> grey tag </Tag>
-    <Tag color='blue'> blue tag </Tag>
-    <Tag color='red'> red tag </Tag>
-    <Tag color='green'> green tag </Tag>
-    <Tag color='orange'> orange tag </Tag>
-    <Tag color='teal'> teal tag </Tag>
-    <Tag color='violet'> violet tag </Tag>
-    <Tag color='white'> white tag </Tag>
-  </Space>
+    <Space wrap>
+        <Tag color='grey'> grey tag </Tag>
+        <Tag color='blue'> blue tag </Tag>
+        <Tag color='red'> red tag </Tag>
+        <Tag color='green'> green tag </Tag>
+        <Tag color='orange'> orange tag </Tag>
+        <Tag color='teal'> teal tag </Tag>
+        <Tag color='violet'> violet tag </Tag>
+        <Tag color='white'> white tag </Tag>
+    </Space>
 );
 );
 ```
 ```
 
 
@@ -86,12 +86,12 @@ import React from 'react';
 import { Tag, Space } from '@douyinfe/semi-ui';
 import { Tag, Space } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Space>
-    <Tag color='blue' type='light'> light tag </Tag>
-    <Tag color='blue' type='ghost'> ghost tag </Tag>
-    <Tag color='blue' type='solid'> solid tag </Tag>
-  </Space>
-)
+    <Space>
+        <Tag color='blue' type='light'> light tag </Tag>
+        <Tag color='blue' type='ghost'> ghost tag </Tag>
+        <Tag color='blue' type='solid'> solid tag </Tag>
+    </Space>
+);
 ```
 ```
 
 
 ### 头像标签
 ### 头像标签
@@ -103,7 +103,7 @@ import React from 'react';
 import { Tag, Space } from '@douyinfe/semi-ui';
 import { Tag, Space } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
-    const src = 'https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/avatarDemo.jpeg'
+    const src = 'https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/avatarDemo.jpeg';
     return (
     return (
         <Space vertical align='start'>
         <Space vertical align='start'>
             <Tag avatarSrc={src}>焦锐志</Tag>
             <Tag avatarSrc={src}>焦锐志</Tag>
@@ -126,19 +126,19 @@ import React, { useState } from 'react';
 import { Tag, Button } from '@douyinfe/semi-ui';
 import { Tag, Button } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const [visible, setVisible] = useState(false);
-  const toggleVisible = () => {
-    setVisible(!visible);
-  };
-  return (
-    <div>
-      <Button onClick={toggleVisible}>{visible ? 'Hide Tag': 'Show Tag'}</Button>
-      <div style={{marginTop:10}}>
-        <Tag visible={visible}>Invisible tag </Tag>
-      </div>
-    </div>
-  )
-}
+    const [visible, setVisible] = useState(false);
+    const toggleVisible = () => {
+        setVisible(!visible);
+    };
+    return (
+        <div>
+            <Button onClick={toggleVisible}>{visible ? 'Hide Tag': 'Show Tag'}</Button>
+            <div style={{marginTop:10}}>
+                <Tag visible={visible}>Invisible tag </Tag>
+            </div>
+        </div>
+    );
+};
   
   
 ```
 ```
 
 
@@ -152,56 +152,56 @@ import React from 'react';
 import { TagGroup } from '@douyinfe/semi-ui';
 import { TagGroup } from '@douyinfe/semi-ui';
 
 
 () => {
 () => {
-  const tagList = [
-    { color: 'white', children:'抖音'},
-    { color: 'white', children:'火山小视频'},
-    { color: 'white', children:'剪映'},
-    { color: 'white', children:'皮皮虾'},
-  ];
-  const src = 'https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/avatarDemo.jpeg'
-  const tagList2 = [
-    { color: 'white', children:'Douyin', avatarSrc:src},
-    { color: 'white', children:'Hotsoon', avatarSrc:src},
-    { color: 'white', children:'Capcut', avatarSrc:src},
-    { color: 'white', children:'Pipixia', avatarSrc:src},
-  ];
-  const divStyle = {
-    backgroundColor: 'var(--semi-color-fill-0)',
-    height: 35,
-    width: 300,
-    display: 'flex',
-    alignItems: 'center',
-    padding: '0 10px',
-    marginBottom: 30,
-  };
-  const tagGroupStyle = {
-    display: 'flex',
-    alignItems: 'center',
-    width: 350,
-  };
-  return (
-    <>
-      <div style={divStyle}>
-        <TagGroup
-          maxTagCount={3}
-          style={tagGroupStyle}
-          tagList={tagList}
-          size='large'
-        />
-      </div>
-      <div style={divStyle}>
-        <TagGroup
-          maxTagCount={2}
-          style={tagGroupStyle}
-          tagList={tagList2}
-          size='large'
-          avatarShape='circle'
-          showPopover
-        />
-      </div>
-    </>
-  )
-}
+    const tagList = [
+        { color: 'white', children:'抖音'},
+        { color: 'white', children:'火山小视频'},
+        { color: 'white', children:'剪映'},
+        { color: 'white', children:'皮皮虾'},
+    ];
+    const src = 'https://sf6-cdn-tos.douyinstatic.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/avatarDemo.jpeg';
+    const tagList2 = [
+        { color: 'white', children:'Douyin', avatarSrc:src},
+        { color: 'white', children:'Hotsoon', avatarSrc:src},
+        { color: 'white', children:'Capcut', avatarSrc:src},
+        { color: 'white', children:'Pipixia', avatarSrc:src},
+    ];
+    const divStyle = {
+        backgroundColor: 'var(--semi-color-fill-0)',
+        height: 35,
+        width: 300,
+        display: 'flex',
+        alignItems: 'center',
+        padding: '0 10px',
+        marginBottom: 30,
+    };
+    const tagGroupStyle = {
+        display: 'flex',
+        alignItems: 'center',
+        width: 350,
+    };
+    return (
+        <>
+            <div style={divStyle}>
+                <TagGroup
+                    maxTagCount={3}
+                    style={tagGroupStyle}
+                    tagList={tagList}
+                    size='large'
+                />
+            </div>
+            <div style={divStyle}>
+                <TagGroup
+                    maxTagCount={2}
+                    style={tagGroupStyle}
+                    tagList={tagList2}
+                    size='large'
+                    avatarShape='circle'
+                    showPopover
+                />
+            </div>
+        </>
+    );
+};
 
 
 ```
 ```
 
 

+ 8 - 8
content/show/timeline/index-en-US.md

@@ -29,7 +29,7 @@ import { Timeline } from '@douyinfe/semi-ui';
         <Timeline.Item time='2019-06-13 16:17'>Second Node Content</Timeline.Item>
         <Timeline.Item time='2019-06-13 16:17'>Second Node Content</Timeline.Item>
         <Timeline.Item time='2019-05-14 18:34'>Third Node Content</Timeline.Item>
         <Timeline.Item time='2019-05-14 18:34'>Third Node Content</Timeline.Item>
     </Timeline>
     </Timeline>
-)
+);
 ```
 ```
 
 
 ### Type
 ### Type
@@ -46,7 +46,7 @@ import { Timeline } from '@douyinfe/semi-ui';
         <Timeline.Item time='2019-06-13 16:17' type='success'>Succeed</Timeline.Item>
         <Timeline.Item time='2019-06-13 16:17' type='success'>Succeed</Timeline.Item>
         <Timeline.Item time='2019-05-14 18:34' type='error'>Failed</Timeline.Item>
         <Timeline.Item time='2019-05-14 18:34' type='error'>Failed</Timeline.Item>
     </Timeline>
     </Timeline>
-)
+);
 ```
 ```
 
 
 ### Custom node
 ### Custom node
@@ -65,7 +65,7 @@ import { IconAlertTriangle } from '@douyinfe/semi-icons';
         <Timeline.Item time='2019-05-14 18:34' color='pink'>Customized Color</Timeline.Item>
         <Timeline.Item time='2019-05-14 18:34' color='pink'>Customized Color</Timeline.Item>
         <Timeline.Item time='2019-04-10 12:20'><span style={{fontSize: '18px'}}>Customized Node Style</span></Timeline.Item>
         <Timeline.Item time='2019-04-10 12:20'><span style={{fontSize: '18px'}}>Customized Node Style</span></Timeline.Item>
     </Timeline>
     </Timeline>
-)
+);
 ```
 ```
 
 
 ### Timeline Position
 ### Timeline Position
@@ -85,7 +85,7 @@ import { Timeline } from '@douyinfe/semi-ui';
         <Timeline.Item time='2019-05-14 18:34' extra='Extra Information'>Third Node Content</Timeline.Item>
         <Timeline.Item time='2019-05-14 18:34' extra='Extra Information'>Third Node Content</Timeline.Item>
         <Timeline.Item time='2019-05-09 09:12' extra='Extra Information'>Forth Node Content</Timeline.Item>
         <Timeline.Item time='2019-05-09 09:12' extra='Extra Information'>Forth Node Content</Timeline.Item>
     </Timeline>
     </Timeline>
-)
+);
 ```
 ```
 
 
 #### Center
 #### Center
@@ -101,7 +101,7 @@ import { Timeline } from '@douyinfe/semi-ui';
         <Timeline.Item time='2019-05-14 18:34' extra='Extra Information'>Third Node Content</Timeline.Item>
         <Timeline.Item time='2019-05-14 18:34' extra='Extra Information'>Third Node Content</Timeline.Item>
         <Timeline.Item time='2019-05-09 09:12' extra='Extra Information'>Forth Node Content</Timeline.Item>
         <Timeline.Item time='2019-05-09 09:12' extra='Extra Information'>Forth Node Content</Timeline.Item>
     </Timeline>
     </Timeline>
-)
+);
 ```
 ```
 
 
 #### Alternate
 #### Alternate
@@ -117,7 +117,7 @@ import { Timeline } from '@douyinfe/semi-ui';
         <Timeline.Item time='2019-05-14 18:34' extra='Extra Information'>Third Node Content</Timeline.Item>
         <Timeline.Item time='2019-05-14 18:34' extra='Extra Information'>Third Node Content</Timeline.Item>
         <Timeline.Item time='2019-05-09 09:12' extra='Extra Information'>Forth Node Content</Timeline.Item>
         <Timeline.Item time='2019-05-09 09:12' extra='Extra Information'>Forth Node Content</Timeline.Item>
     </Timeline>
     </Timeline>
-)
+);
 ```
 ```
 
 
 #### Right
 #### Right
@@ -133,7 +133,7 @@ import { Timeline } from '@douyinfe/semi-ui';
         <Timeline.Item time='2019-05-14 18:34' extra='Extra Information'>Third Node Content</Timeline.Item>
         <Timeline.Item time='2019-05-14 18:34' extra='Extra Information'>Third Node Content</Timeline.Item>
         <Timeline.Item time='2019-05-09 09:12' extra='Extra Information'>Forth Node Content</Timeline.Item>
         <Timeline.Item time='2019-05-09 09:12' extra='Extra Information'>Forth Node Content</Timeline.Item>
     </Timeline>
     </Timeline>
-)
+);
 ```
 ```
 
 
 ### DataSource
 ### DataSource
@@ -174,7 +174,7 @@ import { IconAlertTriangle } from '@douyinfe/semi-icons';
             }    
             }    
         ]} 
         ]} 
     />
     />
-)
+);
 ```
 ```
 
 
 ## API reference
 ## API reference

+ 7 - 7
content/show/timeline/index.md

@@ -50,7 +50,7 @@ import { Timeline } from '@douyinfe/semi-ui';
             审核失败
             审核失败
         </Timeline.Item>
         </Timeline.Item>
     </Timeline>
     </Timeline>
-)
+);
 ```
 ```
 
 
 ### 自定义节点
 ### 自定义节点
@@ -75,7 +75,7 @@ import { IconAlertTriangle } from '@douyinfe/semi-icons';
             <span style={{ fontSize: '18px' }}>自定义节点样式</span>
             <span style={{ fontSize: '18px' }}>自定义节点样式</span>
         </Timeline.Item>
         </Timeline.Item>
     </Timeline>
     </Timeline>
-)
+);
 ```
 ```
 
 
 ### 时间轴位置
 ### 时间轴位置
@@ -103,7 +103,7 @@ import { Timeline } from '@douyinfe/semi-ui';
             第四个节点内容
             第四个节点内容
         </Timeline.Item>
         </Timeline.Item>
     </Timeline>
     </Timeline>
-)
+);
 ```
 ```
 
 
 #### 时间节点在左侧
 #### 时间节点在左侧
@@ -127,7 +127,7 @@ import { Timeline } from '@douyinfe/semi-ui';
             第四个节点内容
             第四个节点内容
         </Timeline.Item>
         </Timeline.Item>
     </Timeline>
     </Timeline>
-)
+);
 ```
 ```
 
 
 #### 交替展现
 #### 交替展现
@@ -151,7 +151,7 @@ import { Timeline } from '@douyinfe/semi-ui';
             第四个节点内容
             第四个节点内容
         </Timeline.Item>
         </Timeline.Item>
     </Timeline>
     </Timeline>
-)
+);
 ```
 ```
 
 
 #### 时间轴在右侧
 #### 时间轴在右侧
@@ -175,7 +175,7 @@ import { Timeline } from '@douyinfe/semi-ui';
             第四个节点内容
             第四个节点内容
         </Timeline.Item>
         </Timeline.Item>
     </Timeline>
     </Timeline>
-)
+);
 ```
 ```
 
 
 ### 使用 dataSource
 ### 使用 dataSource
@@ -216,7 +216,7 @@ import { IconAlertTriangle } from '@douyinfe/semi-icons';
             },
             },
         ]}
         ]}
     />
     />
-)
+);
 ```
 ```
 
 
 ## API 参考
 ## API 参考

+ 1 - 1
content/show/tooltip/index-en-US.md

@@ -369,7 +369,7 @@ import { Popconfirm, Tooltip, Button } from '@douyinfe/semi-ui';
             </Tooltip>
             </Tooltip>
         </span>
         </span>
     </Popconfirm>
     </Popconfirm>
-)
+);
 ```
 ```
 
 
 ## API Reference
 ## API Reference

+ 9 - 9
content/show/tooltip/index.md

@@ -72,7 +72,7 @@ function Demo() {
 
 
 ```jsx live=true hideInDSM
 ```jsx live=true hideInDSM
 import React, { useState } from 'react';
 import React, { useState } from 'react';
-import { Tooltip, Button, ButtonGroup } from '@douyinfe/semi-ui';
+import { Tooltip, Button, ButtonGroup, Input } from '@douyinfe/semi-ui';
 
 
 function Demo() {
 function Demo() {
     const [visible, setVisible] = useState(false);
     const [visible, setVisible] = useState(false);
@@ -362,14 +362,14 @@ import React from 'react';
 import { Tooltip, Popconfirm, Button } from '@douyinfe/semi-ui';
 import { Tooltip, Popconfirm, Button } from '@douyinfe/semi-ui';
 
 
 () => (
 () => (
-  <Popconfirm content="是否确认删除">
-    <span style={{ display: 'inline-block' }}>
-        <Tooltip content={'删除评价'}>
-            <Button type="danger">删除</Button>
-        </Tooltip>
-    </span>
-  </Popconfirm>
-)
+    <Popconfirm content="是否确认删除">
+        <span style={{ display: 'inline-block' }}>
+            <Tooltip content={'删除评价'}>
+                <Button type="danger">删除</Button>
+            </Tooltip>
+        </span>
+    </Popconfirm>
+);
 ```
 ```
 
 
 ### 仅当内容宽度超出时展示 Tooltip
 ### 仅当内容宽度超出时展示 Tooltip

+ 1 - 1
content/start/customize-theme/index-en-US.md

@@ -43,7 +43,7 @@ SemiWebpackPlugin  `yarn add -D @douyinfe/semi-webpack-plugin` or `npm i -D @dou
 new SemiWebpackPlugin({
 new SemiWebpackPlugin({
     theme: `Your theme npm package name`
     theme: `Your theme npm package name`
     /* ...options */
     /* ...options */
-})
+});
 ```
 ```
 ### Make changes to component-level variables take effect
 ### Make changes to component-level variables take effect
 
 

部分文件因文件數量過多而無法顯示