@taskon/widget-react 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +118 -64
  2. package/dist/CommunityTaskList.css +2694 -2951
  3. package/dist/EligibilityInfo.css +2221 -1332
  4. package/dist/LeaderboardWidget.css +403 -198
  5. package/dist/PageBuilder.css +57 -0
  6. package/dist/Quest.css +1347 -1477
  7. package/dist/TaskOnProvider.css +337 -29
  8. package/dist/ThemeProvider.css +228 -0
  9. package/dist/UserCenterWidget.css +168 -0
  10. package/dist/UserCenterWidget2.css +4917 -0
  11. package/dist/WidgetShell.css +417 -130
  12. package/dist/chunks/{CommunityTaskList-CrH6r4Av.js → CommunityTaskList-2nFy6l6m.js} +2612 -2074
  13. package/dist/chunks/{EligibilityInfo-DesW9-k9.js → EligibilityInfo-CKTl_cdU.js} +2714 -4077
  14. package/dist/chunks/{LeaderboardWidget-BSGpHKTk.js → LeaderboardWidget-DyoiiNS6.js} +288 -349
  15. package/dist/chunks/PageBuilder-DHM3Il6f.js +150 -0
  16. package/dist/chunks/{Quest-uSIVq78I.js → Quest-Dqx4OCat.js} +1380 -726
  17. package/dist/chunks/TaskOnProvider-CxtFIs3n.js +2072 -0
  18. package/dist/chunks/{WidgetShell-NlOgn1x5.js → ThemeProvider-CulHkqqY.js} +1397 -103
  19. package/dist/chunks/UserCenterWidget-SE5hqpnZ.js +8335 -0
  20. package/dist/chunks/UserCenterWidget-XL6LZRZM.js +3259 -0
  21. package/dist/chunks/{Table-CWGf2FKV.js → WidgetShell-8xn-Jivw.js} +237 -27
  22. package/dist/chunks/communitytask-es-CBNnS4o2.js +521 -0
  23. package/dist/chunks/communitytask-ja-GRf9cbdx.js +521 -0
  24. package/dist/chunks/communitytask-ko-Bf24PQKI.js +521 -0
  25. package/dist/chunks/communitytask-ru-CZm2CPoV.js +521 -0
  26. package/dist/chunks/leaderboardwidget-es-vKjrjQaz.js +146 -0
  27. package/dist/chunks/leaderboardwidget-ja-Q6u0HxKG.js +146 -0
  28. package/dist/chunks/leaderboardwidget-ko-CG6SWgxf.js +146 -0
  29. package/dist/chunks/leaderboardwidget-ru-DCcHcJGz.js +146 -0
  30. package/dist/chunks/quest-es-Dyyy0zaw.js +863 -0
  31. package/dist/chunks/quest-ja-Depog33y.js +863 -0
  32. package/dist/chunks/quest-ko-BMu3uRQJ.js +863 -0
  33. package/dist/chunks/quest-ru-xne814Rw.js +863 -0
  34. package/dist/chunks/taskwidget-es-Do9b3Mqw.js +245 -0
  35. package/dist/chunks/taskwidget-ja-CqSu-yWA.js +245 -0
  36. package/dist/chunks/taskwidget-ko-EHgXFV4B.js +245 -0
  37. package/dist/chunks/taskwidget-ru-CMbLQDK4.js +245 -0
  38. package/dist/chunks/useIsMobile-D6Ybur-6.js +30 -0
  39. package/dist/chunks/usercenter-es-Dz3Wp2vV.js +512 -0
  40. package/dist/chunks/usercenter-ja-CKE4DJC6.js +512 -0
  41. package/dist/chunks/usercenter-ko-Dtpkn2qb.js +512 -0
  42. package/dist/chunks/usercenter-ru-DnBGee45.js +512 -0
  43. package/dist/community-task.d.ts +29 -388
  44. package/dist/community-task.js +2 -7
  45. package/dist/core.d.ts +95 -28
  46. package/dist/core.js +11 -12
  47. package/dist/index.d.ts +260 -602
  48. package/dist/index.js +28 -7361
  49. package/dist/leaderboard.d.ts +5 -496
  50. package/dist/leaderboard.js +2 -15
  51. package/dist/page-builder.d.ts +20 -0
  52. package/dist/page-builder.js +4 -0
  53. package/dist/quest.d.ts +20 -292
  54. package/dist/quest.js +2 -5
  55. package/dist/user-center.d.ts +56 -0
  56. package/dist/user-center.js +4 -0
  57. package/package.json +22 -3
  58. package/dist/Table.css +0 -389
  59. package/dist/chunks/TaskOnProvider-QMwxGL44.js +0 -1435
  60. package/dist/chunks/ThemeProvider-Cs8IUVQj.js +0 -1118
  61. package/dist/chunks/leaderboardwidget-ja-Bj6gz6y1.js +0 -119
  62. package/dist/chunks/leaderboardwidget-ko-f1cLO9ic.js +0 -119
  63. package/dist/chunks/useWidgetLocale-BVcopbZS.js +0 -74
  64. package/dist/chunks/usercenter-ja-DBj_dtuz.js +0 -329
  65. package/dist/chunks/usercenter-ko-DYTkHAld.js +0 -329
  66. package/dist/index.css +0 -3662
@@ -5,57 +5,15 @@
5
5
  * 前缀: taskon-leaderboard
6
6
  */
7
7
 
