@taskon/widget-react 0.0.1-beta.5 → 0.0.1-beta.6

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 (58) hide show
  1. package/README.md +13 -4
  2. package/dist/CommunityTaskList.css +9 -1
  3. package/dist/EligibilityInfo.css +46 -42
  4. package/dist/LeaderboardWidget.css +73 -71
  5. package/dist/PageBuilder.css +5 -0
  6. package/dist/Quest.css +18 -14
  7. package/dist/TaskOnProvider.css +2 -0
  8. package/dist/UserCenterWidget.css +6 -6
  9. package/dist/UserCenterWidget2.css +1626 -1601
  10. package/dist/{dynamic-import-helper.css → WidgetShell.css} +2 -2
  11. package/dist/chunks/{CommunityTaskList-CrMvOB8w.js → CommunityTaskList-Hde2OKHH.js} +360 -154
  12. package/dist/chunks/{EligibilityInfo-Beww12QX.js → EligibilityInfo-BV0Z2TgY.js} +533 -561
  13. package/dist/chunks/{LeaderboardWidget-DwuSpVl0.js → LeaderboardWidget-BNGRD5Bu.js} +270 -249
  14. package/dist/chunks/{PageBuilder-DsX6Tv0N.js → PageBuilder-C5DSHiW9.js} +5 -5
  15. package/dist/chunks/{Quest-CuD2LElS.js → Quest-DG9zfXJo.js} +72 -50
  16. package/dist/chunks/{TaskOnProvider-xUeP2Nro.js → TaskOnProvider-BhamHIyY.js} +34 -17
  17. package/dist/chunks/{ThemeProvider-Bt4UZ33y.js → ThemeProvider-mXLdLSkq.js} +81 -18
  18. package/dist/chunks/{UserCenterWidget-CvU6K4AC.js → UserCenterWidget-D5ttw4hO.js} +1328 -1337
  19. package/dist/chunks/{UserCenterWidget-CB0hnj-L.js → UserCenterWidget-jDO5zTN1.js} +298 -231
  20. package/dist/chunks/{dynamic-import-helper-WmIF58Sb.js → WidgetShell-D7yC894Y.js} +447 -457
  21. package/dist/chunks/communitytask-es-CBNnS4o2.js +521 -0
  22. package/dist/chunks/communitytask-ja-GRf9cbdx.js +521 -0
  23. package/dist/chunks/communitytask-ko-Bf24PQKI.js +521 -0
  24. package/dist/chunks/{communitytask-ru-DhySaZL8.js → communitytask-ru-CZm2CPoV.js} +211 -1
  25. package/dist/chunks/leaderboardwidget-es-vKjrjQaz.js +146 -0
  26. package/dist/chunks/leaderboardwidget-ja-Q6u0HxKG.js +146 -0
  27. package/dist/chunks/leaderboardwidget-ko-CG6SWgxf.js +146 -0
  28. package/dist/chunks/leaderboardwidget-ru-DCcHcJGz.js +146 -0
  29. package/dist/chunks/{quest-es-D-b5xcme.js → quest-es-Dyyy0zaw.js} +8 -93
  30. package/dist/chunks/{quest-ja-Dxd2vqBF.js → quest-ja-Depog33y.js} +8 -93
  31. package/dist/chunks/{quest-ko-CSmRWgK_.js → quest-ko-BMu3uRQJ.js} +8 -93
  32. package/dist/chunks/{quest-ru-CkEKv1_F.js → quest-ru-xne814Rw.js} +8 -93
  33. package/dist/chunks/usercenter-es-Dz3Wp2vV.js +512 -0
  34. package/dist/chunks/usercenter-ja-CKE4DJC6.js +512 -0
  35. package/dist/chunks/usercenter-ko-Dtpkn2qb.js +512 -0
  36. package/dist/chunks/usercenter-ru-DnBGee45.js +512 -0
  37. package/dist/community-task.d.ts +0 -390
  38. package/dist/community-task.js +2 -7
  39. package/dist/core.d.ts +29 -5
  40. package/dist/core.js +8 -9
  41. package/dist/index.d.ts +29 -701
  42. package/dist/index.js +18 -29
  43. package/dist/leaderboard.d.ts +0 -498
  44. package/dist/leaderboard.js +2 -16
  45. package/dist/page-builder.js +1 -1
  46. package/dist/quest.d.ts +0 -971
  47. package/dist/quest.js +2 -7
  48. package/dist/user-center.d.ts +0 -1610
  49. package/dist/user-center.js +2 -494
  50. package/package.json +2 -2
  51. package/dist/chunks/communitytask-es-1zawvXEX.js +0 -311
  52. package/dist/chunks/communitytask-ja-CmW6nP-L.js +0 -311
  53. package/dist/chunks/communitytask-ko-BD0hzQSi.js +0 -311
  54. package/dist/chunks/createLocaleLoader-BameiEhU.js +0 -65
  55. package/dist/chunks/leaderboardwidget-ja-Bj6gz6y1.js +0 -119
  56. package/dist/chunks/leaderboardwidget-ko-f1cLO9ic.js +0 -119
  57. package/dist/chunks/usercenter-ja-B2465c1O.js +0 -326
  58. package/dist/chunks/usercenter-ko-xAEYxqLg.js +0 -326
