@appthen/cli 1.2.11 → 1.2.13
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.
- package/bin/main.js +47 -0
- package/dist/index.js +6185 -15001
- package/package.json +8 -4
- package/tests/test-app/.appthen/shadow-space-100001-test-app-e99876b1.json +1197 -741
- package/tests/test-app/.appthen/space-config.json +2 -2
- package/tests/test-app/src/components/MessageCenter.tsx +506 -0
- package/tests/test-app/src/pages/CustomerManagement.tsx +535 -0
- package/tests/test-app/src/pages/CyberpunkDashboard.tsx +348 -0
- package/tests/test-app/src/pages/CyberpunkProductManagement.tsx +637 -0
- package/tests/test-app/src/pages/CyberpunkUserList.tsx +316 -0
- package/tests/test-app/src/pages/DashboardV2.tsx +334 -0
- package/tests/test-app/src/pages/DataReport.tsx +298 -0
- package/tests/test-app/src/pages/DataStatistics.tsx +317 -0
- package/tests/test-app/src/pages/DepartmentManagement.tsx +503 -0
- package/tests/test-app/src/pages/FileExplorer.tsx +441 -0
- package/tests/test-app/src/pages/OrderDetail.tsx +393 -0
- package/tests/test-app/src/pages/ProductManagement.tsx +521 -0
- package/tests/test-app/src/pages/ProjectTimeline.tsx +395 -0
- package/tests/test-app/src/pages/RoleManagement.tsx +523 -0
- package/tests/test-app/src/pages/StaticCyberpunkDashboard.tsx +462 -0
- package/tests/test-app/src/pages/StaticCyberpunkUserList.tsx +567 -0
- package/tests/test-app/src/pages/StudentWeaknessList.tsx +547 -0
- package/tests/test-app/src/pages/SystemSettings.tsx +422 -0
- package/tests/test-app/src/pages/TaskManagement.tsx +467 -0
- package/tests/test-app/src/pages/TicketManagement.tsx +402 -0
- package/tests/test-app/src/pages/UserProfile.tsx +404 -0
- package/tests/test-app/src/pages/WorkflowDesigner.tsx +434 -0
- package/tests/test-app/src/pages/admin/dashboard.tsx +591 -0
- package/tests/test-app/src/pages/article-list.tsx +222 -0
- package/tests/test-app/src/pages/babyProductRecommendationPage.tsx +168 -0
- package/tests/test-app/src/pages/category-list.tsx +179 -0
- package/tests/test-app/src/pages/comment-list.tsx +194 -0
- package/tests/test-app/src/pages/cyberpunk/cyberpunkCRMPage.tsx +1299 -0
- package/tests/test-app/src/pages/data-analytics.tsx +1872 -0
- package/tests/test-app/src/pages/data-overview.tsx +600 -0
- package/tests/test-app/src/pages/demo-error-page.tsx +119 -0
- package/tests/test-app/src/pages/department-list.tsx +183 -0
- package/tests/test-app/src/pages/goods-list.tsx +233 -0
- package/tests/test-app/src/pages/housekeeping/adminDashboardPage.tsx +880 -0
- package/tests/test-app/src/pages/mobile_terminal/uiHandsOnPractice.tsx +1 -1
- package/tests/test-app/src/pages/notice-list.tsx +217 -0
- package/tests/test-app/src/pages/order-detail.tsx +330 -0
- package/tests/test-app/src/pages/order-list.tsx +195 -0
- package/tests/test-app/src/pages/order-management.tsx +563 -0
- package/tests/test-app/src/pages/page/OrderList.tsx +230 -0
- package/tests/test-app/src/pages/role-list.tsx +184 -0
- package/tests/test-app/src/pages/simple/simplePage.tsx +92 -0
- package/tests/test-app/src/pages/simple-page.tsx +43 -0
- package/tests/test-app/src/pages/test-destructure.tsx +44 -0
- package/tests/test-app/src/pages/test-error-page.tsx +75 -0
- package/tests/test-app/src/pages/test-page-with-errors.tsx +51 -0
- package/tests/test-app/src/pages/test-page.tsx +101 -0
- package/tests/test-app/src/pages/test-render.tsx +52 -0
- package/tests/test-app/src/pages/test-return-type.tsx +41 -0
- package/tests/test-app/src/pages/test-type-assertion.tsx +37 -0
- package/tests/test-app/src/pages/ui/styleSelectorPage.tsx +1554 -0
- package/tests/test-app/src/pages/user-list.tsx +212 -0
- package/tests/test-app/src/pages/wrong-page.tsx +50 -0
- package/tests/test-app/.appthen/shadow-space-unknown-user-test-app-e99876b1.json +0 -1060
|
@@ -0,0 +1,1554 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI风格选择器
|
|
3
|
+
* @type Page
|
|
4
|
+
* @route /ui/styles
|
|
5
|
+
* @screen 2560w #f5f5f5
|
|
6
|
+
* @frames web
|
|
7
|
+
*/
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import { Page, Text, View } from '@appthen/react';
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class IProps {
|
|
13
|
+
/* 页面标题 */
|
|
14
|
+
title?: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
* 数据与接口请求定义
|
|
19
|
+
*/
|
|
20
|
+
class IState {
|
|
21
|
+
/* UI风格列表 */
|
|
22
|
+
styles?: {
|
|
23
|
+
/* @example 1 */id?: number,
|
|
24
|
+
/* @example 现代简约 */name?: string,
|
|
25
|
+
/* @example 简洁、留白、清晰,注重内容本身 */description?: string,
|
|
26
|
+
features?: string,
|
|
27
|
+
colors?: string,
|
|
28
|
+
/* @example 现代简约风格,使用大留白、清晰排版、简洁线条,色彩以白色和灰色为主,强调内容本身,去除多余装饰 */prompt?: string,
|
|
29
|
+
}[];
|
|
30
|
+
/* Toast显示状态 */
|
|
31
|
+
toastVisible?: boolean;
|
|
32
|
+
/* Toast消息 */
|
|
33
|
+
toastMessage?: string;
|
|
34
|
+
/* 预览模态框显示状态 */
|
|
35
|
+
previewVisible?: boolean;
|
|
36
|
+
/* 当前预览的风格 */
|
|
37
|
+
currentStyle?: any;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
class Document extends React.Component<IProps, IState> {
|
|
41
|
+
state = {
|
|
42
|
+
styles: [
|
|
43
|
+
{
|
|
44
|
+
id: 1,
|
|
45
|
+
name: '现代简约',
|
|
46
|
+
description: '简洁、留白、清晰,注重内容本身',
|
|
47
|
+
features: ['大留白', '清晰排版', '无装饰'],
|
|
48
|
+
colors: ['#ffffff', '#f5f5f5', '#333333'],
|
|
49
|
+
prompt:
|
|
50
|
+
'现代简约风格,使用大留白、清晰排版、简洁线条,色彩以白色和灰色为主,强调内容本身,去除多余装饰',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: 2,
|
|
54
|
+
name: '玻璃拟态',
|
|
55
|
+
description: '毛玻璃效果、半透明、柔和阴影',
|
|
56
|
+
features: ['毛玻璃', '半透明', '柔和阴影'],
|
|
57
|
+
colors: ['rgba(255,255,255,0.2)', '#e0e5ec', '#6366f1'],
|
|
58
|
+
prompt:
|
|
59
|
+
'玻璃拟态风格,使用毛玻璃效果、半透明背景、柔和阴影,色彩偏冷色调,营造通透感和层次感',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: 3,
|
|
63
|
+
name: '新拟态',
|
|
64
|
+
description: '柔和阴影、凸起凹陷、真实触感',
|
|
65
|
+
features: ['软阴影', '凸起效果', '触感真实'],
|
|
66
|
+
colors: ['#e0e5ec', '#ffffff', '#a3b1c6'],
|
|
67
|
+
prompt:
|
|
68
|
+
'新拟态风格,使用柔和阴影创造凸起和凹陷效果,色彩为浅灰色系,营造真实触感和立体感',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
id: 4,
|
|
72
|
+
name: '扁平化',
|
|
73
|
+
description: '无阴影、纯色块、简洁图标',
|
|
74
|
+
features: ['无阴影', '纯色块', '简洁图标'],
|
|
75
|
+
colors: ['#3498db', '#2ecc71', '#e74c3c'],
|
|
76
|
+
prompt:
|
|
77
|
+
'扁平化风格,去除所有阴影和渐变,使用纯色块和简洁图标,色彩鲜艳对比强烈,强调简洁明了',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
id: 5,
|
|
81
|
+
name: '赛博朋克',
|
|
82
|
+
description: '霓虹灯、未来感、暗黑背景',
|
|
83
|
+
features: ['霓虹灯', '未来感', '暗黑背景'],
|
|
84
|
+
colors: ['#00ff87', '#60efff', '#0d0221'],
|
|
85
|
+
prompt:
|
|
86
|
+
'赛博朋克风格,使用霓虹灯色彩、发光效果、暗黑背景,营造未来科技感和反乌托邦氛围',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
id: 6,
|
|
90
|
+
name: '暗黑模式',
|
|
91
|
+
description: '深色背景、高对比度、护眼',
|
|
92
|
+
features: ['深色背景', '高对比度', '护眼'],
|
|
93
|
+
colors: ['#1a1a1a', '#2d2d2d', '#ffffff'],
|
|
94
|
+
prompt:
|
|
95
|
+
'暗黑模式风格,使用深色背景、高对比度文字,减少眼睛疲劳,营造沉浸式体验',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
id: 7,
|
|
99
|
+
name: '卡片式',
|
|
100
|
+
description: '圆角卡片、阴影层次、模块化',
|
|
101
|
+
features: ['圆角卡片', '阴影层次', '模块化'],
|
|
102
|
+
colors: ['#ffffff', '#f8f9fa', '#dee2e6'],
|
|
103
|
+
prompt:
|
|
104
|
+
'卡片式风格,使用圆角卡片、柔和阴影、模块化布局,内容清晰分组,层次分明',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
id: 8,
|
|
108
|
+
name: '渐变风格',
|
|
109
|
+
description: '色彩渐变、流动感、视觉冲击',
|
|
110
|
+
features: ['色彩渐变', '流动感', '视觉冲击'],
|
|
111
|
+
colors: ['#667eea', '#764ba2', '#f093fb'],
|
|
112
|
+
prompt:
|
|
113
|
+
'渐变风格,使用丰富的色彩渐变、流动的视觉效果,营造动感和现代感,视觉冲击力强',
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
id: 9,
|
|
117
|
+
name: '极简主义',
|
|
118
|
+
description: '最少元素、功能优先、克制设计',
|
|
119
|
+
features: ['最少元素', '功能优先', '克制设计'],
|
|
120
|
+
colors: ['#ffffff', '#000000', '#f0f0f0'],
|
|
121
|
+
prompt:
|
|
122
|
+
'极简主义风格,使用最少的元素和色彩,功能优先,克制设计,强调"少即是多"的理念',
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
id: 10,
|
|
126
|
+
name: '复古风格',
|
|
127
|
+
description: '怀旧色彩、复古字体、经典元素',
|
|
128
|
+
features: ['怀旧色彩', '复古字体', '经典元素'],
|
|
129
|
+
colors: ['#d4a373', '#faedcd', '#ccd5ae'],
|
|
130
|
+
prompt:
|
|
131
|
+
'复古风格,使用怀旧色彩、复古字体和经典设计元素,营造温暖怀旧的氛围',
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
id: 11,
|
|
135
|
+
name: '科技感',
|
|
136
|
+
description: '蓝色调、线条感、数据可视化',
|
|
137
|
+
features: ['蓝色调', '线条感', '数据可视化'],
|
|
138
|
+
colors: ['#0066cc', '#00ccff', '#001a33'],
|
|
139
|
+
prompt:
|
|
140
|
+
'科技感风格,使用蓝色调、线条感设计、数据可视化元素,营造专业科技氛围',
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
id: 12,
|
|
144
|
+
name: '自然风格',
|
|
145
|
+
description: '自然色彩、有机形状、植物元素',
|
|
146
|
+
features: ['自然色彩', '有机形状', '植物元素'],
|
|
147
|
+
colors: ['#2d6a4f', '#95d5b2', '#d8f3dc'],
|
|
148
|
+
prompt:
|
|
149
|
+
'自然风格,使用自然色彩、有机形状、植物元素,营造清新自然、和谐舒适的氛围',
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
id: 13,
|
|
153
|
+
name: '波普艺术',
|
|
154
|
+
description: '大胆色彩、重复图案、流行文化',
|
|
155
|
+
features: ['大胆色彩', '重复图案', '流行文化'],
|
|
156
|
+
colors: ['#ff6b6b', '#ffd93d', '#6bcb77'],
|
|
157
|
+
prompt:
|
|
158
|
+
'波普艺术风格,使用大胆鲜艳色彩、重复图案、流行文化元素,营造活泼有趣的视觉效果',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
id: 14,
|
|
162
|
+
name: '手绘风格',
|
|
163
|
+
description: '手绘线条、不规则形状、温暖感',
|
|
164
|
+
features: ['手绘线条', '不规则形状', '温暖感'],
|
|
165
|
+
colors: ['#f4a261', '#e9c46a', '#2a9d8f'],
|
|
166
|
+
prompt:
|
|
167
|
+
'手绘风格,使用手绘线条、不规则形状、温暖色彩,营造亲切友好的氛围',
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
id: 15,
|
|
171
|
+
name: '商务专业',
|
|
172
|
+
description: '稳重色彩、清晰层次、信任感',
|
|
173
|
+
features: ['稳重色彩', '清晰层次', '信任感'],
|
|
174
|
+
colors: ['#1e3a8a', '#3b82f6', '#f8fafc'],
|
|
175
|
+
prompt:
|
|
176
|
+
'商务专业风格,使用稳重色彩、清晰层次、专业排版,营造可信赖的专业形象',
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
id: 16,
|
|
180
|
+
name: 'Material Design',
|
|
181
|
+
description: '谷歌Material Design风格,卡片阴影、涟漪效果',
|
|
182
|
+
features: ['卡片阴影', '涟漪效果', '蓝色主题'],
|
|
183
|
+
colors: ['#1a73e8', '#4285f4', '#e8f0fe'],
|
|
184
|
+
prompt:
|
|
185
|
+
'谷歌Material Design风格,使用卡片阴影、涟漪效果、蓝色主题,层次分明,交互丰富,遵循Material Design设计规范',
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
id: 17,
|
|
189
|
+
name: '飞书风格',
|
|
190
|
+
description: '飞书Lark风格,简洁现代、蓝色圆角',
|
|
191
|
+
features: ['简洁现代', '蓝色圆角', '卡片式'],
|
|
192
|
+
colors: ['#3370ff', '#dee0e3', '#f5f6f7'],
|
|
193
|
+
prompt:
|
|
194
|
+
'飞书Lark风格,使用简洁现代的设计语言,蓝色主题,圆角卡片,清晰的视觉层次,适合企业协作产品',
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
id: 18,
|
|
198
|
+
name: '字节跳动风格',
|
|
199
|
+
description: '字节跳动风格,活力橙色、年轻化',
|
|
200
|
+
features: ['活力橙色', '年轻化', '动效丰富'],
|
|
201
|
+
colors: ['#f85959', '#ff7b7b', '#fff5f5'],
|
|
202
|
+
prompt:
|
|
203
|
+
'字节跳动风格,使用活力橙色主题,年轻化设计,丰富的动效,圆角元素,充满活力和创新感',
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
id: 19,
|
|
207
|
+
name: 'Figma风格',
|
|
208
|
+
description: 'Figma设计工具风格,暗色紫色、专业工具',
|
|
209
|
+
features: ['暗色紫色', '专业工具', '界面紧凑'],
|
|
210
|
+
colors: ['#1c1c1e', '#2c2c2e', '#8b5cf6'],
|
|
211
|
+
prompt:
|
|
212
|
+
'Figma风格,使用暗色背景,紫色主题,紧凑的界面布局,专业工具感,适合设计类产品',
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
id: 20,
|
|
216
|
+
name: 'Apple风格',
|
|
217
|
+
description: '苹果iOS风格,毛玻璃、优雅简洁',
|
|
218
|
+
features: ['毛玻璃', '优雅简洁', 'SF字体'],
|
|
219
|
+
colors: ['#f5f5f7', '#ffffff', '#007aff'],
|
|
220
|
+
prompt:
|
|
221
|
+
'苹果iOS风格,使用毛玻璃效果、优雅简洁的设计、SF字体,圆角元素,细腻的动画,高端质感',
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
id: 21,
|
|
225
|
+
name: 'Microsoft Fluent',
|
|
226
|
+
description: '微软Fluent设计,亚克力效果、深度层次',
|
|
227
|
+
features: ['亚克力效果', '深度层次', '明亮配色'],
|
|
228
|
+
colors: ['#0078d4', '#00bcf2', '#f3f2f1'],
|
|
229
|
+
prompt:
|
|
230
|
+
'微软Fluent设计风格,使用亚克力效果、深度层次、明亮配色,光影效果丰富,现代感强',
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
id: 22,
|
|
234
|
+
name: '淘宝风格',
|
|
235
|
+
description: '淘宝电商风格,橙色活力、促销感',
|
|
236
|
+
features: ['橙色活力', '促销感', '信息密集'],
|
|
237
|
+
colors: ['#ff5000', '#ff9000', '#ffede8'],
|
|
238
|
+
prompt:
|
|
239
|
+
'淘宝电商风格,使用橙色主题,充满活力的促销感,信息密集但有序,适合电商产品',
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
id: 23,
|
|
243
|
+
name: '微信风格',
|
|
244
|
+
description: '微信社交风格,绿色简洁、清新友好',
|
|
245
|
+
features: ['绿色简洁', '清新友好', '卡片气泡'],
|
|
246
|
+
colors: ['#07c160', '#95ec69', '#f5f5f5'],
|
|
247
|
+
prompt:
|
|
248
|
+
'微信社交风格,使用绿色主题,清新友好的设计,卡片气泡布局,简洁实用,适合社交产品',
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
id: 24,
|
|
252
|
+
name: 'B站风格',
|
|
253
|
+
description: '哔哩哔哩风格,粉色年轻、二次元',
|
|
254
|
+
features: ['粉色年轻', '二次元', '活泼有趣'],
|
|
255
|
+
colors: ['#fb7299', '#23ade5', '#ffffff'],
|
|
256
|
+
prompt:
|
|
257
|
+
'哔哩哔哩风格,使用粉色和蓝色主题,年轻化设计,二次元元素,活泼有趣,适合视频社区',
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
id: 25,
|
|
261
|
+
name: 'Notion风格',
|
|
262
|
+
description: 'Notion文档风格,极简灰白、内容优先',
|
|
263
|
+
features: ['极简灰白', '内容优先', '模块化'],
|
|
264
|
+
colors: ['#ffffff', '#f7f7f5', '#37352f'],
|
|
265
|
+
prompt:
|
|
266
|
+
'Notion风格,使用极简的灰白配色,内容优先的设计,模块化布局,清晰的信息架构,适合文档和知识管理',
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
id: 26,
|
|
270
|
+
name: 'Linear风格',
|
|
271
|
+
description: 'Linear任务管理,暗色紫色、现代科技',
|
|
272
|
+
features: ['暗色紫色', '现代科技', '流畅动效'],
|
|
273
|
+
colors: ['#5e6ad2', '#8e44ad', '#0a0a0b'],
|
|
274
|
+
prompt:
|
|
275
|
+
'Linear风格,使用暗色背景,紫色主题,现代科技感,流畅的动效,适合任务管理和协作工具',
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
id: 27,
|
|
279
|
+
name: 'Vercel风格',
|
|
280
|
+
description: 'Vercel极简黑白,科技感、开发者友好',
|
|
281
|
+
features: ['极简黑白', '科技感', '开发者友好'],
|
|
282
|
+
colors: ['#000000', '#ffffff', '#0070f3'],
|
|
283
|
+
prompt:
|
|
284
|
+
'Vercel风格,使用极简的黑白配色,强烈的科技感,开发者友好的设计,清晰的信息展示,适合开发者工具',
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
id: 28,
|
|
288
|
+
name: 'Stripe风格',
|
|
289
|
+
description: 'Stripe支付风格,蓝紫渐变、专业金融',
|
|
290
|
+
features: ['蓝紫渐变', '专业金融', '精致细节'],
|
|
291
|
+
colors: ['#635bff', '#80eeff', '#0a2540'],
|
|
292
|
+
prompt:
|
|
293
|
+
'Stripe风格,使用蓝紫渐变,专业金融感,精致的细节设计,值得信赖,适合金融和支付产品',
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
id: 29,
|
|
297
|
+
name: 'Airbnb风格',
|
|
298
|
+
description: 'Airbnb旅行风格,活力圆润、温暖友好',
|
|
299
|
+
features: ['活力圆润', '温暖友好', '图片主导'],
|
|
300
|
+
colors: ['#ff385c', '#008489', '#ffffff'],
|
|
301
|
+
prompt:
|
|
302
|
+
'Airbnb风格,使用活力圆润的设计,温暖友好的氛围,图片主导的布局,适合旅行和生活方式产品',
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
id: 30,
|
|
306
|
+
name: 'Spotify风格',
|
|
307
|
+
description: 'Spotify音乐风格,黑色绿色、沉浸体验',
|
|
308
|
+
features: ['黑色绿色', '沉浸体验', '圆角卡片'],
|
|
309
|
+
colors: ['#000000', '#1db954', '#191414'],
|
|
310
|
+
prompt:
|
|
311
|
+
'Spotify风格,使用黑色背景,绿色主题,沉浸式的音乐体验,圆角卡片,适合音乐和娱乐产品',
|
|
312
|
+
},
|
|
313
|
+
],
|
|
314
|
+
toastVisible: false,
|
|
315
|
+
toastMessage: '',
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
handleCopyPrompt(style) {
|
|
319
|
+
navigator.clipboard.writeText(style.prompt).then(() => {
|
|
320
|
+
this.setState({
|
|
321
|
+
toastVisible: true,
|
|
322
|
+
toastMessage: `已复制 "${style.name}" 提示词`,
|
|
323
|
+
});
|
|
324
|
+
setTimeout(() => {
|
|
325
|
+
this.setState({
|
|
326
|
+
toastVisible: false,
|
|
327
|
+
});
|
|
328
|
+
}, 2000);
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
handlePreview(style) {
|
|
333
|
+
this.setState({
|
|
334
|
+
previewVisible: true,
|
|
335
|
+
currentStyle: style,
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
handleClosePreview() {
|
|
340
|
+
this.setState({
|
|
341
|
+
previewVisible: false,
|
|
342
|
+
currentStyle: null,
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
renderStylePreview(style) {
|
|
347
|
+
const styleId = style.id;
|
|
348
|
+
return (
|
|
349
|
+
<div className="space-y-6">
|
|
350
|
+
{/* 现代简约 */}
|
|
351
|
+
{styleId === 1 && (
|
|
352
|
+
<div className="bg-white p-8 space-y-6">
|
|
353
|
+
<div className="text-center py-12">
|
|
354
|
+
<h3 className="text-3xl font-light text-gray-900 mb-4">
|
|
355
|
+
现代简约
|
|
356
|
+
</h3>
|
|
357
|
+
<p className="text-gray-500 max-w-md mx-auto">
|
|
358
|
+
少即是多,留白让内容呼吸
|
|
359
|
+
</p>
|
|
360
|
+
</div>
|
|
361
|
+
<div className="flex justify-center space-x-4">
|
|
362
|
+
<button className="px-8 py-3 bg-gray-900 text-white text-sm tracking-wider hover:bg-gray-700 transition-colors">
|
|
363
|
+
<span>按钮</span>
|
|
364
|
+
</button>
|
|
365
|
+
<button className="px-8 py-3 border-2 border-gray-900 text-gray-900 text-sm tracking-wider hover:bg-gray-900 hover:text-white transition-colors">
|
|
366
|
+
<span>按钮</span>
|
|
367
|
+
</button>
|
|
368
|
+
</div>
|
|
369
|
+
<div className="max-w-md mx-auto">
|
|
370
|
+
<input
|
|
371
|
+
type="text"
|
|
372
|
+
placeholder="输入框..."
|
|
373
|
+
className="w-full px-4 py-3 border border-gray-200 focus:outline-none focus:border-gray-900 transition-colors"
|
|
374
|
+
/>
|
|
375
|
+
</div>
|
|
376
|
+
</div>
|
|
377
|
+
)}
|
|
378
|
+
|
|
379
|
+
{/* 玻璃拟态 */}
|
|
380
|
+
{styleId === 2 && (
|
|
381
|
+
<div className="bg-gradient-to-br from-indigo-500 via-purple-500 to-pink-500 p-8 space-y-6">
|
|
382
|
+
<div className="backdrop-blur-xl bg-white/20 rounded-2xl p-8 border border-white/30 shadow-xl">
|
|
383
|
+
<h3 className="text-2xl font-bold text-white mb-4">玻璃拟态</h3>
|
|
384
|
+
<p className="text-white/80 mb-6">毛玻璃效果,半透明质感</p>
|
|
385
|
+
<div className="space-y-4">
|
|
386
|
+
<button className="w-full py-3 bg-white/30 text-white rounded-xl hover:bg-white/40 transition-colors backdrop-blur-sm">
|
|
387
|
+
<span>按钮</span>
|
|
388
|
+
</button>
|
|
389
|
+
<input
|
|
390
|
+
type="text"
|
|
391
|
+
placeholder="输入框..."
|
|
392
|
+
className="w-full px-4 py-3 bg-white/20 text-white placeholder-white/60 rounded-xl border border-white/30 focus:outline-none focus:border-white/50 backdrop-blur-sm"
|
|
393
|
+
/>
|
|
394
|
+
</div>
|
|
395
|
+
</div>
|
|
396
|
+
</div>
|
|
397
|
+
)}
|
|
398
|
+
|
|
399
|
+
{/* 新拟态 */}
|
|
400
|
+
{styleId === 3 && (
|
|
401
|
+
<div className="bg-[#e0e5ec] p-8 space-y-6">
|
|
402
|
+
<div className="text-center py-8">
|
|
403
|
+
<h3 className="text-2xl font-bold text-gray-700 mb-4">新拟态</h3>
|
|
404
|
+
<p className="text-gray-500">软阴影,真实触感</p>
|
|
405
|
+
</div>
|
|
406
|
+
<div className="flex justify-center space-x-4">
|
|
407
|
+
<button className="px-8 py-3 bg-[#e0e5ec] text-gray-700 rounded-xl shadow-[8px_8px_16px_#b8bec7,-8px_-8px_16px_#ffffff] hover:shadow-[4px_4px_8px_#b8bec7,-4px_-4px_8px_#ffffff] transition-shadow">
|
|
408
|
+
<span>凸起按钮</span>
|
|
409
|
+
</button>
|
|
410
|
+
<button className="px-8 py-3 bg-[#e0e5ec] text-gray-700 rounded-xl shadow-[inset_4px_4px_8px_#b8bec7,inset_-4px_-4px_8px_#ffffff]">
|
|
411
|
+
<span>凹陷按钮</span>
|
|
412
|
+
</button>
|
|
413
|
+
</div>
|
|
414
|
+
<div className="max-w-md mx-auto">
|
|
415
|
+
<input
|
|
416
|
+
type="text"
|
|
417
|
+
placeholder="输入框..."
|
|
418
|
+
className="w-full px-4 py-3 bg-[#e0e5ec] text-gray-700 rounded-xl shadow-[inset_4px_4px_8px_#b8bec7,inset_-4px_-4px_8px_#ffffff] focus:outline-none"
|
|
419
|
+
/>
|
|
420
|
+
</div>
|
|
421
|
+
</div>
|
|
422
|
+
)}
|
|
423
|
+
|
|
424
|
+
{/* 扁平化 */}
|
|
425
|
+
{styleId === 4 && (
|
|
426
|
+
<div className="bg-white p-8 space-y-6">
|
|
427
|
+
<div className="text-center py-8">
|
|
428
|
+
<h3 className="text-2xl font-bold text-gray-900 mb-4">扁平化</h3>
|
|
429
|
+
<p className="text-gray-600">无阴影,纯色块,简洁明了</p>
|
|
430
|
+
</div>
|
|
431
|
+
<div className="flex justify-center space-x-4">
|
|
432
|
+
<button className="px-8 py-3 bg-blue-500 text-white font-bold hover:bg-blue-600 transition-colors">
|
|
433
|
+
<span>主要按钮</span>
|
|
434
|
+
</button>
|
|
435
|
+
<button className="px-8 py-3 bg-green-500 text-white font-bold hover:bg-green-600 transition-colors">
|
|
436
|
+
<span>成功按钮</span>
|
|
437
|
+
</button>
|
|
438
|
+
<button className="px-8 py-3 bg-red-500 text-white font-bold hover:bg-red-600 transition-colors">
|
|
439
|
+
<span>危险按钮</span>
|
|
440
|
+
</button>
|
|
441
|
+
</div>
|
|
442
|
+
<div className="max-w-md mx-auto">
|
|
443
|
+
<input
|
|
444
|
+
type="text"
|
|
445
|
+
placeholder="输入框..."
|
|
446
|
+
className="w-full px-4 py-3 bg-gray-100 border-2 border-gray-300 text-gray-900 font-bold focus:outline-none focus:border-blue-500"
|
|
447
|
+
/>
|
|
448
|
+
</div>
|
|
449
|
+
</div>
|
|
450
|
+
)}
|
|
451
|
+
|
|
452
|
+
{/* 赛博朋克 */}
|
|
453
|
+
{styleId === 5 && (
|
|
454
|
+
<div className="bg-[#0d0221] p-8 space-y-6">
|
|
455
|
+
<div className="text-center py-8">
|
|
456
|
+
<h3
|
|
457
|
+
className="text-3xl font-bold text-[#00ff87] mb-4"
|
|
458
|
+
style={{
|
|
459
|
+
textShadow: '0 0 10px #00ff87, 0 0 20px #00ff87',
|
|
460
|
+
}}
|
|
461
|
+
>
|
|
462
|
+
赛博朋克
|
|
463
|
+
</h3>
|
|
464
|
+
<p className="text-[#60efff]">霓虹灯,未来感,暗黑背景</p>
|
|
465
|
+
</div>
|
|
466
|
+
<div className="flex justify-center space-x-4">
|
|
467
|
+
<button
|
|
468
|
+
className="px-8 py-3 bg-transparent border-2 border-[#00ff87] text-[#00ff87] font-bold hover:bg-[#00ff87] hover:text-[#0d0221] transition-all"
|
|
469
|
+
style={{
|
|
470
|
+
boxShadow: '0 0 10px #00ff87',
|
|
471
|
+
}}
|
|
472
|
+
>
|
|
473
|
+
<span>按钮</span>
|
|
474
|
+
</button>
|
|
475
|
+
<button className="px-8 py-3 bg-[#60efff] text-[#0d0221] font-bold hover:shadow-[0_0_20px_#60efff] transition-all">
|
|
476
|
+
<span>按钮</span>
|
|
477
|
+
</button>
|
|
478
|
+
</div>
|
|
479
|
+
<div className="max-w-md mx-auto">
|
|
480
|
+
<input
|
|
481
|
+
type="text"
|
|
482
|
+
placeholder="输入框..."
|
|
483
|
+
className="w-full px-4 py-3 bg-transparent border-2 border-[#60efff] text-[#60efff] placeholder-[#60efff]/50 focus:outline-none focus:shadow-[0_0_10px_#60efff]"
|
|
484
|
+
/>
|
|
485
|
+
</div>
|
|
486
|
+
</div>
|
|
487
|
+
)}
|
|
488
|
+
|
|
489
|
+
{/* 暗黑模式 */}
|
|
490
|
+
{styleId === 6 && (
|
|
491
|
+
<div className="bg-[#1a1a1a] p-8 space-y-6">
|
|
492
|
+
<div className="text-center py-8">
|
|
493
|
+
<h3 className="text-3xl font-bold text-white mb-4">暗黑模式</h3>
|
|
494
|
+
<p className="text-gray-400">深色背景,高对比度,护眼舒适</p>
|
|
495
|
+
</div>
|
|
496
|
+
<div className="flex justify-center space-x-4">
|
|
497
|
+
<button className="px-8 py-3 bg-white text-[#1a1a1a] font-bold hover:bg-gray-200 transition-colors">
|
|
498
|
+
<span>主要按钮</span>
|
|
499
|
+
</button>
|
|
500
|
+
<button className="px-8 py-3 bg-[#2d2d2d] text-white font-bold border border-gray-600 hover:bg-[#3d3d3d] transition-colors">
|
|
501
|
+
<span>次要按钮</span>
|
|
502
|
+
</button>
|
|
503
|
+
</div>
|
|
504
|
+
<div className="max-w-md mx-auto">
|
|
505
|
+
<input
|
|
506
|
+
type="text"
|
|
507
|
+
placeholder="输入框..."
|
|
508
|
+
className="w-full px-4 py-3 bg-[#2d2d2d] text-white placeholder-gray-500 border border-gray-700 focus:outline-none focus:border-white"
|
|
509
|
+
/>
|
|
510
|
+
</div>
|
|
511
|
+
</div>
|
|
512
|
+
)}
|
|
513
|
+
|
|
514
|
+
{/* 卡片式 */}
|
|
515
|
+
{styleId === 7 && (
|
|
516
|
+
<div className="bg-gray-100 p-8 space-y-6">
|
|
517
|
+
<div className="bg-white rounded-2xl shadow-lg p-6">
|
|
518
|
+
<h3 className="text-2xl font-bold text-gray-900 mb-4">卡片式</h3>
|
|
519
|
+
<p className="text-gray-600 mb-6">圆角卡片,阴影层次,模块化</p>
|
|
520
|
+
<div className="flex space-x-4">
|
|
521
|
+
<button className="px-6 py-3 bg-blue-500 text-white rounded-xl hover:bg-blue-600 transition-colors shadow-md">
|
|
522
|
+
<span>按钮</span>
|
|
523
|
+
</button>
|
|
524
|
+
<button className="px-6 py-3 bg-gray-200 text-gray-700 rounded-xl hover:bg-gray-300 transition-colors">
|
|
525
|
+
<span>按钮</span>
|
|
526
|
+
</button>
|
|
527
|
+
</div>
|
|
528
|
+
</div>
|
|
529
|
+
<div className="bg-white rounded-2xl shadow-md p-6">
|
|
530
|
+
<input
|
|
531
|
+
type="text"
|
|
532
|
+
placeholder="输入框..."
|
|
533
|
+
className="w-full px-4 py-3 bg-gray-50 border border-gray-200 rounded-xl focus:outline-none focus:ring-2 focus:ring-blue-500"
|
|
534
|
+
/>
|
|
535
|
+
</div>
|
|
536
|
+
</div>
|
|
537
|
+
)}
|
|
538
|
+
|
|
539
|
+
{/* 渐变风格 */}
|
|
540
|
+
{styleId === 8 && (
|
|
541
|
+
<div className="bg-white p-8 space-y-6">
|
|
542
|
+
<div className="text-center py-8">
|
|
543
|
+
<h3 className="text-3xl font-bold bg-gradient-to-r from-purple-600 via-pink-500 to-red-500 bg-clip-text text-transparent mb-4">
|
|
544
|
+
渐变风格
|
|
545
|
+
</h3>
|
|
546
|
+
<p className="text-gray-600">色彩渐变,流动感,视觉冲击</p>
|
|
547
|
+
</div>
|
|
548
|
+
<div className="flex justify-center space-x-4">
|
|
549
|
+
<button className="px-8 py-3 bg-gradient-to-r from-purple-500 to-pink-500 text-white font-bold rounded-xl hover:opacity-90 transition-opacity shadow-lg">
|
|
550
|
+
<span>按钮</span>
|
|
551
|
+
</button>
|
|
552
|
+
<button className="px-8 py-3 bg-gradient-to-r from-blue-500 to-cyan-500 text-white font-bold rounded-xl hover:opacity-90 transition-opacity shadow-lg">
|
|
553
|
+
<span>按钮</span>
|
|
554
|
+
</button>
|
|
555
|
+
</div>
|
|
556
|
+
<div className="max-w-md mx-auto">
|
|
557
|
+
<input
|
|
558
|
+
type="text"
|
|
559
|
+
placeholder="输入框..."
|
|
560
|
+
className="w-full px-4 py-3 bg-gradient-to-r from-purple-50 to-pink-50 border-2 border-purple-200 rounded-xl focus:outline-none focus:border-purple-500"
|
|
561
|
+
/>
|
|
562
|
+
</div>
|
|
563
|
+
</div>
|
|
564
|
+
)}
|
|
565
|
+
|
|
566
|
+
{/* 极简主义 */}
|
|
567
|
+
{styleId === 9 && (
|
|
568
|
+
<div className="bg-white p-8 space-y-6">
|
|
569
|
+
<div className="text-center py-12">
|
|
570
|
+
<h3 className="text-2xl font-light text-black mb-4">极简主义</h3>
|
|
571
|
+
<p className="text-gray-400 text-sm">最少元素,功能优先</p>
|
|
572
|
+
</div>
|
|
573
|
+
<div className="flex justify-center space-x-6">
|
|
574
|
+
<button className="px-6 py-2 bg-black text-white text-sm hover:bg-gray-800 transition-colors">
|
|
575
|
+
<span>按钮</span>
|
|
576
|
+
</button>
|
|
577
|
+
</div>
|
|
578
|
+
<div className="max-w-md mx-auto">
|
|
579
|
+
<input
|
|
580
|
+
type="text"
|
|
581
|
+
placeholder="输入"
|
|
582
|
+
className="w-full px-0 py-2 border-b border-black bg-transparent focus:outline-none"
|
|
583
|
+
/>
|
|
584
|
+
</div>
|
|
585
|
+
</div>
|
|
586
|
+
)}
|
|
587
|
+
|
|
588
|
+
{/* 复古风格 */}
|
|
589
|
+
{styleId === 10 && (
|
|
590
|
+
<div className="bg-[#faedcd] p-8 space-y-6">
|
|
591
|
+
<div className="text-center py-8">
|
|
592
|
+
<h3 className="text-3xl font-serif text-[#d4a373] mb-4">
|
|
593
|
+
复古风格
|
|
594
|
+
</h3>
|
|
595
|
+
<p className="text-[#ccd5ae]">怀旧色彩,温暖氛围</p>
|
|
596
|
+
</div>
|
|
597
|
+
<div className="flex justify-center space-x-4">
|
|
598
|
+
<button className="px-8 py-3 bg-[#d4a373] text-white font-serif hover:bg-[#c49463] transition-colors rounded-lg">
|
|
599
|
+
<span>按钮</span>
|
|
600
|
+
</button>
|
|
601
|
+
<button className="px-8 py-3 bg-[#ccd5ae] text-[#d4a373] font-serif hover:bg-[#bbc59e] transition-colors rounded-lg">
|
|
602
|
+
<span>按钮</span>
|
|
603
|
+
</button>
|
|
604
|
+
</div>
|
|
605
|
+
<div className="max-w-md mx-auto">
|
|
606
|
+
<input
|
|
607
|
+
type="text"
|
|
608
|
+
placeholder="输入框..."
|
|
609
|
+
className="w-full px-4 py-3 bg-white/80 border-2 border-[#d4a373] text-[#d4a373] placeholder-[#d4a373]/50 rounded-lg focus:outline-none"
|
|
610
|
+
/>
|
|
611
|
+
</div>
|
|
612
|
+
</div>
|
|
613
|
+
)}
|
|
614
|
+
|
|
615
|
+
{/* 科技感 */}
|
|
616
|
+
{styleId === 11 && (
|
|
617
|
+
<div className="bg-[#001a33] p-8 space-y-6">
|
|
618
|
+
<div className="text-center py-8">
|
|
619
|
+
<h3
|
|
620
|
+
className="text-2xl font-bold text-[#00ccff] mb-4"
|
|
621
|
+
style={{
|
|
622
|
+
textShadow: '0 0 10px #00ccff',
|
|
623
|
+
}}
|
|
624
|
+
>
|
|
625
|
+
科技感
|
|
626
|
+
</h3>
|
|
627
|
+
<p className="text-[#0066cc]">蓝色调,线条感,专业科技</p>
|
|
628
|
+
</div>
|
|
629
|
+
<div className="flex justify-center space-x-4">
|
|
630
|
+
<button
|
|
631
|
+
className="px-8 py-3 bg-[#0066cc] text-white font-bold hover:bg-[#0088ff] transition-colors border border-[#00ccff]"
|
|
632
|
+
style={{
|
|
633
|
+
boxShadow: '0 0 15px rgba(0, 204, 255, 0.3)',
|
|
634
|
+
}}
|
|
635
|
+
>
|
|
636
|
+
<span>按钮</span>
|
|
637
|
+
</button>
|
|
638
|
+
<button className="px-8 py-3 bg-transparent border-2 border-[#00ccff] text-[#00ccff] font-bold hover:bg-[#00ccff]/10 transition-colors">
|
|
639
|
+
<span>按钮</span>
|
|
640
|
+
</button>
|
|
641
|
+
</div>
|
|
642
|
+
<div className="max-w-md mx-auto">
|
|
643
|
+
<input
|
|
644
|
+
type="text"
|
|
645
|
+
placeholder="输入框..."
|
|
646
|
+
className="w-full px-4 py-3 bg-[#003366] text-[#00ccff] placeholder-[#00ccff]/50 border border-[#0066cc] focus:outline-none focus:border-[#00ccff]"
|
|
647
|
+
/>
|
|
648
|
+
</div>
|
|
649
|
+
</div>
|
|
650
|
+
)}
|
|
651
|
+
|
|
652
|
+
{/* 自然风格 */}
|
|
653
|
+
{styleId === 12 && (
|
|
654
|
+
<div className="bg-[#d8f3dc] p-8 space-y-6">
|
|
655
|
+
<div className="text-center py-8">
|
|
656
|
+
<h3 className="text-3xl font-bold text-[#2d6a4f] mb-4">
|
|
657
|
+
自然风格
|
|
658
|
+
</h3>
|
|
659
|
+
<p className="text-[#95d5b2]">自然色彩,有机形状</p>
|
|
660
|
+
</div>
|
|
661
|
+
<div className="flex justify-center space-x-4">
|
|
662
|
+
<button className="px-8 py-3 bg-[#2d6a4f] text-white font-bold hover:bg-[#1b4332] transition-colors rounded-full">
|
|
663
|
+
<span>按钮</span>
|
|
664
|
+
</button>
|
|
665
|
+
<button className="px-8 py-3 bg-[#95d5b2] text-[#2d6a4f] font-bold hover:bg-[#74c69d] transition-colors rounded-full">
|
|
666
|
+
<span>按钮</span>
|
|
667
|
+
</button>
|
|
668
|
+
</div>
|
|
669
|
+
<div className="max-w-md mx-auto">
|
|
670
|
+
<input
|
|
671
|
+
type="text"
|
|
672
|
+
placeholder="输入框..."
|
|
673
|
+
className="w-full px-4 py-3 bg-white/70 border-2 border-[#95d5b2] text-[#2d6a4f] placeholder-[#2d6a4f]/50 rounded-full focus:outline-none focus:border-[#2d6a4f]"
|
|
674
|
+
/>
|
|
675
|
+
</div>
|
|
676
|
+
</div>
|
|
677
|
+
)}
|
|
678
|
+
|
|
679
|
+
{/* 波普艺术 */}
|
|
680
|
+
{styleId === 13 && (
|
|
681
|
+
<div className="bg-[#ffd93d] p-8 space-y-6">
|
|
682
|
+
<div className="text-center py-8">
|
|
683
|
+
<h3
|
|
684
|
+
className="text-4xl font-black text-[#ff6b6b] mb-4"
|
|
685
|
+
style={{
|
|
686
|
+
textShadow: '3px 3px 0 #6bcb77',
|
|
687
|
+
}}
|
|
688
|
+
>
|
|
689
|
+
波普艺术
|
|
690
|
+
</h3>
|
|
691
|
+
<p className="text-[#6bcb77] font-bold">大胆色彩,重复图案</p>
|
|
692
|
+
</div>
|
|
693
|
+
<div className="flex justify-center space-x-4">
|
|
694
|
+
<button className="px-8 py-3 bg-[#ff6b6b] text-white font-black hover:bg-[#ff5252] transition-colors border-4 border-black shadow-[4px_4px_0_#000]">
|
|
695
|
+
<span>按钮</span>
|
|
696
|
+
</button>
|
|
697
|
+
<button className="px-8 py-3 bg-[#6bcb77] text-white font-black hover:bg-[#5cb86c] transition-colors border-4 border-black shadow-[4px_4px_0_#000]">
|
|
698
|
+
<span>按钮</span>
|
|
699
|
+
</button>
|
|
700
|
+
</div>
|
|
701
|
+
<div className="max-w-md mx-auto">
|
|
702
|
+
<input
|
|
703
|
+
type="text"
|
|
704
|
+
placeholder="输入框..."
|
|
705
|
+
className="w-full px-4 py-3 bg-white border-4 border-black text-gray-900 font-bold focus:outline-none shadow-[4px_4px_0_#000]"
|
|
706
|
+
/>
|
|
707
|
+
</div>
|
|
708
|
+
</div>
|
|
709
|
+
)}
|
|
710
|
+
|
|
711
|
+
{/* 手绘风格 */}
|
|
712
|
+
{styleId === 14 && (
|
|
713
|
+
<div className="bg-[#fef9f3] p-8 space-y-6">
|
|
714
|
+
<div className="text-center py-8">
|
|
715
|
+
<h3
|
|
716
|
+
className="text-3xl text-[#f4a261] mb-4"
|
|
717
|
+
style={{
|
|
718
|
+
fontFamily: 'cursive',
|
|
719
|
+
}}
|
|
720
|
+
>
|
|
721
|
+
手绘风格
|
|
722
|
+
</h3>
|
|
723
|
+
<p className="text-[#e9c46a]">手绘线条,温暖亲切</p>
|
|
724
|
+
</div>
|
|
725
|
+
<div className="flex justify-center space-x-4">
|
|
726
|
+
<button
|
|
727
|
+
className="px-8 py-3 bg-[#f4a261] text-white font-bold hover:bg-[#e76f51] transition-colors rounded-2xl"
|
|
728
|
+
style={{
|
|
729
|
+
border: '2px solid #2a9d8f',
|
|
730
|
+
transform: 'rotate(-1deg)',
|
|
731
|
+
}}
|
|
732
|
+
>
|
|
733
|
+
<span>按钮</span>
|
|
734
|
+
</button>
|
|
735
|
+
<button
|
|
736
|
+
className="px-8 py-3 bg-[#e9c46a] text-[#2a9d8f] font-bold hover:bg-[#d4a373] transition-colors rounded-2xl"
|
|
737
|
+
style={{
|
|
738
|
+
border: '2px solid #f4a261',
|
|
739
|
+
transform: 'rotate(1deg)',
|
|
740
|
+
}}
|
|
741
|
+
>
|
|
742
|
+
<span>按钮</span>
|
|
743
|
+
</button>
|
|
744
|
+
</div>
|
|
745
|
+
<div className="max-w-md mx-auto">
|
|
746
|
+
<input
|
|
747
|
+
type="text"
|
|
748
|
+
placeholder="输入框..."
|
|
749
|
+
className="w-full px-4 py-3 bg-white border-2 border-dashed border-[#f4a261] text-[#2a9d8f] placeholder-[#f4a261]/50 rounded-2xl focus:outline-none focus:border-[#2a9d8f]"
|
|
750
|
+
style={{
|
|
751
|
+
transform: 'rotate(-0.5deg)',
|
|
752
|
+
}}
|
|
753
|
+
/>
|
|
754
|
+
</div>
|
|
755
|
+
</div>
|
|
756
|
+
)}
|
|
757
|
+
|
|
758
|
+
{/* 商务专业 */}
|
|
759
|
+
{styleId === 15 && (
|
|
760
|
+
<div className="bg-[#f8fafc] p-8 space-y-6">
|
|
761
|
+
<div className="text-center py-8">
|
|
762
|
+
<h3 className="text-2xl font-bold text-[#1e3a8a] mb-4">
|
|
763
|
+
商务专业
|
|
764
|
+
</h3>
|
|
765
|
+
<p className="text-gray-600">稳重色彩,清晰层次</p>
|
|
766
|
+
</div>
|
|
767
|
+
<div className="flex justify-center space-x-4">
|
|
768
|
+
<button className="px-8 py-3 bg-[#1e3a8a] text-white font-bold hover:bg-[#1e40af] transition-colors">
|
|
769
|
+
<span>主要按钮</span>
|
|
770
|
+
</button>
|
|
771
|
+
<button className="px-8 py-3 bg-white text-[#1e3a8a] font-bold border-2 border-[#1e3a8a] hover:bg-[#1e3a8a] hover:text-white transition-colors">
|
|
772
|
+
<span>次要按钮</span>
|
|
773
|
+
</button>
|
|
774
|
+
</div>
|
|
775
|
+
<div className="max-w-md mx-auto">
|
|
776
|
+
<input
|
|
777
|
+
type="text"
|
|
778
|
+
placeholder="输入框..."
|
|
779
|
+
className="w-full px-4 py-3 bg-white border-2 border-gray-300 text-gray-900 focus:outline-none focus:border-[#3b82f6]"
|
|
780
|
+
/>
|
|
781
|
+
</div>
|
|
782
|
+
</div>
|
|
783
|
+
)}
|
|
784
|
+
|
|
785
|
+
{/* Material Design */}
|
|
786
|
+
{styleId === 16 && (
|
|
787
|
+
<div className="bg-white p-8 space-y-6">
|
|
788
|
+
<div className="text-center py-8">
|
|
789
|
+
<h3 className="text-2xl font-medium text-gray-800 mb-4">
|
|
790
|
+
Material Design
|
|
791
|
+
</h3>
|
|
792
|
+
<p className="text-gray-500">卡片阴影,涟漪效果,蓝色主题</p>
|
|
793
|
+
</div>
|
|
794
|
+
<div className="flex justify-center space-x-4">
|
|
795
|
+
<button className="px-8 py-3 bg-[#1a73e8] text-white font-medium rounded shadow-md hover:shadow-lg hover:bg-[#1557b0] transition-all">
|
|
796
|
+
<span>主要按钮</span>
|
|
797
|
+
</button>
|
|
798
|
+
<button className="px-8 py-3 bg-transparent text-[#1a73e8] font-medium rounded hover:bg-[#e8f0fe] transition-colors">
|
|
799
|
+
<span>文本按钮</span>
|
|
800
|
+
</button>
|
|
801
|
+
</div>
|
|
802
|
+
<div className="max-w-md mx-auto bg-white rounded-lg shadow-md p-4">
|
|
803
|
+
<input
|
|
804
|
+
type="text"
|
|
805
|
+
placeholder="输入框..."
|
|
806
|
+
className="w-full px-4 py-3 border-b-2 border-gray-300 text-gray-800 focus:outline-none focus:border-[#1a73e8]"
|
|
807
|
+
/>
|
|
808
|
+
</div>
|
|
809
|
+
<div className="max-w-md mx-auto bg-white rounded-lg shadow-md p-6">
|
|
810
|
+
<div className="flex items-center space-x-4">
|
|
811
|
+
<div className="w-12 h-12 bg-[#e8f0fe] rounded-full flex items-center justify-center">
|
|
812
|
+
<span className="text-[#1a73e8] text-xl">👤</span>
|
|
813
|
+
</div>
|
|
814
|
+
<div>
|
|
815
|
+
<h4 className="font-medium text-gray-800">用户卡片</h4>
|
|
816
|
+
<p className="text-sm text-gray-500">卡片阴影示例</p>
|
|
817
|
+
</div>
|
|
818
|
+
</div>
|
|
819
|
+
</div>
|
|
820
|
+
</div>
|
|
821
|
+
)}
|
|
822
|
+
|
|
823
|
+
{/* 飞书风格 */}
|
|
824
|
+
{styleId === 17 && (
|
|
825
|
+
<div className="bg-[#f5f6f7] p-8 space-y-6">
|
|
826
|
+
<div className="text-center py-8">
|
|
827
|
+
<h3 className="text-2xl font-semibold text-gray-900 mb-4">
|
|
828
|
+
飞书 Lark
|
|
829
|
+
</h3>
|
|
830
|
+
<p className="text-gray-500">简洁现代,蓝色圆角,卡片式</p>
|
|
831
|
+
</div>
|
|
832
|
+
<div className="flex justify-center space-x-4">
|
|
833
|
+
<button className="px-8 py-3 bg-[#3370ff] text-white font-medium rounded-lg hover:bg-[#2b5acc] transition-colors">
|
|
834
|
+
<span>主要按钮</span>
|
|
835
|
+
</button>
|
|
836
|
+
<button className="px-8 py-3 bg-white text-gray-700 font-medium rounded-lg border border-gray-200 hover:bg-gray-50 transition-colors">
|
|
837
|
+
<span>次要按钮</span>
|
|
838
|
+
</button>
|
|
839
|
+
</div>
|
|
840
|
+
<div className="max-w-md mx-auto bg-white rounded-xl shadow-sm p-4">
|
|
841
|
+
<input
|
|
842
|
+
type="text"
|
|
843
|
+
placeholder="输入框..."
|
|
844
|
+
className="w-full px-4 py-3 bg-gray-50 rounded-lg text-gray-900 focus:outline-none focus:ring-2 focus:ring-[#3370ff]"
|
|
845
|
+
/>
|
|
846
|
+
</div>
|
|
847
|
+
<div className="max-w-md mx-auto bg-white rounded-xl shadow-sm p-5">
|
|
848
|
+
<div className="flex items-center justify-between">
|
|
849
|
+
<div className="flex items-center space-x-3">
|
|
850
|
+
<div className="w-10 h-10 bg-[#3370ff] rounded-lg flex items-center justify-center text-white font-medium">
|
|
851
|
+
<span>L</span>
|
|
852
|
+
</div>
|
|
853
|
+
<div>
|
|
854
|
+
<h4 className="font-medium text-gray-900">飞书文档</h4>
|
|
855
|
+
<p className="text-sm text-gray-500">协作编辑中</p>
|
|
856
|
+
</div>
|
|
857
|
+
</div>
|
|
858
|
+
<span className="px-3 py-1 bg-[#e8f3ff] text-[#3370ff] text-xs rounded-full">
|
|
859
|
+
进行中
|
|
860
|
+
</span>
|
|
861
|
+
</div>
|
|
862
|
+
</div>
|
|
863
|
+
</div>
|
|
864
|
+
)}
|
|
865
|
+
|
|
866
|
+
{/* 字节跳动风格 */}
|
|
867
|
+
{styleId === 18 && (
|
|
868
|
+
<div className="bg-[#fff5f5] p-8 space-y-6">
|
|
869
|
+
<div className="text-center py-8">
|
|
870
|
+
<h3 className="text-3xl font-bold text-[#f85959] mb-4">
|
|
871
|
+
字节跳动
|
|
872
|
+
</h3>
|
|
873
|
+
<p className="text-gray-600">活力橙色,年轻化,动效丰富</p>
|
|
874
|
+
</div>
|
|
875
|
+
<div className="flex justify-center space-x-4">
|
|
876
|
+
<button className="px-8 py-3 bg-[#f85959] text-white font-bold rounded-full hover:bg-[#e04a4a] transition-all transform hover:scale-105">
|
|
877
|
+
<span>主要按钮</span>
|
|
878
|
+
</button>
|
|
879
|
+
<button className="px-8 py-3 bg-white text-[#f85959] font-bold rounded-full border-2 border-[#f85959] hover:bg-[#f85959] hover:text-white transition-all">
|
|
880
|
+
<span>次要按钮</span>
|
|
881
|
+
</button>
|
|
882
|
+
</div>
|
|
883
|
+
<div className="max-w-md mx-auto">
|
|
884
|
+
<input
|
|
885
|
+
type="text"
|
|
886
|
+
placeholder="输入框..."
|
|
887
|
+
className="w-full px-5 py-4 bg-white rounded-full text-gray-900 focus:outline-none focus:ring-4 focus:ring-[#f85959]/20"
|
|
888
|
+
/>
|
|
889
|
+
</div>
|
|
890
|
+
<div className="max-w-md mx-auto bg-white rounded-2xl shadow-lg p-5">
|
|
891
|
+
<div className="flex items-center space-x-4">
|
|
892
|
+
<div className="w-14 h-14 bg-gradient-to-br from-[#f85959] to-[#ff7b7b] rounded-2xl flex items-center justify-center text-white text-2xl">
|
|
893
|
+
<span>🚀</span>
|
|
894
|
+
</div>
|
|
895
|
+
<div>
|
|
896
|
+
<h4 className="font-bold text-gray-900">今日头条</h4>
|
|
897
|
+
<p className="text-sm text-gray-500">个性化推荐</p>
|
|
898
|
+
</div>
|
|
899
|
+
</div>
|
|
900
|
+
</div>
|
|
901
|
+
</div>
|
|
902
|
+
)}
|
|
903
|
+
|
|
904
|
+
{/* Figma风格 */}
|
|
905
|
+
{styleId === 19 && (
|
|
906
|
+
<div className="bg-[#1c1c1e] p-8 space-y-6">
|
|
907
|
+
<div className="text-center py-8">
|
|
908
|
+
<h3 className="text-2xl font-bold text-white mb-4">Figma</h3>
|
|
909
|
+
<p className="text-gray-400">暗色紫色,专业工具,界面紧凑</p>
|
|
910
|
+
</div>
|
|
911
|
+
<div className="flex justify-center space-x-4">
|
|
912
|
+
<button className="px-6 py-2 bg-[#8b5cf6] text-white font-medium rounded hover:bg-[#7c3aed] transition-colors">
|
|
913
|
+
<span>按钮</span>
|
|
914
|
+
</button>
|
|
915
|
+
<button className="px-6 py-2 bg-[#2c2c2e] text-gray-300 font-medium rounded hover:bg-[#3c3c3e] transition-colors">
|
|
916
|
+
<span>按钮</span>
|
|
917
|
+
</button>
|
|
918
|
+
</div>
|
|
919
|
+
<div className="max-w-md mx-auto">
|
|
920
|
+
<input
|
|
921
|
+
type="text"
|
|
922
|
+
placeholder="输入框..."
|
|
923
|
+
className="w-full px-4 py-2 bg-[#2c2c2e] text-white border border-gray-600 rounded focus:outline-none focus:border-[#8b5cf6]"
|
|
924
|
+
/>
|
|
925
|
+
</div>
|
|
926
|
+
<div className="max-w-md mx-auto bg-[#2c2c2e] rounded-lg p-4 space-y-3">
|
|
927
|
+
<div className="flex items-center justify-between text-sm">
|
|
928
|
+
<span className="text-gray-400">图层</span>
|
|
929
|
+
<span className="text-gray-500">Frame 1</span>
|
|
930
|
+
</div>
|
|
931
|
+
<div className="h-8 bg-[#3c3c3e] rounded flex items-center px-3">
|
|
932
|
+
<span className="text-gray-300 text-sm">Rectangle</span>
|
|
933
|
+
</div>
|
|
934
|
+
<div className="h-8 bg-[#3c3c3e] rounded flex items-center px-3">
|
|
935
|
+
<span className="text-gray-300 text-sm">Text</span>
|
|
936
|
+
</div>
|
|
937
|
+
</div>
|
|
938
|
+
</div>
|
|
939
|
+
)}
|
|
940
|
+
|
|
941
|
+
{/* Apple风格 */}
|
|
942
|
+
{styleId === 20 && (
|
|
943
|
+
<div className="bg-[#f5f5f7] p-8 space-y-6">
|
|
944
|
+
<div className="text-center py-8">
|
|
945
|
+
<h3 className="text-3xl font-semibold text-gray-900 mb-4">
|
|
946
|
+
Apple iOS
|
|
947
|
+
</h3>
|
|
948
|
+
<p className="text-gray-500">毛玻璃,优雅简洁,SF字体</p>
|
|
949
|
+
</div>
|
|
950
|
+
<div className="flex justify-center space-x-4">
|
|
951
|
+
<button className="px-8 py-3 bg-[#007aff] text-white font-medium rounded-xl hover:bg-[#0056b3] transition-colors">
|
|
952
|
+
<span>主要按钮</span>
|
|
953
|
+
</button>
|
|
954
|
+
<button className="px-8 py-3 bg-white text-[#007aff] font-medium rounded-xl hover:bg-gray-100 transition-colors">
|
|
955
|
+
<span>次要按钮</span>
|
|
956
|
+
</button>
|
|
957
|
+
</div>
|
|
958
|
+
<div className="max-w-md mx-auto">
|
|
959
|
+
<input
|
|
960
|
+
type="text"
|
|
961
|
+
placeholder="输入框..."
|
|
962
|
+
className="w-full px-4 py-3 bg-white rounded-xl text-gray-900 focus:outline-none focus:ring-2 focus:ring-[#007aff]/50"
|
|
963
|
+
/>
|
|
964
|
+
</div>
|
|
965
|
+
<div className="max-w-md mx-auto bg-white/70 backdrop-blur-xl rounded-2xl p-5 shadow-sm border border-white/50">
|
|
966
|
+
<div className="flex items-center space-x-4">
|
|
967
|
+
<div className="w-12 h-12 bg-gradient-to-br from-blue-400 to-blue-600 rounded-xl flex items-center justify-center text-white text-xl">
|
|
968
|
+
<span>📱</span>
|
|
969
|
+
</div>
|
|
970
|
+
<div>
|
|
971
|
+
<h4 className="font-semibold text-gray-900">iPhone 15</h4>
|
|
972
|
+
<p className="text-sm text-gray-500">最新款</p>
|
|
973
|
+
</div>
|
|
974
|
+
</div>
|
|
975
|
+
</div>
|
|
976
|
+
</div>
|
|
977
|
+
)}
|
|
978
|
+
|
|
979
|
+
{/* Microsoft Fluent */}
|
|
980
|
+
{styleId === 21 && (
|
|
981
|
+
<div className="bg-[#f3f2f1] p-8 space-y-6">
|
|
982
|
+
<div className="text-center py-8">
|
|
983
|
+
<h3 className="text-2xl font-semibold text-gray-900 mb-4">
|
|
984
|
+
Microsoft Fluent
|
|
985
|
+
</h3>
|
|
986
|
+
<p className="text-gray-600">亚克力效果,深度层次,明亮配色</p>
|
|
987
|
+
</div>
|
|
988
|
+
<div className="flex justify-center space-x-4">
|
|
989
|
+
<button className="px-8 py-3 bg-[#0078d4] text-white font-medium rounded hover:bg-[#106ebe] transition-colors">
|
|
990
|
+
<span>主要按钮</span>
|
|
991
|
+
</button>
|
|
992
|
+
<button className="px-8 py-3 bg-white text-gray-700 font-medium rounded hover:bg-gray-100 transition-colors">
|
|
993
|
+
<span>次要按钮</span>
|
|
994
|
+
</button>
|
|
995
|
+
</div>
|
|
996
|
+
<div className="max-w-md mx-auto">
|
|
997
|
+
<input
|
|
998
|
+
type="text"
|
|
999
|
+
placeholder="输入框..."
|
|
1000
|
+
className="w-full px-4 py-3 bg-white border border-gray-300 rounded text-gray-900 focus:outline-none focus:border-[#0078d4]"
|
|
1001
|
+
/>
|
|
1002
|
+
</div>
|
|
1003
|
+
<div className="max-w-md mx-auto bg-white/80 backdrop-blur rounded-lg shadow-lg p-5">
|
|
1004
|
+
<div className="flex items-center space-x-4">
|
|
1005
|
+
<div className="w-12 h-12 bg-[#0078d4] rounded-lg flex items-center justify-center text-white text-xl">
|
|
1006
|
+
<span>🪟</span>
|
|
1007
|
+
</div>
|
|
1008
|
+
<div>
|
|
1009
|
+
<h4 className="font-semibold text-gray-900">Windows 11</h4>
|
|
1010
|
+
<p className="text-sm text-gray-600">现代操作系统</p>
|
|
1011
|
+
</div>
|
|
1012
|
+
</div>
|
|
1013
|
+
</div>
|
|
1014
|
+
</div>
|
|
1015
|
+
)}
|
|
1016
|
+
|
|
1017
|
+
{/* 淘宝风格 */}
|
|
1018
|
+
{styleId === 22 && (
|
|
1019
|
+
<div className="bg-[#ffede8] p-8 space-y-6">
|
|
1020
|
+
<div className="text-center py-8">
|
|
1021
|
+
<h3 className="text-3xl font-bold text-[#ff5000] mb-4">淘宝</h3>
|
|
1022
|
+
<p className="text-gray-600">橙色活力,促销感,信息密集</p>
|
|
1023
|
+
</div>
|
|
1024
|
+
<div className="flex justify-center space-x-4">
|
|
1025
|
+
<button className="px-8 py-3 bg-gradient-to-r from-[#ff5000] to-[#ff9000] text-white font-bold rounded-full hover:shadow-lg transition-all">
|
|
1026
|
+
<span>立即购买</span>
|
|
1027
|
+
</button>
|
|
1028
|
+
<button className="px-8 py-3 bg-white text-[#ff5000] font-bold rounded-full border-2 border-[#ff5000] hover:bg-[#ff5000] hover:text-white transition-all">
|
|
1029
|
+
<span>加入购物车</span>
|
|
1030
|
+
</button>
|
|
1031
|
+
</div>
|
|
1032
|
+
<div className="max-w-md mx-auto">
|
|
1033
|
+
<input
|
|
1034
|
+
type="text"
|
|
1035
|
+
placeholder="搜索商品..."
|
|
1036
|
+
className="w-full px-5 py-3 bg-white rounded-full text-gray-900 focus:outline-none focus:ring-2 focus:ring-[#ff5000]"
|
|
1037
|
+
/>
|
|
1038
|
+
</div>
|
|
1039
|
+
<div className="max-w-md mx-auto bg-white rounded-xl shadow-md p-4">
|
|
1040
|
+
<div className="flex space-x-3">
|
|
1041
|
+
<div className="w-20 h-20 bg-gradient-to-br from-[#ff5000] to-[#ff9000] rounded-lg flex items-center justify-center text-white text-2xl">
|
|
1042
|
+
<span>🛍️</span>
|
|
1043
|
+
</div>
|
|
1044
|
+
<div className="flex-1">
|
|
1045
|
+
<h4 className="font-bold text-gray-900 mb-1">爆款商品</h4>
|
|
1046
|
+
<p className="text-[#ff5000] font-bold text-lg">¥99.00</p>
|
|
1047
|
+
<p className="text-gray-400 text-sm line-through">¥199.00</p>
|
|
1048
|
+
</div>
|
|
1049
|
+
</div>
|
|
1050
|
+
</div>
|
|
1051
|
+
</div>
|
|
1052
|
+
)}
|
|
1053
|
+
|
|
1054
|
+
{/* 微信风格 */}
|
|
1055
|
+
{styleId === 23 && (
|
|
1056
|
+
<div className="bg-[#f5f5f5] p-8 space-y-6">
|
|
1057
|
+
<div className="text-center py-8">
|
|
1058
|
+
<h3 className="text-2xl font-medium text-gray-900 mb-4">微信</h3>
|
|
1059
|
+
<p className="text-gray-500">绿色简洁,清新友好,卡片气泡</p>
|
|
1060
|
+
</div>
|
|
1061
|
+
<div className="flex justify-center space-x-4">
|
|
1062
|
+
<button className="px-8 py-3 bg-[#07c160] text-white font-medium rounded-lg hover:bg-[#06ad56] transition-colors">
|
|
1063
|
+
<span>发送</span>
|
|
1064
|
+
</button>
|
|
1065
|
+
<button className="px-8 py-3 bg-white text-gray-700 font-medium rounded-lg border border-gray-200 hover:bg-gray-50 transition-colors">
|
|
1066
|
+
<span>取消</span>
|
|
1067
|
+
</button>
|
|
1068
|
+
</div>
|
|
1069
|
+
<div className="max-w-md mx-auto">
|
|
1070
|
+
<input
|
|
1071
|
+
type="text"
|
|
1072
|
+
placeholder="输入消息..."
|
|
1073
|
+
className="w-full px-4 py-3 bg-white rounded-lg text-gray-900 focus:outline-none focus:border-[#07c160]"
|
|
1074
|
+
/>
|
|
1075
|
+
</div>
|
|
1076
|
+
<div className="max-w-md mx-auto space-y-3">
|
|
1077
|
+
<div className="flex justify-end">
|
|
1078
|
+
<div className="bg-[#95ec69] rounded-2xl rounded-tr-sm px-4 py-2 max-w-xs">
|
|
1079
|
+
<p className="text-gray-900">你好!这是微信风格</p>
|
|
1080
|
+
</div>
|
|
1081
|
+
</div>
|
|
1082
|
+
<div className="flex justify-start">
|
|
1083
|
+
<div className="bg-white rounded-2xl rounded-tl-sm px-4 py-2 max-w-xs shadow-sm">
|
|
1084
|
+
<p className="text-gray-900">绿色气泡,清新友好</p>
|
|
1085
|
+
</div>
|
|
1086
|
+
</div>
|
|
1087
|
+
</div>
|
|
1088
|
+
</div>
|
|
1089
|
+
)}
|
|
1090
|
+
|
|
1091
|
+
{/* B站风格 */}
|
|
1092
|
+
{styleId === 24 && (
|
|
1093
|
+
<div className="bg-white p-8 space-y-6">
|
|
1094
|
+
<div className="text-center py-8">
|
|
1095
|
+
<h3 className="text-3xl font-bold text-[#fb7299] mb-4">
|
|
1096
|
+
哔哩哔哩
|
|
1097
|
+
</h3>
|
|
1098
|
+
<p className="text-gray-500">粉色年轻,二次元,活泼有趣</p>
|
|
1099
|
+
</div>
|
|
1100
|
+
<div className="flex justify-center space-x-4">
|
|
1101
|
+
<button className="px-8 py-3 bg-[#fb7299] text-white font-bold rounded-full hover:bg-[#e05e87] transition-colors">
|
|
1102
|
+
<span>关注</span>
|
|
1103
|
+
</button>
|
|
1104
|
+
<button className="px-8 py-3 bg-[#23ade5] text-white font-bold rounded-full hover:bg-[#1c8bb8] transition-colors">
|
|
1105
|
+
<span>投币</span>
|
|
1106
|
+
</button>
|
|
1107
|
+
</div>
|
|
1108
|
+
<div className="max-w-md mx-auto">
|
|
1109
|
+
<input
|
|
1110
|
+
type="text"
|
|
1111
|
+
placeholder="搜索视频..."
|
|
1112
|
+
className="w-full px-5 py-3 bg-gray-100 rounded-full text-gray-900 focus:outline-none focus:ring-2 focus:ring-[#fb7299]"
|
|
1113
|
+
/>
|
|
1114
|
+
</div>
|
|
1115
|
+
<div className="max-w-md mx-auto bg-gray-50 rounded-xl p-4">
|
|
1116
|
+
<div className="flex space-x-4">
|
|
1117
|
+
<div className="w-32 h-20 bg-gradient-to-br from-[#fb7299] to-[#23ade5] rounded-lg flex items-center justify-center text-white text-3xl">
|
|
1118
|
+
<span>📺</span>
|
|
1119
|
+
</div>
|
|
1120
|
+
<div className="flex-1">
|
|
1121
|
+
<h4 className="font-bold text-gray-900 mb-1 line-clamp-2">
|
|
1122
|
+
【教程】如何设计好看的UI界面
|
|
1123
|
+
</h4>
|
|
1124
|
+
<p className="text-gray-500 text-sm">UP主 · 10万播放</p>
|
|
1125
|
+
</div>
|
|
1126
|
+
</div>
|
|
1127
|
+
</div>
|
|
1128
|
+
</div>
|
|
1129
|
+
)}
|
|
1130
|
+
|
|
1131
|
+
{/* Notion风格 */}
|
|
1132
|
+
{styleId === 25 && (
|
|
1133
|
+
<div className="bg-white p-8 space-y-6">
|
|
1134
|
+
<div className="text-center py-8">
|
|
1135
|
+
<h3 className="text-2xl font-semibold text-[#37352f] mb-4">
|
|
1136
|
+
Notion
|
|
1137
|
+
</h3>
|
|
1138
|
+
<p className="text-gray-500">极简灰白,内容优先,模块化</p>
|
|
1139
|
+
</div>
|
|
1140
|
+
<div className="flex justify-center space-x-4">
|
|
1141
|
+
<button className="px-6 py-2 bg-[#37352f] text-white font-medium rounded hover:bg-gray-800 transition-colors">
|
|
1142
|
+
<span>+ 新建页面</span>
|
|
1143
|
+
</button>
|
|
1144
|
+
</div>
|
|
1145
|
+
<div className="max-w-md mx-auto">
|
|
1146
|
+
<input
|
|
1147
|
+
type="text"
|
|
1148
|
+
placeholder="输入标题..."
|
|
1149
|
+
className="w-full px-0 py-2 border-b border-gray-200 bg-transparent text-gray-900 focus:outline-none focus:border-[#37352f]"
|
|
1150
|
+
/>
|
|
1151
|
+
</div>
|
|
1152
|
+
<div className="max-w-md mx-auto space-y-4">
|
|
1153
|
+
<div className="flex items-center space-x-2 text-gray-700">
|
|
1154
|
+
<span className="text-gray-400">•</span>
|
|
1155
|
+
<span>极简的文档编辑体验</span>
|
|
1156
|
+
</div>
|
|
1157
|
+
<div className="flex items-center space-x-2 text-gray-700">
|
|
1158
|
+
<span className="text-gray-400">•</span>
|
|
1159
|
+
<span>模块化的内容组织</span>
|
|
1160
|
+
</div>
|
|
1161
|
+
<div className="flex items-center space-x-2 text-gray-700">
|
|
1162
|
+
<span className="text-gray-400">•</span>
|
|
1163
|
+
<span>清晰的信息架构</span>
|
|
1164
|
+
</div>
|
|
1165
|
+
<div className="h-px bg-gray-200 my-4"></div>
|
|
1166
|
+
<div className="bg-[#f7f7f5] rounded-lg p-4">
|
|
1167
|
+
<p className="text-gray-500 text-sm">待办事项</p>
|
|
1168
|
+
<div className="flex items-center space-x-2 mt-2">
|
|
1169
|
+
<input type="checkbox" className="w-4 h-4" />
|
|
1170
|
+
<span className="text-gray-700">完成Notion风格设计</span>
|
|
1171
|
+
</div>
|
|
1172
|
+
</div>
|
|
1173
|
+
</div>
|
|
1174
|
+
</div>
|
|
1175
|
+
)}
|
|
1176
|
+
|
|
1177
|
+
{/* Linear风格 */}
|
|
1178
|
+
{styleId === 26 && (
|
|
1179
|
+
<div className="bg-[#0a0a0b] p-8 space-y-6">
|
|
1180
|
+
<div className="text-center py-8">
|
|
1181
|
+
<h3 className="text-2xl font-bold text-white mb-4">Linear</h3>
|
|
1182
|
+
<p className="text-gray-400">暗色紫色,现代科技,流畅动效</p>
|
|
1183
|
+
</div>
|
|
1184
|
+
<div className="flex justify-center space-x-4">
|
|
1185
|
+
<button className="px-6 py-2 bg-[#5e6ad2] text-white font-medium rounded hover:bg-[#4e5ac2] transition-colors">
|
|
1186
|
+
<span>创建任务</span>
|
|
1187
|
+
</button>
|
|
1188
|
+
<button className="px-6 py-2 bg-[#1c1c1e] text-gray-300 font-medium rounded hover:bg-[#2c2c2e] transition-colors">
|
|
1189
|
+
<span>筛选</span>
|
|
1190
|
+
</button>
|
|
1191
|
+
</div>
|
|
1192
|
+
<div className="max-w-md mx-auto">
|
|
1193
|
+
<input
|
|
1194
|
+
type="text"
|
|
1195
|
+
placeholder="搜索任务..."
|
|
1196
|
+
className="w-full px-4 py-2 bg-[#1c1c1e] text-white border border-gray-700 rounded focus:outline-none focus:border-[#5e6ad2]"
|
|
1197
|
+
/>
|
|
1198
|
+
</div>
|
|
1199
|
+
<div className="max-w-md mx-auto space-y-2">
|
|
1200
|
+
<div className="bg-[#1c1c1e] rounded-lg p-4 flex items-center justify-between hover:bg-[#2c2c2e] transition-colors cursor-pointer">
|
|
1201
|
+
<div className="flex items-center space-x-3">
|
|
1202
|
+
<div className="w-5 h-5 rounded border-2 border-[#5e6ad2]"></div>
|
|
1203
|
+
<span className="text-white">设计新的登录页面</span>
|
|
1204
|
+
</div>
|
|
1205
|
+
<span className="px-2 py-1 bg-[#5e6ad2]/20 text-[#5e6ad2] text-xs rounded">
|
|
1206
|
+
进行中
|
|
1207
|
+
</span>
|
|
1208
|
+
</div>
|
|
1209
|
+
<div className="bg-[#1c1c1e] rounded-lg p-4 flex items-center justify-between hover:bg-[#2c2c2e] transition-colors cursor-pointer">
|
|
1210
|
+
<div className="flex items-center space-x-3">
|
|
1211
|
+
<div className="w-5 h-5 rounded border-2 border-gray-600"></div>
|
|
1212
|
+
<span className="text-gray-400">优化性能</span>
|
|
1213
|
+
</div>
|
|
1214
|
+
<span className="px-2 py-1 bg-gray-700 text-gray-400 text-xs rounded">
|
|
1215
|
+
待处理
|
|
1216
|
+
</span>
|
|
1217
|
+
</div>
|
|
1218
|
+
</div>
|
|
1219
|
+
</div>
|
|
1220
|
+
)}
|
|
1221
|
+
|
|
1222
|
+
{/* Vercel风格 */}
|
|
1223
|
+
{styleId === 27 && (
|
|
1224
|
+
<div className="bg-white p-8 space-y-6">
|
|
1225
|
+
<div className="text-center py-8">
|
|
1226
|
+
<h3 className="text-3xl font-bold text-black mb-4">Vercel</h3>
|
|
1227
|
+
<p className="text-gray-500">极简黑白,科技感,开发者友好</p>
|
|
1228
|
+
</div>
|
|
1229
|
+
<div className="flex justify-center space-x-4">
|
|
1230
|
+
<button className="px-8 py-3 bg-black text-white font-medium rounded hover:bg-gray-800 transition-colors">
|
|
1231
|
+
<span>Deploy</span>
|
|
1232
|
+
</button>
|
|
1233
|
+
<button className="px-8 py-3 bg-white text-black font-medium rounded border border-gray-300 hover:bg-gray-50 transition-colors">
|
|
1234
|
+
<span>Documentation</span>
|
|
1235
|
+
</button>
|
|
1236
|
+
</div>
|
|
1237
|
+
<div className="max-w-md mx-auto">
|
|
1238
|
+
<input
|
|
1239
|
+
type="text"
|
|
1240
|
+
placeholder="Search..."
|
|
1241
|
+
className="w-full px-4 py-3 bg-gray-50 border border-gray-200 rounded text-gray-900 focus:outline-none focus:border-black"
|
|
1242
|
+
/>
|
|
1243
|
+
</div>
|
|
1244
|
+
<div className="max-w-md mx-auto bg-gray-50 rounded-lg p-5">
|
|
1245
|
+
<div className="flex items-center justify-between mb-3">
|
|
1246
|
+
<span className="text-black font-medium">project-name</span>
|
|
1247
|
+
<span className="px-2 py-1 bg-green-100 text-green-700 text-xs rounded">
|
|
1248
|
+
Ready
|
|
1249
|
+
</span>
|
|
1250
|
+
</div>
|
|
1251
|
+
<div className="text-sm text-gray-500 space-y-1">
|
|
1252
|
+
<div>• Framework: Next.js</div>
|
|
1253
|
+
<div>• Region: Hong Kong</div>
|
|
1254
|
+
<div>• Last Deployed: 2 hours ago</div>
|
|
1255
|
+
</div>
|
|
1256
|
+
</div>
|
|
1257
|
+
</div>
|
|
1258
|
+
)}
|
|
1259
|
+
|
|
1260
|
+
{/* Stripe风格 */}
|
|
1261
|
+
{styleId === 28 && (
|
|
1262
|
+
<div className="bg-[#0a2540] p-8 space-y-6">
|
|
1263
|
+
<div className="text-center py-8">
|
|
1264
|
+
<h3 className="text-3xl font-bold text-white mb-4 bg-gradient-to-r from-[#635bff] to-[#80eeff] bg-clip-text text-transparent">
|
|
1265
|
+
Stripe
|
|
1266
|
+
</h3>
|
|
1267
|
+
<p className="text-gray-400">蓝紫渐变,专业金融,精致细节</p>
|
|
1268
|
+
</div>
|
|
1269
|
+
<div className="flex justify-center space-x-4">
|
|
1270
|
+
<button className="px-8 py-3 bg-gradient-to-r from-[#635bff] to-[#7c3aed] text-white font-medium rounded hover:opacity-90 transition-opacity">
|
|
1271
|
+
<span>Start now</span>
|
|
1272
|
+
</button>
|
|
1273
|
+
<button className="px-8 py-3 bg-transparent text-white font-medium rounded border border-white/30 hover:bg-white/10 transition-colors">
|
|
1274
|
+
<span>Contact sales</span>
|
|
1275
|
+
</button>
|
|
1276
|
+
</div>
|
|
1277
|
+
<div className="max-w-md mx-auto">
|
|
1278
|
+
<input
|
|
1279
|
+
type="text"
|
|
1280
|
+
placeholder="Email address"
|
|
1281
|
+
className="w-full px-4 py-3 bg-white/10 text-white border border-white/20 rounded focus:outline-none focus:border-[#635bff]"
|
|
1282
|
+
/>
|
|
1283
|
+
</div>
|
|
1284
|
+
<div className="max-w-md mx-auto bg-gradient-to-br from-[#635bff]/20 to-[#80eeff]/20 rounded-xl p-5 border border-white/10">
|
|
1285
|
+
<div className="flex items-center space-x-4">
|
|
1286
|
+
<div className="w-12 h-12 bg-gradient-to-br from-[#635bff] to-[#80eeff] rounded-xl flex items-center justify-center text-white text-xl">
|
|
1287
|
+
<span>💳</span>
|
|
1288
|
+
</div>
|
|
1289
|
+
<div>
|
|
1290
|
+
<h4 className="font-semibold text-white">Payments</h4>
|
|
1291
|
+
<p className="text-sm text-gray-400">
|
|
1292
|
+
Accept payments online
|
|
1293
|
+
</p>
|
|
1294
|
+
</div>
|
|
1295
|
+
</div>
|
|
1296
|
+
</div>
|
|
1297
|
+
</div>
|
|
1298
|
+
)}
|
|
1299
|
+
|
|
1300
|
+
{/* Airbnb风格 */}
|
|
1301
|
+
{styleId === 29 && (
|
|
1302
|
+
<div className="bg-white p-8 space-y-6">
|
|
1303
|
+
<div className="text-center py-8">
|
|
1304
|
+
<h3 className="text-3xl font-bold text-[#ff385c] mb-4">Airbnb</h3>
|
|
1305
|
+
<p className="text-gray-500">活力圆润,温暖友好,图片主导</p>
|
|
1306
|
+
</div>
|
|
1307
|
+
<div className="flex justify-center space-x-4">
|
|
1308
|
+
<button className="px-8 py-3 bg-[#ff385c] text-white font-bold rounded-lg hover:bg-[#d9324e] transition-colors">
|
|
1309
|
+
<span>预订</span>
|
|
1310
|
+
</button>
|
|
1311
|
+
<button className="px-8 py-3 bg-white text-[#ff385c] font-bold rounded-lg border border-gray-300 hover:border-gray-400 transition-colors">
|
|
1312
|
+
<span>联系房东</span>
|
|
1313
|
+
</button>
|
|
1314
|
+
</div>
|
|
1315
|
+
<div className="max-w-md mx-auto">
|
|
1316
|
+
<input
|
|
1317
|
+
type="text"
|
|
1318
|
+
placeholder="搜索目的地..."
|
|
1319
|
+
className="w-full px-5 py-3 bg-white border border-gray-300 rounded-xl text-gray-900 focus:outline-none focus:ring-2 focus:ring-[#ff385c]"
|
|
1320
|
+
/>
|
|
1321
|
+
</div>
|
|
1322
|
+
<div className="max-w-md mx-auto rounded-2xl overflow-hidden shadow-lg">
|
|
1323
|
+
<div className="h-32 bg-gradient-to-br from-[#ff385c] to-[#008489] flex items-center justify-center text-white text-4xl">
|
|
1324
|
+
<span>🏠</span>
|
|
1325
|
+
</div>
|
|
1326
|
+
<div className="p-4">
|
|
1327
|
+
<h4 className="font-bold text-gray-900 mb-1">温馨公寓</h4>
|
|
1328
|
+
<p className="text-gray-500 text-sm mb-2">上海市 · 整套公寓</p>
|
|
1329
|
+
<p className="text-[#ff385c] font-bold">¥458 / 晚</p>
|
|
1330
|
+
</div>
|
|
1331
|
+
</div>
|
|
1332
|
+
</div>
|
|
1333
|
+
)}
|
|
1334
|
+
|
|
1335
|
+
{/* Spotify风格 */}
|
|
1336
|
+
{styleId === 30 && (
|
|
1337
|
+
<div className="bg-[#191414] p-8 space-y-6">
|
|
1338
|
+
<div className="text-center py-8">
|
|
1339
|
+
<h3 className="text-3xl font-bold text-white mb-4">Spotify</h3>
|
|
1340
|
+
<p className="text-gray-400">黑色绿色,沉浸体验,圆角卡片</p>
|
|
1341
|
+
</div>
|
|
1342
|
+
<div className="flex justify-center space-x-4">
|
|
1343
|
+
<button className="px-8 py-3 bg-[#1db954] text-white font-bold rounded-full hover:bg-[#1ed760] transition-colors">
|
|
1344
|
+
<span>播放</span>
|
|
1345
|
+
</button>
|
|
1346
|
+
<button className="px-8 py-3 bg-transparent text-white font-bold rounded-full border border-gray-600 hover:border-white transition-colors">
|
|
1347
|
+
<span>收藏</span>
|
|
1348
|
+
</button>
|
|
1349
|
+
</div>
|
|
1350
|
+
<div className="max-w-md mx-auto">
|
|
1351
|
+
<input
|
|
1352
|
+
type="text"
|
|
1353
|
+
placeholder="搜索音乐..."
|
|
1354
|
+
className="w-full px-4 py-3 bg-[#282828] text-white border border-transparent rounded focus:outline-none focus:border-[#1db954]"
|
|
1355
|
+
/>
|
|
1356
|
+
</div>
|
|
1357
|
+
<div className="max-w-md mx-auto bg-[#282828] rounded-lg p-4 hover:bg-[#333333] transition-colors cursor-pointer">
|
|
1358
|
+
<div className="flex items-center space-x-4">
|
|
1359
|
+
<div className="w-16 h-16 bg-gradient-to-br from-[#1db954] to-[#1ed760] rounded-lg flex items-center justify-center text-white text-2xl">
|
|
1360
|
+
<span>🎵</span>
|
|
1361
|
+
</div>
|
|
1362
|
+
<div className="flex-1">
|
|
1363
|
+
<h4 className="font-bold text-white">精选歌单</h4>
|
|
1364
|
+
<p className="text-gray-400 text-sm">今日推荐 · 50首歌曲</p>
|
|
1365
|
+
</div>
|
|
1366
|
+
<button className="w-10 h-10 bg-[#1db954] rounded-full flex items-center justify-center text-white">
|
|
1367
|
+
<span>▶</span>
|
|
1368
|
+
</button>
|
|
1369
|
+
</div>
|
|
1370
|
+
</div>
|
|
1371
|
+
</div>
|
|
1372
|
+
)}
|
|
1373
|
+
</div>
|
|
1374
|
+
);
|
|
1375
|
+
}
|
|
1376
|
+
|
|
1377
|
+
render() {
|
|
1378
|
+
return (
|
|
1379
|
+
<Page className="bg-gradient-to-br from-[#f8fafc] to-[#f1f5f9] min-h-screen p-[24px]">
|
|
1380
|
+
<View className="ml-[auto] mr-[auto] mb-[32px]">
|
|
1381
|
+
<View className="">
|
|
1382
|
+
<h1 className="text-4xl font-bold text-[#111827] mb-[12px]">
|
|
1383
|
+
UI风格选择器
|
|
1384
|
+
</h1>
|
|
1385
|
+
<p className="text-[#4b5563] text-lg">
|
|
1386
|
+
30种UI风格,包括知名产品风格,点击卡片预览效果并复制提示词
|
|
1387
|
+
</p>
|
|
1388
|
+
</View>
|
|
1389
|
+
</View>
|
|
1390
|
+
<View className="ml-[auto] mr-[auto]">
|
|
1391
|
+
<View className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
1392
|
+
{this.state.styles.map((style, index) => (
|
|
1393
|
+
<View
|
|
1394
|
+
key={style.id}
|
|
1395
|
+
onClick={() => this.handlePreview(style)}
|
|
1396
|
+
className="shadow-lg hover:shadow-2xl transition-all duration-300 transform hover:-translate-y-1 group bg-[#ffffff] rounded-2xl cursor-pointer overflow-hidden"
|
|
1397
|
+
>
|
|
1398
|
+
<View className="h-[12px] flex">
|
|
1399
|
+
{style.colors.map((color, index) => (
|
|
1400
|
+
<View
|
|
1401
|
+
key={index}
|
|
1402
|
+
className="flex-1"
|
|
1403
|
+
style={{ backgroundColor: color }}
|
|
1404
|
+
/>
|
|
1405
|
+
))}
|
|
1406
|
+
</View>
|
|
1407
|
+
<View className="p-[24px]">
|
|
1408
|
+
<h3 className="text-xl text-gray-900 group-hover:text-blue-600 transition-colors font-bold mb-[8px]">
|
|
1409
|
+
<Text>{style.name}</Text>
|
|
1410
|
+
</h3>
|
|
1411
|
+
<p className="text-[#4b5563] mb-[16px] text-sm [lineHeight:1.625]">
|
|
1412
|
+
<Text>{style.description}</Text>
|
|
1413
|
+
</p>
|
|
1414
|
+
<View className="gap-2 flex flex-wrap mb-[16px]">
|
|
1415
|
+
{style.features.map((feature, index) => (
|
|
1416
|
+
<Text
|
|
1417
|
+
key={index}
|
|
1418
|
+
className="pl-[12px] pr-[12px] pt-[4px] pb-[4px] bg-[#f3f4f6] text-[#374151] text-xs rounded-full"
|
|
1419
|
+
>
|
|
1420
|
+
{feature}
|
|
1421
|
+
</Text>
|
|
1422
|
+
))}
|
|
1423
|
+
</View>
|
|
1424
|
+
<View className="border-gray-200 border-solid bg-[var(--gray-50)] rounded-lg p-[12px] border border-solid">
|
|
1425
|
+
<p className="line-clamp-2 text-xs text-[#6b7280]">
|
|
1426
|
+
<Text>{style.prompt}</Text>
|
|
1427
|
+
</p>
|
|
1428
|
+
</View>
|
|
1429
|
+
<View className="text-gray-400 text-sm group-hover:text-blue-500 transition-colors mt-[16px] flex items-center justify-center">
|
|
1430
|
+
<svg
|
|
1431
|
+
fill="none"
|
|
1432
|
+
stroke="currentColor"
|
|
1433
|
+
viewBox="0 0 24 24"
|
|
1434
|
+
className="w-[16px] h-[16px] mr-[4px]"
|
|
1435
|
+
>
|
|
1436
|
+
<path
|
|
1437
|
+
strokeLinecap="round"
|
|
1438
|
+
strokeLinejoin="round"
|
|
1439
|
+
strokeWidth={2}
|
|
1440
|
+
d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"
|
|
1441
|
+
/>
|
|
1442
|
+
<path
|
|
1443
|
+
strokeLinecap="round"
|
|
1444
|
+
strokeLinejoin="round"
|
|
1445
|
+
strokeWidth={2}
|
|
1446
|
+
d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"
|
|
1447
|
+
/>
|
|
1448
|
+
</svg>
|
|
1449
|
+
<Text>点击预览效果</Text>
|
|
1450
|
+
</View>
|
|
1451
|
+
</View>
|
|
1452
|
+
</View>
|
|
1453
|
+
))}
|
|
1454
|
+
</View>
|
|
1455
|
+
</View>
|
|
1456
|
+
<View className="ml-[auto] mr-[auto] mt-[48px]">
|
|
1457
|
+
<p className="text-[#6b7280] text-sm">
|
|
1458
|
+
<Text>共{this.state.styles?.length || 0}种UI风格可供选择</Text>
|
|
1459
|
+
</p>
|
|
1460
|
+
</View>
|
|
1461
|
+
{!!this.state.previewVisible && this.state.currentStyle && (
|
|
1462
|
+
<View className="inset-0 fixed bg-[var(--opacity-50)] flex items-center justify-center z-50 p-[16px]">
|
|
1463
|
+
<View className="bg-[#ffffff] rounded-2xl shadow-[0 25px 50px -12px rgb(0 0 0 / 0.25)] w-full overflow-hidden">
|
|
1464
|
+
<View className="border-gray-200 p-[24px] border-b-[1px] border-b-solid flex items-center justify-between">
|
|
1465
|
+
<View>
|
|
1466
|
+
<h2 className="text-2xl font-bold text-[#111827]">
|
|
1467
|
+
<Text>{this.state.currentStyle.name}</Text>
|
|
1468
|
+
</h2>
|
|
1469
|
+
<p className="text-[#4b5563] mt-[4px]">
|
|
1470
|
+
<Text>{this.state.currentStyle.description}</Text>
|
|
1471
|
+
</p>
|
|
1472
|
+
</View>
|
|
1473
|
+
<button
|
|
1474
|
+
onClick={() => this.handleClosePreview()}
|
|
1475
|
+
className="text-gray-400 hover:text-gray-600 transition-colors"
|
|
1476
|
+
>
|
|
1477
|
+
<svg
|
|
1478
|
+
fill="none"
|
|
1479
|
+
stroke="currentColor"
|
|
1480
|
+
viewBox="0 0 24 24"
|
|
1481
|
+
className="w-[24px] h-[24px]"
|
|
1482
|
+
>
|
|
1483
|
+
<path
|
|
1484
|
+
strokeLinecap="round"
|
|
1485
|
+
strokeLinejoin="round"
|
|
1486
|
+
strokeWidth={2}
|
|
1487
|
+
d="M6 18L18 6M6 6l12 12"
|
|
1488
|
+
/>
|
|
1489
|
+
</svg>
|
|
1490
|
+
</button>
|
|
1491
|
+
</View>
|
|
1492
|
+
<View className="p-[24px] overflow-y-auto">
|
|
1493
|
+
<Text>{this.renderStylePreview(this.state.currentStyle)}</Text>
|
|
1494
|
+
</View>
|
|
1495
|
+
<View className="border-gray-200 p-[24px] border-t border-t-solid bg-[var(--gray-50)] flex items-center justify-between">
|
|
1496
|
+
<View className="space-x-2 flex items-center">
|
|
1497
|
+
{this.state.currentStyle.colors.map((color, index) => (
|
|
1498
|
+
<View
|
|
1499
|
+
key={index}
|
|
1500
|
+
className="w-8 h-8 rounded-full border-2 border-white shadow"
|
|
1501
|
+
style={{ backgroundColor: color }}
|
|
1502
|
+
title={color}
|
|
1503
|
+
/>
|
|
1504
|
+
))}
|
|
1505
|
+
</View>
|
|
1506
|
+
<button
|
|
1507
|
+
onClick={() => this.handleCopyPrompt(this.state.currentStyle)}
|
|
1508
|
+
className="bg-blue-500 hover:bg-blue-600 transition-colors space-x-2 pl-[24px] pr-[24px] pt-[12px] pb-[12px] text-[#ffffff] rounded-lg flex items-center"
|
|
1509
|
+
>
|
|
1510
|
+
<svg
|
|
1511
|
+
fill="none"
|
|
1512
|
+
stroke="currentColor"
|
|
1513
|
+
viewBox="0 0 24 24"
|
|
1514
|
+
className="w-[20px] h-[20px]"
|
|
1515
|
+
>
|
|
1516
|
+
<path
|
|
1517
|
+
strokeLinecap="round"
|
|
1518
|
+
strokeLinejoin="round"
|
|
1519
|
+
strokeWidth={2}
|
|
1520
|
+
d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
|
|
1521
|
+
/>
|
|
1522
|
+
</svg>
|
|
1523
|
+
<Text>复制提示词</Text>
|
|
1524
|
+
</button>
|
|
1525
|
+
</View>
|
|
1526
|
+
</View>
|
|
1527
|
+
</View>
|
|
1528
|
+
)}
|
|
1529
|
+
{!!this.state.toastVisible && (
|
|
1530
|
+
<View className="left-1/2 transform -translate-x-1/2 space-x-2 animate-bounce fixed bottom-[32px] bg-[#111827] text-[#ffffff] pl-[24px] pr-[24px] pt-[12px] pb-[12px] rounded-lg shadow-[0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)] flex items-center">
|
|
1531
|
+
<svg
|
|
1532
|
+
fill="none"
|
|
1533
|
+
stroke="currentColor"
|
|
1534
|
+
viewBox="0 0 24 24"
|
|
1535
|
+
className="w-[20px] h-[20px]"
|
|
1536
|
+
>
|
|
1537
|
+
<path
|
|
1538
|
+
strokeLinecap="round"
|
|
1539
|
+
strokeLinejoin="round"
|
|
1540
|
+
strokeWidth={2}
|
|
1541
|
+
d="M5 13l4 4L19 7"
|
|
1542
|
+
/>
|
|
1543
|
+
</svg>
|
|
1544
|
+
<Text className="text-sm font-medium">
|
|
1545
|
+
{this.state.toastMessage}
|
|
1546
|
+
</Text>
|
|
1547
|
+
</View>
|
|
1548
|
+
)}
|
|
1549
|
+
</Page>
|
|
1550
|
+
);
|
|
1551
|
+
}
|
|
1552
|
+
}
|
|
1553
|
+
|
|
1554
|
+
export default Document;
|