8
- /* ============================================================================
9
- CSS 变量定义
10
- ============================================================================ */
11
-
12
- .taskon-leaderboard {
13
- /* 颜色系统 - 与 Quest Widget 保持一致 */
14
- --taskon-leaderboard-bg-body: #111111;
15
- --taskon-leaderboard-text-lightest: #ffffff;
16
- --taskon-leaderboard-text-lighter: rgba(255, 255, 255, 0.8);
17
- --taskon-leaderboard-text-light: rgba(255, 255, 255, 0.6);
18
- --taskon-leaderboard-text-dark: rgba(255, 255, 255, 0.4);
19
- --taskon-leaderboard-text-darkest: rgba(255, 255, 255, 0.1);
20
- --taskon-leaderboard-text-invisible: rgba(255, 255, 255, 0.04);
21
- --taskon-leaderboard-primary: #cbff01;
22
- --taskon-leaderboard-secondary: #1affab;
23
- --taskon-leaderboard-link: #58afff;
24
- --taskon-leaderboard-error: #ef4444;
25
-
26
- /* 排名徽章颜色 */
27
- --taskon-leaderboard-rank-gold: #ffbf29;
28
- --taskon-leaderboard-rank-gold-stroke: #ffd465;
29
- --taskon-leaderboard-rank-silver: #c0c0c0;
30
- --taskon-leaderboard-rank-silver-stroke: #d8d8d8;
31
- --taskon-leaderboard-rank-bronze: #cd7f32;
32
- --taskon-leaderboard-rank-bronze-stroke: #e0a060;
33
-
34
- /* 间距系统 */
35
- --taskon-leaderboard-spacing-xxs: 4px;
36
- --taskon-leaderboard-spacing-xs: 8px;
37
- --taskon-leaderboard-spacing-s: 12px;
38
- --taskon-leaderboard-spacing-m: 16px;
39
- --taskon-leaderboard-spacing-l: 20px;
40
- --taskon-leaderboard-spacing-xl: 24px;
41
- --taskon-leaderboard-spacing-xxl: 32px;
42
-
43
- /* 圆角系统 */
44
- --taskon-leaderboard-radius-s: 4px;
45
- --taskon-leaderboard-radius-m: 6px;
46
- --taskon-leaderboard-radius-l: 8px;
47
- --taskon-leaderboard-radius-xl: 12px;
48
- }
49
-
50
8
  /* ============================================================================
51
9
  容器
52
10
  ============================================================================ */
53
11
 
54
12
  .taskon-leaderboard {
55
- font-size: 16px;
13
+ font-size: var(--taskon-font-size-lg);
56
14
  line-height: 1.5;
57
- color: var(--taskon-leaderboard-text-lightest);
58
- background-color: var(--taskon-leaderboard-bg-body);
15
+ color: var(--taskon-color-text);
16
+ background-color: var(--taskon-color-bg-canvas);
59
17
  overflow: hidden;
60
18
  }
61
19
 
@@ -68,30 +26,32 @@
68
26
  display: flex;
69
27
  flex-direction: column;
70
28
  align-items: center;
71
- gap: var(--taskon-leaderboard-spacing-s);
29
+ gap: var(--taskon-spacing-sm);
72
30
  }
73
31
 
74
32
  .taskon-leaderboard__error-text {
75
- color: var(--taskon-leaderboard-error);
76
- font-size: 14px;
33
+ color: var(--taskon-color-error);
34
+ font-size: var(--taskon-font-size);
77
35
  margin: 0;
36
+ overflow-wrap: anywhere;
37
+ word-break: break-word;
78
38
  }
79
39
 
80
40
  .taskon-leaderboard__retry-btn {
81
- padding: var(--taskon-leaderboard-spacing-xs) var(--taskon-leaderboard-spacing-m);
82
- font-size: 14px;
41
+ padding: var(--taskon-spacing-sm) var(--taskon-spacing-md);
42
+ font-size: var(--taskon-font-size);
83
43
  font-weight: 500;
84
- color: var(--taskon-leaderboard-primary);
44
+ color: var(--taskon-color-primary);
85
45
  background-color: transparent;
86
- border: 1px solid var(--taskon-leaderboard-primary);
87
- border-radius: var(--taskon-leaderboard-radius-m);
46
+ border: 1px solid var(--taskon-color-primary);
47
+ border-radius: var(--taskon-border-radius);
88
48
  cursor: pointer;
89
49
  transition: all 0.2s ease;
90
50
  }
91
51
 
92
52
  .taskon-leaderboard__retry-btn:hover {
93
- background-color: var(--taskon-leaderboard-primary);
94
- color: var(--taskon-leaderboard-bg-body);
53
+ background-color: var(--taskon-color-primary);
54
+ color: var(--taskon-color-text-on-primary);
95
55
  }
96
56
 
97
57
  /* ============================================================================
@@ -103,40 +63,44 @@
103
63
  flex-wrap: wrap;
104
64
  align-items: center;
105
65
  justify-content: flex-start;
106
- gap: var(--taskon-leaderboard-spacing-s);
107
- padding: var(--taskon-leaderboard-spacing-m) var(--taskon-leaderboard-spacing-l) var(--taskon-leaderboard-spacing-xs);
66
+ gap: var(--taskon-spacing-sm);
67
+ padding: var(--taskon-spacing-md) var(--taskon-spacing-md)
68
+ var(--taskon-spacing-sm);
108
69
  background-color: transparent;
109
70
  }
110
71
 
111
72
  /* Tab 按钮 - 默认状态:透明背景 (text-invisible) */
73
+
112
74
  .taskon-leaderboard-tabs__tab {
113
- padding: var(--taskon-leaderboard-spacing-xs) var(--taskon-leaderboard-spacing-m);
114
- font-size: 14px;
75
+ padding: var(--taskon-spacing-sm) var(--taskon-spacing-md);
76
+ font-size: var(--taskon-font-size);
115
77
  font-weight: 500;
116
- line-height: 20px;
117
- color: var(--taskon-leaderboard-text-lightest);
118
- background-color: var(--taskon-leaderboard-text-invisible);
78
+ line-height: 1.43;
79
+ color: var(--taskon-color-text);
80
+ background-color: var(--taskon-color-bg-surface-subtle);
119
81
  border: 1px solid transparent;
120
- border-radius: var(--taskon-leaderboard-radius-l);
82
+ border-radius: var(--taskon-border-radius);
121
83
  cursor: pointer;
122
84
  transition: all 0.2s ease;
123
85
  }
124
86
 
125
87
  /* Tab 悬停状态:较亮背景 (text-darkest) */
88
+
126
89
  .taskon-leaderboard-tabs__tab:hover {
127
- background-color: var(--taskon-leaderboard-text-darkest);
90
+ background-color: var(--taskon-color-bg-surface-strong);
128
91
  }
129
92
 
130
93
  /* Tab 激活状态:白色背景,黑色文字,边框 */
94
+
131
95
  .taskon-leaderboard-tabs__tab--active {
132
- background-color: var(--taskon-leaderboard-text-lightest);
133
- color: #0d0d0d;
134
- border-color: rgba(13, 13, 13, 0.1);
96
+ background-color: var(--taskon-color-text);
97
+ color: var(--taskon-color-bg-canvas);
98
+ border-color: var(--taskon-color-border);
135
99
  }
136
100
 
137
101
  .taskon-leaderboard-tabs__tab--active:hover {
138
- background-color: var(--taskon-leaderboard-text-lightest);
139
- color: #0d0d0d;
102
+ background-color: var(--taskon-color-text);
103
+ color: var(--taskon-color-bg-canvas);
140
104
  }
