feat(frontend): add P2 quality gates

This commit is contained in:
yml2213
2026-05-15 17:35:50 +08:00
parent a65c0713fb
commit 787b01749c
62 changed files with 4907 additions and 1355 deletions
@@ -33,7 +33,7 @@
gap: var(--space-4);
background:
radial-gradient(circle at top right, rgba(14, 165, 233, 0.12), transparent 26%),
linear-gradient(135deg, rgba(255,255,255,.98), rgba(239,246,255,.96));
linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 255, 0.96));
}
.hero-copy {
@@ -58,7 +58,7 @@
color: var(--color-primary);
font-size: var(--text-xs);
font-weight: 700;
letter-spacing: .08em;
letter-spacing: 0.08em;
text-transform: uppercase;
}
@@ -72,7 +72,7 @@
padding: 14px var(--space-4);
border-radius: 18px;
border: 1px solid var(--border-default);
background: rgba(255,255,255,.82);
background: rgba(255, 255, 255, 0.82);
}
.hero-metric span {
@@ -89,10 +89,18 @@
word-break: break-word;
}
.hero-metric--blue { box-shadow: inset 0 0 0 1px rgba(59,130,246,.08); }
.hero-metric--green { box-shadow: inset 0 0 0 1px rgba(16,185,129,.08); }
.hero-metric--amber { box-shadow: inset 0 0 0 1px rgba(245,158,11,.08); }
.hero-metric--slate { box-shadow: inset 0 0 0 1px rgba(100,116,139,.08); }
.hero-metric--blue {
box-shadow: inset 0 0 0 1px rgba(59, 130, 246, 0.08);
}
.hero-metric--green {
box-shadow: inset 0 0 0 1px rgba(16, 185, 129, 0.08);
}
.hero-metric--amber {
box-shadow: inset 0 0 0 1px rgba(245, 158, 11, 0.08);
}
.hero-metric--slate {
box-shadow: inset 0 0 0 1px rgba(100, 116, 139, 0.08);
}
.hero-inline,
.hero-link-row {
@@ -126,7 +134,7 @@
margin-top: 14px;
padding: 14px var(--space-4);
border-radius: var(--radius-md);
background: rgba(248,250,252,.92);
background: rgba(248, 250, 252, 0.92);
border: 1px solid var(--border-default);
}
@@ -174,7 +182,7 @@
padding: 14px var(--space-4);
border-radius: var(--radius-md);
border: 1px solid var(--border-default);
background: rgba(248,250,252,.92);
background: rgba(248, 250, 252, 0.92);
}
.redeem-summary-card span,
@@ -260,7 +268,7 @@
margin-top: var(--space-4);
padding: 14px;
border-radius: var(--radius-md);
background: rgba(248,250,252,.9);
background: rgba(248, 250, 252, 0.9);
}
.manual-summary p {
@@ -277,7 +285,7 @@
gap: var(--space-4);
background:
radial-gradient(circle at top right, rgba(37, 99, 235, 0.08), transparent 28%),
linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,250,252,.96));
linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.96));
}
.flow-card-head {
@@ -304,13 +312,13 @@
padding: var(--space-4);
border-radius: 18px;
border: 1px solid var(--border-default);
background: rgba(248,250,252,.9);
background: rgba(248, 250, 252, 0.9);
}
.flow-block--spotlight {
background:
linear-gradient(160deg, rgba(255,255,255,.98), rgba(239,246,255,.95)),
rgba(248,250,252,.9);
linear-gradient(160deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 255, 0.95)),
rgba(248, 250, 252, 0.9);
}
.flow-block h4 {
@@ -386,7 +394,7 @@
.checklist-item {
padding: 14px var(--space-4);
border-radius: var(--radius-md);
background: rgba(255,255,255,.84);
background: rgba(255, 255, 255, 0.84);
border: 1px solid var(--border-default);
}
@@ -418,7 +426,7 @@
.role-hero div {
padding: 14px var(--space-4);
border-radius: var(--radius-md);
background: rgba(255,255,255,.88);
background: rgba(255, 255, 255, 0.88);
border: 1px solid var(--border-default);
}
@@ -471,7 +479,7 @@
width: min(100%, 720px);
border-radius: 18px;
border: 1px solid var(--border-default);
box-shadow: 0 20px 48px rgba(15,23,42,.08);
box-shadow: 0 20px 48px rgba(15, 23, 42, 0.08);
}
@media (max-width: 900px) {