package/README.md CHANGED
@@ -190,7 +190,11 @@ interface TaskOnProviderConfig {
190
190
  disableAutoDetect?: boolean; // Disable auto-detection
191
191
  };
192
192
 
193
- // WalletConnect Project ID (required for WalletConnect support)
193
+ // WalletConnect Project ID
194
+ // Only needed when you design Web3 wallet login or wallet-based rewards
195
+ // (wallet binding, on-chain verification, NFT/token claiming, etc.)
196
+ // Optional; SDK has a built-in default project ID
197
+ // For production, strongly recommended to use your own project ID
194
198
  // Get your project ID at https://cloud.walletconnect.com
195
199
  walletConnectProjectId?: string;
196
200
 
@@ -667,14 +671,17 @@ When tasks require wallet binding (e.g., on-chain verification), TaskOn shows a
667
671
  - ONTO Wallet
668
672
  - Bitget Wallet
669
673
  - OKX Wallet
670
- - WalletConnect (requires `walletConnectProjectId`)
674
+ - WalletConnect (uses SDK default project ID if not configured; not recommended for production)
671
675
 
672
676
  **Mobile (non-Dapp browser):**
673
- - WalletConnect only (requires `walletConnectProjectId`)
677
+ - WalletConnect only (uses SDK default project ID if not configured; not recommended for production)
674
678
 
675
679
  **Mobile (Dapp browser / wallet app):**
676
680
  - Uses injected provider directly
677
681
 
682
+ Only configure `walletConnectProjectId` when your product needs Web3 wallet login
683
+ or wallet-based rewards (wallet binding, on-chain verification, NFT/token claiming).
684
+
678
685
  To enable WalletConnect in the dialog:
679
686
 
680
687
  ```tsx
@@ -1068,6 +1075,7 @@ Works with:
1068
1075
 
1069
1076
  ### Optional Peer Dependencies
1070
1077
 
1078
+ Install these only when you need Web3 wallet login or wallet-based reward flows.
1071
1079
  For WalletConnect support in the built-in wallet binding dialog:
1072
1080
 
1073
1081
  ```bash
@@ -1089,7 +1097,8 @@ Then configure your project ID:
1089
1097
 
1090
1098
  Get your WalletConnect Project ID at https://cloud.walletconnect.com
1091
1099
 
1092
- If not configured, the WalletConnect option will be disabled in the wallet binding dialog.
1100
+ If not configured, the SDK will use a built-in default WalletConnect project ID.
1101
+ For production use, strongly recommend configuring your own `walletConnectProjectId`.
1093
1102
 
1094
1103
  ## Limitations
1095
1104
 
@@ -3330,6 +3330,8 @@
3330
3330
  margin-top: 8px;
3331
3331
  font-size: 14px;
3332
3332
  color: var(--taskon-color-text-secondary);
3333
+ overflow-wrap: anywhere;
3334
+ word-break: break-word;
3333
3335
  }
3334
3336
  /**
3335
3337
  * SectorItem 组件样式
@@ -4183,7 +4185,9 @@
4183
4185
  line-height: 1.43;
4184
4186
  letter-spacing: 0.04em;
4185
4187
  text-align: left;
4186
- white-space: nowrap;
4188
+ white-space: normal;
4189
+ overflow-wrap: anywhere;
4190
+ word-break: break-word;
4187
4191
  }
4188
4192
 
4189
4193
  /* ==================== 提交按钮 ==================== */
