seven-design-ui 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/docs/components/message.mdx +296 -296
  2. package/docs/doc_build/404.html +1 -1
  3. package/docs/doc_build/CHANGELOG.html +1 -1
  4. package/docs/doc_build/components/button.html +1 -1
  5. package/docs/doc_build/components/cascader.html +1 -1
  6. package/docs/doc_build/components/form.html +1 -1
  7. package/docs/doc_build/components/input.html +1 -1
  8. package/docs/doc_build/components/message.html +1 -1
  9. package/docs/doc_build/components/pagination.html +1 -1
  10. package/docs/doc_build/components/switch.html +1 -1
  11. package/docs/doc_build/guide/introduction.html +1 -1
  12. package/docs/doc_build/guide/quick-start.html +1 -1
  13. package/docs/doc_build/guide/theme.html +1 -1
  14. package/docs/doc_build/index.html +1 -1
  15. package/docs/doc_build/static/css/{styles.d34980d1.css → styles.67114bef.css} +1 -1
  16. package/docs/doc_build/static/js/async/166.1ad39714.js +13 -0
  17. package/docs/doc_build/static/js/async/377.d7f92742.js +1 -0
  18. package/docs/doc_build/static/js/{index.40275d65.js → index.37901975.js} +1 -1
  19. package/docs/package.json +1 -1
  20. package/package.json +1 -1
  21. package/packages/components/package.json +1 -1
  22. package/packages/components/src/message/Message.tsx +301 -301
  23. package/packages/components/src/message/message.css +193 -188
  24. package/packages/theme/src/index.css +138 -138
  25. package/docs/doc_build/static/js/async/166.ca4068ca.js +0 -13
  26. package/docs/doc_build/static/js/async/377.1fa6d5ad.js +0 -1
  27. /package/docs/doc_build/static/js/async/{166.ca4068ca.js.LICENSE.txt → 166.1ad39714.js.LICENSE.txt} +0 -0
