@liujitcn/kratos-uni-app-core 0.0.78 → 0.0.80

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.
@@ -0,0 +1,770 @@
1
+ /* ============================================================
2
+ * Kratos 移动端共享组件词汇(对齐 docs/ui-redesign/mobile-themed.html)
3
+ * 规则:
4
+ * - 全部基于 theme.scss 的 --kratos-* 运行时变量,自动随 dark/light 切换;
5
+ * - 这是“共享视觉词汇(k-*,全局)”,页面布局用各自的 <page>-* 类;
6
+ * - 微信小程序红线:k-glass 不用 backdrop-filter;旋转一律 transform: rotate();
7
+ * ::before/::after 只挂在 view 上;grid mask 仅 H5(#ifdef H5)。
8
+ * 单位:uni 用 rpx;效果图 1px ≈ 2rpx(375 → 750)。
9
+ * ============================================================ */
10
+
11
+ /* 玻璃卡(通用容器) */
12
+ .k-glass {
13
+ position: relative;
14
+ overflow: hidden;
15
+ border: 1rpx solid var(--kratos-color-border);
16
+ border-radius: 26rpx;
17
+ background: var(--kratos-color-surface);
18
+ box-shadow: inset 0 1rpx 0 rgba(255, 255, 255, 0.05);
19
+ }
20
+ .k-glass--lit {
21
+ border-color: var(--kratos-color-border-accent);
22
+ box-shadow: var(--kratos-glow-soft);
23
+ }
24
+
25
+ /* 四角 L 形角标:渲染为真实 view 节点(weapp 伪元素仅支持 view) */
26
+ .k-cnr {
27
+ position: absolute;
28
+ width: 24rpx;
29
+ height: 24rpx;
30
+ border: 3rpx solid var(--kratos-color-primary);
31
+ opacity: 0.5;
32
+ pointer-events: none;
33
+ }
34
+ .k-cnr--tl {
35
+ top: 16rpx;
36
+ left: 16rpx;
37
+ border-right: 0;
38
+ border-bottom: 0;
39
+ }
40
+ .k-cnr--tr {
41
+ top: 16rpx;
42
+ right: 16rpx;
43
+ border-left: 0;
44
+ border-bottom: 0;
45
+ }
46
+ .k-cnr--bl {
47
+ bottom: 16rpx;
48
+ left: 16rpx;
49
+ border-right: 0;
50
+ border-top: 0;
51
+ }
52
+ .k-cnr--br {
53
+ bottom: 16rpx;
54
+ right: 16rpx;
55
+ border-left: 0;
56
+ border-top: 0;
57
+ }
58
+
59
+ /* 装饰网格背景 */
60
+ .k-grid-bg {
61
+ position: absolute;
62
+ top: 0;
63
+ right: 0;
64
+ bottom: 0;
65
+ left: 0;
66
+ pointer-events: none;
67
+ background-image:
68
+ linear-gradient(rgba(120, 230, 215, 0.05) 1rpx, transparent 1rpx),
69
+ linear-gradient(90deg, rgba(120, 230, 215, 0.05) 1rpx, transparent 1rpx);
70
+ background-size: 60rpx 60rpx;
71
+ /* #ifdef H5 */
72
+ -webkit-mask: radial-gradient(130% 80% at 50% 0, #000 40%, transparent 85%);
73
+ mask: radial-gradient(130% 80% at 50% 0, #000 40%, transparent 85%);
74
+ /* #endif */
75
+ }
76
+
77
+ /* 卡片小标题(前置 neon 竖条);__title 必须是 view 才能出 ::before */
78
+ .k-phd {
79
+ display: flex;
80
+ align-items: center;
81
+ justify-content: space-between;
82
+ margin-bottom: 24rpx;
83
+ }
84
+ .k-phd__title {
85
+ display: flex;
86
+ align-items: center;
87
+ color: var(--kratos-color-text);
88
+ font-size: 27rpx;
89
+ font-weight: 700;
90
+ }
91
+ .k-phd__title::before {
92
+ content: '';
93
+ width: 6rpx;
94
+ height: 26rpx;
95
+ margin-right: 16rpx;
96
+ border-radius: 4rpx;
97
+ background: var(--kratos-color-primary);
98
+ box-shadow: 0 0 8px var(--kratos-color-primary-edge);
99
+ }
100
+
101
+ /* 键值表单行 */
102
+ .k-field {
103
+ display: flex;
104
+ align-items: center;
105
+ justify-content: space-between;
106
+ gap: 24rpx;
107
+ padding: 28rpx 0;
108
+ border-top: 1rpx solid var(--kratos-color-border);
109
+ }
110
+ .k-field:first-child {
111
+ border-top: 0;
112
+ }
113
+ .k-field__k {
114
+ flex-shrink: 0;
115
+ color: var(--kratos-color-text-muted);
116
+ font-size: 25rpx;
117
+ }
118
+ .k-field__v {
119
+ min-width: 0;
120
+ text-align: right;
121
+ color: var(--kratos-color-text);
122
+ font-size: 25rpx;
123
+ font-family: var(--kratos-font-mono);
124
+ }
125
+ .k-field__v--ph {
126
+ color: var(--kratos-color-text-dim);
127
+ }
128
+
129
+ /* 主操作大按钮(neon 渐变) */
130
+ .k-save {
131
+ display: flex;
132
+ align-items: center;
133
+ justify-content: center;
134
+ height: 96rpx;
135
+ margin-top: 36rpx;
136
+ border-radius: 20rpx;
137
+ background: linear-gradient(135deg, var(--kratos-color-primary-deep), var(--kratos-color-primary));
138
+ color: var(--kratos-color-on-primary);
139
+ font-size: 30rpx;
140
+ font-weight: 800;
141
+ letter-spacing: 4rpx;
142
+ box-shadow: var(--kratos-glow);
143
+ }
144
+
145
+ /* 顶栏 */
146
+ .k-page-nav {
147
+ position: relative;
148
+ display: flex;
149
+ align-items: center;
150
+ justify-content: space-between;
151
+ box-sizing: border-box;
152
+ height: calc(88rpx + env(safe-area-inset-top));
153
+ padding-top: env(safe-area-inset-top);
154
+ }
155
+ /* #ifdef MP-WEIXIN */
156
+ .k-page-nav {
157
+ height: calc(88rpx + 44px);
158
+ padding-top: 44px;
159
+ }
160
+ /* #endif */
161
+ .k-page-nav__back,
162
+ .k-page-nav__side {
163
+ display: flex;
164
+ align-items: center;
165
+ justify-content: center;
166
+ flex: 0 0 76rpx;
167
+ width: 76rpx;
168
+ height: 76rpx;
169
+ }
170
+ .k-page-nav__back {
171
+ border: 1rpx solid var(--kratos-color-border);
172
+ border-radius: 24rpx;
173
+ background: var(--kratos-color-surface);
174
+ }
175
+ .k-page-nav__back::before {
176
+ width: 16rpx;
177
+ height: 16rpx;
178
+ border-left: 2rpx solid var(--kratos-color-primary);
179
+ border-bottom: 2rpx solid var(--kratos-color-primary);
180
+ content: '';
181
+ transform: rotate(45deg);
182
+ }
183
+ .k-page-nav__title {
184
+ position: absolute;
185
+ left: 50%;
186
+ max-width: calc(100% - 190rpx);
187
+ overflow: hidden;
188
+ color: var(--kratos-color-text);
189
+ font-size: 36rpx;
190
+ font-weight: 800;
191
+ text-overflow: ellipsis;
192
+ transform: translateX(-50%);
193
+ white-space: nowrap;
194
+ }
195
+ .k-top {
196
+ display: flex;
197
+ align-items: center;
198
+ justify-content: space-between;
199
+ gap: 16rpx;
200
+ /* MP-WEIXIN 原生胶囊避让:页面通过 getMpCapsuleRightGap() 写入该变量,
201
+ 其余平台未设置时回退 0,不影响布局。 */
202
+ padding-right: var(--mp-capsule-gap, 0px);
203
+ }
204
+ .k-top__title {
205
+ font-size: 38rpx;
206
+ font-weight: 800;
207
+ letter-spacing: -0.3rpx;
208
+ color: var(--kratos-color-text);
209
+ }
210
+ .k-top__t2 {
211
+ font-size: 32rpx;
212
+ font-weight: 700;
213
+ color: var(--kratos-color-text);
214
+ }
215
+
216
+ /* 方形图标按钮 + 角标 */
217
+ .k-ic {
218
+ position: relative;
219
+ display: flex;
220
+ align-items: center;
221
+ justify-content: center;
222
+ width: 76rpx;
223
+ height: 76rpx;
224
+ border-radius: 24rpx;
225
+ background: var(--kratos-color-surface);
226
+ border: 1rpx solid var(--kratos-color-border);
227
+ color: var(--kratos-color-text);
228
+ }
229
+ .k-ic--gh {
230
+ background: transparent;
231
+ border: 0;
232
+ }
233
+ .k-bdg {
234
+ position: absolute;
235
+ top: -10rpx;
236
+ right: -10rpx;
237
+ min-width: 34rpx;
238
+ height: 34rpx;
239
+ padding: 0 8rpx;
240
+ border-radius: 18rpx;
241
+ background: var(--kratos-color-danger);
242
+ color: #fff;
243
+ font-size: 21rpx;
244
+ font-weight: 800;
245
+ display: flex;
246
+ align-items: center;
247
+ justify-content: center;
248
+ }
249
+
250
+ /* 键值行(浏览态) */
251
+ .k-kv {
252
+ display: flex;
253
+ align-items: center;
254
+ justify-content: space-between;
255
+ gap: 28rpx;
256
+ padding: 26rpx 0;
257
+ border-top: 1rpx solid var(--kratos-color-border);
258
+ }
259
+ .k-kv:first-child {
260
+ border-top: 0;
261
+ }
262
+ .k-kv__k {
263
+ color: var(--kratos-color-text-muted);
264
+ font-size: 24rpx;
265
+ }
266
+ .k-kv__v {
267
+ text-align: right;
268
+ color: var(--kratos-color-text);
269
+ font-size: 24rpx;
270
+ font-weight: 600;
271
+ font-family: var(--kratos-font-mono);
272
+ }
273
+ .k-kv__v--dim {
274
+ color: var(--kratos-color-text-muted);
275
+ }
276
+
277
+ /* neon 小药丸标签 */
278
+ .k-pill {
279
+ display: inline-flex;
280
+ align-items: center;
281
+ padding: 8rpx 20rpx;
282
+ border-radius: 999rpx;
283
+ background: var(--kratos-color-primary-soft-2);
284
+ border: 1rpx solid var(--kratos-color-border-accent);
285
+ color: var(--kratos-color-primary);
286
+ font-size: 20rpx;
287
+ font-family: var(--kratos-font-mono);
288
+ }
289
+
290
+ /* 分段切换(收件箱/未读/已归档等) */
291
+ .k-pills {
292
+ display: inline-flex;
293
+ gap: 8rpx;
294
+ padding: 6rpx;
295
+ border-radius: 22rpx;
296
+ background: var(--kratos-color-track);
297
+ border: 1rpx solid var(--kratos-color-border);
298
+ }
299
+ .k-pills__item {
300
+ padding: 12rpx 24rpx;
301
+ border-radius: 16rpx;
302
+ color: var(--kratos-color-text-muted);
303
+ font-size: 22rpx;
304
+ font-family: var(--kratos-font-mono);
305
+ text-align: center;
306
+ }
307
+ .k-pills__item--on {
308
+ color: var(--kratos-color-on-primary);
309
+ font-weight: 700;
310
+ background: var(--kratos-color-primary);
311
+ box-shadow: var(--kratos-glow-soft);
312
+ }
313
+
314
+ /* 过滤芯片 */
315
+ .k-chips {
316
+ display: flex;
317
+ flex-wrap: wrap;
318
+ gap: 16rpx;
319
+ margin-bottom: 24rpx;
320
+ }
321
+ .k-ch {
322
+ display: inline-flex;
323
+ align-items: center;
324
+ gap: 12rpx;
325
+ padding: 14rpx 24rpx;
326
+ border-radius: 999rpx;
327
+ background: var(--kratos-color-surface);
328
+ border: 1rpx solid var(--kratos-color-border);
329
+ color: var(--kratos-color-text-muted);
330
+ font-size: 22rpx;
331
+ font-family: var(--kratos-font-mono);
332
+ }
333
+ .k-ch--pri {
334
+ color: var(--kratos-color-primary);
335
+ border-color: var(--kratos-color-border-accent);
336
+ background: var(--kratos-color-primary-soft);
337
+ }
338
+ .k-ch--act::after {
339
+ content: '';
340
+ width: 10rpx;
341
+ height: 10rpx;
342
+ margin-top: -6rpx;
343
+ border-right: 3rpx solid currentColor;
344
+ border-bottom: 3rpx solid currentColor;
345
+ transform: rotate(45deg);
346
+ }
347
+
348
+ /* ============================================================
349
+ * 登录页词汇
350
+ * ============================================================ */
351
+ .k-lg-lang {
352
+ display: inline-flex;
353
+ align-items: center;
354
+ gap: 12rpx;
355
+ padding: 12rpx 24rpx;
356
+ border-radius: 999rpx;
357
+ background: var(--kratos-color-surface);
358
+ border: 1rpx solid var(--kratos-color-border);
359
+ color: var(--kratos-color-text-muted);
360
+ font-size: 22rpx;
361
+ font-family: var(--kratos-font-mono);
362
+ }
363
+ .k-lg-logo {
364
+ position: relative;
365
+ display: flex;
366
+ align-items: center;
367
+ justify-content: center;
368
+ width: 148rpx;
369
+ height: 148rpx;
370
+ margin: 0 auto;
371
+ border-radius: 30rpx;
372
+ background: linear-gradient(135deg, var(--kratos-color-primary-deep), var(--kratos-color-info));
373
+ color: var(--kratos-color-on-primary);
374
+ font-size: 48rpx;
375
+ font-weight: 800;
376
+ box-shadow: var(--kratos-glow);
377
+ }
378
+ .k-lg-logo::after {
379
+ content: '';
380
+ position: absolute;
381
+ top: -12rpx;
382
+ right: -12rpx;
383
+ bottom: -12rpx;
384
+ left: -12rpx;
385
+ border: 1rpx solid var(--kratos-color-border-accent);
386
+ border-radius: 38rpx;
387
+ opacity: 0.55;
388
+ }
389
+ .k-lg-title {
390
+ margin-top: 32rpx;
391
+ font-size: 42rpx;
392
+ font-weight: 800;
393
+ text-align: center;
394
+ color: var(--kratos-color-text);
395
+ }
396
+ .k-lg-sub {
397
+ margin-top: 14rpx;
398
+ font-size: 24rpx;
399
+ text-align: center;
400
+ color: var(--kratos-color-text-muted);
401
+ }
402
+ .k-lg-field {
403
+ display: flex;
404
+ align-items: center;
405
+ gap: 20rpx;
406
+ height: 100rpx;
407
+ padding: 0 28rpx;
408
+ margin-top: 24rpx;
409
+ border-radius: 20rpx;
410
+ background: var(--kratos-color-surface);
411
+ border: 1rpx solid var(--kratos-color-border);
412
+ }
413
+ .k-lg-field__input {
414
+ flex: 1;
415
+ min-width: 0;
416
+ height: 100%;
417
+ font-size: 26rpx;
418
+ color: var(--kratos-color-text);
419
+ background: transparent;
420
+ }
421
+ .k-lg-field__ph {
422
+ color: var(--kratos-color-text-dim);
423
+ }
424
+ .k-lg-cap {
425
+ flex-shrink: 0;
426
+ width: 180rpx;
427
+ height: 72rpx;
428
+ border-radius: 16rpx;
429
+ display: flex;
430
+ align-items: center;
431
+ justify-content: center;
432
+ background: var(--kratos-color-primary-soft-2);
433
+ border: 1rpx solid var(--kratos-color-border);
434
+ color: var(--kratos-color-primary);
435
+ font-family: var(--kratos-font-mono);
436
+ font-size: 34rpx;
437
+ letter-spacing: 8rpx;
438
+ font-style: italic;
439
+ }
440
+ .k-lg-btn {
441
+ display: flex;
442
+ align-items: center;
443
+ justify-content: center;
444
+ gap: 16rpx;
445
+ height: 100rpx;
446
+ margin-top: 36rpx;
447
+ border-radius: 20rpx;
448
+ font-size: 30rpx;
449
+ font-weight: 800;
450
+ }
451
+ .k-lg-btn--pri {
452
+ background: linear-gradient(135deg, var(--kratos-color-primary-deep), var(--kratos-color-primary));
453
+ color: var(--kratos-color-on-primary);
454
+ box-shadow: var(--kratos-glow);
455
+ }
456
+ .k-lg-btn--wx {
457
+ background: var(--kratos-color-surface);
458
+ border: 1rpx solid var(--kratos-color-border);
459
+ color: var(--kratos-color-text);
460
+ font-weight: 700;
461
+ }
462
+ .k-lg-or {
463
+ display: flex;
464
+ align-items: center;
465
+ gap: 24rpx;
466
+ margin-top: 32rpx;
467
+ color: var(--kratos-color-text-dim);
468
+ font-size: 22rpx;
469
+ font-family: var(--kratos-font-mono);
470
+ }
471
+ .k-lg-or::before,
472
+ .k-lg-or::after {
473
+ content: '';
474
+ flex: 1;
475
+ height: 1rpx;
476
+ background: var(--kratos-color-border);
477
+ }
478
+ .k-lg-agree {
479
+ display: flex;
480
+ align-items: center;
481
+ justify-content: center;
482
+ flex-wrap: wrap;
483
+ gap: 14rpx;
484
+ margin-top: 40rpx;
485
+ font-size: 22rpx;
486
+ color: var(--kratos-color-text-muted);
487
+ }
488
+ .k-lg-chk {
489
+ display: flex;
490
+ align-items: center;
491
+ justify-content: center;
492
+ width: 32rpx;
493
+ height: 32rpx;
494
+ border-radius: 10rpx;
495
+ border: 3rpx solid var(--kratos-color-primary);
496
+ color: var(--kratos-color-primary);
497
+ font-size: 22rpx;
498
+ }
499
+ .k-lg-chk--off {
500
+ border-color: var(--kratos-color-border);
501
+ color: transparent;
502
+ }
503
+ .k-lg-link {
504
+ color: var(--kratos-color-primary);
505
+ }
506
+
507
+ /* ============================================================
508
+ * 我的 / 资料 词汇
509
+ * ============================================================ */
510
+ .k-pfx {
511
+ display: flex;
512
+ align-items: center;
513
+ justify-content: space-between;
514
+ gap: 24rpx;
515
+ }
516
+ .k-pfx__av {
517
+ flex-shrink: 0;
518
+ display: flex;
519
+ align-items: center;
520
+ justify-content: center;
521
+ width: 112rpx;
522
+ height: 112rpx;
523
+ border-radius: 22rpx;
524
+ background: linear-gradient(135deg, var(--kratos-color-primary-deep), var(--kratos-color-info));
525
+ color: var(--kratos-color-on-primary);
526
+ font-size: 44rpx;
527
+ font-weight: 800;
528
+ box-shadow: var(--kratos-glow-soft);
529
+ }
530
+ .k-pfx__nm {
531
+ font-size: 34rpx;
532
+ font-weight: 800;
533
+ color: var(--kratos-color-text);
534
+ }
535
+ .k-pfx__ac {
536
+ margin-top: 10rpx;
537
+ font-size: 22rpx;
538
+ color: var(--kratos-color-text-muted);
539
+ font-family: var(--kratos-font-mono);
540
+ }
541
+ .k-pfx__ent {
542
+ flex-shrink: 0;
543
+ padding: 14rpx 22rpx;
544
+ border-radius: 999rpx;
545
+ background: var(--kratos-color-primary-soft);
546
+ border: 1rpx solid var(--kratos-color-border-accent);
547
+ color: var(--kratos-color-primary);
548
+ font-size: 22rpx;
549
+ font-family: var(--kratos-font-mono);
550
+ }
551
+ .k-aix {
552
+ display: flex;
553
+ align-items: center;
554
+ gap: 26rpx;
555
+ padding: 30rpx;
556
+ border-radius: 24rpx;
557
+ background: linear-gradient(135deg, var(--kratos-color-primary-soft-2), var(--kratos-color-primary-soft));
558
+ border: 1rpx solid var(--kratos-color-border-accent);
559
+ }
560
+ .k-aix__ic {
561
+ flex-shrink: 0;
562
+ display: flex;
563
+ align-items: center;
564
+ justify-content: center;
565
+ width: 92rpx;
566
+ height: 92rpx;
567
+ border-radius: 20rpx;
568
+ background: linear-gradient(135deg, var(--kratos-color-violet), var(--kratos-color-info));
569
+ color: #fff;
570
+ font-size: 30rpx;
571
+ font-weight: 800;
572
+ box-shadow: var(--kratos-glow-soft);
573
+ }
574
+ .k-aix__t {
575
+ font-size: 27rpx;
576
+ font-weight: 700;
577
+ color: var(--kratos-color-text);
578
+ }
579
+ .k-aix__d {
580
+ margin-top: 8rpx;
581
+ font-size: 21rpx;
582
+ color: var(--kratos-color-text-muted);
583
+ }
584
+ .k-aix__b {
585
+ flex-shrink: 0;
586
+ padding: 14rpx 24rpx;
587
+ border-radius: 999rpx;
588
+ background: var(--kratos-color-primary-soft-2);
589
+ border: 1rpx solid var(--kratos-color-border-accent);
590
+ color: var(--kratos-color-primary);
591
+ font-size: 22rpx;
592
+ font-family: var(--kratos-font-mono);
593
+ }
594
+ .k-svc {
595
+ display: grid;
596
+ grid-template-columns: 1fr 1fr 1fr;
597
+ gap: 20rpx;
598
+ }
599
+ .k-svc__s {
600
+ display: flex;
601
+ flex-direction: column;
602
+ align-items: center;
603
+ gap: 18rpx;
604
+ padding: 24rpx 0;
605
+ }
606
+ .k-svc__si {
607
+ display: flex;
608
+ align-items: center;
609
+ justify-content: center;
610
+ width: 92rpx;
611
+ height: 92rpx;
612
+ border-radius: 20rpx;
613
+ border: 1rpx solid var(--kratos-color-border);
614
+ color: var(--kratos-color-primary);
615
+ background: var(--kratos-color-primary-soft);
616
+ }
617
+ .k-svc__label {
618
+ font-size: 22rpx;
619
+ color: var(--kratos-color-text);
620
+ }
621
+
622
+ /* ============================================================
623
+ * 设置页词汇
624
+ * ============================================================ */
625
+ .k-set-cat {
626
+ margin: 32rpx 4rpx 20rpx;
627
+ font-size: 21rpx;
628
+ letter-spacing: 2rpx;
629
+ color: var(--kratos-color-text-dim);
630
+ font-family: var(--kratos-font-mono);
631
+ text-transform: uppercase;
632
+ }
633
+ .k-set-row {
634
+ display: flex;
635
+ align-items: center;
636
+ justify-content: space-between;
637
+ gap: 24rpx;
638
+ padding: 28rpx 30rpx;
639
+ margin-bottom: 20rpx;
640
+ border-radius: 20rpx;
641
+ background: var(--kratos-color-surface);
642
+ border: 1rpx solid var(--kratos-color-border);
643
+ }
644
+ .k-set-row--arrow::after {
645
+ content: '';
646
+ flex-shrink: 0;
647
+ width: 14rpx;
648
+ height: 14rpx;
649
+ border-top: 3rpx solid var(--kratos-color-text-muted);
650
+ border-right: 3rpx solid var(--kratos-color-text-muted);
651
+ transform: rotate(45deg);
652
+ }
653
+ .k-set-row__lead {
654
+ display: flex;
655
+ align-items: center;
656
+ gap: 24rpx;
657
+ min-width: 0;
658
+ }
659
+ .k-set-row__icon {
660
+ flex-shrink: 0;
661
+ display: flex;
662
+ align-items: center;
663
+ justify-content: center;
664
+ width: 76rpx;
665
+ height: 76rpx;
666
+ border-radius: 22rpx;
667
+ border: 1rpx solid var(--kratos-color-border);
668
+ color: var(--kratos-color-primary);
669
+ }
670
+ .k-set-row__title {
671
+ font-size: 27rpx;
672
+ font-weight: 600;
673
+ color: var(--kratos-color-text);
674
+ }
675
+ .k-set-row__value {
676
+ margin-left: auto;
677
+ font-size: 24rpx;
678
+ color: var(--kratos-color-text-muted);
679
+ font-family: var(--kratos-font-mono);
680
+ }
681
+ .k-set-row__value--on {
682
+ color: var(--kratos-color-primary);
683
+ }
684
+ .k-set-logout {
685
+ display: flex;
686
+ align-items: center;
687
+ justify-content: center;
688
+ height: 100rpx;
689
+ margin-top: 44rpx;
690
+ border-radius: 20rpx;
691
+ color: var(--kratos-color-danger);
692
+ background: var(--kratos-color-danger-soft);
693
+ border: 1rpx solid var(--kratos-color-danger);
694
+ font-size: 30rpx;
695
+ font-weight: 700;
696
+ }
697
+
698
+ /* ============================================================
699
+ * 消息列表词汇
700
+ * ============================================================ */
701
+ .k-msg-list {
702
+ display: flex;
703
+ flex-direction: column;
704
+ gap: 20rpx;
705
+ }
706
+ .k-msg-item {
707
+ position: relative;
708
+ overflow: hidden;
709
+ padding: 26rpx 28rpx;
710
+ border-radius: 20rpx;
711
+ background: var(--kratos-color-surface);
712
+ border: 1rpx solid var(--kratos-color-border);
713
+ }
714
+ .k-msg-item--unread::before {
715
+ content: '';
716
+ position: absolute;
717
+ top: 0;
718
+ bottom: 0;
719
+ left: 0;
720
+ width: 6rpx;
721
+ background: var(--kratos-color-danger);
722
+ box-shadow: 0 0 8px var(--kratos-color-danger);
723
+ }
724
+ .k-msg-item__head {
725
+ display: flex;
726
+ align-items: flex-start;
727
+ gap: 24rpx;
728
+ }
729
+ .k-msg-item__icon {
730
+ flex-shrink: 0;
731
+ display: flex;
732
+ align-items: center;
733
+ justify-content: center;
734
+ width: 76rpx;
735
+ height: 76rpx;
736
+ border-radius: 22rpx;
737
+ border: 1rpx solid var(--kratos-color-border);
738
+ color: var(--kratos-color-primary);
739
+ background: var(--kratos-color-primary-soft);
740
+ }
741
+ .k-msg-item__title {
742
+ font-size: 25rpx;
743
+ font-weight: 700;
744
+ color: var(--kratos-color-text);
745
+ }
746
+ .k-msg-item__meta {
747
+ margin-top: 10rpx;
748
+ font-size: 20rpx;
749
+ color: var(--kratos-color-text-muted);
750
+ font-family: var(--kratos-font-mono);
751
+ }
752
+ .k-msg-item__time {
753
+ flex-shrink: 0;
754
+ font-size: 19rpx;
755
+ color: var(--kratos-color-text-dim);
756
+ font-family: var(--kratos-font-mono);
757
+ }
758
+ .k-msg-item__actions {
759
+ display: flex;
760
+ justify-content: flex-end;
761
+ gap: 36rpx;
762
+ margin-top: 22rpx;
763
+ padding-top: 22rpx;
764
+ border-top: 1rpx solid var(--kratos-color-border);
765
+ }
766
+ .k-msg-item__action {
767
+ font-size: 22rpx;
768
+ color: var(--kratos-color-primary);
769
+ font-family: var(--kratos-font-mono);
770
+ }