@taskon/widget-react 0.0.1-beta.3 → 0.0.1-beta.4
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/README.md +1 -1
- package/dist/CommunityTaskList.css +1222 -1174
- package/dist/EligibilityInfo.css +443 -263
- package/dist/LeaderboardWidget.css +355 -152
- package/dist/Quest.css +690 -408
- package/dist/TaskOnProvider.css +35 -16
- package/dist/UserCenterWidget.css +116 -71
- package/dist/UserCenterWidget2.css +1285 -748
- package/dist/chunks/{CommunityTaskList-C9mPl_31.js → CommunityTaskList-C9Gv8KOF.js} +65 -17
- package/dist/chunks/{EligibilityInfo-DGBffKN8.js → EligibilityInfo-D-Fuy9GE.js} +4 -4
- package/dist/chunks/{LeaderboardWidget-DPOQVXkT.js → LeaderboardWidget-BV2D2q1N.js} +2 -2
- package/dist/chunks/{PageBuilder-WCZvxL2j.js → PageBuilder-DQoU4Mwf.js} +5 -5
- package/dist/chunks/{Quest-DjGH_8bx.js → Quest-B5NyVr3o.js} +56 -15
- package/dist/chunks/{TaskOnProvider-iannERG1.js → TaskOnProvider-93UxARFo.js} +1 -1
- package/dist/chunks/{ThemeProvider-DNJqI2lD.js → ThemeProvider-CPI_roeh.js} +3 -3
- package/dist/chunks/{UserCenterWidget-CAhgp46j.js → UserCenterWidget-BRtigY_S.js} +6 -5
- package/dist/chunks/{UserCenterWidget-B0O-f_xl.js → UserCenterWidget-cADBSVg7.js} +21 -7
- package/dist/chunks/{dynamic-import-helper-B2j_dZ4V.js → dynamic-import-helper-DwXlQC0S.js} +1 -1
- package/dist/community-task.js +1 -1
- package/dist/core.js +2 -2
- package/dist/dynamic-import-helper.css +424 -303
- package/dist/index.js +9 -9
- package/dist/leaderboard.js +2 -2
- package/dist/page-builder.js +1 -1
- package/dist/quest.js +1 -1
- package/dist/user-center.js +5 -5
- package/package.json +4 -1
package/dist/EligibilityInfo.css
CHANGED
|
@@ -7,25 +7,41 @@
|
|
|
7
7
|
* while intentionally removing the glow background layer.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
/*
|
|
11
|
+
* Responsive base styles
|
|
12
|
+
*
|
|
13
|
+
* Keep mobile breakpoints and fallback patterns centralized here.
|
|
14
|
+
* Components should reuse these mixins instead of duplicating query logic.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
* Desktop-up mixin:
|
|
19
|
+
* 1) Enable desktop enhancement in wider containers
|
|
20
|
+
* 2) Keep viewport media query as fallback
|
|
21
|
+
*/
|
|
22
|
+
|
|
10
23
|
/* Narrow the default dialog body padding for this notice layout */
|
|
24
|
+
|
|
11
25
|
.taskon-confirm-notice-dialog .taskon-dialog-body {
|
|
12
26
|
padding: 0;
|
|
13
27
|
}
|
|
14
28
|
|
|
15
29
|
/* ConfirmNotice content root */
|
|
30
|
+
|
|
16
31
|
.taskon-confirm-notice {
|
|
17
32
|
position: relative;
|
|
18
|
-
width:
|
|
19
|
-
max-width:
|
|
20
|
-
padding:
|
|
21
|
-
background: var(--taskon-color-bg-
|
|
22
|
-
color: var(--taskon-color-text
|
|
23
|
-
border-radius:
|
|
33
|
+
width: auto;
|
|
34
|
+
max-width: none;
|
|
35
|
+
padding: var(--taskon-spacing-xl) var(--taskon-spacing-lg) var(--taskon-spacing-lg);
|
|
36
|
+
background: var(--taskon-color-bg-floating);
|
|
37
|
+
color: var(--taskon-color-text);
|
|
38
|
+
border-radius: var(--taskon-border-radius-lg);
|
|
24
39
|
text-align: center;
|
|
25
40
|
box-sizing: border-box;
|
|
26
41
|
}
|
|
27
42
|
|
|
28
43
|
/* Status icon */
|
|
44
|
+
|
|
29
45
|
.taskon-confirm-notice-icon {
|
|
30
46
|
width: 46px;
|
|
31
47
|
height: 46px;
|
|
@@ -34,29 +50,33 @@
|
|
|
34
50
|
}
|
|
35
51
|
|
|
36
52
|
/* Title */
|
|
53
|
+
|
|
37
54
|
.taskon-confirm-notice-title {
|
|
38
55
|
margin: 20px 0 0;
|
|
39
56
|
font-weight: 600;
|
|
40
57
|
font-size: 22px;
|
|
41
58
|
line-height: 28px;
|
|
42
|
-
color: var(--taskon-color-text
|
|
59
|
+
color: var(--taskon-color-text);
|
|
43
60
|
white-space: pre-wrap;
|
|
44
61
|
}
|
|
45
62
|
|
|
46
63
|
/* Description */
|
|
64
|
+
|
|
47
65
|
.taskon-confirm-notice-desc {
|
|
48
66
|
margin: 10px 0 0;
|
|
49
67
|
font-size: 16px;
|
|
50
68
|
line-height: 20px;
|
|
51
|
-
color: var(--taskon-color-text-secondary
|
|
69
|
+
color: var(--taskon-color-text-secondary);
|
|
52
70
|
white-space: pre-wrap;
|
|
53
71
|
}
|
|
54
72
|
|
|
55
73
|
/* Action container */
|
|
74
|
+
|
|
56
75
|
.taskon-confirm-notice-buttons {
|
|
57
76
|
margin-top: 20px;
|
|
58
77
|
display: flex;
|
|
59
|
-
|
|
78
|
+
flex-direction: column;
|
|
79
|
+
align-items: stretch;
|
|
60
80
|
justify-content: center;
|
|
61
81
|
gap: 10px;
|
|
62
82
|
}
|
|
@@ -66,8 +86,10 @@
|
|
|
66
86
|
}
|
|
67
87
|
|
|
68
88
|
/* Base action button style */
|
|
89
|
+
|
|
69
90
|
.taskon-confirm-notice-button {
|
|
70
|
-
|
|
91
|
+
width: 100%;
|
|
92
|
+
min-width: 100%;
|
|
71
93
|
height: 36px;
|
|
72
94
|
padding: 0 16px;
|
|
73
95
|
border-radius: 8px;
|
|
@@ -86,68 +108,71 @@
|
|
|
86
108
|
}
|
|
87
109
|
|
|
88
110
|
/* Cancel button */
|
|
111
|
+
|
|
89
112
|
.taskon-confirm-notice-button--cancel {
|
|
90
|
-
color:
|
|
91
|
-
background:
|
|
92
|
-
border-color:
|
|
113
|
+
color: var(--taskon-color-text);
|
|
114
|
+
background: var(--taskon-color-bg-surface-subtle);
|
|
115
|
+
border-color: var(--taskon-color-border);
|
|
93
116
|
}
|
|
94
117
|
|
|
95
118
|
.taskon-confirm-notice-button--cancel:hover:not(:disabled),
|
|
96
119
|
.taskon-confirm-notice-button--cancel:focus-visible:not(:disabled) {
|
|
97
|
-
background:
|
|
120
|
+
background: var(--taskon-color-bg-surface);
|
|
98
121
|
}
|
|
99
122
|
|
|
100
123
|
/* Confirm button */
|
|
124
|
+
|
|
101
125
|
.taskon-confirm-notice-button--confirm {
|
|
102
|
-
color:
|
|
103
|
-
background: var(--taskon-color-primary
|
|
126
|
+
color: var(--taskon-color-text-on-primary);
|
|
127
|
+
background: var(--taskon-color-primary);
|
|
104
128
|
}
|
|
105
129
|
|
|
106
130
|
.taskon-confirm-notice-button--confirm:hover:not(:disabled),
|
|
107
131
|
.taskon-confirm-notice-button--confirm:focus-visible:not(:disabled) {
|
|
108
|
-
|
|
132
|
+
background: var(--taskon-color-primary-hover);
|
|
109
133
|
}
|
|
110
134
|
|
|
111
|
-
/*
|
|
112
|
-
|
|
135
|
+
/* Desktop 增强 */
|
|
136
|
+
|
|
137
|
+
@supports (container-type: inline-size) {
|
|
138
|
+
@container (min-width: 751px) {
|
|
113
139
|
.taskon-confirm-notice {
|
|
114
|
-
|
|
115
|
-
width:
|
|
116
|
-
padding:
|
|
140
|
+
width: 100%;
|
|
141
|
+
max-width: 470px;
|
|
142
|
+
padding: 40px 55px;
|
|
117
143
|
}
|
|
118
144
|
|
|
119
|
-
.taskon-confirm-notice-
|
|
120
|
-
|
|
121
|
-
|
|
145
|
+
.taskon-confirm-notice-buttons {
|
|
146
|
+
flex-direction: row;
|
|
147
|
+
align-items: center;
|
|
122
148
|
}
|
|
123
149
|
|
|
124
|
-
.taskon-confirm-notice-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
150
|
+
.taskon-confirm-notice-button {
|
|
151
|
+
width: auto;
|
|
152
|
+
min-width: 161px;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
128
155
|
}
|
|
129
156
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
157
|
+
@supports not (container-type: inline-size) {
|
|
158
|
+
@media (min-width: 751px) {
|
|
159
|
+
.taskon-confirm-notice {
|
|
160
|
+
width: 100%;
|
|
161
|
+
max-width: 470px;
|
|
162
|
+
padding: 40px 55px;
|
|
134
163
|
}
|
|
135
164
|
|
|
136
165
|
.taskon-confirm-notice-buttons {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
gap: 2.667vw;
|
|
166
|
+
flex-direction: row;
|
|
167
|
+
align-items: center;
|
|
140
168
|
}
|
|
141
169
|
|
|
142
170
|
.taskon-confirm-notice-button {
|
|
143
|
-
width:
|
|
144
|
-
min-width:
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
border-radius: 2.133vw;
|
|
148
|
-
font-size: 3.467vw;
|
|
171
|
+
width: auto;
|
|
172
|
+
min-width: 161px;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
149
175
|
}
|
|
150
|
-
}
|
|
151
176
|
/**
|
|
152
177
|
* Textarea 通用组件样式
|
|
153
178
|
* @description 复刻 Vue 版本 BaseTextareaPro.vue 样式
|
|
@@ -155,12 +180,14 @@
|
|
|
155
180
|
*/
|
|
156
181
|
|
|
157
182
|
/* ==================== 容器 ==================== */
|
|
183
|
+
|
|
158
184
|
.taskon-textarea-wrap {
|
|
159
185
|
position: relative;
|
|
160
186
|
font-size: 0;
|
|
161
187
|
}
|
|
162
188
|
|
|
163
189
|
/* ==================== 文本域 ==================== */
|
|
190
|
+
|
|
164
191
|
.taskon-textarea {
|
|
165
192
|
width: 100%;
|
|
166
193
|
min-height: 100px;
|
|
@@ -195,6 +222,7 @@
|
|
|
195
222
|
}
|
|
196
223
|
|
|
197
224
|
/* ==================== 字数统计 ==================== */
|
|
225
|
+
|
|
198
226
|
.taskon-textarea-count {
|
|
199
227
|
position: absolute;
|
|
200
228
|
right: 20px;
|
|
@@ -208,29 +236,13 @@
|
|
|
208
236
|
.taskon-textarea-count-current {
|
|
209
237
|
color: var(--taskon-color-text);
|
|
210
238
|
}
|
|
211
|
-
|
|
212
|
-
/* ==================== 响应式 ==================== */
|
|
213
|
-
@media (max-width: 750px) {
|
|
214
|
-
.taskon-textarea {
|
|
215
|
-
min-height: 26.667vw;
|
|
216
|
-
padding: 3.2vw;
|
|
217
|
-
padding-bottom: 8vw; /* 给计数器留空间 */
|
|
218
|
-
font-size: 3.733vw;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
.taskon-textarea-count {
|
|
222
|
-
right: 2.933vw;
|
|
223
|
-
bottom: 2.667vw;
|
|
224
|
-
font-size: 2.933vw;
|
|
225
|
-
line-height: 2.667vw;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
239
|
/**
|
|
229
240
|
* TitleExpress 组件样式
|
|
230
241
|
* @module components/TitleExpress
|
|
231
242
|
*/
|
|
232
243
|
|
|
233
244
|
/* 可点击链接 - 统一蓝色加下划线样式 */
|
|
245
|
+
|
|
234
246
|
.taskon-title-express-link {
|
|
235
247
|
display: inline;
|
|
236
248
|
color: var(--taskon-color-link);
|
|
@@ -244,6 +256,7 @@
|
|
|
244
256
|
}
|
|
245
257
|
|
|
246
258
|
/* 可复制文本 */
|
|
259
|
+
|
|
247
260
|
.taskon-title-express-copy {
|
|
248
261
|
display: inline;
|
|
249
262
|
color: var(--taskon-color-secondary);
|
|
@@ -251,6 +264,7 @@
|
|
|
251
264
|
}
|
|
252
265
|
|
|
253
266
|
/* Radix Popover 内容 */
|
|
267
|
+
|
|
254
268
|
.taskon-title-express-popover-content {
|
|
255
269
|
display: flex;
|
|
256
270
|
align-items: center;
|
|
@@ -280,6 +294,7 @@
|
|
|
280
294
|
}
|
|
281
295
|
|
|
282
296
|
/* 复制图标 */
|
|
297
|
+
|
|
283
298
|
.taskon-title-express-copy-icon {
|
|
284
299
|
width: 14px;
|
|
285
300
|
height: 14px;
|
|
@@ -287,11 +302,13 @@
|
|
|
287
302
|
}
|
|
288
303
|
|
|
289
304
|
/* Radix Popover 箭头 */
|
|
305
|
+
|
|
290
306
|
.taskon-title-express-popover-arrow {
|
|
291
307
|
fill: var(--taskon-color-bg-floating);
|
|
292
308
|
}
|
|
293
309
|
|
|
294
310
|
/* 动画 */
|
|
311
|
+
|
|
295
312
|
@keyframes taskon-popover-fade-in {
|
|
296
313
|
from {
|
|
297
314
|
opacity: 0;
|
|
@@ -302,22 +319,6 @@
|
|
|
302
319
|
transform: translateY(0);
|
|
303
320
|
}
|
|
304
321
|
}
|
|
305
|
-
|
|
306
|
-
/* 响应式样式(移动端) */
|
|
307
|
-
@media (max-width: 750px) {
|
|
308
|
-
.taskon-title-express-popover-content {
|
|
309
|
-
padding: 2.13vw 3.2vw;
|
|
310
|
-
font-size: 3.73vw;
|
|
311
|
-
line-height: 4.8vw;
|
|
312
|
-
border-radius: 2.13vw;
|
|
313
|
-
gap: 1.6vw;
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
.taskon-title-express-copy-icon {
|
|
317
|
-
width: 3.73vw;
|
|
318
|
-
height: 3.73vw;
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
322
|
/**
|
|
322
323
|
* CardDescExpress 组件样式
|
|
323
324
|
* @module components/CardDescExpress
|
|
@@ -346,6 +347,7 @@
|
|
|
346
347
|
}
|
|
347
348
|
|
|
348
349
|
/* ========== 基础防护(降低宿主 reset 影响) ========== */
|
|
350
|
+
|
|
349
351
|
.taskon-card-desc-rich,
|
|
350
352
|
.taskon-card-desc-rich *,
|
|
351
353
|
.taskon-card-desc-rich *::before,
|
|
@@ -354,6 +356,7 @@
|
|
|
354
356
|
}
|
|
355
357
|
|
|
356
358
|
/* ========== 基础块元素(对齐 Quill 编辑器语义) ========== */
|
|
359
|
+
|
|
357
360
|
.taskon-card-desc-rich p,
|
|
358
361
|
.taskon-card-desc-rich ol,
|
|
359
362
|
.taskon-card-desc-rich ul,
|
|
@@ -378,14 +381,6 @@
|
|
|
378
381
|
color: var(--taskon-color-text);
|
|
379
382
|
}
|
|
380
383
|
|
|
381
|
-
@media (max-width: 750px) {
|
|
382
|
-
.taskon-card-desc-rich h1 {
|
|
383
|
-
font-size: 4.8vw;
|
|
384
|
-
line-height: 6vw;
|
|
385
|
-
font-weight: 600;
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
|
|
389
384
|
.taskon-card-desc-rich h2 {
|
|
390
385
|
font-size: 1.5em;
|
|
391
386
|
}
|
|
@@ -407,6 +402,7 @@
|
|
|
407
402
|
}
|
|
408
403
|
|
|
409
404
|
/* ========== 列表(核心:确保圆点/编号稳定可见) ========== */
|
|
405
|
+
|
|
410
406
|
.taskon-card-desc-rich ol,
|
|
411
407
|
.taskon-card-desc-rich ul {
|
|
412
408
|
margin: 0.5em 0;
|
|
@@ -567,6 +563,7 @@
|
|
|
567
563
|
}
|
|
568
564
|
|
|
569
565
|
/* ========== 缩进与对齐(对齐 Quill class 语义) ========== */
|
|
566
|
+
|
|
570
567
|
.taskon-card-desc-rich .ql-indent-1:not(.ql-direction-rtl) {
|
|
571
568
|
padding-left: 3em;
|
|
572
569
|
}
|
|
@@ -729,6 +726,7 @@
|
|
|
729
726
|
}
|
|
730
727
|
|
|
731
728
|
/* ========== 常见富文本元素 ========== */
|
|
729
|
+
|
|
732
730
|
.taskon-card-desc-rich a {
|
|
733
731
|
color: var(--taskon-color-link);
|
|
734
732
|
text-decoration: underline;
|
|
@@ -788,53 +786,58 @@
|
|
|
788
786
|
width: 100%;
|
|
789
787
|
max-width: 100%;
|
|
790
788
|
}
|
|
791
|
-
|
|
792
|
-
/* ========== 响应式样式(移动端) ========== */
|
|
793
|
-
@media (max-width: 750px) {
|
|
794
|
-
.taskon-card-desc-rich {
|
|
795
|
-
max-height: 18vw;
|
|
796
|
-
font-size: 3.733vw;
|
|
797
|
-
line-height: normal;
|
|
798
|
-
}
|
|
799
|
-
|
|
800
|
-
.taskon-card-desc-rich--no-max-height {
|
|
801
|
-
margin-top: 0;
|
|
802
|
-
max-height: none;
|
|
803
|
-
}
|
|
804
|
-
}
|
|
805
789
|
/**
|
|
806
790
|
* TaskVerifyFailedDialog styles
|
|
807
791
|
* @description Match Vue ErrorInfo content rhythm and readability.
|
|
808
792
|
*/
|
|
809
793
|
|
|
794
|
+
/*
|
|
795
|
+
* Responsive base styles
|
|
796
|
+
*
|
|
797
|
+
* Keep mobile breakpoints and fallback patterns centralized here.
|
|
798
|
+
* Components should reuse these mixins instead of duplicating query logic.
|
|
799
|
+
*/
|
|
800
|
+
|
|
801
|
+
/*
|
|
802
|
+
* Desktop-up mixin:
|
|
803
|
+
* 1) Enable desktop enhancement in wider containers
|
|
804
|
+
* 2) Keep viewport media query as fallback
|
|
805
|
+
*/
|
|
806
|
+
|
|
810
807
|
.taskon-task-verify-failed-dialog .taskon-dialog-body {
|
|
811
808
|
padding: 0;
|
|
812
809
|
}
|
|
813
810
|
|
|
814
811
|
.taskon-task-verify-failed-dialog-message {
|
|
815
|
-
margin-top:
|
|
812
|
+
margin-top: var(--taskon-spacing-sm);
|
|
816
813
|
font-size: 16px;
|
|
817
814
|
line-height: 20px;
|
|
818
815
|
color: var(--taskon-color-text-tertiary);
|
|
819
816
|
white-space: pre-wrap;
|
|
820
817
|
}
|
|
821
|
-
|
|
822
|
-
@media (max-width: 750px) {
|
|
823
|
-
.taskon-task-verify-failed-dialog-message {
|
|
824
|
-
margin-top: 3.73vw;
|
|
825
|
-
font-size: 3.73vw;
|
|
826
|
-
line-height: 4.67vw;
|
|
827
|
-
}
|
|
828
|
-
}
|
|
829
818
|
/**
|
|
830
819
|
* PowTask Styles
|
|
831
820
|
* @description POW 任务样式
|
|
832
821
|
* 遵循 Widget 命名规范:.taskon-{widget-name}-{element}
|
|
833
822
|
*/
|
|
834
823
|
|
|
824
|
+
/*
|
|
825
|
+
* Responsive base styles
|
|
826
|
+
*
|
|
827
|
+
* Keep mobile breakpoints and fallback patterns centralized here.
|
|
828
|
+
* Components should reuse these mixins instead of duplicating query logic.
|
|
829
|
+
*/
|
|
830
|
+
|
|
831
|
+
/*
|
|
832
|
+
* Desktop-up mixin:
|
|
833
|
+
* 1) Enable desktop enhancement in wider containers
|
|
834
|
+
* 2) Keep viewport media query as fallback
|
|
835
|
+
*/
|
|
836
|
+
|
|
835
837
|
/* ============================================
|
|
836
838
|
* POW Task Container
|
|
837
839
|
* ============================================ */
|
|
840
|
+
|
|
838
841
|
.taskon-pow-task {
|
|
839
842
|
/* 继承 TaskCardBase 的样式 */
|
|
840
843
|
}
|
|
@@ -842,6 +845,7 @@
|
|
|
842
845
|
/* ============================================
|
|
843
846
|
* POW Input Area
|
|
844
847
|
* ============================================ */
|
|
848
|
+
|
|
845
849
|
.taskon-pow-input-area {
|
|
846
850
|
margin-top: var(--taskon-spacing-md);
|
|
847
851
|
}
|
|
@@ -849,14 +853,17 @@
|
|
|
849
853
|
/* ============================================
|
|
850
854
|
* URL Input Row
|
|
851
855
|
* ============================================ */
|
|
856
|
+
|
|
852
857
|
.taskon-pow-url-row {
|
|
853
858
|
display: flex;
|
|
854
|
-
|
|
855
|
-
|
|
859
|
+
flex-direction: column;
|
|
860
|
+
align-items: stretch;
|
|
861
|
+
gap: var(--taskon-spacing-sm);
|
|
856
862
|
}
|
|
857
863
|
|
|
858
864
|
.taskon-pow-input {
|
|
859
865
|
flex: 1;
|
|
866
|
+
width: 100%;
|
|
860
867
|
padding: var(--taskon-spacing-sm)
|
|
861
868
|
var(--taskon-spacing-md);
|
|
862
869
|
border: 1px solid var(--taskon-color-border);
|
|
@@ -884,10 +891,12 @@
|
|
|
884
891
|
/* ============================================
|
|
885
892
|
* Text Input Row
|
|
886
893
|
* ============================================ */
|
|
894
|
+
|
|
887
895
|
.taskon-pow-text-row {
|
|
888
896
|
display: flex;
|
|
889
|
-
|
|
890
|
-
|
|
897
|
+
flex-direction: column;
|
|
898
|
+
align-items: stretch;
|
|
899
|
+
gap: var(--taskon-spacing-sm);
|
|
891
900
|
}
|
|
892
901
|
|
|
893
902
|
.taskon-pow-text-row .taskon-textarea-wrap {
|
|
@@ -897,12 +906,18 @@
|
|
|
897
906
|
/* ============================================
|
|
898
907
|
* Image Upload Area - 与 Vue 版本 PowImageUploader 一致
|
|
899
908
|
* ============================================ */
|
|
909
|
+
|
|
900
910
|
.taskon-pow-image-uploader {
|
|
901
|
-
margin-top: var(--taskon-spacing-
|
|
911
|
+
margin-top: var(--taskon-spacing-md);
|
|
902
912
|
display: flex;
|
|
903
913
|
align-items: center;
|
|
904
914
|
}
|
|
905
915
|
|
|
916
|
+
.taskon-pow-url-row .taskon-verify-btn,
|
|
917
|
+
.taskon-pow-text-row .taskon-verify-btn {
|
|
918
|
+
width: 100%;
|
|
919
|
+
}
|
|
920
|
+
|
|
906
921
|
.taskon-pow-image-upload-area {
|
|
907
922
|
flex: 1;
|
|
908
923
|
position: relative;
|
|
@@ -959,6 +974,7 @@
|
|
|
959
974
|
}
|
|
960
975
|
|
|
961
976
|
/* Hover mask overlay */
|
|
977
|
+
|
|
962
978
|
.taskon-pow-image-mask {
|
|
963
979
|
display: none;
|
|
964
980
|
position: absolute;
|
|
@@ -985,6 +1001,7 @@
|
|
|
985
1001
|
}
|
|
986
1002
|
|
|
987
1003
|
/* Progress bar at bottom */
|
|
1004
|
+
|
|
988
1005
|
.taskon-pow-image-progress-bar {
|
|
989
1006
|
z-index: 3;
|
|
990
1007
|
position: absolute;
|
|
@@ -1005,6 +1022,7 @@
|
|
|
1005
1022
|
/* ============================================
|
|
1006
1023
|
* Error Message
|
|
1007
1024
|
* ============================================ */
|
|
1025
|
+
|
|
1008
1026
|
.taskon-pow-error {
|
|
1009
1027
|
margin-top: 10px;
|
|
1010
1028
|
font-size: 14px;
|
|
@@ -1014,7 +1032,9 @@
|
|
|
1014
1032
|
/* ============================================
|
|
1015
1033
|
* Average Review Time
|
|
1016
1034
|
* ============================================ */
|
|
1035
|
+
|
|
1017
1036
|
/* 与 Vue 版本 AverageReview.vue 样式一致 */
|
|
1037
|
+
|
|
1018
1038
|
.taskon-pow-review-time {
|
|
1019
1039
|
margin-top: 10px;
|
|
1020
1040
|
color: var(--taskon-color-warning);
|
|
@@ -1024,47 +1044,58 @@
|
|
|
1024
1044
|
}
|
|
1025
1045
|
|
|
1026
1046
|
/* ============================================
|
|
1027
|
-
*
|
|
1047
|
+
* Desktop 增强
|
|
1028
1048
|
* ============================================ */
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1049
|
+
|
|
1050
|
+
@supports (container-type: inline-size) {
|
|
1051
|
+
@container (min-width: 751px) {
|
|
1052
|
+
.taskon-pow-url-row {
|
|
1053
|
+
flex-direction: row;
|
|
1054
|
+
align-items: center;
|
|
1055
|
+
gap: var(--taskon-spacing-md);
|
|
1034
1056
|
}
|
|
1035
1057
|
|
|
1036
|
-
.taskon-pow-
|
|
1037
|
-
|
|
1058
|
+
.taskon-pow-text-row {
|
|
1059
|
+
flex-direction: row;
|
|
1060
|
+
align-items: flex-end;
|
|
1061
|
+
gap: var(--taskon-spacing-md);
|
|
1038
1062
|
}
|
|
1039
1063
|
|
|
1040
1064
|
.taskon-pow-url-row .taskon-verify-btn,
|
|
1041
1065
|
.taskon-pow-text-row .taskon-verify-btn {
|
|
1042
|
-
width:
|
|
1066
|
+
width: auto;
|
|
1043
1067
|
}
|
|
1044
1068
|
|
|
1045
1069
|
.taskon-pow-image-uploader {
|
|
1046
|
-
margin-top:
|
|
1070
|
+
margin-top: var(--taskon-spacing-lg);
|
|
1071
|
+
}
|
|
1072
|
+
}
|
|
1047
1073
|
}
|
|
1048
1074
|
|
|
1049
|
-
|
|
1050
|
-
min-
|
|
1075
|
+
@supports not (container-type: inline-size) {
|
|
1076
|
+
@media (min-width: 751px) {
|
|
1077
|
+
.taskon-pow-url-row {
|
|
1078
|
+
flex-direction: row;
|
|
1079
|
+
align-items: center;
|
|
1080
|
+
gap: var(--taskon-spacing-md);
|
|
1051
1081
|
}
|
|
1052
1082
|
|
|
1053
|
-
.taskon-pow-
|
|
1054
|
-
|
|
1055
|
-
|
|
1083
|
+
.taskon-pow-text-row {
|
|
1084
|
+
flex-direction: row;
|
|
1085
|
+
align-items: flex-end;
|
|
1086
|
+
gap: var(--taskon-spacing-md);
|
|
1056
1087
|
}
|
|
1057
1088
|
|
|
1058
|
-
.taskon-pow-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
line-height: 2.67vw;
|
|
1089
|
+
.taskon-pow-url-row .taskon-verify-btn,
|
|
1090
|
+
.taskon-pow-text-row .taskon-verify-btn {
|
|
1091
|
+
width: auto;
|
|
1062
1092
|
}
|
|
1063
1093
|
|
|
1064
|
-
.taskon-pow-image-
|
|
1065
|
-
|
|
1094
|
+
.taskon-pow-image-uploader {
|
|
1095
|
+
margin-top: var(--taskon-spacing-lg);
|
|
1096
|
+
}
|
|
1097
|
+
}
|
|
1066
1098
|
}
|
|
1067
|
-
}
|
|
1068
1099
|
/* ============================================
|
|
1069
1100
|
DynamicPoints Component Styles
|
|
1070
1101
|
与 Vue 版本 BaseDynamicPoint.vue 样式一致
|
|
@@ -1177,6 +1208,7 @@
|
|
|
1177
1208
|
}
|
|
1178
1209
|
|
|
1179
1210
|
/* Content wrapper */
|
|
1211
|
+
|
|
1180
1212
|
.taskon-swap-content {
|
|
1181
1213
|
display: flex;
|
|
1182
1214
|
flex-direction: column;
|
|
@@ -1184,6 +1216,7 @@
|
|
|
1184
1216
|
}
|
|
1185
1217
|
|
|
1186
1218
|
/* Rules section - 动态积分规则区域 */
|
|
1219
|
+
|
|
1187
1220
|
.taskon-swap-rules-section {
|
|
1188
1221
|
display: flex;
|
|
1189
1222
|
flex-direction: column;
|
|
@@ -1223,6 +1256,7 @@
|
|
|
1223
1256
|
}
|
|
1224
1257
|
|
|
1225
1258
|
/* Instructions section - 任务描述区域 */
|
|
1259
|
+
|
|
1226
1260
|
.taskon-swap-instructions-section {
|
|
1227
1261
|
display: flex;
|
|
1228
1262
|
flex-direction: column;
|
|
@@ -1251,6 +1285,7 @@
|
|
|
1251
1285
|
}
|
|
1252
1286
|
|
|
1253
1287
|
/* ==================== Customized Param Dialog ==================== */
|
|
1288
|
+
|
|
1254
1289
|
.taskon-outer-point-api-dialog {
|
|
1255
1290
|
display: flex;
|
|
1256
1291
|
flex-direction: column;
|
|
@@ -1258,6 +1293,7 @@
|
|
|
1258
1293
|
}
|
|
1259
1294
|
|
|
1260
1295
|
/* Dialog title */
|
|
1296
|
+
|
|
1261
1297
|
.taskon-outer-point-api-dialog-title {
|
|
1262
1298
|
font-size: 18px;
|
|
1263
1299
|
font-weight: 600;
|
|
@@ -1266,6 +1302,7 @@
|
|
|
1266
1302
|
}
|
|
1267
1303
|
|
|
1268
1304
|
/* Warning message */
|
|
1305
|
+
|
|
1269
1306
|
.taskon-outer-point-api-dialog-warning {
|
|
1270
1307
|
display: flex;
|
|
1271
1308
|
align-items: center;
|
|
@@ -1285,6 +1322,7 @@
|
|
|
1285
1322
|
}
|
|
1286
1323
|
|
|
1287
1324
|
/* Description text */
|
|
1325
|
+
|
|
1288
1326
|
.taskon-outer-point-api-dialog-desc {
|
|
1289
1327
|
font-size: 14px;
|
|
1290
1328
|
line-height: 20px;
|
|
@@ -1292,6 +1330,7 @@
|
|
|
1292
1330
|
}
|
|
1293
1331
|
|
|
1294
1332
|
/* Input area */
|
|
1333
|
+
|
|
1295
1334
|
.taskon-outer-point-api-dialog-input-wrap {
|
|
1296
1335
|
display: flex;
|
|
1297
1336
|
flex-direction: column;
|
|
@@ -1337,6 +1376,7 @@
|
|
|
1337
1376
|
}
|
|
1338
1377
|
|
|
1339
1378
|
/* Action buttons */
|
|
1379
|
+
|
|
1340
1380
|
.taskon-outer-point-api-dialog-actions {
|
|
1341
1381
|
display: flex;
|
|
1342
1382
|
justify-content: flex-end;
|
|
@@ -1383,10 +1423,24 @@
|
|
|
1383
1423
|
* 命名规范:.taskon-task-{component}-{element}--{modifier}
|
|
1384
1424
|
*/
|
|
1385
1425
|
|
|
1426
|
+
/*
|
|
1427
|
+
* Responsive base styles
|
|
1428
|
+
*
|
|
1429
|
+
* Keep mobile breakpoints and fallback patterns centralized here.
|
|
1430
|
+
* Components should reuse these mixins instead of duplicating query logic.
|
|
1431
|
+
*/
|
|
1432
|
+
|
|
1433
|
+
/*
|
|
1434
|
+
* Desktop-up mixin:
|
|
1435
|
+
* 1) Enable desktop enhancement in wider containers
|
|
1436
|
+
* 2) Keep viewport media query as fallback
|
|
1437
|
+
*/
|
|
1438
|
+
|
|
1386
1439
|
/* ============================================
|
|
1387
1440
|
TaskList Styles
|
|
1388
1441
|
与 Vue 版本 TaskList.vue + TaskType.vue 一致
|
|
1389
1442
|
============================================ */
|
|
1443
|
+
|
|
1390
1444
|
.taskon-task-list {
|
|
1391
1445
|
display: flex;
|
|
1392
1446
|
flex-direction: column;
|
|
@@ -1394,28 +1448,29 @@
|
|
|
1394
1448
|
}
|
|
1395
1449
|
|
|
1396
1450
|
/* Progress section */
|
|
1451
|
+
|
|
1397
1452
|
.taskon-task-list-progress-wrap {
|
|
1398
1453
|
margin-bottom: var(--taskon-spacing-sm);
|
|
1399
1454
|
}
|
|
1400
1455
|
|
|
1401
1456
|
/* Section styles */
|
|
1457
|
+
|
|
1402
1458
|
.taskon-task-list-section {
|
|
1403
1459
|
display: flex;
|
|
1404
1460
|
flex-direction: column;
|
|
1405
1461
|
}
|
|
1406
1462
|
|
|
1407
1463
|
.taskon-task-list-section-header {
|
|
1408
|
-
display:
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
margin-top: 30px;
|
|
1412
|
-
margin-bottom: 22px;
|
|
1464
|
+
display: block;
|
|
1465
|
+
margin-top: var(--taskon-spacing-lg);
|
|
1466
|
+
margin-bottom: var(--taskon-spacing-md);
|
|
1413
1467
|
}
|
|
1414
1468
|
|
|
1415
1469
|
.taskon-task-list-section-label {
|
|
1416
1470
|
display: flex;
|
|
1417
1471
|
align-items: center;
|
|
1418
|
-
|
|
1472
|
+
flex-wrap: wrap;
|
|
1473
|
+
gap: var(--taskon-spacing-sm);
|
|
1419
1474
|
}
|
|
1420
1475
|
|
|
1421
1476
|
.taskon-task-list-section-title {
|
|
@@ -1438,63 +1493,82 @@
|
|
|
1438
1493
|
.taskon-task-list-items {
|
|
1439
1494
|
display: flex;
|
|
1440
1495
|
flex-direction: column;
|
|
1441
|
-
gap:
|
|
1496
|
+
gap: var(--taskon-spacing-md);
|
|
1442
1497
|
}
|
|
1443
1498
|
|
|
1444
1499
|
/* First section header doesn't need top margin */
|
|
1500
|
+
|
|
1445
1501
|
.taskon-task-list-section:first-child .taskon-task-list-section-header {
|
|
1446
1502
|
margin-top: 0;
|
|
1447
1503
|
}
|
|
1448
1504
|
|
|
1449
1505
|
/* Empty state */
|
|
1506
|
+
|
|
1450
1507
|
.taskon-task-list-empty {
|
|
1451
1508
|
padding: var(--taskon-spacing-lg);
|
|
1452
1509
|
text-align: center;
|
|
1453
1510
|
color: var(--taskon-color-text-disabled);
|
|
1454
1511
|
}
|
|
1455
1512
|
|
|
1456
|
-
|
|
1457
|
-
|
|
1513
|
+
.taskon-completed-count {
|
|
1514
|
+
margin-top: var(--taskon-spacing-sm);
|
|
1515
|
+
justify-content: flex-start;
|
|
1516
|
+
}
|
|
1517
|
+
|
|
1518
|
+
@supports (container-type: inline-size) {
|
|
1519
|
+
@container (min-width: 751px) {
|
|
1458
1520
|
.taskon-task-list-section-header {
|
|
1459
|
-
display:
|
|
1460
|
-
|
|
1461
|
-
|
|
1521
|
+
display: flex;
|
|
1522
|
+
justify-content: space-between;
|
|
1523
|
+
align-items: center;
|
|
1524
|
+
margin-top: 30px;
|
|
1525
|
+
margin-bottom: 22px;
|
|
1462
1526
|
}
|
|
1463
1527
|
|
|
1464
1528
|
.taskon-task-list-section-label {
|
|
1465
|
-
flex-wrap:
|
|
1466
|
-
gap:
|
|
1529
|
+
flex-wrap: nowrap;
|
|
1530
|
+
gap: 6px;
|
|
1467
1531
|
}
|
|
1468
1532
|
|
|
1469
|
-
.taskon-
|
|
1470
|
-
|
|
1471
|
-
line-height: 6vw;
|
|
1533
|
+
.taskon-completed-count {
|
|
1534
|
+
margin-top: 0;
|
|
1472
1535
|
}
|
|
1473
1536
|
|
|
1474
|
-
.taskon-
|
|
1475
|
-
|
|
1476
|
-
|
|
1537
|
+
.taskon-task-list-items {
|
|
1538
|
+
gap: 20px;
|
|
1539
|
+
}
|
|
1540
|
+
}
|
|
1541
|
+
}
|
|
1542
|
+
|
|
1543
|
+
@supports not (container-type: inline-size) {
|
|
1544
|
+
@media (min-width: 751px) {
|
|
1545
|
+
.taskon-task-list-section-header {
|
|
1546
|
+
display: flex;
|
|
1547
|
+
justify-content: space-between;
|
|
1548
|
+
align-items: center;
|
|
1549
|
+
margin-top: 30px;
|
|
1550
|
+
margin-bottom: 22px;
|
|
1477
1551
|
}
|
|
1478
1552
|
|
|
1479
|
-
.taskon-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
margin-right: 2.13vw;
|
|
1553
|
+
.taskon-task-list-section-label {
|
|
1554
|
+
flex-wrap: nowrap;
|
|
1555
|
+
gap: 6px;
|
|
1483
1556
|
}
|
|
1484
1557
|
|
|
1485
|
-
.taskon-completed-count
|
|
1486
|
-
|
|
1487
|
-
line-height: 4.4vw;
|
|
1558
|
+
.taskon-completed-count {
|
|
1559
|
+
margin-top: 0;
|
|
1488
1560
|
}
|
|
1489
1561
|
|
|
1490
1562
|
.taskon-task-list-items {
|
|
1491
|
-
gap:
|
|
1563
|
+
gap: 20px;
|
|
1564
|
+
}
|
|
1565
|
+
}
|
|
1492
1566
|
}
|
|
1493
|
-
}
|
|
1494
1567
|
|
|
1495
1568
|
/* ============================================
|
|
1496
1569
|
TaskProgress Styles
|
|
1497
1570
|
============================================ */
|
|
1571
|
+
|
|
1498
1572
|
.taskon-task-progress {
|
|
1499
1573
|
display: flex;
|
|
1500
1574
|
flex-direction: column;
|
|
@@ -1504,14 +1578,14 @@
|
|
|
1504
1578
|
.taskon-task-progress-bar {
|
|
1505
1579
|
height: 6px;
|
|
1506
1580
|
background: var(--taskon-color-bg-surface-strong);
|
|
1507
|
-
border-radius:
|
|
1581
|
+
border-radius: var(--taskon-border-radius-sm);
|
|
1508
1582
|
overflow: hidden;
|
|
1509
1583
|
}
|
|
1510
1584
|
|
|
1511
1585
|
.taskon-task-progress-bar-fill {
|
|
1512
1586
|
height: 100%;
|
|
1513
1587
|
background: var(--taskon-color-primary);
|
|
1514
|
-
border-radius:
|
|
1588
|
+
border-radius: var(--taskon-border-radius-sm);
|
|
1515
1589
|
transition: width 0.2s ease;
|
|
1516
1590
|
}
|
|
1517
1591
|
|
|
@@ -1540,9 +1614,10 @@
|
|
|
1540
1614
|
/* ============================================
|
|
1541
1615
|
TaskItem Styles
|
|
1542
1616
|
============================================ */
|
|
1617
|
+
|
|
1543
1618
|
.taskon-task-item {
|
|
1544
1619
|
position: relative;
|
|
1545
|
-
padding:
|
|
1620
|
+
padding: var(--taskon-spacing-md);
|
|
1546
1621
|
background: var(--taskon-color-bg-surface-subtle);
|
|
1547
1622
|
border-radius: var(--taskon-border-radius-lg);
|
|
1548
1623
|
border: 1px solid var(--taskon-color-border-secondary);
|
|
@@ -1557,6 +1632,7 @@
|
|
|
1557
1632
|
左上角浮标:周期标签 / 冷却倒计时
|
|
1558
1633
|
与 Vue 版本 RecurrenceStatus.vue 样式一致
|
|
1559
1634
|
============================================ */
|
|
1635
|
+
|
|
1560
1636
|
.taskon-task-item-recurrence {
|
|
1561
1637
|
position: absolute;
|
|
1562
1638
|
top: -6px;
|
|
@@ -1579,6 +1655,7 @@
|
|
|
1579
1655
|
}
|
|
1580
1656
|
|
|
1581
1657
|
/* 冷却倒计时样式 - 继承标签样式 */
|
|
1658
|
+
|
|
1582
1659
|
.taskon-task-item-recurrence .taskon-cooldown-timer {
|
|
1583
1660
|
color: var(--taskon-color-primary);
|
|
1584
1661
|
font-size: 12px;
|
|
@@ -1589,12 +1666,15 @@
|
|
|
1589
1666
|
/* ============================================
|
|
1590
1667
|
第一行:图标 + 标题 + 右侧内容
|
|
1591
1668
|
============================================ */
|
|
1669
|
+
|
|
1592
1670
|
.taskon-task-item-row {
|
|
1593
1671
|
display: flex;
|
|
1594
|
-
align-items:
|
|
1672
|
+
align-items: flex-start;
|
|
1673
|
+
gap: 8px;
|
|
1595
1674
|
}
|
|
1596
1675
|
|
|
1597
1676
|
/* Left section: Icon + Title */
|
|
1677
|
+
|
|
1598
1678
|
.taskon-task-item-left {
|
|
1599
1679
|
display: flex;
|
|
1600
1680
|
align-items: center;
|
|
@@ -1607,7 +1687,7 @@
|
|
|
1607
1687
|
display: flex;
|
|
1608
1688
|
align-items: center;
|
|
1609
1689
|
justify-content: center;
|
|
1610
|
-
margin-right:
|
|
1690
|
+
margin-right: 10px;
|
|
1611
1691
|
color: var(--taskon-color-text-tertiary);
|
|
1612
1692
|
}
|
|
1613
1693
|
|
|
@@ -1616,7 +1696,9 @@
|
|
|
1616
1696
|
}
|
|
1617
1697
|
|
|
1618
1698
|
/* Title wrapper - 与 Vue 版本 TitleRow 结构一致 */
|
|
1699
|
+
|
|
1619
1700
|
/* 普通 block flow,标题 inline,TotalEarnPoint 作为 block div 自然换行 */
|
|
1701
|
+
|
|
1620
1702
|
.taskon-task-item-title-wrap {
|
|
1621
1703
|
flex: 1;
|
|
1622
1704
|
min-width: 0;
|
|
@@ -1632,6 +1714,7 @@
|
|
|
1632
1714
|
}
|
|
1633
1715
|
|
|
1634
1716
|
/* Title as link - 参考 Vue 版本 TitleRow.vue 的 OutLink 样式 */
|
|
1717
|
+
|
|
1635
1718
|
.taskon-task-item-title--link {
|
|
1636
1719
|
color: var(--taskon-color-link);
|
|
1637
1720
|
text-decoration: underline;
|
|
@@ -1647,6 +1730,7 @@
|
|
|
1647
1730
|
}
|
|
1648
1731
|
|
|
1649
1732
|
/* Links in title - 统一蓝色加下划线样式 */
|
|
1733
|
+
|
|
1650
1734
|
.taskon-task-item-link {
|
|
1651
1735
|
color: var(--taskon-color-link);
|
|
1652
1736
|
text-decoration: underline;
|
|
@@ -1658,6 +1742,7 @@
|
|
|
1658
1742
|
}
|
|
1659
1743
|
|
|
1660
1744
|
/* Title tip icon */
|
|
1745
|
+
|
|
1661
1746
|
.taskon-task-item-title-tip {
|
|
1662
1747
|
display: inline-flex;
|
|
1663
1748
|
align-items: center;
|
|
@@ -1673,15 +1758,18 @@
|
|
|
1673
1758
|
}
|
|
1674
1759
|
|
|
1675
1760
|
/* Right section: Points + Total + Verify */
|
|
1761
|
+
|
|
1676
1762
|
.taskon-task-item-right {
|
|
1677
1763
|
display: flex;
|
|
1678
|
-
|
|
1679
|
-
|
|
1764
|
+
flex-direction: column;
|
|
1765
|
+
align-items: flex-end;
|
|
1766
|
+
gap: 6px;
|
|
1680
1767
|
flex-shrink: 0;
|
|
1681
|
-
margin-left:
|
|
1768
|
+
margin-left: 8px;
|
|
1682
1769
|
}
|
|
1683
1770
|
|
|
1684
1771
|
/* Points display - 参考 TaskPoint.vue */
|
|
1772
|
+
|
|
1685
1773
|
.taskon-task-item-points {
|
|
1686
1774
|
min-width: 40px;
|
|
1687
1775
|
height: 34px;
|
|
@@ -1691,7 +1779,7 @@
|
|
|
1691
1779
|
justify-content: center;
|
|
1692
1780
|
gap: 2px;
|
|
1693
1781
|
background: var(--taskon-color-bg-surface-subtle);
|
|
1694
|
-
border-radius:
|
|
1782
|
+
border-radius: var(--taskon-border-radius-sm);
|
|
1695
1783
|
font-size: 16px;
|
|
1696
1784
|
font-weight: 500;
|
|
1697
1785
|
}
|
|
@@ -1701,6 +1789,7 @@
|
|
|
1701
1789
|
}
|
|
1702
1790
|
|
|
1703
1791
|
/* Points value when task is completed - green color like Vue version */
|
|
1792
|
+
|
|
1704
1793
|
.taskon-task-item-points-value--completed {
|
|
1705
1794
|
color: var(--taskon-color-secondary);
|
|
1706
1795
|
}
|
|
@@ -1711,11 +1800,13 @@
|
|
|
1711
1800
|
}
|
|
1712
1801
|
|
|
1713
1802
|
/* Tip icon next to points (margin controlled externally) */
|
|
1803
|
+
|
|
1714
1804
|
.taskon-task-item-tip {
|
|
1715
1805
|
margin-left: 10px;
|
|
1716
1806
|
}
|
|
1717
1807
|
|
|
1718
1808
|
/* Total points */
|
|
1809
|
+
|
|
1719
1810
|
.taskon-task-item-total-points {
|
|
1720
1811
|
font-size: 12px;
|
|
1721
1812
|
color: var(--taskon-color-text-disabled);
|
|
@@ -1725,6 +1816,7 @@
|
|
|
1725
1816
|
TotalEarnPoint Styles
|
|
1726
1817
|
与 Vue 版本 TotalEarnPoint.vue 样式一致
|
|
1727
1818
|
============================================ */
|
|
1819
|
+
|
|
1728
1820
|
.taskon-task-item-total-earn {
|
|
1729
1821
|
display: flex;
|
|
1730
1822
|
align-items: center;
|
|
@@ -1744,8 +1836,9 @@
|
|
|
1744
1836
|
/* ============================================
|
|
1745
1837
|
第二行:内容区域(始终显示)
|
|
1746
1838
|
============================================ */
|
|
1839
|
+
|
|
1747
1840
|
.taskon-task-item-body {
|
|
1748
|
-
margin-left:
|
|
1841
|
+
margin-left: 36px;
|
|
1749
1842
|
margin-top: 10px;
|
|
1750
1843
|
}
|
|
1751
1844
|
|
|
@@ -1764,6 +1857,7 @@
|
|
|
1764
1857
|
}
|
|
1765
1858
|
|
|
1766
1859
|
/* Description fields */
|
|
1860
|
+
|
|
1767
1861
|
.taskon-task-item-fields {
|
|
1768
1862
|
display: flex;
|
|
1769
1863
|
flex-direction: column;
|
|
@@ -1798,6 +1892,7 @@
|
|
|
1798
1892
|
}
|
|
1799
1893
|
|
|
1800
1894
|
/* Action link */
|
|
1895
|
+
|
|
1801
1896
|
.taskon-task-item-action-link {
|
|
1802
1897
|
display: inline-flex;
|
|
1803
1898
|
align-items: center;
|
|
@@ -1819,6 +1914,7 @@
|
|
|
1819
1914
|
}
|
|
1820
1915
|
|
|
1821
1916
|
/* Spinner animation */
|
|
1917
|
+
|
|
1822
1918
|
@keyframes taskon-spin {
|
|
1823
1919
|
from {
|
|
1824
1920
|
transform: rotate(0deg);
|
|
@@ -1835,6 +1931,7 @@
|
|
|
1835
1931
|
/* ============================================
|
|
1836
1932
|
TaskIcon Styles
|
|
1837
1933
|
============================================ */
|
|
1934
|
+
|
|
1838
1935
|
.taskon-task-icon {
|
|
1839
1936
|
display: inline-flex;
|
|
1840
1937
|
align-items: center;
|
|
@@ -1850,6 +1947,7 @@
|
|
|
1850
1947
|
/* ============================================
|
|
1851
1948
|
CooldownTimer Styles
|
|
1852
1949
|
============================================ */
|
|
1950
|
+
|
|
1853
1951
|
.taskon-cooldown-timer {
|
|
1854
1952
|
display: inline-flex;
|
|
1855
1953
|
align-items: center;
|
|
@@ -1861,6 +1959,7 @@
|
|
|
1861
1959
|
/* ============================================
|
|
1862
1960
|
VerifyButton Styles
|
|
1863
1961
|
============================================ */
|
|
1962
|
+
|
|
1864
1963
|
.taskon-verify-btn {
|
|
1865
1964
|
display: inline-flex;
|
|
1866
1965
|
align-items: center;
|
|
@@ -1903,6 +2002,7 @@
|
|
|
1903
2002
|
/* ============================================
|
|
1904
2003
|
ExpandableContent Styles
|
|
1905
2004
|
============================================ */
|
|
2005
|
+
|
|
1906
2006
|
.taskon-expandable {
|
|
1907
2007
|
display: flex;
|
|
1908
2008
|
flex-direction: column;
|
|
@@ -1946,59 +2046,70 @@
|
|
|
1946
2046
|
}
|
|
1947
2047
|
|
|
1948
2048
|
/* ============================================
|
|
1949
|
-
|
|
2049
|
+
Desktop 增强
|
|
1950
2050
|
============================================ */
|
|
1951
|
-
|
|
2051
|
+
|
|
2052
|
+
@supports (container-type: inline-size) {
|
|
2053
|
+
@container (min-width: 751px) {
|
|
1952
2054
|
.taskon-task-item {
|
|
1953
|
-
padding:
|
|
2055
|
+
padding: 16px 20px;
|
|
2056
|
+
}
|
|
2057
|
+
|
|
2058
|
+
.taskon-task-item-row {
|
|
2059
|
+
align-items: center;
|
|
2060
|
+
gap: 0;
|
|
1954
2061
|
}
|
|
1955
2062
|
|
|
1956
2063
|
.taskon-task-item-body {
|
|
1957
|
-
margin-left:
|
|
2064
|
+
margin-left: 50px;
|
|
1958
2065
|
}
|
|
1959
2066
|
|
|
1960
2067
|
.taskon-task-item-icon {
|
|
1961
|
-
margin-right:
|
|
2068
|
+
margin-right: 16px;
|
|
1962
2069
|
}
|
|
1963
2070
|
|
|
1964
2071
|
.taskon-task-item-right {
|
|
1965
|
-
|
|
2072
|
+
flex-direction: row;
|
|
2073
|
+
align-items: center;
|
|
2074
|
+
gap: 6px;
|
|
2075
|
+
margin-left: 8px;
|
|
2076
|
+
}
|
|
2077
|
+
}
|
|
1966
2078
|
}
|
|
1967
2079
|
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
2080
|
+
@supports not (container-type: inline-size) {
|
|
2081
|
+
@media (min-width: 751px) {
|
|
2082
|
+
.taskon-task-item {
|
|
2083
|
+
padding: 16px 20px;
|
|
1972
2084
|
}
|
|
1973
2085
|
|
|
1974
|
-
.taskon-task-item-
|
|
1975
|
-
|
|
1976
|
-
|
|
2086
|
+
.taskon-task-item-row {
|
|
2087
|
+
align-items: center;
|
|
2088
|
+
gap: 0;
|
|
1977
2089
|
}
|
|
1978
2090
|
|
|
1979
|
-
.taskon-task-
|
|
1980
|
-
|
|
1981
|
-
height: 6.667vw !important;
|
|
2091
|
+
.taskon-task-item-body {
|
|
2092
|
+
margin-left: 50px;
|
|
1982
2093
|
}
|
|
1983
2094
|
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
min-width: 6.8vw;
|
|
1987
|
-
height: 6.67vw;
|
|
1988
|
-
padding: 0 2vw;
|
|
1989
|
-
font-size: 2.93vw;
|
|
1990
|
-
border-radius: 0.91vw;
|
|
2095
|
+
.taskon-task-item-icon {
|
|
2096
|
+
margin-right: 16px;
|
|
1991
2097
|
}
|
|
1992
2098
|
|
|
1993
|
-
.taskon-task-item-
|
|
1994
|
-
|
|
2099
|
+
.taskon-task-item-right {
|
|
2100
|
+
flex-direction: row;
|
|
2101
|
+
align-items: center;
|
|
2102
|
+
gap: 6px;
|
|
2103
|
+
margin-left: 8px;
|
|
2104
|
+
}
|
|
2105
|
+
}
|
|
1995
2106
|
}
|
|
1996
|
-
}
|
|
1997
2107
|
|
|
1998
2108
|
/* ============================================
|
|
1999
2109
|
TimeRange Styles
|
|
2000
2110
|
与 Vue 版本 TimeRange.vue 样式一致
|
|
2001
2111
|
============================================ */
|
|
2112
|
+
|
|
2002
2113
|
.taskon-task-time-range {
|
|
2003
2114
|
font-size: 14px;
|
|
2004
2115
|
line-height: 18px;
|
|
@@ -2018,6 +2129,7 @@
|
|
|
2018
2129
|
VerifyButton Cooldown Progress Bar
|
|
2019
2130
|
与 Vue 版本 VerifyButton.vue 冷却进度条样式一致
|
|
2020
2131
|
============================================ */
|
|
2132
|
+
|
|
2021
2133
|
.taskon-verify-btn-wrap {
|
|
2022
2134
|
position: relative;
|
|
2023
2135
|
display: inline-block;
|
|
@@ -2072,20 +2184,34 @@
|
|
|
2072
2184
|
* Migrated from Vue version with Tailwind classes converted to CSS
|
|
2073
2185
|
*/
|
|
2074
2186
|
|
|
2187
|
+
/*
|
|
2188
|
+
* Responsive base styles
|
|
2189
|
+
*
|
|
2190
|
+
* Keep mobile breakpoints and fallback patterns centralized here.
|
|
2191
|
+
* Components should reuse these mixins instead of duplicating query logic.
|
|
2192
|
+
*/
|
|
2193
|
+
|
|
2194
|
+
/*
|
|
2195
|
+
* Desktop-up mixin:
|
|
2196
|
+
* 1) Enable desktop enhancement in wider containers
|
|
2197
|
+
* 2) Keep viewport media query as fallback
|
|
2198
|
+
*/
|
|
2199
|
+
|
|
2075
2200
|
/* ============================================================================
|
|
2076
2201
|
BlindBox Dialog - 开盲盒交互弹窗
|
|
2077
2202
|
============================================================================ */
|
|
2078
2203
|
|
|
2079
2204
|
.taskon-quest-blindbox-dialog {
|
|
2205
|
+
container-type: inline-size;
|
|
2080
2206
|
position: relative;
|
|
2081
2207
|
width: min(520px, 92vw);
|
|
2082
2208
|
overflow: hidden;
|
|
2083
|
-
padding-top:
|
|
2209
|
+
padding-top: var(--taskon-spacing-lg);
|
|
2084
2210
|
}
|
|
2085
2211
|
|
|
2086
2212
|
.taskon-quest-blindbox-dialog-title {
|
|
2087
|
-
margin: 0 0
|
|
2088
|
-
padding: 0
|
|
2213
|
+
margin: 0 0 var(--taskon-spacing-md);
|
|
2214
|
+
padding: 0 var(--taskon-spacing-lg);
|
|
2089
2215
|
font-size: 22px;
|
|
2090
2216
|
font-weight: 600;
|
|
2091
2217
|
line-height: 1.4;
|
|
@@ -2093,6 +2219,7 @@
|
|
|
2093
2219
|
}
|
|
2094
2220
|
|
|
2095
2221
|
/* Stage container - centered square area for animation */
|
|
2222
|
+
|
|
2096
2223
|
.taskon-quest-blindbox-stage {
|
|
2097
2224
|
position: relative;
|
|
2098
2225
|
display: flex;
|
|
@@ -2108,6 +2235,7 @@
|
|
|
2108
2235
|
}
|
|
2109
2236
|
|
|
2110
2237
|
/* Background spinning light */
|
|
2238
|
+
|
|
2111
2239
|
.taskon-quest-blindbox-bg {
|
|
2112
2240
|
position: absolute;
|
|
2113
2241
|
left: 50%;
|
|
@@ -2134,6 +2262,7 @@
|
|
|
2134
2262
|
}
|
|
2135
2263
|
|
|
2136
2264
|
/* Drop zone - collision detection area */
|
|
2265
|
+
|
|
2137
2266
|
.taskon-quest-blindbox-dropzone {
|
|
2138
2267
|
position: absolute;
|
|
2139
2268
|
left: 50%;
|
|
@@ -2145,6 +2274,7 @@
|
|
|
2145
2274
|
}
|
|
2146
2275
|
|
|
2147
2276
|
/* Chest container */
|
|
2277
|
+
|
|
2148
2278
|
.taskon-quest-blindbox-chest {
|
|
2149
2279
|
position: absolute;
|
|
2150
2280
|
left: 50%;
|
|
@@ -2165,15 +2295,17 @@
|
|
|
2165
2295
|
}
|
|
2166
2296
|
|
|
2167
2297
|
/* Ensure Lottie SVG fills container */
|
|
2298
|
+
|
|
2168
2299
|
.taskon-quest-blindbox-chest svg {
|
|
2169
2300
|
width: 100% !important;
|
|
2170
2301
|
height: auto !important;
|
|
2171
2302
|
}
|
|
2172
2303
|
|
|
2173
2304
|
/* Key image */
|
|
2305
|
+
|
|
2174
2306
|
.taskon-quest-blindbox-key {
|
|
2175
2307
|
position: absolute;
|
|
2176
|
-
width: clamp(80px,
|
|
2308
|
+
width: clamp(80px, 25%, 100px);
|
|
2177
2309
|
transform: translate(-50%, -50%);
|
|
2178
2310
|
cursor: grab;
|
|
2179
2311
|
touch-action: none;
|
|
@@ -2201,16 +2333,18 @@
|
|
|
2201
2333
|
============================================================================ */
|
|
2202
2334
|
|
|
2203
2335
|
.taskon-quest-blindbox-reward {
|
|
2336
|
+
container-type: inline-size;
|
|
2204
2337
|
position: relative;
|
|
2205
2338
|
width: 510px;
|
|
2206
2339
|
max-width: 92vw;
|
|
2207
|
-
padding:
|
|
2340
|
+
padding: 48px var(--taskon-spacing-lg);
|
|
2208
2341
|
text-align: center;
|
|
2209
2342
|
color: #fff;
|
|
2210
2343
|
overflow: hidden;
|
|
2211
2344
|
}
|
|
2212
2345
|
|
|
2213
2346
|
/* Light background effect */
|
|
2347
|
+
|
|
2214
2348
|
.taskon-quest-blindbox-reward-light {
|
|
2215
2349
|
position: absolute;
|
|
2216
2350
|
top: 0;
|
|
@@ -2231,6 +2365,7 @@
|
|
|
2231
2365
|
}
|
|
2232
2366
|
|
|
2233
2367
|
/* Title */
|
|
2368
|
+
|
|
2234
2369
|
.taskon-quest-blindbox-reward-title {
|
|
2235
2370
|
font-size: 32px;
|
|
2236
2371
|
font-weight: 600;
|
|
@@ -2239,6 +2374,7 @@
|
|
|
2239
2374
|
}
|
|
2240
2375
|
|
|
2241
2376
|
/* Subtitle */
|
|
2377
|
+
|
|
2242
2378
|
.taskon-quest-blindbox-reward-subtitle {
|
|
2243
2379
|
margin-top: 12px;
|
|
2244
2380
|
font-size: 16px;
|
|
@@ -2247,31 +2383,33 @@
|
|
|
2247
2383
|
}
|
|
2248
2384
|
|
|
2249
2385
|
/* Rewards container - Green border and background like Vue version */
|
|
2386
|
+
|
|
2250
2387
|
.taskon-quest-blindbox-reward-list {
|
|
2251
2388
|
display: inline-flex;
|
|
2252
2389
|
flex-wrap: wrap;
|
|
2253
2390
|
justify-content: center;
|
|
2254
2391
|
align-items: center;
|
|
2255
|
-
margin-top:
|
|
2256
|
-
gap:
|
|
2257
|
-
padding: 12px
|
|
2258
|
-
border-radius:
|
|
2392
|
+
margin-top: var(--taskon-spacing-lg);
|
|
2393
|
+
gap: var(--taskon-spacing-sm);
|
|
2394
|
+
padding: 12px var(--taskon-spacing-md);
|
|
2395
|
+
border-radius: var(--taskon-border-radius);
|
|
2259
2396
|
border: 1px solid rgba(60, 232, 155, 0.2);
|
|
2260
2397
|
background: rgba(0, 255, 163, 0.1);
|
|
2261
2398
|
}
|
|
2262
2399
|
|
|
2263
2400
|
/* Single reward card - transparent background */
|
|
2401
|
+
|
|
2264
2402
|
.taskon-quest-blindbox-reward-card {
|
|
2265
2403
|
display: flex;
|
|
2266
2404
|
flex-direction: column;
|
|
2267
2405
|
align-items: center;
|
|
2268
2406
|
justify-content: center;
|
|
2269
|
-
padding: 12px
|
|
2407
|
+
padding: 12px var(--taskon-spacing-md);
|
|
2270
2408
|
background: transparent;
|
|
2271
2409
|
border-radius: 0;
|
|
2272
2410
|
min-width: 60px;
|
|
2273
2411
|
min-height: 80px;
|
|
2274
|
-
gap:
|
|
2412
|
+
gap: var(--taskon-spacing-sm);
|
|
2275
2413
|
}
|
|
2276
2414
|
|
|
2277
2415
|
.taskon-quest-blindbox-reward-card-icon {
|
|
@@ -2282,6 +2420,7 @@
|
|
|
2282
2420
|
}
|
|
2283
2421
|
|
|
2284
2422
|
/* Token amount with orange color and underline like Vue version */
|
|
2423
|
+
|
|
2285
2424
|
.taskon-quest-blindbox-reward-card-amount {
|
|
2286
2425
|
font-size: 18px;
|
|
2287
2426
|
font-weight: 600;
|
|
@@ -2302,13 +2441,15 @@
|
|
|
2302
2441
|
}
|
|
2303
2442
|
|
|
2304
2443
|
/* Back button */
|
|
2444
|
+
|
|
2305
2445
|
.taskon-quest-blindbox-reward-btn-wrap {
|
|
2306
2446
|
display: flex;
|
|
2307
2447
|
justify-content: center;
|
|
2308
|
-
margin-top:
|
|
2448
|
+
margin-top: 40px;
|
|
2309
2449
|
}
|
|
2310
2450
|
|
|
2311
2451
|
/* Back button - matches Vue g-button--light-border */
|
|
2452
|
+
|
|
2312
2453
|
.taskon-quest-blindbox-reward-btn {
|
|
2313
2454
|
height: 36px;
|
|
2314
2455
|
padding: 0 24px;
|
|
@@ -2317,7 +2458,7 @@
|
|
|
2317
2458
|
color: #fff;
|
|
2318
2459
|
background: transparent;
|
|
2319
2460
|
border: 1px solid #fff;
|
|
2320
|
-
border-radius:
|
|
2461
|
+
border-radius: var(--taskon-border-radius);
|
|
2321
2462
|
cursor: pointer;
|
|
2322
2463
|
transition: opacity 0.2s ease;
|
|
2323
2464
|
}
|
|
@@ -2347,7 +2488,7 @@
|
|
|
2347
2488
|
color: #000;
|
|
2348
2489
|
background: linear-gradient(135deg, #ffd700 0%, #ffaa00 100%);
|
|
2349
2490
|
border: none;
|
|
2350
|
-
border-radius:
|
|
2491
|
+
border-radius: var(--taskon-border-radius-lg);
|
|
2351
2492
|
cursor: pointer;
|
|
2352
2493
|
transition: all 0.2s ease;
|
|
2353
2494
|
}
|
|
@@ -2366,50 +2507,77 @@
|
|
|
2366
2507
|
height: 24px;
|
|
2367
2508
|
}
|
|
2368
2509
|
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
============================================================================ */
|
|
2372
|
-
|
|
2373
|
-
@media (max-width: 768px) {
|
|
2510
|
+
@supports (container-type: inline-size) {
|
|
2511
|
+
@container (min-width: 751px) {
|
|
2374
2512
|
.taskon-quest-blindbox-dialog {
|
|
2375
|
-
padding-top:
|
|
2513
|
+
padding-top: 40px;
|
|
2376
2514
|
}
|
|
2377
2515
|
|
|
2378
2516
|
.taskon-quest-blindbox-dialog-title {
|
|
2379
|
-
padding: 0
|
|
2380
|
-
font-size: 18px;
|
|
2517
|
+
padding: 0 40px;
|
|
2381
2518
|
}
|
|
2382
2519
|
|
|
2383
2520
|
.taskon-quest-blindbox-reward {
|
|
2384
|
-
padding:
|
|
2521
|
+
padding: 64px 40px;
|
|
2522
|
+
}
|
|
2523
|
+
|
|
2524
|
+
.taskon-quest-blindbox-reward-btn-wrap {
|
|
2525
|
+
margin-top: 60px;
|
|
2526
|
+
}
|
|
2527
|
+
}
|
|
2528
|
+
}
|
|
2529
|
+
|
|
2530
|
+
@supports not (container-type: inline-size) {
|
|
2531
|
+
@media (min-width: 751px) {
|
|
2532
|
+
.taskon-quest-blindbox-dialog {
|
|
2533
|
+
padding-top: 40px;
|
|
2385
2534
|
}
|
|
2386
2535
|
|
|
2387
|
-
.taskon-quest-blindbox-
|
|
2388
|
-
|
|
2389
|
-
|
|
2536
|
+
.taskon-quest-blindbox-dialog-title {
|
|
2537
|
+
padding: 0 40px;
|
|
2538
|
+
}
|
|
2539
|
+
|
|
2540
|
+
.taskon-quest-blindbox-reward {
|
|
2541
|
+
padding: 64px 40px;
|
|
2390
2542
|
}
|
|
2391
2543
|
|
|
2392
2544
|
.taskon-quest-blindbox-reward-btn-wrap {
|
|
2393
|
-
margin-top:
|
|
2545
|
+
margin-top: 60px;
|
|
2546
|
+
}
|
|
2547
|
+
}
|
|
2394
2548
|
}
|
|
2395
|
-
}
|
|
2396
2549
|
/**
|
|
2397
2550
|
* Eligibility (资格验证) 组件样式
|
|
2398
2551
|
* @description Standalone CSS for EligibilityInfo component, usable in any widget context.
|
|
2399
2552
|
*/
|
|
2400
2553
|
|
|
2554
|
+
/*
|
|
2555
|
+
* Responsive base styles
|
|
2556
|
+
*
|
|
2557
|
+
* Keep mobile breakpoints and fallback patterns centralized here.
|
|
2558
|
+
* Components should reuse these mixins instead of duplicating query logic.
|
|
2559
|
+
*/
|
|
2560
|
+
|
|
2561
|
+
/*
|
|
2562
|
+
* Desktop-up mixin:
|
|
2563
|
+
* 1) Enable desktop enhancement in wider containers
|
|
2564
|
+
* 2) Keep viewport media query as fallback
|
|
2565
|
+
*/
|
|
2566
|
+
|
|
2401
2567
|
/* ============================================================================
|
|
2402
2568
|
Eligibility 主容器
|
|
2403
2569
|
============================================================================ */
|
|
2404
2570
|
|
|
2405
2571
|
.taskon-quest-eligs {
|
|
2406
|
-
|
|
2407
|
-
|
|
2572
|
+
container-type: inline-size;
|
|
2573
|
+
margin-top: var(--taskon-spacing-md);
|
|
2574
|
+
padding: 0 var(--taskon-spacing-md);
|
|
2408
2575
|
border: 1px solid var(--taskon-color-border);
|
|
2409
|
-
border-radius:
|
|
2576
|
+
border-radius: var(--taskon-border-radius-lg);
|
|
2410
2577
|
}
|
|
2411
2578
|
|
|
2412
2579
|
/* 动画效果 - 用于引导用户注意 */
|
|
2580
|
+
|
|
2413
2581
|
.taskon-quest-eligs--animate {
|
|
2414
2582
|
animation: taskon-quest-eligs-glow 800ms ease-out infinite alternate;
|
|
2415
2583
|
}
|
|
@@ -2443,17 +2611,20 @@
|
|
|
2443
2611
|
}
|
|
2444
2612
|
|
|
2445
2613
|
/* 状态图标 */
|
|
2614
|
+
|
|
2446
2615
|
.taskon-quest-eligs-header-status {
|
|
2447
2616
|
flex-shrink: 0;
|
|
2448
2617
|
}
|
|
2449
2618
|
|
|
2450
2619
|
/* 头部文本 */
|
|
2620
|
+
|
|
2451
2621
|
.taskon-quest-eligs-header-text {
|
|
2452
2622
|
flex: 1;
|
|
2453
2623
|
color: var(--taskon-color-text);
|
|
2454
2624
|
}
|
|
2455
2625
|
|
|
2456
2626
|
/* 高亮表达式 (all/any) */
|
|
2627
|
+
|
|
2457
2628
|
.taskon-quest-eligs-header-express {
|
|
2458
2629
|
color: var(--taskon-color-secondary);
|
|
2459
2630
|
}
|
|
@@ -2472,7 +2643,7 @@
|
|
|
2472
2643
|
margin-left: auto;
|
|
2473
2644
|
background: transparent;
|
|
2474
2645
|
border: 1px solid var(--taskon-color-border);
|
|
2475
|
-
border-radius:
|
|
2646
|
+
border-radius: var(--taskon-border-radius-sm);
|
|
2476
2647
|
color: var(--taskon-color-text-secondary);
|
|
2477
2648
|
cursor: pointer;
|
|
2478
2649
|
transition: all 0.2s;
|
|
@@ -2521,19 +2692,20 @@
|
|
|
2521
2692
|
|
|
2522
2693
|
.taskon-quest-eligs-list {
|
|
2523
2694
|
text-align: left;
|
|
2524
|
-
padding:
|
|
2695
|
+
padding: var(--taskon-spacing-md) 0;
|
|
2525
2696
|
margin: 0;
|
|
2526
2697
|
list-style: none;
|
|
2527
2698
|
border-top: 1px solid var(--taskon-color-border);
|
|
2528
2699
|
}
|
|
2529
2700
|
|
|
2530
2701
|
/* 单项 */
|
|
2702
|
+
|
|
2531
2703
|
.taskon-quest-eligs-item {
|
|
2532
2704
|
line-height: 18px;
|
|
2533
2705
|
}
|
|
2534
2706
|
|
|
2535
2707
|
.taskon-quest-eligs-item + .taskon-quest-eligs-item {
|
|
2536
|
-
margin-top:
|
|
2708
|
+
margin-top: var(--taskon-spacing-md);
|
|
2537
2709
|
}
|
|
2538
2710
|
|
|
2539
2711
|
.taskon-quest-eligs-item-container {
|
|
@@ -2542,10 +2714,11 @@
|
|
|
2542
2714
|
}
|
|
2543
2715
|
|
|
2544
2716
|
/* 状态图标 */
|
|
2717
|
+
|
|
2545
2718
|
.taskon-quest-eligs-item-icon {
|
|
2546
2719
|
flex-shrink: 0;
|
|
2547
|
-
margin-right:
|
|
2548
|
-
margin-top:
|
|
2720
|
+
margin-right: var(--taskon-spacing-sm);
|
|
2721
|
+
margin-top: var(--taskon-spacing-xs);
|
|
2549
2722
|
opacity: 0;
|
|
2550
2723
|
}
|
|
2551
2724
|
|
|
@@ -2553,8 +2726,8 @@
|
|
|
2553
2726
|
flex-shrink: 0;
|
|
2554
2727
|
width: 16px;
|
|
2555
2728
|
height: 16px;
|
|
2556
|
-
margin-right:
|
|
2557
|
-
margin-top:
|
|
2729
|
+
margin-right: var(--taskon-spacing-sm);
|
|
2730
|
+
margin-top: var(--taskon-spacing-xs);
|
|
2558
2731
|
}
|
|
2559
2732
|
|
|
2560
2733
|
.taskon-quest-eligs-item--passed .taskon-quest-eligs-item-icon,
|
|
@@ -2579,6 +2752,7 @@
|
|
|
2579
2752
|
}
|
|
2580
2753
|
|
|
2581
2754
|
/* 内容区 */
|
|
2755
|
+
|
|
2582
2756
|
.taskon-quest-eligs-item-content {
|
|
2583
2757
|
flex: 1;
|
|
2584
2758
|
font-size: 14px;
|
|
@@ -2600,11 +2774,13 @@
|
|
|
2600
2774
|
}
|
|
2601
2775
|
|
|
2602
2776
|
/* 高亮文本 */
|
|
2777
|
+
|
|
2603
2778
|
.taskon-quest-eligs-highlight {
|
|
2604
2779
|
color: var(--taskon-color-primary);
|
|
2605
2780
|
}
|
|
2606
2781
|
|
|
2607
2782
|
/* 链接样式 */
|
|
2783
|
+
|
|
2608
2784
|
.taskon-quest-eligs-link {
|
|
2609
2785
|
color: var(--taskon-color-link);
|
|
2610
2786
|
text-decoration: underline;
|
|
@@ -2615,6 +2791,7 @@
|
|
|
2615
2791
|
}
|
|
2616
2792
|
|
|
2617
2793
|
/* Tooltip */
|
|
2794
|
+
|
|
2618
2795
|
.taskon-quest-eligs-tooltip {
|
|
2619
2796
|
position: absolute;
|
|
2620
2797
|
top: 100%;
|
|
@@ -2627,7 +2804,7 @@
|
|
|
2627
2804
|
line-height: 16px;
|
|
2628
2805
|
color: var(--taskon-color-text);
|
|
2629
2806
|
background-color: var(--taskon-color-bg-floating);
|
|
2630
|
-
border-radius:
|
|
2807
|
+
border-radius: var(--taskon-border-radius-sm);
|
|
2631
2808
|
box-shadow: 0 2px 8px var(--taskon-color-bg-mask);
|
|
2632
2809
|
white-space: normal;
|
|
2633
2810
|
word-break: break-word;
|
|
@@ -2685,48 +2862,51 @@
|
|
|
2685
2862
|
color: var(--taskon-color-text-secondary);
|
|
2686
2863
|
}
|
|
2687
2864
|
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
============================================================================ */
|
|
2691
|
-
|
|
2692
|
-
@media (max-width: 750px) {
|
|
2865
|
+
@supports (container-type: inline-size) {
|
|
2866
|
+
@container (min-width: 751px) {
|
|
2693
2867
|
.taskon-quest-eligs {
|
|
2694
|
-
margin-top:
|
|
2695
|
-
padding: 0
|
|
2868
|
+
margin-top: var(--taskon-spacing-lg);
|
|
2869
|
+
padding: 0 var(--taskon-spacing-md);
|
|
2696
2870
|
}
|
|
2697
2871
|
|
|
2698
|
-
.taskon-quest-eligs-
|
|
2699
|
-
|
|
2700
|
-
font-size: 3.47vw;
|
|
2701
|
-
line-height: 4.4vw;
|
|
2872
|
+
.taskon-quest-eligs-list {
|
|
2873
|
+
padding: 20px 0;
|
|
2702
2874
|
}
|
|
2703
2875
|
|
|
2704
|
-
.taskon-quest-eligs-
|
|
2705
|
-
|
|
2706
|
-
|
|
2876
|
+
.taskon-quest-eligs-item + .taskon-quest-eligs-item {
|
|
2877
|
+
margin-top: var(--taskon-spacing-lg);
|
|
2878
|
+
}
|
|
2879
|
+
|
|
2880
|
+
.taskon-quest-eligs-item-icon,
|
|
2881
|
+
.taskon-quest-eligs-item-icon-placeholder {
|
|
2882
|
+
margin-top: var(--taskon-spacing-xs);
|
|
2883
|
+
margin-right: var(--taskon-spacing-sm);
|
|
2884
|
+
}
|
|
2885
|
+
}
|
|
2886
|
+
}
|
|
2887
|
+
|
|
2888
|
+
@supports not (container-type: inline-size) {
|
|
2889
|
+
@media (min-width: 751px) {
|
|
2890
|
+
.taskon-quest-eligs {
|
|
2891
|
+
margin-top: var(--taskon-spacing-lg);
|
|
2892
|
+
padding: 0 var(--taskon-spacing-md);
|
|
2707
2893
|
}
|
|
2708
2894
|
|
|
2709
2895
|
.taskon-quest-eligs-list {
|
|
2710
|
-
padding:
|
|
2896
|
+
padding: 20px 0;
|
|
2711
2897
|
}
|
|
2712
2898
|
|
|
2713
2899
|
.taskon-quest-eligs-item + .taskon-quest-eligs-item {
|
|
2714
|
-
margin-top:
|
|
2900
|
+
margin-top: var(--taskon-spacing-lg);
|
|
2715
2901
|
}
|
|
2716
2902
|
|
|
2717
2903
|
.taskon-quest-eligs-item-icon,
|
|
2718
2904
|
.taskon-quest-eligs-item-icon-placeholder {
|
|
2719
|
-
margin-top:
|
|
2720
|
-
margin-right:
|
|
2721
|
-
width: 3.2vw;
|
|
2722
|
-
height: 3.2vw;
|
|
2905
|
+
margin-top: var(--taskon-spacing-xs);
|
|
2906
|
+
margin-right: var(--taskon-spacing-sm);
|
|
2723
2907
|
}
|
|
2724
|
-
|
|
2725
|
-
.taskon-quest-eligs-item-content {
|
|
2726
|
-
font-size: 3.47vw;
|
|
2727
|
-
line-height: 4.4vw;
|
|
2908
|
+
}
|
|
2728
2909
|
}
|
|
2729
|
-
}
|
|
2730
2910
|
|
|
2731
2911
|
/* ============================================================================
|
|
2732
2912
|
OnChainVerify Tooltip Styles
|