feat(miniprogram): redesign public experience
This commit is contained in:
@@ -1,15 +1,27 @@
|
||||
page {
|
||||
--color-primary: #ff6b35;
|
||||
--color-primary-pressed: #e95a28;
|
||||
--color-primary-soft: #fff1eb;
|
||||
--color-success: #2f8f2f;
|
||||
--color-info: #1677c8;
|
||||
/* 乐活公益公众端设计令牌:暖、可信、适老。 */
|
||||
--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: #1f2329;
|
||||
--color-text-secondary: #646a73;
|
||||
--color-border: #e5e6eb;
|
||||
--color-background: #f5f5f5;
|
||||
--color-text: #24211f;
|
||||
--color-text-secondary: #6e6862;
|
||||
--color-text-tertiary: #918a83;
|
||||
--color-border: #e9e3dd;
|
||||
--color-background: #f7f5f2;
|
||||
--color-surface: #ffffff;
|
||||
--radius-sm: 16rpx;
|
||||
--radius-md: 24rpx;
|
||||
--radius-lg: 32rpx;
|
||||
--shadow-card: 0 10rpx 32rpx rgba(91, 62, 45, 0.07);
|
||||
min-height: 100%;
|
||||
color: var(--color-text);
|
||||
background: var(--color-background);
|
||||
@@ -17,27 +29,63 @@ page {
|
||||
-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: 32rpx 32rpx calc(48rpx + env(safe-area-inset-bottom));
|
||||
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: 28rpx;
|
||||
font-weight: 600;
|
||||
font-size: 26rpx;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.primary-button,
|
||||
@@ -48,105 +96,149 @@ button::after {
|
||||
padding: 20rpx 32rpx;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 24rpx;
|
||||
border-radius: 999rpx;
|
||||
box-sizing: border-box;
|
||||
font-size: 34rpx;
|
||||
font-weight: 600;
|
||||
font-weight: 700;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.primary-button {
|
||||
color: #ffffff;
|
||||
background: var(--color-primary);
|
||||
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: var(--color-primary-soft);
|
||||
border: 2rpx solid var(--color-primary);
|
||||
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;
|
||||
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;
|
||||
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: 600;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.state-text {
|
||||
display: block;
|
||||
margin-top: 16rpx;
|
||||
margin-top: 14rpx;
|
||||
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;
|
||||
.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;
|
||||
}
|
||||
|
||||
.skeleton-card {
|
||||
height: 160rpx;
|
||||
margin-bottom: 24rpx;
|
||||
.notice-card {
|
||||
margin: 20rpx 0;
|
||||
padding: 26rpx 28rpx;
|
||||
border: 2rpx solid #f4dfc8;
|
||||
border-radius: var(--radius-md);
|
||||
background: #fffaf4;
|
||||
}
|
||||
|
||||
.skeleton-line {
|
||||
width: 60%;
|
||||
height: 28rpx;
|
||||
margin: 12rpx auto;
|
||||
.notice-title,
|
||||
.notice-text {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.skeleton-line--wide {
|
||||
width: 84%;
|
||||
height: 44rpx;
|
||||
.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: 8rpx 16rpx;
|
||||
padding: 7rpx 16rpx;
|
||||
align-items: center;
|
||||
border-radius: 12rpx;
|
||||
color: #145ea8;
|
||||
background: #eaf4ff;
|
||||
font-size: 26rpx;
|
||||
font-weight: 600;
|
||||
border-radius: 999rpx;
|
||||
color: #17653a;
|
||||
background: var(--color-success-soft);
|
||||
font-size: 25rpx;
|
||||
font-weight: 700;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.inline-error {
|
||||
.inline-error,
|
||||
.form-message {
|
||||
display: block;
|
||||
margin: 20rpx 8rpx 0;
|
||||
color: var(--color-danger);
|
||||
@@ -154,6 +246,61 @@ button::after {
|
||||
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;
|
||||
@@ -162,3 +309,9 @@ button::after {
|
||||
background-position: -200% 0;
|
||||
}
|
||||
}
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.skeleton-card,
|
||||
.skeleton-line {
|
||||
animation: none;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user