141
105
 
142
106
  /* ============================================================================
@@ -146,76 +110,84 @@
146
110
  .taskon-leaderboard-header {
147
111
  display: flex;
148
112
  flex-direction: column;
149
- gap: var(--taskon-leaderboard-spacing-xxs);
150
- padding: var(--taskon-leaderboard-spacing-xs) var(--taskon-leaderboard-spacing-l) var(--taskon-leaderboard-spacing-s);
113
+ gap: var(--taskon-spacing-xs);
114
+ padding: var(--taskon-spacing-sm) var(--taskon-spacing-md)
115
+ var(--taskon-spacing-sm);
151
116
  }
152
117
 
153
118
  /* 状态和时间容器 */
119
+
154
120
  .taskon-leaderboard-header__info {
155
121
  display: flex;
156
122
  align-items: center;
157
- gap: var(--taskon-leaderboard-spacing-s);
123
+ gap: var(--taskon-spacing-sm);
158
124
  }
159
125
 
160
126
  /* 状态徽章 - 11px SemiBold,绿色文字,深色背景 */
127
+
161
128
  .taskon-leaderboard-header__status {
162
129
  display: inline-flex;
163
130
  align-items: center;
164
131
  justify-content: center;
165
132
  height: 20px;
166
- padding: 0 var(--taskon-leaderboard-spacing-xs);
167
- font-size: 11px;
133
+ padding: 0 var(--taskon-spacing-sm);
134
+ font-size: var(--taskon-font-size-sm);
168
135
  font-weight: 600;
169
- line-height: 12px;
170
- border-radius: var(--taskon-leaderboard-radius-s);
171
- background-color: var(--taskon-leaderboard-text-darkest);
136
+ line-height: 1;
137
+ border-radius: var(--taskon-border-radius-sm);
138
+ background-color: var(--taskon-color-border);
172
139
  }
173
140
 
174
141
  .taskon-leaderboard-header__status--ongoing {
175
- color: var(--taskon-leaderboard-secondary);
142
+ color: var(--taskon-color-secondary);
176
143
  }
177
144
 
178
145
  .taskon-leaderboard-header__status--ended {
179
- color: var(--taskon-leaderboard-error);
146
+ color: var(--taskon-color-error);
180
147
  }
181
148
 
182
149
  .taskon-leaderboard-header__status--upcoming {
183
- color: var(--taskon-leaderboard-primary);
150
+ color: var(--taskon-color-primary);
184
151
  }
185
152
 
186
153
  /* 时间范围 - 16px Regular,80% 白色 */
154
+
187
155
  .taskon-leaderboard-header__time {
188
- font-size: 16px;
156
+ font-size: var(--taskon-font-size-lg);
189
157
  font-weight: 400;
190
- line-height: 24px;
191
- color: var(--taskon-leaderboard-text-lighter);
158
+ line-height: 1.5;
159
+ color: var(--taskon-color-text-secondary);
192
160
  }
193
161
 
194
162
  /* 分隔线 - 竖线 */
163
+
195
164
  .taskon-leaderboard-header__separator {
196
165
  width: 1px;
197
166
  height: 16px;
198
- background-color: var(--taskon-leaderboard-text-dark);
167
+ background-color: var(--taskon-color-text-disabled);
199
168
  }
200
169
 
201
170
  /* 参与人数容器 */
171
+
202
172
  .taskon-leaderboard-header__participants {
203
173
  display: flex;
204
174
  align-items: center;
205
- gap: var(--taskon-leaderboard-spacing-xs);
206
- font-size: 16px;
175
+ gap: var(--taskon-spacing-sm);
176
+ font-size: var(--taskon-font-size-lg);
207
177
  font-weight: 500;
208
- line-height: 24px;
178
+ line-height: 1.5;
209
179
  }
210
180
 
211
181
  /* 参与人数标签 - 60% 白色 */
182
+
212
183
  .taskon-leaderboard-header__participants-label {
213
- color: var(--taskon-leaderboard-text-light);
184
+ color: var(--taskon-color-text-tertiary);
214
185
  }
215
186
 
216
187
  /* 参与人数值 - 80% 白色 */
188
+
217
189
  .taskon-leaderboard-header__participants-value {
218
- color: var(--taskon-leaderboard-text-lighter);
190
+ color: var(--taskon-color-text-secondary);
219
191
  }
220
192
 
221
193
  /* ============================================================================
@@ -225,69 +197,74 @@
225
197
  .taskon-leaderboard-header__title-row {
226
198
  display: flex;
227
199
  align-items: center;
228
- gap: var(--taskon-leaderboard-spacing-s);
229
- margin-bottom: var(--taskon-leaderboard-spacing-xs);
200
+ gap: var(--taskon-spacing-sm);
201
+ margin-bottom: var(--taskon-spacing-sm);
230
202
  }
231
203
 
232
204
  .taskon-leaderboard-header__title {
233
205
  margin: 0;
234
- font-size: 18px;
206
+ font-size: var(--taskon-font-size-xl);
235
207
  font-weight: 600;
236
- color: var(--taskon-leaderboard-text-lightest);
208
+ color: var(--taskon-color-text);
237
209
  }
238
210
 
239
211
  /* 奖励信息容器 - 参考 Figma 设计:水平布局,16px 间距 */
212
+
240
213
  .taskon-leaderboard-header__reward-info {
241
214
  display: flex;
242
215
  align-items: center;
243
- gap: var(--taskon-leaderboard-spacing-m);
216
+ gap: var(--taskon-spacing-md);
244
217
  }
245
218
 
246
219
  /* 奖励项 - 水平布局,8px 间距 */
220
+
247
221
  .taskon-leaderboard-header__reward-item {
248
222
  display: flex;
249
223
  align-items: center;
250
- gap: var(--taskon-leaderboard-spacing-xs);
251
- font-size: 16px;
252
- line-height: 24px;
224
+ gap: var(--taskon-spacing-sm);
225
+ font-size: var(--taskon-font-size-lg);
226
+ line-height: 1.5;
253
227
  white-space: nowrap;
254
228
  }
255
229
 
256
230
  /* 奖励标签 - 16px Regular 白色 */
231
+
257
232
  .taskon-leaderboard-header__reward-label {
258
233
  font-weight: 400;
259
- color: var(--taskon-leaderboard-text-lightest);
234
+ color: var(--taskon-color-text);
260
235
  }
261
236
 
262
237
  /* 奖励数值 - 16px SemiBold 主色 */