@@ -1,297 +1,297 @@
1
- ---
2
- title: Message 消息提示
3
- description: 常用于主动操作后的反馈提示。与 Notification 的区别是后者更多用于系统级通知的被动提醒。
4
- ---
5
-
6
- import { MessageProvider, $message } from '@seven-design-ui/components'
7
-
8
- :::info
9
- 所有演示都已包含在 MessageProvider 中,你可以直接点击按钮查看效果。
10
- :::
11
-
12
- ## 基础用法
13
-
14
- 默认情况下在顶部显示并在 3 秒后消失。你可以使用 placement 属性控制位置。
15
-
16
- ```tsx preview
17
- function BasicMessage() {
18
- return (
19
- <MessageProvider>
20
- <div>
21
- <button
22
- style={{
23
- padding: '8px 16px',
24
- backgroundColor: '#409eff',
25
- color: 'white',
26
- border: 'none',
27
- borderRadius: '4px',
28
- cursor: 'pointer',
29
- fontSize: '14px'
30
- }}
31
- onClick={() => $message.info('这是一条普通的消息')}
32
- >
33
- 显示消息
34
- </button>
35
- </div>
36
- <MessageContainer />
37
- </MessageProvider>
38
- )
39
- }
40
-
41
- export default BasicMessage
42
- ```
43
-
44
- ## 不同状态
45
-
46
- 用来显示「成功、警告、消息、错误、主要」类的操作反馈。
47
-
48
- ```tsx preview
49
- function MessageTypes() {
50
- const buttonStyle = {
51
- padding: '8px 16px',
52
- backgroundColor: '#409eff',
53
- color: 'white',
54
- border: 'none',
55
- borderRadius: '4px',
56
- cursor: 'pointer',
57
- fontSize: '14px',
58
- marginBottom: '8px'
59
- }
60
-
61
- return (
62
- <MessageProvider>
63
- <div style={{ display: 'flex', gap: '10px', flexWrap: 'wrap' }}>
64
- <button style={{...buttonStyle, backgroundColor: '#67c23a'}} onClick={() => $message.success('操作成功!')}>
65
- 成功消息
66
- </button>
67
- <button style={{...buttonStyle, backgroundColor: '#e6a23c'}} onClick={() => $message.warning('这是一条警告消息')}>
68
- 警告消息
69
- </button>
70
- <button style={{...buttonStyle, backgroundColor: '#f56c6c'}} onClick={() => $message.error('操作失败,请重试')}>
71
- 错误消息
72
- </button>
73
- <button style={{...buttonStyle, backgroundColor: '#409eff'}} onClick={() => $message.primary('这是一条主要消息')}>
74
- 主要消息
75
- </button>
76
- <button style={{...buttonStyle, backgroundColor: '#909399'}} onClick={() => $message.info('这是一条普通消息')}>
77
- 普通消息
78
- </button>
79
- </div>
80
- <MessageContainer />
81
- </MessageProvider>
82
- )
83
- }
84
-
85
- export default MessageTypes
86
- ```
87
-
88
- ## Plain 背景
89
-
90
- 设置 plain 为 true 可以显示纯色背景的消息。
91
-
92
- ```tsx preview
93
- function PlainMessage() {
94
- const buttonStyle = {
95
- padding: '8px 16px',
96
- backgroundColor: '#409eff',
97
- color: 'white',
98
- border: 'none',
99
- borderRadius: '4px',
100
- cursor: 'pointer',
101
- fontSize: '14px',
102
- marginBottom: '8px'
103
- }
104
-
105
- return (
106
- <MessageProvider>
107
- <div style={{ display: 'flex', gap: '10px', flexWrap: 'wrap' }}>
108
- <button style={{...buttonStyle, backgroundColor: '#67c23a'}} onClick={() => $message.success('纯色背景的成功消息', { plain: true })}>
109
- 纯色成功
110
- </button>
111
- <button style={{...buttonStyle, backgroundColor: '#e6a23c'}} onClick={() => $message.warning('纯色背景的警告消息', { plain: true })}>
112
- 纯色警告
113
- </button>
114
- <button style={{...buttonStyle, backgroundColor: '#f56c6c'}} onClick={() => $message.error('纯色背景的错误消息', { plain: true })}>
115
- 纯色错误
116
- </button>
117
- </div>
118
- <MessageContainer />
119
- </MessageProvider>
120
- )
121
- }
122
-
123
- export default PlainMessage
124
- ```
125
-
126
- ## 可关闭的消息提示
127
-
128
- 默认的 Message 是不可以被人工关闭的。如果你需要手动关闭功能,你可以把 showClose 设置为 true。此外,和 Notification 一样,Message 拥有可控的 duration,默认的关闭时间为 3000 毫秒,当把这个属性的值设置为 0 便表示该消息不会被自动关闭。
129
-
130
- ```tsx preview
131
- function ClosableMessage() {
132
- const buttonStyle = {
133
- padding: '8px 16px',
134
- backgroundColor: '#409eff',
135
- color: 'white',
136
- border: 'none',
137
- borderRadius: '4px',
138
- cursor: 'pointer',
139
- fontSize: '14px',
140
- marginBottom: '8px'
141
- }
142
-
143
- return (
144
- <MessageProvider>
145
- <div style={{ display: 'flex', gap: '10px', flexWrap: 'wrap' }}>
146
- <button style={{...buttonStyle, backgroundColor: '#909399'}} onClick={() => $message.info('这是一条可关闭的消息', {
147
- showClose: true
148
- })}>
149
- 可关闭消息
150
- </button>
151
- <button style={{...buttonStyle, backgroundColor: '#67c23a'}} onClick={() => $message.success('这条消息不会自动关闭', {
152
- duration: 0,
153
- showClose: true
154
- })}>
155
- 永不自动关闭
156
- </button>
157
- </div>
158
- <MessageContainer />
159
- </MessageProvider>
160
- )
161
- }
162
-
163
- export default ClosableMessage
164
- ```
165
-
166
- ## 位置控制
167
-
168
- 使用 placement 属性可以控制消息显示的位置。
169
-
170
- ```tsx preview
171
- function PositionMessage() {
172
- const buttonStyle = {
173
- padding: '8px 16px',
174
- backgroundColor: '#409eff',
175
- color: 'white',
176
- border: 'none',
177
- borderRadius: '4px',
178
- cursor: 'pointer',
179
- fontSize: '14px',
180
- marginBottom: '8px'
181
- }
182
-
183
- return (
184
- <MessageProvider>
185
- <div style={{ display: 'flex', gap: '10px', flexWrap: 'wrap' }}>
186
- <button style={buttonStyle} onClick={() => $message.info('顶部居中的消息')}>
187
- 顶部居中
188
- </button>
189
- <button style={buttonStyle} onClick={() => $message.info('顶部左侧的消息', { placement: 'top-left' })}>
190
- 顶部左侧
191
- </button>
192
- <button style={buttonStyle} onClick={() => $message.info('顶部右侧的消息', { placement: 'top-right' })}>
193
- 顶部右侧
194
- </button>
195
- <button style={buttonStyle} onClick={() => $message.info('底部居中的消息', { placement: 'bottom' })}>
196
- 底部居中
197
- </button>
198
- <button style={buttonStyle} onClick={() => $message.info('底部左侧的消息', { placement: 'bottom-left' })}>
199
- 底部左侧
200
- </button>
201
- <button style={buttonStyle} onClick={() => $message.info('底部右侧的消息', { placement: 'bottom-right' })}>
202
- 底部右侧
203
- </button>
204
- </div>
205
- <MessageContainer />
206
- </MessageProvider>
207
- )
208
- }
209
-
210
- export default PositionMessage
211
- ```
212
-
213
- ## 通用 API
214
-
215
- 你也可以使用通用的 open 方法来显示消息,这样可以设置更多的选项。
216
-
217
- ```tsx preview
218
- function OpenApiMessage() {
219
- const buttonStyle = {
220
- padding: '8px 16px',
221
- backgroundColor: '#409eff',
222
- color: 'white',
223
- border: 'none',
224
- borderRadius: '4px',
225
- cursor: 'pointer',
226
- fontSize: '14px'
227
- }
228
-
229
- return (
230
- <MessageProvider>
231
- <div style={{ display: 'flex', gap: '10px' }}>
232
- <button style={buttonStyle} onClick={() => $message.open({
233
- message: '自定义消息内容',
234
- type: 'primary',
235
- placement: 'top-right',
236
- showClose: true,
237
- duration: 5000,
238
- plain: true,
239
- onClose: () => {
240
- console.log('消息已关闭')
241
- }
242
- })}>
243
- 通用API
244
- </button>
245
- </div>
246
- <MessageContainer />
247
- </MessageProvider>
248
- )
249
- }
250
-
251
- export default OpenApiMessage
252
- ```
253
-
254
- ## API 参考
255
-
256
- ### MessageOptions
257
-
258
- | 参数 | 说明 | 类型 | 默认值 |
259
- | --- | --- | --- | --- |
260
- | message | 消息内容 | `string \| ReactNode` | - |
261
- | type | 消息类型 | `MessageType` | `'info'` |
262
- | placement | 消息位置 | `MessagePlacement` | `'top'` |
263
- | showClose | 是否显示关闭按钮 | `boolean` | `false` |
264
- | duration | 显示时长,单位毫秒,0表示不自动关闭 | `number` | `3000` |
265
- | plain | 是否为纯色背景 | `boolean` | `false` |
266
- | className | 自定义类名 | `string` | - |
267
- | onClose | 关闭时的回调函数 | `() => void` | - |
268
-
269
- ### MessageType
270
-
271
- ```tsx
272
- type MessageType = 'success' | 'warning' | 'error' | 'info' | 'primary'
273
- ```
274
-
275
- ### MessagePlacement
276
-
277
- ```tsx
278
- type MessagePlacement = 'top' | 'top-left' | 'top-right' | 'bottom' | 'bottom-left' | 'bottom-right'
279
- ```
280
-
281
- ### $message 方法
282
-
283
- | 方法 | 说明 | 参数 |
284
- | --- | --- | --- |
285
- | $message.info | 显示普通消息 | `(message, options?)` |
286
- | $message.success | 显示成功消息 | `(message, options?)` |
287
- | $message.warning | 显示警告消息 | `(message, options?)` |
288
- | $message.error | 显示错误消息 | `(message, options?)` |
289
- | $message.primary | 显示主要消息 | `(message, options?)` |
290
- | $message.open | 通用显示方法 | `(options)` |
291
-
292
- ### 组件
293
-
294
- | 组件 | 说明 |
295
- | --- | --- |
296
- | MessageProvider | 消息提供者,需要包裹在应用根组件外层 |
1
+ ---
2
+ title: Message 消息提示
3
+ description: 常用于主动操作后的反馈提示。与 Notification 的区别是后者更多用于系统级通知的被动提醒。
4
+ ---
5
+
6
+ import { MessageProvider, $message } from '@seven-design-ui/components'
7
+
8
+ :::info
9
+ 所有演示都已包含在 MessageProvider 中,你可以直接点击按钮查看效果。
10
+ :::
11
+
12
+ ## 基础用法
13
+
14
+ 默认情况下在顶部显示并在 3 秒后消失。你可以使用 placement 属性控制位置。
15
+
16
+ ```tsx preview
17
+ function BasicMessage() {
18
+ return (
19
+ <MessageProvider>
20
+ <div>
21
+ <button
22
+ style={{
23
+ padding: '8px 16px',
24
+ backgroundColor: '#409eff',
25
+ color: 'white',
26
+ border: 'none',
27
+ borderRadius: '4px',
28
+ cursor: 'pointer',
29
+ fontSize: '14px'
30
+ }}
31
+ onClick={() => $message.info('这是一条普通的消息')}
32
+ >
33
+ 显示消息
34
+ </button>
35
+ </div>
36
+ <MessageContainer />
37
+ </MessageProvider>
38
+ )
39
+ }
40
+
41
+ export default BasicMessage
42
+ ```
43
+
44
+ ## 不同状态
45
+
46
+ 用来显示「成功、警告、消息、错误、主要」类的操作反馈。
47
+
48
+ ```tsx preview
49
+ function MessageTypes() {
50
+ const buttonStyle = {
51
+ padding: '8px 16px',
52
+ backgroundColor: '#409eff',
53
+ color: 'white',
54
+ border: 'none',
55
+ borderRadius: '4px',
56
+ cursor: 'pointer',
57
+ fontSize: '14px',
58
+ marginBottom: '8px'
59
+ }
60
+
61
+ return (
62
+ <MessageProvider>
63
+ <div style={{ display: 'flex', gap: '10px', flexWrap: 'wrap' }}>
64
+ <button style={{...buttonStyle, backgroundColor: '#67c23a'}} onClick={() => $message.success('操作成功!')}>
65
+ 成功消息
66
+ </button>
67
+ <button style={{...buttonStyle, backgroundColor: '#e6a23c'}} onClick={() => $message.warning('这是一条警告消息')}>
68
+ 警告消息
69
+ </button>
70
+ <button style={{...buttonStyle, backgroundColor: '#f56c6c'}} onClick={() => $message.error('操作失败,请重试')}>
71
+ 错误消息
72
+ </button>
73
+ <button style={{...buttonStyle, backgroundColor: '#409eff'}} onClick={() => $message.primary('这是一条主要消息')}>
74
+ 主要消息
75
+ </button>
76
+ <button style={{...buttonStyle, backgroundColor: '#909399'}} onClick={() => $message.info('这是一条普通消息')}>
77
+ 普通消息
78
+ </button>
79
+ </div>
80
+ <MessageContainer />
81
+ </MessageProvider>
82
+ )
83
+ }
84
+
85
+ export default MessageTypes
86
+ ```
87
+
88
+ ## Plain 背景
89
+
90
+ 设置 plain 为 true 可以显示纯色背景的消息。
91
+
92
+ ```tsx preview
93
+ function PlainMessage() {
94
+ const buttonStyle = {
95
+ padding: '8px 16px',
96
+ backgroundColor: '#409eff',
97
+ color: 'white',
98
+ border: 'none',
99
+ borderRadius: '4px',
100
+ cursor: 'pointer',
101
+ fontSize: '14px',
102
+ marginBottom: '8px'
103
+ }
104
+
105
+ return (
106
+ <MessageProvider>
107
+ <div style={{ display: 'flex', gap: '10px', flexWrap: 'wrap' }}>
108
+ <button style={{...buttonStyle, backgroundColor: '#67c23a'}} onClick={() => $message.success('纯色背景的成功消息', { plain: true })}>
109
+ 纯色成功
110
+ </button>
111
+ <button style={{...buttonStyle, backgroundColor: '#e6a23c'}} onClick={() => $message.warning('纯色背景的警告消息', { plain: true })}>
112
+ 纯色警告
113
+ </button>
114
+ <button style={{...buttonStyle, backgroundColor: '#f56c6c'}} onClick={() => $message.error('纯色背景的错误消息', { plain: true })}>
115
+ 纯色错误
116
+ </button>
117
+ </div>
118
+ <MessageContainer />
119
+ </MessageProvider>
120
+ )
121
+ }
122
+
123
+ export default PlainMessage
124
+ ```
125
+
126
+ ## 可关闭的消息提示
127
+
128
+ 默认的 Message 是不可以被人工关闭的。如果你需要手动关闭功能,你可以把 showClose 设置为 true。此外,和 Notification 一样,Message 拥有可控的 duration,默认的关闭时间为 3000 毫秒,当把这个属性的值设置为 0 便表示该消息不会被自动关闭。
129
+
130
+ ```tsx preview
131
+ function ClosableMessage() {
132
+ const buttonStyle = {
133
+ padding: '8px 16px',
134
+ backgroundColor: '#409eff',
135
+ color: 'white',
136
+ border: 'none',
137
+ borderRadius: '4px',
138
+ cursor: 'pointer',
139
+ fontSize: '14px',
140
+ marginBottom: '8px'
141
+ }
142
+
143
+ return (
144
+ <MessageProvider>
145
+ <div style={{ display: 'flex', gap: '10px', flexWrap: 'wrap' }}>
146
+ <button style={{...buttonStyle, backgroundColor: '#909399'}} onClick={() => $message.info('这是一条可关闭的消息', {
147
+ showClose: true
148
+ })}>
149
+ 可关闭消息
150
+ </button>
151
+ <button style={{...buttonStyle, backgroundColor: '#67c23a'}} onClick={() => $message.success('这条消息不会自动关闭', {
152
+ duration: 0,
153
+ showClose: true
154
+ })}>
155
+ 永不自动关闭
156
+ </button>
157
+ </div>
158
+ <MessageContainer />
159
+ </MessageProvider>
160
+ )
161
+ }
162
+
163
+ export default ClosableMessage
164
+ ```
165
+
166
+ ## 位置控制
167
+
168
+ 使用 placement 属性可以控制消息显示的位置。
169
+
170
+ ```tsx preview
171
+ function PositionMessage() {
172
+ const buttonStyle = {
173
+ padding: '8px 16px',
174
+ backgroundColor: '#409eff',
175
+ color: 'white',
176
+ border: 'none',
177
+ borderRadius: '4px',
178
+ cursor: 'pointer',
179
+ fontSize: '14px',
180
+ marginBottom: '8px'
181
+ }
182
+
183
+ return (
184
+ <MessageProvider>
185
+ <div style={{ display: 'flex', gap: '10px', flexWrap: 'wrap' }}>
186
+ <button style={buttonStyle} onClick={() => $message.info('顶部居中的消息')}>
187
+ 顶部居中
188
+ </button>
189
+ <button style={buttonStyle} onClick={() => $message.info('顶部左侧的消息', { placement: 'top-left' })}>
190
+ 顶部左侧
191
+ </button>
192
+ <button style={buttonStyle} onClick={() => $message.info('顶部右侧的消息', { placement: 'top-right' })}>
193
+ 顶部右侧
194
+ </button>
195
+ <button style={buttonStyle} onClick={() => $message.info('底部居中的消息', { placement: 'bottom' })}>
196
+ 底部居中
197
+ </button>
198
+ <button style={buttonStyle} onClick={() => $message.info('底部左侧的消息', { placement: 'bottom-left' })}>
199
+ 底部左侧
200
+ </button>
201
+ <button style={buttonStyle} onClick={() => $message.info('底部右侧的消息', { placement: 'bottom-right' })}>
202
+ 底部右侧
203
+ </button>
204
+ </div>
205
+ <MessageContainer />
206
+ </MessageProvider>
207
+ )
208
+ }
209
+
210
+ export default PositionMessage
211
+ ```
212
+
213
+ ## 通用 API
214
+
215
+ 你也可以使用通用的 open 方法来显示消息,这样可以设置更多的选项。
216
+
217
+ ```tsx preview
218
+ function OpenApiMessage() {
219
+ const buttonStyle = {
220
+ padding: '8px 16px',
221
+ backgroundColor: '#409eff',
222
+ color: 'white',
223
+ border: 'none',
224
+ borderRadius: '4px',
225
+ cursor: 'pointer',
226
+ fontSize: '14px'
227
+ }
228
+
229
+ return (
230
+ <MessageProvider>
231
+ <div style={{ display: 'flex', gap: '10px' }}>
232
+ <button style={buttonStyle} onClick={() => $message.open({
233
+ message: '自定义消息内容',
234
+ type: 'primary',
235
+ placement: 'top-right',
236
+ showClose: true,
237
+ duration: 5000,
238
+ plain: true,
239
+ onClose: () => {
240
+ console.log('消息已关闭')
241
+ }
242
+ })}>
243
+ 通用API
244
+ </button>
245
+ </div>
246
+ <MessageContainer />
247
+ </MessageProvider>
248
+ )
249
+ }
250
+
251
+ export default OpenApiMessage
252
+ ```
253
+
254
+ ## API 参考
255
+
256
+ ### MessageOptions
257
+
258
+ | 参数 | 说明 | 类型 | 默认值 |
259
+ | --- | --- | --- | --- |
260
+ | message | 消息内容 | `string \| ReactNode` | - |
261
+ | type | 消息类型 | `MessageType` | `'info'` |
262
+ | placement | 消息位置 | `MessagePlacement` | `'top'` |
263
+ | showClose | 是否显示关闭按钮 | `boolean` | `false` |
264
+ | duration | 显示时长,单位毫秒,0表示不自动关闭 | `number` | `3000` |
265
+ | plain | 是否为纯色背景 | `boolean` | `false` |
266
+ | className | 自定义类名 | `string` | - |
267
+ | onClose | 关闭时的回调函数 | `() => void` | - |
268
+
269
+ ### MessageType
270
+
271
+ ```tsx
272
+ type MessageType = 'success' | 'warning' | 'error' | 'info' | 'primary'
273
+ ```
274
+
275
+ ### MessagePlacement
276
+
277
+ ```tsx
278
+ type MessagePlacement = 'top' | 'top-left' | 'top-right' | 'bottom' | 'bottom-left' | 'bottom-right'
279
+ ```
280
+
281
+ ### $message 方法
282
+
283
+ | 方法 | 说明 | 参数 |
284
+ | --- | --- | --- |
285
+ | $message.info | 显示普通消息 | `(message, options?)` |
286
+ | $message.success | 显示成功消息 | `(message, options?)` |
287
+ | $message.warning | 显示警告消息 | `(message, options?)` |
288
+ | $message.error | 显示错误消息 | `(message, options?)` |
289
+ | $message.primary | 显示主要消息 | `(message, options?)` |
290
+ | $message.open | 通用显示方法 | `(options)` |
291
+
292
+ ### 组件
293
+
294
+ | 组件 | 说明 |
295
+ | --- | --- |
296
+ | MessageProvider | 消息提供者,需要包裹在应用根组件外层 |
297
297
  | MessageContainer | 消息容器组件,用于渲染消息列表 |
