feat: complete V1 phases 0-7

This commit is contained in:
2026-08-12 14:35:12 +08:00
commit c3dd9be674
311 changed files with 38750 additions and 0 deletions
+164
View File
@@ -0,0 +1,164 @@
page {
--color-primary: #ff6b35;
--color-primary-pressed: #e95a28;
--color-primary-soft: #fff1eb;
--color-success: #2f8f2f;
--color-info: #1677c8;
--color-danger: #b42318;
--color-text: #1f2329;
--color-text-secondary: #646a73;
--color-border: #e5e6eb;
--color-background: #f5f5f5;
--color-surface: #ffffff;
min-height: 100%;
color: var(--color-text);
background: var(--color-background);
font-family:
-apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei',
sans-serif;
font-size: 32rpx;
}
button {
font: inherit;
}
button::after {
border: 0;
}
.page {
min-height: 100vh;
padding: 32rpx 32rpx calc(48rpx + env(safe-area-inset-bottom));
box-sizing: border-box;
}
.eyebrow {
display: block;
color: var(--color-primary-pressed);
font-size: 28rpx;
font-weight: 600;
}
.primary-button,
.secondary-button {
display: flex;
min-height: 96rpx;
margin: 24rpx 0 0;
padding: 20rpx 32rpx;
align-items: center;
justify-content: center;
border-radius: 24rpx;
box-sizing: border-box;
font-size: 34rpx;
font-weight: 600;
line-height: 1.4;
}
.primary-button {
color: #ffffff;
background: var(--color-primary);
}
.primary-button:active {
background: var(--color-primary-pressed);
}
.secondary-button {
color: var(--color-primary-pressed);
background: var(--color-primary-soft);
border: 2rpx solid var(--color-primary);
}
.primary-button[disabled],
.secondary-button[disabled] {
opacity: 0.5;
}
.state-card,
.form-card,
.detail-card,
.detail-summary,
.success-card {
padding: 32rpx;
border: 2rpx solid var(--color-border);
border-radius: 32rpx;
background: var(--color-surface);
box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.05);
}
.state-card {
display: flex;
min-height: 280rpx;
flex-direction: column;
align-items: stretch;
justify-content: center;
text-align: center;
}
.state-title {
font-size: 38rpx;
font-weight: 600;
}
.state-text {
display: block;
margin-top: 16rpx;
color: var(--color-text-secondary);
line-height: 1.7;
}
.skeleton-card,
.skeleton-line {
overflow: hidden;
border-radius: 20rpx;
background: linear-gradient(90deg, #f0f1f3 25%, #fafafa 50%, #f0f1f3 75%);
background-size: 200% 100%;
animation: skeleton 1.4s ease-in-out infinite;
}
.skeleton-card {
height: 160rpx;
margin-bottom: 24rpx;
}
.skeleton-line {
width: 60%;
height: 28rpx;
margin: 12rpx auto;
}
.skeleton-line--wide {
width: 84%;
height: 44rpx;
}
.status-pill {
display: inline-flex;
min-height: 48rpx;
padding: 8rpx 16rpx;
align-items: center;
border-radius: 12rpx;
color: #145ea8;
background: #eaf4ff;
font-size: 26rpx;
font-weight: 600;
line-height: 1.2;
}
.inline-error {
display: block;
margin: 20rpx 8rpx 0;
color: var(--color-danger);
font-size: 28rpx;
line-height: 1.6;
}
@keyframes skeleton {
0% {
background-position: 200% 0;
}
100% {
background-position: -200% 0;
}
}