Files
lehuo/apps/miniprogram/miniprogram/app.wxss
T

330 lines
6.5 KiB
Plaintext

page {
/* Primitive → semantic → component tokens. */
--primitive-orange-500: #ff6b35;
--primitive-orange-600: #e85220;
--primitive-orange-50: #fff5ef;
--primitive-green-500: #34ad50;
--primitive-blue-500: #2f91ed;
--primitive-gray-950: #1f2429;
--primitive-gray-600: #687078;
--primitive-gray-200: #e8ebee;
--primitive-gray-50: #f6f7f8;
--primitive-white: #ffffff;
--color-primary: #f05a28;
--color-primary-pressed: #d94718;
--color-primary-soft: #fff0e8;
--color-primary-pale: #fff8f4;
--color-secondary: #f6a23c;
--color-success: #2f9b58;
--color-success-soft: #eaf7ef;
--color-info: #287fd1;
--color-info-soft: #ebf4fd;
--color-warning: #b76e00;
--color-warning-soft: #fff6dd;
--color-danger: #b42318;
--color-text: var(--primitive-gray-950);
--color-text-secondary: var(--primitive-gray-600);
--color-text-tertiary: #918a83;
--color-border: var(--primitive-gray-200);
--color-divider: #f0f1f2;
--color-background: var(--primitive-gray-50);
--color-surface: var(--primitive-white);
--radius-sm: 16rpx;
--radius-md: 24rpx;
--radius-lg: 32rpx;
--shadow-card: 0 10rpx 32rpx rgba(91, 62, 45, 0.07);
--shadow-hero: 0 16rpx 38rpx rgba(231, 79, 29, 0.22);
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;
line-height: 1.5;
}
button {
font: inherit;
}
button::after {
border: 0;
}
.page {
min-height: 100vh;
padding: 28rpx 28rpx calc(152rpx + env(safe-area-inset-bottom));
box-sizing: border-box;
}
.page-heading {
margin: 8rpx 4rpx 28rpx;
}
.page-title,
.page-subtitle,
.section-title,
.section-note {
display: block;
}
.page-title {
font-size: 44rpx;
font-weight: 700;
letter-spacing: 1rpx;
}
.page-subtitle {
margin-top: 8rpx;
color: var(--color-text-secondary);
font-size: 28rpx;
line-height: 1.65;
}
.section-heading {
display: flex;
margin: 40rpx 4rpx 20rpx;
align-items: flex-end;
justify-content: space-between;
gap: 20rpx;
}
.section-title {
font-size: 36rpx;
font-weight: 700;
}
.section-note {
color: var(--color-text-secondary);
font-size: 26rpx;
}
.eyebrow {
display: block;
color: var(--color-primary-pressed);
font-size: 26rpx;
font-weight: 700;
}
.primary-button,
.secondary-button {
display: flex;
min-height: 96rpx;
margin: 24rpx 0 0;
padding: 20rpx 32rpx;
align-items: center;
justify-content: center;
border-radius: 999rpx;
box-sizing: border-box;
font-size: 34rpx;
font-weight: 700;
line-height: 1.4;
}
.primary-button {
color: #fff;
background: linear-gradient(135deg, #ff713d, var(--color-primary));
box-shadow: 0 12rpx 24rpx rgba(240, 90, 40, 0.2);
}
.primary-button:active {
background: var(--color-primary-pressed);
}
.secondary-button {
color: var(--color-primary-pressed);
background: #fff;
border: 2rpx solid #f5a083;
}
.primary-button[disabled],
.secondary-button[disabled] {
opacity: 0.5;
box-shadow: none;
}
.state-card,
.form-card,
.detail-card,
.detail-summary,
.success-card,
.action-card,
.case-card,
.application-card {
border: 2rpx solid var(--color-border);
border-radius: var(--radius-lg);
background: var(--color-surface);
box-shadow: var(--shadow-card);
}
.form-card,
.detail-card,
.detail-summary,
.success-card {
padding: 32rpx;
}
.state-card {
display: flex;
min-height: 280rpx;
padding: 36rpx 30rpx;
flex-direction: column;
align-items: stretch;
justify-content: center;
box-sizing: border-box;
text-align: center;
}
.state-card::before {
content: '♡';
margin-bottom: 12rpx;
color: #f6a07d;
font-size: 56rpx;
}
.state-title {
font-size: 38rpx;
font-weight: 700;
}
.state-text {
display: block;
margin-top: 14rpx;
color: var(--color-text-secondary);
line-height: 1.7;
}
.action-card {
display: flex;
width: 100%;
min-height: 144rpx;
margin: 0 0 20rpx;
padding: 28rpx 30rpx;
flex-direction: column;
align-items: flex-start;
justify-content: center;
box-sizing: border-box;
color: var(--color-text);
text-align: left;
}
.action-card:active,
.case-card:active,
.application-card:active {
transform: scale(0.99);
opacity: 0.84;
}
.action-title {
font-size: 34rpx;
font-weight: 700;
}
.action-description {
display: block;
margin-top: 8rpx;
color: var(--color-text-secondary);
font-size: 28rpx;
line-height: 1.55;
}
.card-meta {
display: block;
margin-top: 16rpx;
color: var(--color-text-tertiary);
font-size: 25rpx;
}
.notice-card {
margin: 20rpx 0;
padding: 26rpx 28rpx;
border: 2rpx solid #f4dfc8;
border-radius: var(--radius-md);
background: #fffaf4;
}
.notice-title,
.notice-text {
display: block;
}
.notice-title {
font-weight: 700;
}
.notice-text {
margin-top: 8rpx;
color: #6f583f;
font-size: 28rpx;
line-height: 1.7;
}
.status-pill {
display: inline-flex;
min-height: 48rpx;
padding: 7rpx 16rpx;
align-items: center;
border-radius: 999rpx;
color: #17653a;
background: var(--color-success-soft);
font-size: 25rpx;
font-weight: 700;
line-height: 1.2;
}
.inline-error,
.form-message {
display: block;
margin: 20rpx 8rpx 0;
color: var(--color-danger);
font-size: 28rpx;
line-height: 1.6;
}
.skeleton-card,
.skeleton-line {
overflow: hidden;
border-radius: var(--radius-md);
background: linear-gradient(90deg, #eeeae6 25%, #faf8f6 50%, #eeeae6 75%);
background-size: 200% 100%;
animation: skeleton 1.4s ease-in-out infinite;
}
.skeleton-card {
height: 170rpx;
margin-bottom: 20rpx;
}
.skeleton-line {
width: 60%;
height: 28rpx;
margin: 12rpx auto;
}
.skeleton-line--wide {
width: 84%;
height: 44rpx;
}
.brand-card {
margin-bottom: 24rpx;
padding: 38rpx 32rpx;
overflow: hidden;
border-radius: var(--radius-lg);
color: #762b12;
background: linear-gradient(135deg, #fff4ea 0%, #ffd4be 100%);
box-shadow: 0 14rpx 36rpx rgba(208, 93, 41, 0.13);
}
.title {
display: block;
margin-top: 10rpx;
font-size: 46rpx;
font-weight: 700;
line-height: 1.3;
}
.message {
display: block;
margin-top: 14rpx;
color: #70432e;
font-size: 29rpx;
line-height: 1.7;
}
input,
textarea,
.picker-field,
.filter-picker {
color: var(--color-text);
background: #fff;
border-color: #dcd5ce !important;
}
@keyframes skeleton {
0% {
background-position: 200% 0;
}
100% {
background-position: -200% 0;
}
}
@media (prefers-reduced-motion: reduce) {
.skeleton-card,
.skeleton-line {
animation: none;
}
}