@@ -6,7 +6,7 @@
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <meta name="generator" content="Rspress v1.47.0">
8
8
  <title data-rh="true">404 - SevenDesign</title><meta data-rh="true" name="description" content="企业级 React UI 组件库"/>
9
- <script>{;const saved = localStorage.getItem('rspress-theme-appearance');const preferDark = window.matchMedia('(prefers-color-scheme: dark)').matches;const isDark = !saved || saved === 'auto' ? preferDark : saved === 'dark';document.documentElement.classList.toggle('dark', isDark);document.documentElement.style.colorScheme = isDark ? 'dark' : 'light';}</script><link rel="icon" href="/sevenDesign/logo.svg" type="image/svg+xml"><script defer src="/sevenDesign/static/js/styles.f2af9a40.js"></script><script defer src="/sevenDesign/static/js/lib-react.ce4199ca.js"></script><script defer src="/sevenDesign/static/js/lib-router.4000fe55.js"></script><script defer src="/sevenDesign/static/js/414.4bd5c320.js"></script><script defer src="/sevenDesign/static/js/index.40275d65.js"></script><link href="/sevenDesign/static/css/styles.d34980d1.css" rel="stylesheet"></head>
9
+ <script>{;const saved = localStorage.getItem('rspress-theme-appearance');const preferDark = window.matchMedia('(prefers-color-scheme: dark)').matches;const isDark = !saved || saved === 'auto' ? preferDark : saved === 'dark';document.documentElement.classList.toggle('dark', isDark);document.documentElement.style.colorScheme = isDark ? 'dark' : 'light';}</script><link rel="icon" href="/sevenDesign/logo.svg" type="image/svg+xml"><script defer src="/sevenDesign/static/js/styles.f2af9a40.js"></script><script defer src="/sevenDesign/static/js/lib-react.ce4199ca.js"></script><script defer src="/sevenDesign/static/js/lib-router.4000fe55.js"></script><script defer src="/sevenDesign/static/js/414.4bd5c320.js"></script><script defer src="/sevenDesign/static/js/index.37901975.js"></script><link href="/sevenDesign/static/css/styles.67114bef.css" rel="stylesheet"></head>
10
10
 