238
+
263
239
  .taskon-leaderboard-header__reward-value {
264
240
  font-weight: 600;
265
- color: var(--taskon-leaderboard-primary);
241
+ color: var(--taskon-color-primary);
266
242
  }
267
243
 
268
244
  /* 奖励分隔线 - 12px 高度 */
245
+
269
246
  .taskon-leaderboard-header__reward-separator {
270
247
  width: 1px;
271
248
  height: 12px;
272
- background-color: var(--taskon-leaderboard-text-darkest);
249
+ background-color: var(--taskon-color-border);
273
250
  }
274
251
 
275
252
  .taskon-leaderboard-header__reward-rules-btn {
276
253
  margin-left: auto;
277
- padding: var(--taskon-leaderboard-spacing-xxs) var(--taskon-leaderboard-spacing-s);
278
- font-size: 13px;
254
+ padding: var(--taskon-spacing-xs) var(--taskon-spacing-sm);
255
+ font-size: var(--taskon-font-size-sm);
279
256
  font-weight: 500;
280
- color: var(--taskon-leaderboard-primary);
257
+ color: var(--taskon-color-primary);
281
258
  background-color: transparent;
282
- border: 1px solid var(--taskon-leaderboard-primary);
283
- border-radius: var(--taskon-leaderboard-radius-m);
259
+ border: 1px solid var(--taskon-color-primary);
260
+ border-radius: var(--taskon-border-radius);
284
261
  cursor: pointer;
285
262
  transition: all 0.2s ease;
286
263
  }
287
264
 
288
265
  .taskon-leaderboard-header__reward-rules-btn:hover {
289
- background-color: var(--taskon-leaderboard-primary);
290
- color: var(--taskon-leaderboard-bg-body);
266
+ background-color: var(--taskon-color-primary);
267
+ color: var(--taskon-color-text-on-primary);
291
268
  }
292
269
 
293
270
  /* ============================================================================
@@ -295,7 +272,50 @@
295
272
  ============================================================================ */
296
273
 
297
274
  .taskon-leaderboard-table {
298
- padding: 0 var(--taskon-leaderboard-spacing-l);
275
+ padding: 0 var(--taskon-spacing-md);
276
+ }
277
+
278
+ /* Bridge generic Table defaults to unified theme tokens inside Leaderboard. */
279
+
280
+ .taskon-leaderboard .taskon-table__header {
281
+ color: var(--taskon-color-text-disabled);
282
+ background-color: var(--taskon-color-bg-surface-subtle);
283
+ }
284
+
285
+ .taskon-leaderboard .taskon-table__row:hover {
286
+ background-color: var(--taskon-color-bg-surface-subtle);
287
+ }
288
+
289
+ .taskon-leaderboard .taskon-table--striped .taskon-table__row:nth-child(even) {
290
+ background-color: var(--taskon-color-bg-surface-subtle);
291
+ }
292
+
293
+ .taskon-leaderboard .taskon-table--bordered .taskon-table__row td {
294
+ border-top: 1px solid var(--taskon-color-border-secondary);
295
+ border-bottom: 1px solid var(--taskon-color-border-secondary);
296
+ }
297
+
298
+ .taskon-leaderboard .taskon-table__cell {
299
+ color: var(--taskon-color-text);
300
+ }
301
+
302
+ .taskon-leaderboard .taskon-table__loading,
303
+ .taskon-leaderboard .taskon-table__empty,
304
+ .taskon-leaderboard .taskon-table__empty-desc {
305
+ color: var(--taskon-color-text-disabled);
306
+ }
307
+
308
+ .taskon-leaderboard .taskon-table__empty-title {
309
+ color: var(--taskon-color-text);
310
+ }
311
+
312
+ .taskon-leaderboard .taskon-table__loading-spinner {
313
+ border: 2px solid var(--taskon-color-text-disabled);
314
+ border-top-color: var(--taskon-color-primary);
315
+ }
316
+
317
+ .taskon-leaderboard .taskon-table__loading-overlay {
318
+ background-color: var(--taskon-color-bg-mask);
299
319
  }
300
320
 
301
321
  /* ============================================================================
@@ -303,29 +323,33 @@
303
323
  ============================================================================ */
304
324
 
305
325
  /* 奖励显示 - 参考 Figma 设计:16px SemiBold 白色 */
326
+
306
327
  .taskon-leaderboard-table__reward {
307
328
  display: inline-flex;
308
329
  align-items: center;
309
- gap: var(--taskon-leaderboard-spacing-xs);
310
- font-size: 16px;
330
+ gap: var(--taskon-spacing-sm);
331
+ font-size: var(--taskon-font-size-lg);
311
332
  font-weight: 600;
312
- line-height: 24px;
313
- color: var(--taskon-leaderboard-text-lightest);
333
+ line-height: 1.5;
334
+ color: var(--taskon-color-text);
314
335
  white-space: nowrap;
315
336
  flex-wrap: nowrap;
316
337
  }
317
338
 
318
339
  /* 奖励类型标签(如 "积分名:") */
340
+
319
341
  .taskon-leaderboard-table__reward-type {
320
- color: var(--taskon-leaderboard-text-lightest);
342
+ color: var(--taskon-color-text);
321
343
  }
322
344
 
323
345
  /* 奖励值(高亮显示) */
346
+
324
347
  .taskon-leaderboard-table__reward-value {
325
- color: var(--taskon-leaderboard-secondary);
348
+ color: var(--taskon-color-secondary);
326
349
  }
327
350
 
328
351
  /* 奖励图标 */
352
+
329
353
  .taskon-leaderboard-table__reward-icon {
330
354
  width: 18px;
331
355
  height: 18px;
@@ -333,62 +357,67 @@
333
357
  }
334
358
 
335
359
  /* 潜在奖励(尚未获得) */
360
+
336
361
  .taskon-leaderboard-table__reward--potential {
337
362
  opacity: 0.8;
338
363
  }
339
364
 
340
365
  /* 链信息 */
366
+
341
367
  .taskon-leaderboard-table__reward-chain {
342
- font-size: 14px;
368
+ font-size: var(--taskon-font-size);
343
369
  font-weight: 400;
344
- color: var(--taskon-leaderboard-text-dark);
370
+ color: var(--taskon-color-text-disabled);
345
371
  }
346
372
 
347
373
  /* 未达标状态 - Not Qualified: rgba(255,255,255,0.6) */
