-
+
-
-
-
{{
- r.unlocked
- }}
-
/ {{ r.total }}
+
-
{{ r.label }}
+
+
+ 已获得 {{ summary.unlocked }} / {{ summary.total }}
-
-
-
-
-
-
@@ -185,156 +157,71 @@ watch(name, load)
.overview-row {
display: flex;
align-items: center;
- gap: 28px;
+ gap: 32px;
flex-wrap: wrap;
}
-
-/* 等级铭牌:六边形靠 clip-path,老 Chrome 也支持 */
-.level {
+.percent {
flex: none;
+ width: 110px;
text-align: center;
}
-.plate {
- width: 84px;
- height: 92px;
- display: flex;
- align-items: baseline;
- justify-content: center;
- clip-path: polygon(50% 0, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%);
- background: linear-gradient(
- 180deg,
- rgba(128, 128, 128, 0.24),
- rgba(128, 128, 128, 0.1)
- );
+.percent :deep(.n-progress) {
+ width: 110px;
}
-.plate-num {
- font-size: 26px;
- font-weight: 700;
- line-height: 92px;
- font-variant-numeric: tabular-nums;
-}
-.plate-unit {
- font-size: 13px;
- opacity: 0.6;
- margin-left: 1px;
-}
-.plate-label {
- margin-top: 6px;
- font-size: 11px;
- letter-spacing: 3px;
- opacity: 0.55;
- padding-left: 3px; /* 抵消字距在末字后面留的空 */
-}
-
-/* 奖杯陈列 */
-.trophies {
- flex: 1;
- min-width: 260px;
- display: flex;
- justify-content: space-around;
- gap: 8px;
-}
-.trophy {
- text-align: center;
- min-width: 56px;
-}
-.trophy.none {
- opacity: 0.35;
- filter: grayscale(1);
-}
-.trophy-count {
- margin-top: 4px;
- font-variant-numeric: tabular-nums;
- line-height: 1.1;
-}
-.trophy-count b {
+.ring-percent {
font-size: 22px;
font-weight: 700;
+ line-height: 1;
}
-.trophy-count span {
+.sub {
+ margin-top: 8px;
font-size: 12px;
- opacity: 0.5;
- margin-left: 3px;
+ opacity: 0.65;
+ white-space: nowrap;
}
-.trophy-label {
- margin-top: 2px;
- font-size: 11px;
- letter-spacing: 2px;
- opacity: 0.55;
- padding-left: 2px;
+.rarity {
+ flex: 1;
+ min-width: 240px;
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
+ gap: 10px 28px;
}
-
-/* 总进度条:四段拼起来正好是总完成度 */
-.track {
+.rarity-item {
display: flex;
+ align-items: center;
+ gap: 10px;
+}
+.rarity-label {
+ flex: none;
+ width: 30px;
+ font-size: 13px;
+ font-weight: 600;
+}
+.rarity-bar {
+ flex: 1;
height: 6px;
- margin-top: 20px;
+ min-width: 40px;
border-radius: 3px;
overflow: hidden;
background: rgba(128, 128, 128, 0.2); /* 灰底在明暗两套主题下都成立 */
}
-.seg {
+.rarity-fill {
+ display: block;
height: 100%;
- transition: width 0.5s ease;
+ border-radius: 3px;
+ transition: width 0.4s ease;
}
-.foot {
- display: flex;
- justify-content: space-between;
- margin-top: 8px;
+.rarity-count {
+ flex: none;
font-size: 12px;
- opacity: 0.6;
+ opacity: 0.7;
+ white-space: nowrap;
+ font-variant-numeric: tabular-nums;
}
-.done {
+.rarity-count b {
+ font-size: 13px;
opacity: 0.9;
}
-
-/* 移动端改成竖排:铭牌居中一行,四个奖杯等分下面一行 */
-.mobile .overview-row {
- flex-direction: column;
- align-items: center;
- gap: 14px;
-}
-.mobile .plate {
- width: 72px;
- height: 80px;
-}
-.mobile .plate-num {
- font-size: 22px;
- line-height: 80px;
-}
-.mobile .trophies {
- width: 100%;
- min-width: 0;
- gap: 4px;
-}
-.mobile .trophy {
- flex: 1 1 0;
- min-width: 0;
-}
-.mobile .trophy svg {
- width: 26px;
- height: 26px;
-}
-.mobile .trophy-count b {
- font-size: 19px;
-}
-.mobile .trophy-label {
- letter-spacing: 1px;
- padding-left: 1px;
-}
-.mobile .track {
- margin-top: 16px;
-}
-.mobile .foot {
- font-size: 11px;
-}
-
-/* 这个留给系统偏好,和断点无关 */
-@media (prefers-reduced-motion: reduce) {
- .seg {
- transition: none;
- }
-}
.tabs {
margin: 16px 0;
}