@@ -4392,6 +4396,8 @@
4392
4396
  font-size: var(--taskon-font-size);
4393
4397
  line-height: 1.5;
4394
4398
  max-width: 300px;
4399
+ overflow-wrap: anywhere;
4400
+ word-break: break-word;
4395
4401
  }
4396
4402
 
4397
4403
  .taskon-dialog-error-retry {
@@ -4733,6 +4739,8 @@
4733
4739
  text-align: center;
4734
4740
  color: var(--taskon-color-error);
4735
4741
  font-size: var(--taskon-font-size-lg);
4742
+ overflow-wrap: anywhere;
4743
+ word-break: break-word;
4736
4744
  }
4737
4745
 
4738
4746
  /* 空状态 */
@@ -1027,6 +1027,8 @@
1027
1027
  margin-top: 10px;
1028
1028
  font-size: var(--taskon-font-size);
1029
1029
  color: var(--taskon-color-error);
1030
+ overflow-wrap: anywhere;
1031
+ word-break: break-word;
1030
1032
  }
1031
1033
 
1032
1034
  /* ============================================
@@ -1373,6 +1375,8 @@
1373
1375
  .taskon-outer-point-api-dialog-error {
1374
1376
  font-size: var(--taskon-font-size-sm);
1375
1377
  color: var(--taskon-color-error);
1378
+ overflow-wrap: anywhere;
1379
+ word-break: break-word;
1376
1380
  }
1377
1381
 
1378
1382
  /* Action buttons */
@@ -2205,17 +2209,29 @@
2205
2209
  container-type: inline-size;
2206
2210
  position: relative;
2207
2211
  width: min(520px, 92vw);
2212
+ min-height: 500px;
2213
+ padding: 24px var(--taskon-spacing-lg) 40px;
2214
+ display: flex;
2215
+ flex-direction: column;
2216
+ align-items: center;
2208
2217
  overflow: hidden;
2209
- padding-top: var(--taskon-spacing-lg);
2210
2218
  }
2211
2219
 
2212
2220
  .taskon-quest-blindbox-dialog-title {
2213
- margin: 0 0 var(--taskon-spacing-md);
2214
- padding: 0 var(--taskon-spacing-lg);
2215
- font-size: var(--taskon-font-size-xxl);
2221
+ margin: 0;
2222
+ font-size: 32px;
2216
2223
  font-weight: 600;
2217
- line-height: 1.4;
2224
+ line-height: 1.25;
2218
2225
  color: #fff;
2226
+ text-align: center;
2227
+ }
2228
+
2229
+ .taskon-quest-blindbox-dialog-subtitle {
2230
+ margin: 12px 0 20px;
2231
+ font-size: var(--taskon-font-size-lg);
2232
+ line-height: 1.5;
2233
+ color: rgba(255, 255, 255, 0.7);
2234
+ text-align: center;
2219
2235
  }
2220
2236
 
2221
2237
  /* Stage container - centered square area for animation */
@@ -2227,7 +2243,7 @@
2227
2243
  justify-content: center;
2228
2244
  width: 100%;
2229
2245
  max-width: 420px;
2230
- margin: 0 auto;
2246
+ margin: 0 auto auto;
2231
2247
  aspect-ratio: 1;
2232
2248
  overflow: visible;
2233
2249
  border-radius: 32px;
@@ -2335,35 +2351,17 @@
2335
2351
  .taskon-quest-blindbox-reward {
2336
2352
  container-type: inline-size;
2337
2353
  position: relative;
2338
- width: 510px;
2339
- max-width: 92vw;
2340
- padding: 48px var(--taskon-spacing-lg);
2354
+ width: min(520px, 92vw);
2355
+ min-height: 500px;
2356
+ padding: 24px var(--taskon-spacing-lg) 40px;
2357
+ display: flex;
2358
+ flex-direction: column;
2359
+ align-items: center;
2341
2360
  text-align: center;
2342
2361
  color: #fff;
2343
2362
  overflow: hidden;
2344
2363
  }
2345
2364
 