374
+
348
375
  .taskon-leaderboard-table__reward--not-qualified {
349
- font-size: 16px;
376
+ font-size: var(--taskon-font-size-lg);
350
377
  font-weight: 600;
351
- line-height: 24px;
352
- color: var(--taskon-leaderboard-text-light);
378
+ line-height: 1.5;
379
+ color: var(--taskon-color-text-tertiary);
353
380
  }
354
381
 
355
382
  /* 禁用提示文本 */
383
+
356
384
  .taskon-leaderboard-table__disabled-tip {
357
385
  width: 100%;
358
- padding-top: var(--taskon-leaderboard-spacing-xs);
359
- font-size: 14px;
386
+ padding-top: var(--taskon-spacing-sm);
387
+ font-size: var(--taskon-font-size);
360
388
  font-weight: 500;
361
- line-height: 20px;
362
- color: var(--taskon-leaderboard-text-lightest);
389
+ line-height: 1.43;
390
+ color: var(--taskon-color-text);
363
391
  }
364
392
 
365
393
  .taskon-leaderboard-table__disabled-link {
366
- color: var(--taskon-leaderboard-primary);
394
+ color: var(--taskon-color-link);
367
395
  text-decoration: underline;
368
396
  cursor: pointer;
369
397
  }
370
398
 
371
399
  /* 操作按钮 */
400
+
372
401
  .taskon-leaderboard-table__action-btn {
373
402
  display: inline-flex;
374
403
  align-items: center;
375
404
  justify-content: center;
376
405
  height: 34px;
377
- padding: var(--taskon-leaderboard-spacing-xs) var(--taskon-leaderboard-spacing-l);
378
- font-size: 14px;
406
+ padding: var(--taskon-spacing-sm) var(--taskon-spacing-md);
407
+ font-size: var(--taskon-font-size);
379
408
  font-weight: 500;
380
- line-height: 20px;
381
- color: var(--taskon-leaderboard-text-lightest);
409
+ line-height: 1.43;
410
+ color: var(--taskon-color-text);
382
411
  background-color: transparent;
383
- border: 1px solid var(--taskon-leaderboard-text-darkest);
384
- border-radius: var(--taskon-leaderboard-radius-m);
412
+ border: 1px solid var(--taskon-color-border);
413
+ border-radius: var(--taskon-border-radius);
385
414
  cursor: pointer;
386
415
  transition: all 0.2s ease;
387
416
  }
388
417
 
389
418
  .taskon-leaderboard-table__action-btn:hover:not(:disabled) {
390
- background-color: var(--taskon-leaderboard-text-invisible);
391
- border-color: var(--taskon-leaderboard-text-dark);
419
+ background-color: var(--taskon-color-bg-surface-subtle);
420
+ border-color: var(--taskon-color-text-disabled);
392
421
  }
393
422
 
394
423
  .taskon-leaderboard-table__action-btn:disabled {
@@ -407,13 +436,14 @@
407
436
  justify-content: center;
408
437
  min-width: 27px;
409
438
  height: 27px;
410
- font-size: 16px;
439
+ font-size: var(--taskon-font-size-lg);
411
440
  font-weight: 500;
412
441
  line-height: normal;
413
- color: var(--taskon-leaderboard-text-lightest);
442
+ color: var(--taskon-color-text);
414
443
  }
415
444
 
416
445
  /* 六边形徽章样式 */
446
+
417
447
  .taskon-leaderboard-rank--badge {
418
448
  position: relative;
419
449
  width: 27px;
@@ -425,49 +455,57 @@
425
455
  }
426
456
 
427
457
  /* 六边形路径 - 通过 CSS 变量控制颜色 */
458
+
428
459
  .taskon-leaderboard-rank__hexagon-path {
429
460
  stroke-width: 1;
430
461
  }
431
462
 
432
463
  /* 金色徽章 - 第1名 */
464
+
433
465
  .taskon-leaderboard-rank--gold .taskon-leaderboard-rank__hexagon-path {
434
- fill: var(--taskon-leaderboard-rank-gold);
435
- stroke: var(--taskon-leaderboard-rank-gold-stroke);
466
+ /* Decorative medal colors are intentionally fixed. */
467
+ fill: #ffbf29;
468
+ stroke: #ffd465;
436
469
  }
437
470
 
438
471
  /* 银色徽章 - 第2名 */
472
+
439
473
  .taskon-leaderboard-rank--silver .taskon-leaderboard-rank__hexagon-path {
440
- fill: var(--taskon-leaderboard-rank-silver);
441
- stroke: var(--taskon-leaderboard-rank-silver-stroke);
474
+ fill: #c0c0c0;
475
+ stroke: #d8d8d8;
442
476
  }
443
477
 
444
478
  /* 铜色徽章 - 第3名 */
479
+
445
480
  .taskon-leaderboard-rank--bronze .taskon-leaderboard-rank__hexagon-path {
446
- fill: var(--taskon-leaderboard-rank-bronze);
447
- stroke: var(--taskon-leaderboard-rank-bronze-stroke);
481
+ fill: #cd7f32;
482
+ stroke: #e0a060;
448
483
  }
449
484
 
450
485
  /* 徽章上的数字 */
486
+
451
487
  .taskon-leaderboard-rank__number-overlay {
452
488
  position: absolute;
453
489
  top: 50%;
454
490
  left: 50%;
455
491
  transform: translate(-50%, -50%);
456
- font-size: 14px;
492
+ font-size: var(--taskon-font-size);
457
493
  font-weight: 600;
458
- color: var(--taskon-leaderboard-text-lightest);
494
+ color: var(--taskon-color-text);
459
495
  text-align: center;
460
496
  }
461
497
 
462
498
  /* 未排名状态 */
499
+
463
500
  .taskon-leaderboard-rank--na,
464
501
  .taskon-leaderboard-rank--unranked {
465
- color: var(--taskon-leaderboard-text-light);
502
+ color: var(--taskon-color-text-tertiary);
466
503
  }
467
504
 
468
505
  /* 普通数字排名 */
506
+
469
507
  .taskon-leaderboard-rank--number {
470
- font-size: 16px;
508
+ font-size: var(--taskon-font-size-lg);
471
509
  font-weight: 500;
472
510
  }
473
511
 
@@ -491,11 +529,12 @@
491
529
  }
492
530
 
493
531
  /* 用户名 - 16px SemiBold 白色 */