11
11
  <body >
12
12
  <div id="root"><link rel="preload" as="image" href="/sevenDesign/logo.svg"/><div class="navContainer_d18b1 rspress-nav px-6 sticky_ddfa7"><div class="container_e4235 flex justify-between items-center h-full"><div class="navBarTitle_c5f07"><a href="/sevenDesign/index.html" class="link_a7cea flex items-center w-full h-full text-base font-semibold transition-opacity duration-300 hover:opacity-60"><div class="mr-1 min-w-8"><img src="/sevenDesign/logo.svg" alt="logo" id="logo" class="rspress-logo dark:hidden"/><img src="/sevenDesign/logo.svg" alt="logo" id="logo" class="rspress-logo hidden dark:block"/></div></a></div><div class="flex flex-1 justify-end items-center"><div class="rightNav_a2fea"><div class="flex sm:flex-1 items-center sm:pl-4 sm:pr-2"><div class="rspress-nav-search-button navSearchButton_df1fb"><button><svg width="18" height="18" viewBox="0 0 32 32"><path fill="var(--rp-c-gray)" d="m29 27.586-7.552-7.552a11.018 11.018 0 1 0-1.414 1.414L27.586 29ZM4 13a9 9 0 1 1 9 9 9.01 9.01 0 0 1-9-9"></path></svg><p class="searchWord_af2c1">Search</p><div style="opacity:0"><span></span><span>K</span></div></button></div><div class="mobileNavSearchButton_d85a9"><svg width="24" height="24" viewBox="0 0 32 32"><path fill="var(--rp-c-gray)" d="m29 27.586-7.552-7.552a11.018 11.018 0 1 0-1.414 1.414L27.586 29ZM4 13a9 9 0 1 1 9 9 9.01 9.01 0 0 1-9-9"></path></svg></div></div><div class="rspress-nav-menu menu h-14"><a href="/sevenDesign/guide/introduction.html" class="link_a7cea "><div class="rspress-nav-menu-item singleItem_c1154 text-sm font-medium mx-1.5 px-3 py-2 flex items-center break-keep">指南</div></a><a href="/sevenDesign/components/button.html" class="link_a7cea "><div class="rspress-nav-menu-item singleItem_c1154 text-sm font-medium mx-1.5 px-3 py-2 flex items-center break-keep">组件</div></a></div><div class="flex-center flex-row"><div class="mx-2"><div class="md:mr-2 rspress-nav-appearance"><div class="p-1 border border-solid border-gray-300 text-gray-400 cursor-pointer rounded-md hover:border-gray-600 hover:text-gray-600 dark:hover:border-gray-200 dark:hover:text-gray-200 transition-all duration-300 w-7 h-7"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" viewBox="0 0 24 24" class="dark:hidden" width="18" height="18" fill="currentColor"><path d="M12 18c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6m0-10c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4M12 4c-.6 0-1-.4-1-1V1c0-.6.4-1 1-1s1 .4 1 1v2c0 .6-.4 1-1 1M12 24c-.6 0-1-.4-1-1v-2c0-.6.4-1 1-1s1 .4 1 1v2c0 .6-.4 1-1 1M5.6 6.6c-.3 0-.5-.1-.7-.3L3.5 4.9c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l1.4 1.4c.4.4.4 1 0 1.4-.1.2-.4.3-.7.3M19.8 20.8c-.3 0-.5-.1-.7-.3l-1.4-1.4c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l1.4 1.4c.4.4.4 1 0 1.4-.2.2-.5.3-.7.3M3 13H1c-.6 0-1-.4-1-1s.4-1 1-1h2c.6 0 1 .4 1 1s-.4 1-1 1M23 13h-2c-.6 0-1-.4-1-1s.4-1 1-1h2c.6 0 1 .4 1 1s-.4 1-1 1M4.2 20.8c-.3 0-.5-.1-.7-.3-.4-.4-.4-1 0-1.4l1.4-1.4c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-1.4 1.4c-.2.2-.4.3-.7.3M18.4 6.6c-.3 0-.5-.1-.7-.3-.4-.4-.4-1 0-1.4l1.4-1.4c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-1.4 1.4c-.2.2-.5.3-.7.3"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" viewBox="0 0 24 24" class="hidden dark:block" width="18" height="18" fill="currentColor"><path d="M12.1 22h-.9c-5.5-.5-9.5-5.4-9-10.9.4-4.8 4.2-8.6 9-9 .4 0 .8.2 1 .5s.2.8-.1 1.1c-2 2.7-1.4 6.4 1.3 8.4 2.1 1.6 5 1.6 7.1 0 .3-.2.7-.3 1.1-.1.3.2.5.6.5 1-.2 2.7-1.5 5.1-3.6 6.8-1.9 1.4-4.1 2.2-6.4 2.2M9.3 4.4c-2.9 1-5 3.6-5.2 6.8-.4 4.4 2.8 8.3 7.2 8.7 2.1.2 4.2-.4 5.8-1.8 1.1-.9 1.9-2.1 2.4-3.4-2.5.9-5.3.5-7.5-1.1-2.8-2.2-3.9-5.9-2.7-9.2"></path></svg></div></div></div><div class="social-links menu-item_e90a6 flex-center relative"><div class="flex-center h-full gap-x-4 transition-colors duration-300 md:mr-2"><a href="https://github.com/7777even/sevenDesign.git" target="_blank" rel="noopener noreferrer" class="social-links"><div class="social-links-icon_a4ad0"><div><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 24 24"><path fill="currentColor" d="M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></div></div></a></div></div></div></div><div class="mobileNavMenu_e7045"><div class="navScreen_ec30c rspress-nav-screen" id="navScreen"><div class="container_c935d"><div class="navMenu_b887b"><div class="navMenuItem_e7978 w-full"><a href="/sevenDesign/guide/introduction.html" class="link_a7cea "><div class="rspress-nav-menu-item singleItem_c1154 text-sm font-medium mx-1.5 px-3 py-2 flex items-center break-keep">指南</div></a></div><div class="navMenuItem_e7978 w-full"><a href="/sevenDesign/components/button.html" class="link_a7cea "><div class="rspress-nav-menu-item singleItem_c1154 text-sm font-medium mx-1.5 px-3 py-2 flex items-center break-keep">组件</div></a></div></div><div class="flex-center flex-col gap-2"><div class="mt-2 navAppearance_bf893 flex justify-center"></div><div class="social-links menu-item_e90a6 flex-center relative"><div class="flex-center h-full gap-x-4 transition-colors duration-300 md:mr-2"><a href="https://github.com/7777even/sevenDesign.git" target="_blank" rel="noopener noreferrer" class="social-links"><div class="social-links-icon_a4ad0"><div><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 24 24"><path fill="currentColor" d="M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></div></div></a></div></div></div></div></div><button aria-label="mobile hamburger" class=" rspress-mobile-hamburger navHamburger_ac64c text-gray-500"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><circle cx="8" cy="16" r="2" fill="currentColor"></circle><circle cx="16" cy="16" r="2" fill="currentColor"></circle><circle cx="24" cy="16" r="2" fill="currentColor"></circle></svg></button></div></div></div></div><section><div class="m-auto mt-50 p-16 sm:p-8 sm:pt-24 sm:pb-40 text-center flex-center flex-col"><p class="text-6xl font-semibold">404</p><h1 class="leading-5 pt-3 text-xl font-bold">PAGE NOT FOUND</h1><div style="height:1px" class="mt-6 mx-auto mb-4.5 w-16 bg-gray-light-1"></div><div class="pt-5"><a class="py-2 px-4 rounded-2xl inline-block border-solid border-brand text-brand font-medium hover:border-brand-dark hover:text-brand-dark transition-colors duration-300" href="/sevenDesign/" aria-label="go to home">Take me home</a></div></div></section></div>