Files
Neo-ZQYY/apps/miniprogram - 副本/miniprogram/pages/login/login.wxss

282 lines
5.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* pages/login/login.wxss — 忠于 H5 原型TDesign 组件定制 */
.page {
height: 100vh;
display: flex;
flex-direction: column;
background: linear-gradient(135deg, #e0f2fe 0%, #f0f9ff 50%, #ecfeff 100%);
position: relative;
overflow: hidden;
box-sizing: border-box;
/* padding-top 由 JS statusBarHeight 动态设置box-sizing 确保 padding 包含在 100vh 内 */
}
/* ---- 装饰圆形 ---- */
.deco-circle {
position: absolute;
border-radius: 50%;
z-index: 0;
}
.deco-circle--1 {
width: 176rpx;
height: 176rpx;
background: radial-gradient(circle, rgba(0, 82, 217, 0.12) 0%, transparent 70%);
top: 140rpx;
left: 56rpx;
opacity: 0.8;
animation: pulse-soft 3s ease-in-out infinite;
}
.deco-circle--2 {
width: 210rpx;
height: 210rpx;
background: radial-gradient(circle, rgba(103, 232, 249, 0.12) 0%, transparent 70%);
top: 280rpx;
right: 42rpx;
opacity: 0.8;
animation: pulse-soft 3s ease-in-out infinite 1s;
}
.deco-circle--3 {
width: 140rpx;
height: 140rpx;
background: radial-gradient(circle, rgba(96, 165, 250, 0.12) 0%, transparent 70%);
bottom: 280rpx;
left: 84rpx;
opacity: 0.8;
animation: pulse-soft 3s ease-in-out infinite 0.5s;
}
/* ---- Hero 区域 ---- */
.hero {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 0 56rpx;
position: relative;
z-index: 1;
}
/* ---- Logo ---- */
.logo-wrap {
position: relative;
margin-bottom: 42rpx;
}
.logo-box {
width: 168rpx;
height: 168rpx;
border-radius: 42rpx;
background: linear-gradient(135deg, #0052d9, #60a5fa);
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 14rpx 42rpx rgba(0, 82, 217, 0.3);
}
.logo-icon {
width: 98rpx;
height: 98rpx;
}
.logo-dot {
position: absolute;
border-radius: 50%;
}
.logo-dot--tr {
width: 28rpx;
height: 28rpx;
background: #22d3ee;
top: -8rpx;
right: -8rpx;
box-shadow: 0 4rpx 10rpx rgba(34, 211, 238, 0.4);
}
.logo-dot--bl {
width: 22rpx;
height: 22rpx;
background: #93c5fd;
bottom: -14rpx;
left: -14rpx;
box-shadow: 0 4rpx 10rpx rgba(147, 197, 253, 0.4);
}
/* ---- 应用名称 ---- */
.app-name {
font-size: 42rpx;
font-weight: 700;
color: #242424;
margin-bottom: 14rpx;
}
.app-desc {
font-size: 24rpx;
color: #8b8b8b;
text-align: center;
line-height: 1.625;
margin-bottom: 56rpx;
}
/* ---- 功能亮点 ---- */
.features {
width: 100%;
display: flex;
justify-content: space-around;
background: rgba(255, 255, 255, 0.85);
border-radius: 28rpx;
padding: 36rpx 18rpx;
margin-bottom: 42rpx;
}
.feature-item {
display: flex;
flex-direction: column;
align-items: center;
gap: 14rpx;
}
.feature-icon {
width: 70rpx;
height: 70rpx;
border-radius: 22rpx;
display: flex;
align-items: center;
justify-content: center;
}
.feature-icon--primary { background: rgba(0, 82, 217, 0.1); }
.feature-icon--success { background: rgba(0, 168, 112, 0.1); }
.feature-icon--warning { background: rgba(237, 123, 47, 0.1); }
.feature-text {
font-size: 22rpx;
color: #5e5e5e;
font-weight: 500;
}
/* ---- 底部操作区 ---- */
.bottom-area {
width: 100%;
padding: 0 56rpx 70rpx;
position: relative;
z-index: 1;
box-sizing: border-box;
}
/* TDesign Button 替换为原生 view 按钮,避免 TDesign 默认样式干扰 */
.login-btn-wrap {
width: 100%;
height: 84rpx;
border-radius: 22rpx;
display: flex;
align-items: center;
justify-content: center;
gap: 10rpx;
font-weight: 500;
font-size: 28rpx;
transition: all 0.2s;
}
.wechat-icon {
width: 36rpx;
height: 36rpx;
}
.login-btn-text {
color: #ffffff;
font-size: 28rpx;
font-weight: 500;
}
/* 未勾选协议 → 灰色禁用态(忠于原型 btn-disabled */
.login-btn--disabled {
background: #dcdcdc;
}
.login-btn--disabled .login-btn-text {
color: #ffffff;
}
/* 勾选协议 → 蓝色渐变(忠于原型 from-primary to-blue-500 */
.login-btn--active {
background: linear-gradient(135deg, #0052d9, #3b82f6);
box-shadow: 0 10rpx 28rpx rgba(0, 82, 217, 0.3);
}
/* ---- 协议勾选 ---- */
.agreement {
display: flex;
flex-direction: row;
align-items: flex-start;
margin-top: 36rpx;
}
.checkbox {
width: 28rpx;
height: 28rpx;
min-width: 28rpx;
min-height: 28rpx;
border: 2rpx solid #dcdcdc;
border-radius: 6rpx;
display: flex;
align-items: center;
justify-content: center;
margin-top: 4rpx;
margin-right: 10rpx;
background: transparent;
flex-shrink: 0;
transition: all 0.2s;
}
.checkbox--checked {
background: #0052d9;
border-color: #0052d9;
}
.agreement-text-wrap {
flex: 1;
font-size: 22rpx;
line-height: 1.625;
}
.agreement-text {
font-size: 22rpx;
color: #8b8b8b;
line-height: 1.625;
}
.link {
color: #0052d9;
font-weight: 500;
font-size: 22rpx;
line-height: 1.625;
}
/* ---- 底部提示 ---- */
.footer-tip {
display: block;
width: 100%;
text-align: center;
font-size: 22rpx;
color: #c5c5c5;
margin-top: 42rpx;
}
/* ---- 动画 ---- */
@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-14rpx); }
}
.float-animation {
animation: float 4s ease-in-out infinite;
}
@keyframes pulse-soft {
0%, 100% { opacity: 0.4; }
50% { opacity: 0.8; }
}