532
+
494
533
  .taskon-leaderboard-user__name {
495
- font-size: 16px;
534
+ font-size: var(--taskon-font-size-lg);
496
535
  font-weight: 600;
497
- line-height: 24px;
498
- color: var(--taskon-leaderboard-text-lightest);
536
+ line-height: 1.5;
537
+ color: var(--taskon-color-text);
499
538
  white-space: nowrap;
500
539
  overflow: hidden;
501
540
  text-overflow: ellipsis;
@@ -503,11 +542,12 @@
503
542
  }
504
543
 
505
544
  /* YOU 标签 - 16px SemiBold 绿色 (#1affab) */
545
+
506
546
  .taskon-leaderboard-user__you-badge {
507
- font-size: 16px;
547
+ font-size: var(--taskon-font-size-lg);
508
548
  font-weight: 600;
509
549
  line-height: normal;
510
- color: var(--taskon-leaderboard-secondary);
550
+ color: var(--taskon-color-secondary);
511
551
  text-transform: uppercase;
512
552
  }
513
553
 
@@ -519,12 +559,13 @@
519
559
  display: flex;
520
560
  align-items: center;
521
561
  justify-content: center;
522
- gap: var(--taskon-leaderboard-spacing-m);
523
- padding: var(--taskon-leaderboard-spacing-l) var(--taskon-leaderboard-spacing-m);
562
+ gap: var(--taskon-spacing-md);
563
+ padding: var(--taskon-spacing-md) var(--taskon-spacing-md);
524
564
  border-top: none;
525
565
  }
526
566
 
527
567
  /* 分页按钮 - 圆形 30px */
568
+
528
569
  .taskon-leaderboard-pagination .taskon-pagination-btn {
529
570
  width: 30px;
530
571
  height: 30px;
@@ -535,14 +576,14 @@
535
576
  align-items: center;
536
577
  justify-content: center;
537
578
  background-color: transparent;
538
- border: 1px solid var(--taskon-leaderboard-text-darkest);
539
- color: var(--taskon-leaderboard-text-lightest);
579
+ border: 1px solid var(--taskon-color-border);
580
+ color: var(--taskon-color-text);
540
581
  transition: all 0.2s ease;
541
582
  }
542
583
 
543
584
  .taskon-leaderboard-pagination .taskon-pagination-btn:hover:not(:disabled) {
544
- background-color: var(--taskon-leaderboard-text-invisible);
545
- border-color: var(--taskon-leaderboard-text-dark);
585
+ background-color: var(--taskon-color-bg-surface-subtle);
586
+ border-color: var(--taskon-color-text-disabled);
546
587
  }
547
588
 
548
589
  .taskon-leaderboard-pagination .taskon-pagination-btn:disabled {
@@ -551,31 +592,36 @@
551
592
  }
552
593
 
553
594
  /* 分页图标 */
595
+
554
596
  .taskon-leaderboard-pagination .taskon-pagination-icon {
555
597
  width: 16px;
556
598
  height: 16px;
557
599
  }
558
600
 
559
601
  /* 页码信息 - 16px Regular,格式:1 / 5 */
602
+
560
603
  .taskon-leaderboard-pagination .taskon-pagination-info {
561
604
  display: flex;
562
605
  align-items: center;
563
- font-size: 16px;
606
+ font-size: var(--taskon-font-size-lg);
564
607
  font-weight: 400;
565
608
  }
566
609
 
567
610
  /* 当前页码 - 白色 */
611
+
568
612
  .taskon-leaderboard-pagination .taskon-pagination-info-current {
569
- color: var(--taskon-leaderboard-text-lightest);
613
+ color: var(--taskon-color-text);
570
614
  }
571
615
 
572
616
  /* 分隔符和总页数 - 灰色 */
617
+
573
618
  .taskon-leaderboard-pagination .taskon-pagination-info-separator,
574
619
  .taskon-leaderboard-pagination .taskon-pagination-info-total {
575
- color: var(--taskon-leaderboard-text-dark);
620
+ color: var(--taskon-color-text-disabled);
576
621
  }
577
622
 
578
623
  /* 隐藏范围文字 */
624
+
579
625
  .taskon-leaderboard-pagination .taskon-pagination-range {
580
626
  display: none;
581
627
  }
@@ -591,8 +637,8 @@
591
637
  display: flex;
592
638
  align-items: center;
593
639
  justify-content: center;
594
- padding: var(--taskon-leaderboard-spacing-l);
595
- background-color: rgba(0, 0, 0, 0.5);
640
+ padding: var(--taskon-spacing-md);
641
+ background-color: var(--taskon-color-bg-mask);
596
642
  }
597
643
 
598
644
  .taskon-leaderboard-modal {
@@ -600,8 +646,8 @@
600
646
  width: 100%;
601
647
  max-width: 520px;
602
648
  max-height: 80vh;
603
- background-color: var(--taskon-leaderboard-bg-body);
604
- border-radius: var(--taskon-leaderboard-radius-xl);
649
+ background-color: var(--taskon-color-bg-canvas);
650
+ border-radius: var(--taskon-border-radius-lg);
605
651
  overflow: hidden;
606
652
  display: flex;
607
653
  flex-direction: column;
@@ -611,17 +657,18 @@
611
657
  display: flex;
612
658
  align-items: center;
613
659
  justify-content: space-between;
614
- padding: var(--taskon-leaderboard-spacing-m) var(--taskon-leaderboard-spacing-l);
615
- border-bottom: 1px solid var(--taskon-leaderboard-text-darkest);
660
+ padding: var(--taskon-spacing-md) var(--taskon-spacing-md);
661
+ border-bottom: 1px solid var(--taskon-color-border);
616
662
  }
617
663
 
618
664
  /* 弹窗标题 - 24px SemiBold 白色 */
665
+
619
666
  .taskon-leaderboard-modal__title {
620
667
  margin: 0;
621
- font-size: 24px;
668
+ font-size: var(--taskon-font-size-xxxl);
622
669
  font-weight: 600;
623
- line-height: 32px;
624
- color: var(--taskon-leaderboard-text-lightest);
670
+ line-height: 1.33;
671
+ color: var(--taskon-color-text);
625
672
  }
626
673
 
627
674
  .taskon-leaderboard-modal__close {
@@ -633,15 +680,15 @@
633
680
  padding: 0;
634
681
  background-color: transparent;
635
682
  border: none;
636
- border-radius: var(--taskon-leaderboard-radius-m);
683
+ border-radius: var(--taskon-border-radius);
637
684
  cursor: pointer;
638
- color: var(--taskon-leaderboard-text-dark);
685
+ color: var(--taskon-color-text-disabled);
639
686
  transition: all 0.2s ease;
640
687
  }
