Files
wx_pbzc/app.wxss
T

147 lines
2.9 KiB
Plaintext

page {
--primary: #FF6B35;
--primary-light: #FF8C5A;
--primary-bg: #FFF3ED;
--primary-rgb: 255,107,53;
--text: #333333;
--text-secondary: #999999;
--bg: #F5F5F5;
--card-bg: #FFFFFF;
--success: #4CAF50;
--border: #EEEEEE;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC',
'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
font-size: 28rpx;
color: var(--text);
background-color: var(--bg);
}
.container {
padding: 24rpx;
padding-bottom: calc(134rpx + env(safe-area-inset-bottom));
min-height: 100vh;
box-sizing: border-box;
}
.card {
background: var(--card-bg);
border-radius: 24rpx;
padding: 32rpx;
margin-bottom: 24rpx;
box-shadow: 0 2rpx 16rpx rgba(0, 0, 0, 0.06);
animation: cardIn 0.45s ease both;
}
.card:nth-child(1) { animation-delay: 0.05s; }
.card:nth-child(2) { animation-delay: 0.15s; }
.card:nth-child(3) { animation-delay: 0.25s; }
.card:nth-child(4) { animation-delay: 0.35s; }
@keyframes cardIn {
from {
opacity: 0;
transform: translateY(40rpx);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.btn-primary {
background: linear-gradient(135deg, var(--primary), var(--primary-light));
color: #fff;
border: none;
border-radius: 48rpx;
font-size: 34rpx;
font-weight: 600;
padding: 24rpx 0;
text-align: center;
transition: transform 0.15s ease, box-shadow 0.15s ease;
box-shadow: 0 8rpx 24rpx rgba(var(--primary-rgb), 0.3);
}
.btn-primary:active {
transform: scale(0.96);
box-shadow: 0 4rpx 12rpx rgba(var(--primary-rgb), 0.2);
}
/* ---- pulse ring (used on timer page) ---- */
@keyframes breathePulse {
0%, 100% {
transform: scale(0.92);
opacity: 0.6;
}
50% {
transform: scale(1.08);
opacity: 0.15;
}
}
@keyframes breathePulseFast {
0%, 100% {
transform: scale(0.94);
opacity: 0.7;
}
50% {
transform: scale(1.06);
opacity: 0.2;
}
}
/* ---- float ---- */
@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-12rpx); }
}
/* ---- pop / bounce ---- */
@keyframes popIn {
0% { transform: scale(0); opacity: 0; }
60% { transform: scale(1.15); }
100% { transform: scale(1); opacity: 1; }
}
@keyframes bounceSoft {
0%, 100% { transform: translateY(0); }
30% { transform: translateY(-16rpx); }
50% { transform: translateY(0); }
70% { transform: translateY(-6rpx); }
}
/* ---- shimmer ---- */
@keyframes shimmer {
0% { background-position: -200% 0; }
100% { background-position: 200% 0; }
}
/* ---- spin ---- */
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.section-title {
font-size: 32rpx;
font-weight: 600;
color: var(--text);
margin-bottom: 20rpx;
}
/* ---- icon sizing ---- */
.icon {
line-height: 1;
flex-shrink: 0;
}
.icon-lg { font-size: 40rpx; }
.icon-md { font-size: 28rpx; }
.icon-sm { font-size: 22rpx; }
.icon-inline {
display: inline-flex;
align-items: center;
margin-right: 8rpx;
}