2346
- /* Light background effect */
2347
-
2348
- .taskon-quest-blindbox-reward-light {
2349
- position: absolute;
2350
- top: 0;
2351
- left: 50%;
2352
- width: 120%;
2353
- max-width: none;
2354
- transform: translateX(-50%);
2355
- object-fit: contain;
2356
- pointer-events: none;
2357
- opacity: 0;
2358
- animation: taskon-blindbox-light-appear 2s ease-out forwards;
2359
- }
2360
-
2361
- @keyframes taskon-blindbox-light-appear {
2362
- to {
2363
- opacity: 1;
2364
- }
2365
- }
2366
-
2367
2365
  /* Title */
2368
2366
 
2369
2367
  .taskon-quest-blindbox-reward-title {
@@ -2377,6 +2375,7 @@
2377
2375
 
2378
2376
  .taskon-quest-blindbox-reward-subtitle {
2379
2377
  margin-top: 12px;
2378
+ margin-bottom: 0;
2380
2379
  font-size: var(--taskon-font-size-lg);
2381
2380
  line-height: 1.5;
2382
2381
  color: rgba(255, 255, 255, 0.7);
@@ -2389,7 +2388,7 @@
2389
2388
  flex-wrap: wrap;
2390
2389
  justify-content: center;
2391
2390
  align-items: center;
2392
- margin-top: var(--taskon-spacing-lg);
2391
+ margin-top: 20px;
2393
2392
  gap: var(--taskon-spacing-sm);
2394
2393
  padding: 12px var(--taskon-spacing-md);
2395
2394
  border-radius: var(--taskon-border-radius);
@@ -2445,7 +2444,8 @@
2445
2444
  .taskon-quest-blindbox-reward-btn-wrap {
2446
2445
  display: flex;
2447
2446
  justify-content: center;
2448
- margin-top: 40px;
2447
+ margin-top: auto;
2448
+ padding-top: 40px;
2449
2449
  }
2450
2450
 
2451
2451
  /* Back button - matches Vue g-button--light-border */
@@ -2510,19 +2510,21 @@
2510
2510
  @supports (container-type: inline-size) {
2511
2511
  @container (min-width: 751px) {
2512
2512
  .taskon-quest-blindbox-dialog {
2513
- padding-top: 40px;
2513
+ min-height: 540px;
2514
+ padding: 32px 40px 48px;
2514
2515
  }
2515
2516
 
2516
- .taskon-quest-blindbox-dialog-title {
2517
- padding: 0 40px;
2517
+ .taskon-quest-blindbox-dialog-subtitle {
2518
+ margin-bottom: 28px;
2518
2519
  }
2519
2520
 
2520
2521
  .taskon-quest-blindbox-reward {
2521
- padding: 64px 40px;
2522
+ min-height: 540px;
2523
+ padding: 32px 40px 48px;
2522
2524
  }
2523
2525
 
2524
2526
  .taskon-quest-blindbox-reward-btn-wrap {
2525
- margin-top: 60px;
2527
+ padding-top: 56px;
2526
2528
  }
2527
2529
  }
2528
2530
  }
@@ -2530,19 +2532,21 @@
2530
2532
  @supports not (container-type: inline-size) {
2531
2533
  @media (min-width: 751px) {
2532
2534
  .taskon-quest-blindbox-dialog {
2533
- padding-top: 40px;
2535
+ min-height: 540px;
2536
+ padding: 32px 40px 48px;
2534
2537
  }
2535
2538
 
2536
- .taskon-quest-blindbox-dialog-title {
2537
- padding: 0 40px;
2539
+ .taskon-quest-blindbox-dialog-subtitle {
2540
+ margin-bottom: 28px;
2538
2541
  }
2539
2542
 
2540
2543
  .taskon-quest-blindbox-reward {
2541
- padding: 64px 40px;
2544
+ min-height: 540px;
2545
+ padding: 32px 40px 48px;
2542
2546
  }
2543
2547
 
2544
2548
  .taskon-quest-blindbox-reward-btn-wrap {
2545
- margin-top: 60px;
2549
+ padding-top: 56px;
2546
2550
  }
2547
2551
  }
2548
2552
  }
@@ -10,7 +10,7 @@
10
10
  ============================================================================ */
11
11
 
12
12
  .taskon-leaderboard {
13
- font-size: 16px;
13
+ font-size: var(--taskon-font-size-lg);
14
14
  line-height: 1.5;
15
15
  color: var(--taskon-color-text);
16
16
  background-color: var(--taskon-color-bg-canvas);
@@ -31,13 +31,15 @@
31
31
 
32
32
  .taskon-leaderboard__error-text {
33
33
  color: var(--taskon-color-error);
34
- font-size: 14px;
34
+ font-size: var(--taskon-font-size);
35
35
  margin: 0;
36
+ overflow-wrap: anywhere;
37
+ word-break: break-word;
36
38
  }
37
39
 
38
40
  .taskon-leaderboard__retry-btn {
39
41
  padding: var(--taskon-spacing-sm) var(--taskon-spacing-md);
40
- font-size: 14px;
42
+ font-size: var(--taskon-font-size);
41
43
  font-weight: 500;
42
44
  color: var(--taskon-color-primary);
43
45
  background-color: transparent;
@@ -71,9 +73,9 @@
71
73
 
72
74
  .taskon-leaderboard-tabs__tab {
73
75
  padding: var(--taskon-spacing-sm) var(--taskon-spacing-md);
74
- font-size: 14px;
76
+ font-size: var(--taskon-font-size);
75
77
  font-weight: 500;
76
- line-height: 20px;
78
+ line-height: 1.43;
77
79
  color: var(--taskon-color-text);
78
80
  background-color: var(--taskon-color-bg-surface-subtle);
79
81
  border: 1px solid transparent;
@@ -129,9 +131,9 @@
129
131
  justify-content: center;
130
132
  height: 20px;
131
133
  padding: 0 var(--taskon-spacing-sm);
132
- font-size: 11px;
134
+ font-size: var(--taskon-font-size-sm);
133
135
  font-weight: 600;
134
- line-height: 12px;
136
+ line-height: 1;
135
137
  border-radius: var(--taskon-border-radius-sm);
136
138
  background-color: var(--taskon-color-border);
137
139
  }
@@ -151,9 +153,9 @@
151
153
  /* 时间范围 - 16px Regular,80% 白色 */
152
154
 
153
155
  .taskon-leaderboard-header__time {
154
- font-size: 16px;
156
+ font-size: var(--taskon-font-size-lg);
155
157
  font-weight: 400;
156
- line-height: 24px;
158
+ line-height: 1.5;
157
159
  color: var(--taskon-color-text-secondary);
158
160
  }
159
161
 
@@ -171,9 +173,9 @@
171
173
  display: flex;
172
174
  align-items: center;
173
175
  gap: var(--taskon-spacing-sm);
174
- font-size: 16px;
176
+ font-size: var(--taskon-font-size-lg);
175
177
  font-weight: 500;
176
- line-height: 24px;
178
+ line-height: 1.5;
177
179
  }
178
180
 
179
181
  /* 参与人数标签 - 60% 白色 */
@@ -201,7 +203,7 @@
201
203
 
202
204
  .taskon-leaderboard-header__title {
203
205
  margin: 0;
204
- font-size: 18px;
206
+ font-size: var(--taskon-font-size-xl);
205
207
  font-weight: 600;
206
208
  color: var(--taskon-color-text);
207
209
  }
@@ -220,8 +222,8 @@
220
222
  display: flex;
221
223
  align-items: center;
222
224
  gap: var(--taskon-spacing-sm);
223
- font-size: 16px;
224
- line-height: 24px;
225
+ font-size: var(--taskon-font-size-lg);
226
+ line-height: 1.5;
225
227
  white-space: nowrap;
226
228
  }
227
229
 
@@ -250,7 +252,7 @@
250
252
  .taskon-leaderboard-header__reward-rules-btn {
251
253
  margin-left: auto;
252
254
  padding: var(--taskon-spacing-xs) var(--taskon-spacing-sm);
253
- font-size: 13px;
255
+ font-size: var(--taskon-font-size-sm);
254
256
  font-weight: 500;
255
257
  color: var(--taskon-color-primary);
256
258
  background-color: transparent;
@@ -326,9 +328,9 @@
326
328
  display: inline-flex;
327
329
  align-items: center;
328
330
  gap: var(--taskon-spacing-sm);
329
- font-size: 16px;
331
+ font-size: var(--taskon-font-size-lg);
330
332
  font-weight: 600;
331
- line-height: 24px;
333
+ line-height: 1.5;
332
334
  color: var(--taskon-color-text);
333
335
  white-space: nowrap;
334
336
  flex-wrap: nowrap;
@@ -363,7 +365,7 @@
363
365
  /* 链信息 */
364
366
 
365
367
  .taskon-leaderboard-table__reward-chain {
366
- font-size: 14px;
368
+ font-size: var(--taskon-font-size);
367
369
  font-weight: 400;
368
370
  color: var(--taskon-color-text-disabled);
369
371
  }
@@ -371,9 +373,9 @@
371
373
  /* 未达标状态 - Not Qualified: rgba(255,255,255,0.6) */
372
374
 
373
375
  .taskon-leaderboard-table__reward--not-qualified {
374
- font-size: 16px;
376
+ font-size: var(--taskon-font-size-lg);
375
377
  font-weight: 600;
376
- line-height: 24px;
378
+ line-height: 1.5;
377
379
  color: var(--taskon-color-text-tertiary);
378
380
  }
379
381
 
@@ -382,9 +384,9 @@
382
384
  .taskon-leaderboard-table__disabled-tip {
383
385
  width: 100%;
384
386
  padding-top: var(--taskon-spacing-sm);
385
- font-size: 14px;
387
+ font-size: var(--taskon-font-size);
386
388
  font-weight: 500;
387
- line-height: 20px;
389
+ line-height: 1.43;
388
390
  color: var(--taskon-color-text);
389
391
  }
390
392
 
@@ -402,9 +404,9 @@
402
404
  justify-content: center;
403
405
  height: 34px;
404
406
  padding: var(--taskon-spacing-sm) var(--taskon-spacing-md);
405
- font-size: 14px;
407
+ font-size: var(--taskon-font-size);
406
408
  font-weight: 500;
407
- line-height: 20px;
409
+ line-height: 1.43;
408
410
  color: var(--taskon-color-text);
409
411
  background-color: transparent;
410
412
  border: 1px solid var(--taskon-color-border);
@@ -434,7 +436,7 @@
434
436
  justify-content: center;
435
437
  min-width: 27px;
436
438
  height: 27px;
437
- font-size: 16px;
439
+ font-size: var(--taskon-font-size-lg);
438
440
  font-weight: 500;
439
441
  line-height: normal;
440
442
  color: var(--taskon-color-text);
@@ -487,7 +489,7 @@
487
489
  top: 50%;
488
490
  left: 50%;
489
491
  transform: translate(-50%, -50%);
490
- font-size: 14px;
492
+ font-size: var(--taskon-font-size);
491
493
  font-weight: 600;
492
494
  color: var(--taskon-color-text);
493
495
  text-align: center;
@@ -503,7 +505,7 @@
503
505
  /* 普通数字排名 */
504
506
 
505
507
  .taskon-leaderboard-rank--number {
506
- font-size: 16px;
508
+ font-size: var(--taskon-font-size-lg);
507
509
  font-weight: 500;
508
510
  }
509
511
 
@@ -529,9 +531,9 @@
529
531
  /* 用户名 - 16px SemiBold 白色 */
530
532
 
531
533
  .taskon-leaderboard-user__name {
532
- font-size: 16px;
534
+ font-size: var(--taskon-font-size-lg);
533
535
  font-weight: 600;
534
- line-height: 24px;
536
+ line-height: 1.5;
535
537
  color: var(--taskon-color-text);
536
538
  white-space: nowrap;
537
539
  overflow: hidden;
@@ -542,7 +544,7 @@
542
544
  /* YOU 标签 - 16px SemiBold 绿色 (#1affab) */
543
545
 
544
546
  .taskon-leaderboard-user__you-badge {
545
- font-size: 16px;
547
+ font-size: var(--taskon-font-size-lg);
546
548
  font-weight: 600;
547
549
  line-height: normal;
548
550
  color: var(--taskon-color-secondary);
@@ -601,7 +603,7 @@
601
603
  .taskon-leaderboard-pagination .taskon-pagination-info {
602
604
  display: flex;
603
605
  align-items: center;
604
- font-size: 16px;
606
+ font-size: var(--taskon-font-size-lg);
605
607
  font-weight: 400;
606
608
  }
607
609
 
@@ -663,9 +665,9 @@
663
665
 
664
666
  .taskon-leaderboard-modal__title {
665
667
  margin: 0;
666
- font-size: 24px;
668
+ font-size: var(--taskon-font-size-xxxl);
667
669
  font-weight: 600;
668
- line-height: 32px;
670
+ line-height: 1.33;
669
671
  color: var(--taskon-color-text);
670
672
  }
671
673
 
@@ -708,9 +710,9 @@
708
710
 
709
711
  .taskon-leaderboard-modal__desc {
710
712
  margin: 0;
711
- font-size: 16px;
713
+ font-size: var(--taskon-font-size-lg);
712
714
  font-weight: 400;
713
- line-height: 24px;
715
+ line-height: 1.5;
714
716
  color: var(--taskon-color-text-disabled);
715
717
  }
716
718
 
@@ -726,9 +728,9 @@
726
728
 
727
729
  .taskon-leaderboard-modal__section-title {
728
730
  margin: 0;
729
- font-size: 16px;
731
+ font-size: var(--taskon-font-size-lg);
730
732
  font-weight: 400;
731
- line-height: 24px;
733
+ line-height: 1.5;
732
734
  color: var(--taskon-color-text-tertiary);
733
735
  }
734
736
 
@@ -736,7 +738,7 @@
736
738
 
737
739
  .taskon-leaderboard-modal__period {
738
740
  margin: 0;
739
- font-size: 14px;
741
+ font-size: var(--taskon-font-size);
740
742
  font-weight: 500;
741
743
  line-height: normal;
742
744
  color: var(--taskon-color-text);
@@ -768,9 +770,9 @@
768
770
  .taskon-leaderboard-modal__tier-rank {
769
771
  flex-shrink: 0;
770
772
  min-width: 70px;
771
- font-size: 14px;
773
+ font-size: var(--taskon-font-size);
772
774
  font-weight: 400;
773
- line-height: 20px;
775
+ line-height: 1.43;
774
776
  color: var(--taskon-color-text);
775
777
  text-overflow: ellipsis;
776
778
  overflow: hidden;
@@ -783,18 +785,18 @@
783
785
  display: flex;
784
786
  align-items: center;
785
787
  gap: 10px;
786
- font-size: 16px;
788
+ font-size: var(--taskon-font-size-lg);
787
789
  font-weight: 600;
788
- line-height: 24px;
790
+ line-height: 1.5;
789
791
  color: var(--taskon-color-text);
790
792
  }
791
793
 
792
794
  /* 分配方式文本 - 16px SemiBold 白色 */
793
795
 
794
796
  .taskon-leaderboard-modal__tier-distribute {
795
- font-size: 16px;
797
+ font-size: var(--taskon-font-size-lg);
796
798
  font-weight: 600;
797
- line-height: 24px;
799
+ line-height: 1.5;
798
800
  color: var(--taskon-color-text);
799
801
  }
800
802
 
@@ -817,9 +819,9 @@
817
819
  /* 奖励金额 - 数字绿色,单位白色 */
818
820
 
819
821
  .taskon-leaderboard-modal__tier-amount {
820
- font-size: 16px;
822
+ font-size: var(--taskon-font-size-lg);
821
823
  font-weight: 600;
822
- line-height: 24px;
824
+ line-height: 1.5;
823
825
  }
824
826
 
825
827
  .taskon-leaderboard-modal__tier-amount-value {
@@ -846,7 +848,7 @@
846
848
 
847
849
  @media (max-width: 640px) {
848
850
  .taskon-leaderboard {
849
- font-size: 14px;
851
+ font-size: var(--taskon-font-size);
850
852
  }
851
853
 
852
854
  .taskon-leaderboard-tabs {
@@ -860,8 +862,8 @@
860
862
  .taskon-leaderboard-tabs__tab {
861
863
  flex-shrink: 0;
862
864
  padding: var(--taskon-spacing-xs) var(--taskon-spacing-sm);
863
- font-size: 12px;
864
- line-height: 18px;
865
+ font-size: var(--taskon-font-size-sm);
866
+ line-height: 1.5;
865
867
  white-space: nowrap;
866
868
  }
867
869
 
@@ -877,8 +879,8 @@
877
879
 
878
880
  .taskon-leaderboard-header__time {
879
881
  width: 100%;
880
- font-size: 12px;
881
- line-height: 18px;
882
+ font-size: var(--taskon-font-size-sm);
883
+ line-height: 1.5;
882
884
  }
883
885
 
884
886
  .taskon-leaderboard-header__separator,
@@ -887,8 +889,8 @@
887
889
  }
888
890
 
889
891
  .taskon-leaderboard-header__participants {
890
- font-size: 13px;
891
- line-height: 18px;
892
+ font-size: var(--taskon-font-size-sm);
893
+ line-height: 1.5;
892
894
  }
893
895
 
894
896
  .taskon-leaderboard-header__reward-info {
@@ -898,8 +900,8 @@
898
900
  }
899
901
 
900
902
  .taskon-leaderboard-header__reward-item {
901
- font-size: 13px;
902
- line-height: 18px;
903
+ font-size: var(--taskon-font-size-sm);
904
+ line-height: 1.5;
903
905
  }
904
906
 
905
907
  .taskon-leaderboard-header__reward-rules-btn {
@@ -915,8 +917,8 @@
915
917
  .taskon-leaderboard .taskon-table__header,
916
918
  .taskon-leaderboard .taskon-table__cell {
917
919
  padding: var(--taskon-spacing-xs) var(--taskon-spacing-sm);
918
- font-size: 13px;
919
- line-height: 18px;
920
+ font-size: var(--taskon-font-size-sm);
921
+ line-height: 1.5;
920
922
  }
921
923
 
922
924
  .taskon-leaderboard .taskon-table__row {
@@ -927,8 +929,8 @@
927
929
  .taskon-leaderboard-user__you-badge,
928
930
  .taskon-leaderboard-table__reward,
929
931
  .taskon-leaderboard-table__reward--not-qualified {
930
- font-size: 13px;
931
- line-height: 18px;
932
+ font-size: var(--taskon-font-size-sm);
933
+ line-height: 1.5;
932
934
  }
933
935
 
934
936
  .taskon-leaderboard-table__reward {
@@ -936,8 +938,8 @@
936
938
  }
937
939
 
938
940
  .taskon-leaderboard-table__reward-chain {
939
- font-size: 12px;
940
- line-height: 16px;
941
+ font-size: var(--taskon-font-size-sm);
942
+ line-height: 1.33;
941
943
  }
942
944
 
943
945
  .taskon-leaderboard-pagination {
@@ -952,7 +954,7 @@
952
954
  }
953
955
 
954
956
  .taskon-leaderboard-pagination .taskon-pagination-info {
955
- font-size: 14px;
957
+ font-size: var(--taskon-font-size);
956
958
  }
957
959
 
958
960
  .taskon-leaderboard-modal {
@@ -966,20 +968,20 @@
966
968
 
967
969
  .taskon-leaderboard-modal__title {
968
970
  font-size: 20px;
969
- line-height: 28px;
971
+ line-height: 1.4;
970
972
  }
971
973
 
972
974
  .taskon-leaderboard-modal__desc,
973
975
  .taskon-leaderboard-modal__section-title,
974
976
  .taskon-leaderboard-modal__tier-distribute,
975
977
  .taskon-leaderboard-modal__tier-amount {
976
- font-size: 14px;
977
- line-height: 20px;
978
+ font-size: var(--taskon-font-size);
979
+ line-height: 1.43;
978
980
  }
979
981
 
980
982
  .taskon-leaderboard-modal__period {
981
- font-size: 12px;
982
- line-height: 18px;
983
+ font-size: var(--taskon-font-size-sm);
984
+ line-height: 1.5;
983
985
  }
984
986
 
985
987
  .taskon-leaderboard-modal__tier {
@@ -991,16 +993,16 @@
991
993
  .taskon-leaderboard-modal__tier-rank {
992
994
  min-width: 0;
993
995
  width: 100%;
994
- font-size: 12px;
995
- line-height: 18px;
996
+ font-size: var(--taskon-font-size-sm);
997
+ line-height: 1.5;
996
998
  }
997
999
 
998
1000
  .taskon-leaderboard-modal__tier-reward {
999
1001
  width: 100%;
1000
1002
  flex-wrap: wrap;
1001
1003
  gap: var(--taskon-spacing-xs);
1002
- font-size: 14px;
1003
- line-height: 20px;
1004
+ font-size: var(--taskon-font-size);
1005
+ line-height: 1.43;
1004
1006
  }
1005
1007
 
1006
1008
  .taskon-leaderboard-modal__tier-token-icon {