641
688
 
642
689
  .taskon-leaderboard-modal__close:hover {
643
- background-color: var(--taskon-leaderboard-text-darkest);
644
- color: var(--taskon-leaderboard-text-lightest);
690
+ background-color: var(--taskon-color-border);
691
+ color: var(--taskon-color-text);
645
692
  }
646
693
 
647
694
  .taskon-leaderboard-modal__close svg {
@@ -650,107 +697,119 @@
650
697
  }
651
698
 
652
699
  /* 弹窗内容容器 - gap 20px */
700
+
653
701
  .taskon-leaderboard-modal__content {
654
702
  display: flex;
655
703
  flex-direction: column;
656
- gap: var(--taskon-leaderboard-spacing-l);
657
- padding: var(--taskon-leaderboard-spacing-l);
704
+ gap: var(--taskon-spacing-md);
705
+ padding: var(--taskon-spacing-md);
658
706
  overflow-y: auto;
659
707
  }
660
708
 
661
709
  /* 描述文本 - 16px Regular 暗色 */
710
+
662
711
  .taskon-leaderboard-modal__desc {
663
712
  margin: 0;
664
- font-size: 16px;
713
+ font-size: var(--taskon-font-size-lg);
665
714
  font-weight: 400;
666
- line-height: 24px;
667
- color: var(--taskon-leaderboard-text-dark);
715
+ line-height: 1.5;
716
+ color: var(--taskon-color-text-disabled);
668
717
  }
669
718
 
670
719
  /* 章节容器 - gap 8px */
720
+
671
721
  .taskon-leaderboard-modal__section {
672
722
  display: flex;
673
723
  flex-direction: column;
674
- gap: var(--taskon-leaderboard-spacing-xs);
724
+ gap: var(--taskon-spacing-sm);
675
725
  }
676
726
 
677
727
  /* 章节标题 - 16px Regular 稍亮暗色 */
728
+
678
729
  .taskon-leaderboard-modal__section-title {
679
730
  margin: 0;
680
- font-size: 16px;
731
+ font-size: var(--taskon-font-size-lg);
681
732
  font-weight: 400;
682
- line-height: 24px;
683
- color: var(--taskon-leaderboard-text-light);
733
+ line-height: 1.5;
734
+ color: var(--taskon-color-text-tertiary);
684
735
  }
685
736
 
686
737
  /* 时间范围 - 14px Medium 白色 */
738
+
687
739
  .taskon-leaderboard-modal__period {
688
740
  margin: 0;
689
- font-size: 14px;
741
+ font-size: var(--taskon-font-size);
690
742
  font-weight: 500;
691
743
  line-height: normal;
692
- color: var(--taskon-leaderboard-text-lightest);
744
+ color: var(--taskon-color-text);
693
745
  text-overflow: ellipsis;
694
746
  overflow: hidden;
695
747
  }
696
748
 
697
749
  /* 奖励层级列表 - 无背景无边框,紧凑列表 */
750
+
698
751
  .taskon-leaderboard-modal__tiers {
699
752
  display: flex;
700
753
  flex-direction: column;
701
- gap: var(--taskon-leaderboard-spacing-xs);
754
+ gap: var(--taskon-spacing-sm);
702
755
  }
703
756
 
704
757
  /* 奖励层级行 - flex 布局,gap 20px */
758
+
705
759
  .taskon-leaderboard-modal__tier {
706
760
  display: flex;
707
761
  align-items: center;
708
- gap: var(--taskon-leaderboard-spacing-l);
762
+ gap: var(--taskon-spacing-md);
709
763
  padding: 0;
710
764
  background-color: transparent;
711
765
  border-radius: 0;
712
766
  }
713
767
 
714
768
  /* 排名范围 - 14px Regular 白色 */
769
+
715
770
  .taskon-leaderboard-modal__tier-rank {
716
771
  flex-shrink: 0;
717
772
  min-width: 70px;
718
- font-size: 14px;
773
+ font-size: var(--taskon-font-size);
719
774
  font-weight: 400;
720
- line-height: 20px;
721
- color: var(--taskon-leaderboard-text-lightest);
775
+ line-height: 1.43;
776
+ color: var(--taskon-color-text);
722
777
  text-overflow: ellipsis;
723
778
  overflow: hidden;
724
779
  white-space: nowrap;
725
780
  }
726
781
 
727
782
  /* 奖励内容容器 */
783
+
728
784
  .taskon-leaderboard-modal__tier-reward {
729
785
  display: flex;
730
786
  align-items: center;
731
787
  gap: 10px;
732
- font-size: 16px;
788
+ font-size: var(--taskon-font-size-lg);
733
789
  font-weight: 600;
734
- line-height: 24px;
735
- color: var(--taskon-leaderboard-text-lightest);
790
+ line-height: 1.5;
791
+ color: var(--taskon-color-text);
736
792
  }
737
793
 
738
794
  /* 分配方式文本 - 16px SemiBold 白色 */
795
+
739
796
  .taskon-leaderboard-modal__tier-distribute {
740
- font-size: 16px;
797
+ font-size: var(--taskon-font-size-lg);
741
798
  font-weight: 600;
742
- line-height: 24px;
743
- color: var(--taskon-leaderboard-text-lightest);
799
+ line-height: 1.5;
800
+ color: var(--taskon-color-text);
744
801
  }
745
802
 
746
803
  /* Token 图标容器 */
804
+
747
805
  .taskon-leaderboard-modal__tier-token {
748
806
  display: flex;
749
807
  align-items: center;
750
- gap: var(--taskon-leaderboard-spacing-xs);
808
+ gap: var(--taskon-spacing-sm);
751
809
  }
752
810
 
753
811
  /* Token 图标 */
812
+
754
813
  .taskon-leaderboard-modal__tier-token-icon {
755
814
  width: 26px;
756
815
  height: 24px;
@@ -758,21 +817,23 @@
758
817
  }
759
818
 
760
819
  /* 奖励金额 - 数字绿色,单位白色 */
820
+
761
821
  .taskon-leaderboard-modal__tier-amount {
762
- font-size: 16px;
822
+ font-size: var(--taskon-font-size-lg);
763
823
  font-weight: 600;
764
- line-height: 24px;
824
+ line-height: 1.5;
765
825
  }
766
826
 
767
827
  .taskon-leaderboard-modal__tier-amount-value {
768
- color: var(--taskon-leaderboard-primary);
828
+ color: var(--taskon-color-primary);
769
829
  }
770
830
 
771
831
  .taskon-leaderboard-modal__tier-amount-symbol {
772
- color: var(--taskon-leaderboard-text-lightest);
832
+ color: var(--taskon-color-text);
773
833
  }
774
834
 
775
835
  /* 隐藏旧的 tier-header 和 tier-count */
836
+
776
837
  .taskon-leaderboard-modal__tier-header {
777
838
  display: none;
778
839
  }
@@ -786,23 +847,167 @@
786
847
  ============================================================================ */
787
848
 
788
849
  @media (max-width: 640px) {
850
+ .taskon-leaderboard {
851
+ font-size: var(--taskon-font-size);
852
+ }
853
+
789
854
  .taskon-leaderboard-tabs {
855
+ flex-wrap: nowrap;
856
+ gap: var(--taskon-spacing-xs);
857
+ padding: var(--taskon-spacing-sm);
790
858
  overflow-x: auto;
791
859
  -webkit-overflow-scrolling: touch;
792
860
  }
793
861
 
794
862
  .taskon-leaderboard-tabs__tab {
863
+ flex-shrink: 0;
864
+ padding: var(--taskon-spacing-xs) var(--taskon-spacing-sm);
865
+ font-size: var(--taskon-font-size-sm);
866
+ line-height: 1.5;
795
867
  white-space: nowrap;
796
868
  }
797
869
 
870
+ .taskon-leaderboard-header {
871
+ gap: var(--taskon-spacing-sm);
872
+ padding: 0 var(--taskon-spacing-sm) var(--taskon-spacing-sm);
873
+ }
874
+
875
+ .taskon-leaderboard-header__info {
876
+ flex-wrap: wrap;
877
+ gap: var(--taskon-spacing-xs);
878
+ }
879
+
880
+ .taskon-leaderboard-header__time {
881
+ width: 100%;
882
+ font-size: var(--taskon-font-size-sm);
883
+ line-height: 1.5;
884
+ }
885
+
886
+ .taskon-leaderboard-header__separator,
887
+ .taskon-leaderboard-header__reward-separator {
888
+ display: none;
889
+ }
890
+
891
+ .taskon-leaderboard-header__participants {
892
+ font-size: var(--taskon-font-size-sm);
893
+ line-height: 1.5;
894
+ }
895
+
798
896
  .taskon-leaderboard-header__reward-info {
799
897
  flex-direction: column;
800
898
  align-items: flex-start;
899
+ gap: var(--taskon-spacing-xs);
900
+ }
901
+
902
+ .taskon-leaderboard-header__reward-item {
903
+ font-size: var(--taskon-font-size-sm);
904
+ line-height: 1.5;
801
905
  }
802
906
 
803
907
  .taskon-leaderboard-header__reward-rules-btn {
804
908
  margin-left: 0;
805
909
  width: 100%;
910
+ justify-content: center;
911
+ }
912
+
913
+ .taskon-leaderboard-table {
914
+ padding: 0 var(--taskon-spacing-sm);
915
+ }
916
+
917
+ .taskon-leaderboard .taskon-table__header,
918
+ .taskon-leaderboard .taskon-table__cell {
919
+ padding: var(--taskon-spacing-xs) var(--taskon-spacing-sm);
920
+ font-size: var(--taskon-font-size-sm);
921
+ line-height: 1.5;
922
+ }
923
+
924
+ .taskon-leaderboard .taskon-table__row {
925
+ height: 60px;
926
+ }
927
+
928
+ .taskon-leaderboard-user__name,
929
+ .taskon-leaderboard-user__you-badge,
930
+ .taskon-leaderboard-table__reward,
931
+ .taskon-leaderboard-table__reward--not-qualified {
932
+ font-size: var(--taskon-font-size-sm);
933
+ line-height: 1.5;
934
+ }
935
+
936
+ .taskon-leaderboard-table__reward {
937
+ white-space: normal;
938
+ }
939
+
940
+ .taskon-leaderboard-table__reward-chain {
941
+ font-size: var(--taskon-font-size-sm);
942
+ line-height: 1.33;
943
+ }
944
+
945
+ .taskon-leaderboard-pagination {
946
+ gap: var(--taskon-spacing-sm);
947
+ padding: var(--taskon-spacing-sm);
948
+ }
949
+
950
+ .taskon-leaderboard-pagination .taskon-pagination-btn {
951
+ width: 28px;
952
+ height: 28px;
953
+ min-width: 28px;
954
+ }
955
+
956
+ .taskon-leaderboard-pagination .taskon-pagination-info {
957
+ font-size: var(--taskon-font-size);
958
+ }
959
+
960
+ .taskon-leaderboard-modal {
961
+ max-height: 88vh;
962
+ }
963
+
964
+ .taskon-leaderboard-modal__content {
965
+ gap: var(--taskon-spacing-sm);
966
+ padding: var(--taskon-spacing-sm);
967
+ }
968
+
969
+ .taskon-leaderboard-modal__title {
970
+ font-size: 20px;
971
+ line-height: 1.4;
972
+ }
973
+
974
+ .taskon-leaderboard-modal__desc,
975
+ .taskon-leaderboard-modal__section-title,
976
+ .taskon-leaderboard-modal__tier-distribute,
977
+ .taskon-leaderboard-modal__tier-amount {
978
+ font-size: var(--taskon-font-size);
979
+ line-height: 1.43;
980
+ }
981
+
982
+ .taskon-leaderboard-modal__period {
983
+ font-size: var(--taskon-font-size-sm);
984
+ line-height: 1.5;
985
+ }
986
+
987
+ .taskon-leaderboard-modal__tier {
988
+ align-items: flex-start;
989
+ flex-wrap: wrap;
990
+ gap: var(--taskon-spacing-xs);
991
+ }
992
+
993
+ .taskon-leaderboard-modal__tier-rank {
994
+ min-width: 0;
995
+ width: 100%;
996
+ font-size: var(--taskon-font-size-sm);
997
+ line-height: 1.5;
998
+ }
999
+
1000
+ .taskon-leaderboard-modal__tier-reward {
1001
+ width: 100%;
1002
+ flex-wrap: wrap;
1003
+ gap: var(--taskon-spacing-xs);
1004
+ font-size: var(--taskon-font-size);
1005
+ line-height: 1.43;
1006
+ }
1007
+
1008
+ .taskon-leaderboard-modal__tier-token-icon {
1009
+ width: 20px;
1010
+ height: 20px;
806
1011
  }
807
1012
 
808
1013
  .taskon-leaderboard-pagination {