Files
soul-yongping/miniprogram/pages/gift-pay/detail.wxss

666 lines
12 KiB
Plaintext

/* 卡若创业派对 - 代付详情页(参考 yulan 深色主题、青绿主色) */
.page {
min-height: 100vh;
background: #050505;
position: relative;
}
.nav-bar {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
background: rgba(5, 5, 5, 0.6);
backdrop-filter: blur(40rpx);
-webkit-backdrop-filter: blur(40rpx);
border-bottom: 1rpx solid rgba(255, 255, 255, 0.05);
}
.nav-content {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 24rpx;
height: 88rpx;
}
.nav-back {
width: 72rpx;
height: 72rpx;
border-radius: 50%;
background: rgba(255, 255, 255, 0.06);
display: flex;
align-items: center;
justify-content: center;
}
.nav-back:active {
opacity: 0.7;
}
.back-arrow {
font-size: 36rpx;
color: rgba(255, 255, 255, 0.9);
}
.nav-title {
font-size: 28rpx;
font-weight: 700;
color: rgba(255, 255, 255, 0.5);
letter-spacing: 0.2em;
text-transform: uppercase;
}
.content {
padding: 24rpx 24rpx 200rpx;
}
/* 骨架屏 */
.skeleton-wrap {
padding: 24rpx 0;
}
.skeleton-hero {
background: rgba(24, 24, 27, 0.8);
border-radius: 32rpx;
padding: 40rpx;
margin-bottom: 32rpx;
}
.skeleton-hero-badge {
width: 120rpx;
height: 40rpx;
background: linear-gradient(90deg, #1c1c1e 25%, #2c2c2e 50%, #1c1c1e 75%);
background-size: 200% 100%;
animation: skeleton-shimmer 1.5s ease-in-out infinite;
border-radius: 8rpx;
margin-bottom: 24rpx;
}
.skeleton-hero-title {
width: 80%;
height: 48rpx;
background: linear-gradient(90deg, #1c1c1e 25%, #2c2c2e 50%, #1c1c1e 75%);
background-size: 200% 100%;
animation: skeleton-shimmer 1.5s ease-in-out infinite;
border-radius: 8rpx;
margin-bottom: 16rpx;
}
.skeleton-hero-desc {
width: 60%;
height: 32rpx;
background: linear-gradient(90deg, #1c1c1e 25%, #2c2c2e 50%, #1c1c1e 75%);
background-size: 200% 100%;
animation: skeleton-shimmer 1.5s ease-in-out infinite;
border-radius: 8rpx;
margin-bottom: 32rpx;
}
.skeleton-hero-amount {
width: 200rpx;
height: 64rpx;
background: linear-gradient(90deg, #1c1c1e 25%, #2c2c2e 50%, #1c1c1e 75%);
background-size: 200% 100%;
animation: skeleton-shimmer 1.5s ease-in-out infinite;
border-radius: 12rpx;
}
.skeleton-card {
display: flex;
align-items: center;
gap: 24rpx;
padding: 32rpx;
background: rgba(24, 24, 27, 0.6);
border-radius: 24rpx;
}
.skeleton-avatar {
width: 96rpx;
height: 96rpx;
border-radius: 50%;
background: linear-gradient(90deg, #1c1c1e 25%, #2c2c2e 50%, #1c1c1e 75%);
background-size: 200% 100%;
animation: skeleton-shimmer 1.5s ease-in-out infinite;
flex-shrink: 0;
}
.skeleton-info {
flex: 1;
display: flex;
flex-direction: column;
gap: 16rpx;
}
.skeleton-info .skeleton-line {
height: 32rpx;
background: linear-gradient(90deg, #1c1c1e 25%, #2c2c2e 50%, #1c1c1e 75%);
background-size: 200% 100%;
animation: skeleton-shimmer 1.5s ease-in-out infinite;
border-radius: 8rpx;
}
.skeleton-info .skeleton-line { width: 70%; }
.skeleton-info .skeleton-line.short { width: 45%; }
@keyframes skeleton-shimmer {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
}
/* 产品 Hero 卡片 */
.hero-card {
position: relative;
margin-bottom: 32rpx;
}
.hero-glow {
position: absolute;
inset: -4rpx;
background: linear-gradient(180deg, rgba(20, 184, 166, 0.2) 0%, transparent 100%);
border-radius: 40rpx;
filter: blur(24rpx);
opacity: 0.5;
}
.hero-inner {
position: relative;
background: rgba(24, 24, 27, 0.8);
border: 1rpx solid rgba(255, 255, 255, 0.1);
border-radius: 40rpx;
padding: 48rpx;
overflow: hidden;
}
.hero-decor {
position: absolute;
top: 0;
right: 0;
padding: 24rpx;
opacity: 0.1;
}
.hero-decor-img {
width: 96rpx;
height: 96rpx;
}
.hero-badge {
display: inline-block;
font-size: 20rpx;
font-weight: 900;
letter-spacing: 0.2em;
color: #14b8a6;
background: rgba(20, 184, 166, 0.1);
border: 1rpx solid rgba(20, 184, 166, 0.2);
padding: 6rpx 24rpx;
border-radius: 999rpx;
margin-bottom: 24rpx;
}
.hero-title {
display: block;
font-size: 36rpx;
font-weight: 700;
color: #fff;
line-height: 1.3;
letter-spacing: -0.5rpx;
margin: 0 0 16rpx;
}
.hero-desc {
display: block;
font-size: 28rpx;
color: rgba(255, 255, 255, 0.5);
line-height: 1.5;
margin: 0;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
}
.hero-footer {
margin-top: 40rpx;
padding-top: 32rpx;
border-top: 1rpx solid rgba(255, 255, 255, 0.05);
display: flex;
align-items: center;
justify-content: space-between;
}
.hero-amount-wrap {
display: flex;
flex-direction: column;
gap: 8rpx;
}
.hero-amount-label {
font-size: 20rpx;
font-weight: 700;
letter-spacing: 0.2em;
color: rgba(255, 255, 255, 0.4);
text-transform: uppercase;
}
.hero-amount-row {
display: flex;
align-items: baseline;
gap: 4rpx;
}
.gift-quantity-row {
display: flex;
align-items: center;
gap: 16rpx;
margin: 12rpx 0;
}
.create-tip {
margin-top: 16rpx;
font-size: 24rpx;
color: rgba(255, 255, 255, 0.45);
}
.gift-quantity-input {
width: 120rpx;
height: 64rpx;
padding: 0 20rpx;
background: rgba(255, 255, 255, 0.06);
border: 1rpx solid rgba(255, 255, 255, 0.1);
border-radius: 12rpx;
font-size: 32rpx;
font-weight: 600;
color: #fff;
text-align: center;
}
.hero-currency {
font-size: 36rpx;
font-weight: 700;
color: #14b8a6;
}
.hero-amount {
font-size: 60rpx;
font-weight: 700;
font-family: 'JetBrains Mono', 'SF Mono', monospace;
color: #fff;
letter-spacing: -1rpx;
}
.hero-arrow-wrap {
width: 96rpx;
height: 96rpx;
border-radius: 32rpx;
background: rgba(20, 184, 166, 0.1);
border: 1rpx solid rgba(20, 184, 166, 0.2);
display: flex;
align-items: center;
justify-content: center;
}
.hero-arrow {
width: 40rpx;
height: 40rpx;
filter: invert(72%) sepia(45%) saturate(800%) hue-rotate(130deg);
}
/* 发起人信息卡片 */
.requester-card {
background: rgba(24, 24, 27, 0.3);
border: 1rpx solid rgba(255, 255, 255, 0.05);
border-radius: 48rpx;
padding: 24rpx;
margin-bottom: 16rpx;
}
.requester-header {
display: flex;
align-items: center;
gap: 32rpx;
margin-bottom: 24rpx;
}
.requester-header:active {
opacity: 0.85;
}
.requester-avatar {
width: 96rpx;
height: 96rpx;
border-radius: 50%;
background: linear-gradient(180deg, #3f3f46 0%, #18181b 100%);
border: 1rpx solid rgba(255, 255, 255, 0.1);
overflow: hidden;
flex-shrink: 0;
}
.avatar-img {
width: 100%;
height: 100%;
}
.icon-avatar {
padding: 24rpx;
filter: brightness(0) invert(0.6);
}
.requester-info {
flex: 1;
min-width: 0;
}
.requester-name {
display: block;
font-size: 28rpx;
font-weight: 700;
color: rgba(255, 255, 255, 0.9);
margin-bottom: 4rpx;
}
.requester-label {
font-size: 20rpx;
font-weight: 700;
letter-spacing: 0.2em;
color: rgba(255, 255, 255, 0.4);
text-transform: uppercase;
}
.requester-msg-wrap {
position: relative;
padding-left: 20rpx;
}
.requester-msg-bar {
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 4rpx;
background: rgba(20, 184, 166, 0.3);
border-radius: 2rpx;
}
.requester-msg {
font-size: 28rpx;
color: rgba(255, 255, 255, 0.5);
font-style: italic;
line-height: 1.6;
}
/* 安全徽章 */
.security-badge {
display: flex;
align-items: center;
justify-content: center;
gap: 16rpx;
padding: 32rpx 0;
}
.security-icon {
font-size: 32rpx;
opacity: 0.6;
}
.security-text {
font-size: 20rpx;
font-weight: 700;
letter-spacing: 0.2em;
color: rgba(255, 255, 255, 0.35);
text-transform: uppercase;
}
/* 空状态 */
.empty {
text-align: center;
padding: 120rpx 0;
font-size: 28rpx;
color: rgba(255, 255, 255, 0.45);
}
/* 底部浮动操作栏 */
.footer-bar {
position: fixed;
bottom: 0;
left: 0;
right: 0;
z-index: 20;
padding: 32rpx;
}
.footer-bg {
position: absolute;
inset: 0;
background: rgba(24, 24, 27, 0.9);
backdrop-filter: blur(40rpx);
-webkit-backdrop-filter: blur(40rpx);
border-top: 1rpx solid rgba(255, 255, 255, 0.1);
border-radius: 50rpx;
box-shadow: 0 -20rpx 100rpx rgba(0, 0, 0, 0.5);
}
.footer-inner {
position: relative;
display: flex;
align-items: center;
gap: 32rpx;
padding: 24rpx 24rpx 24rpx 48rpx;
}
.footer-summary {
flex: 1;
}
.footer-label {
display: block;
font-size: 20rpx;
font-weight: 700;
letter-spacing: 0.2em;
color: rgba(255, 255, 255, 0.4);
text-transform: uppercase;
margin-bottom: 4rpx;
}
.footer-amount {
font-size: 40rpx;
font-weight: 700;
font-family: 'JetBrains Mono', 'SF Mono', monospace;
color: #fff;
letter-spacing: -1rpx;
}
.footer-currency {
font-size: 28rpx;
color: #14b8a6;
margin-right: 4rpx;
}
.footer-btn {
display: flex;
align-items: center;
justify-content: center;
gap: 16rpx;
padding: 32rpx 48rpx;
border-radius: 36rpx;
font-size: 28rpx;
font-weight: 900;
letter-spacing: 0.1em;
text-transform: uppercase;
border: none;
box-shadow: 0 16rpx 40rpx rgba(20, 184, 166, 0.3);
}
.footer-btn::after {
border: none;
}
.share-btn {
background: #14b8a6;
color: #000;
}
.pay-btn {
background: #14b8a6;
color: #000;
}
.pay-btn[disabled] {
opacity: 0.6;
}
.redeem-btn {
background: #14b8a6;
color: #000;
}
.redeem-btn[disabled] {
opacity: 0.6;
}
.footer-tip-single {
flex: 1;
font-size: 24rpx;
color: rgba(255, 255, 255, 0.5);
text-align: center;
padding: 0 24rpx;
}
.footer-btn-disabled {
background: rgba(255, 255, 255, 0.1);
color: rgba(255, 255, 255, 0.5);
cursor: not-allowed;
}
.footer-btn:active {
transform: scale(0.98);
}
.btn-icon {
width: 40rpx;
height: 40rpx;
}
.share-btn .btn-icon,
.pay-btn .btn-icon,
.redeem-btn .btn-icon {
filter: brightness(0);
}
/* 背景光效 */
.bg-effects {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
pointer-events: none;
z-index: -1;
}
.bg-glow {
position: absolute;
border-radius: 50%;
filter: blur(150rpx);
}
.bg-glow-1 {
top: -20%;
left: -10%;
width: 80%;
height: 60%;
background: rgba(20, 184, 166, 0.05);
animation: pulse-slow 8s infinite;
}
.bg-glow-2 {
bottom: -10%;
right: -10%;
width: 60%;
height: 50%;
background: rgba(20, 184, 166, 0.05);
}
@keyframes pulse-slow {
0%, 100% { opacity: 0.3; }
50% { opacity: 0.6; }
}
.bg-dots {
position: absolute;
inset: 0;
background-image: radial-gradient(rgba(255,255,255,0.02) 1rpx, transparent 1rpx);
background-size: 64rpx 64rpx;
}
/* 登录弹窗 */
.modal-overlay {
position: fixed;
inset: 0;
background: rgba(0, 0, 0, 0.7);
z-index: 1000;
display: flex;
align-items: center;
justify-content: center;
padding: 48rpx;
}
.modal-content.login-modal {
width: 100%;
max-width: 600rpx;
background: #1c1c1e;
border-radius: 32rpx;
padding: 48rpx;
text-align: center;
position: relative;
}
.modal-close {
position: absolute;
top: 24rpx;
right: 24rpx;
font-size: 32rpx;
color: rgba(255, 255, 255, 0.5);
}
.login-icon { font-size: 96rpx; display: block; margin-bottom: 24rpx; }
.login-title { font-size: 36rpx; font-weight: 700; color: #fff; display: block; margin-bottom: 16rpx; }
.login-desc { font-size: 26rpx; color: rgba(255, 255, 255, 0.6); display: block; margin-bottom: 48rpx; }
.btn-wechat {
width: 100%;
padding: 28rpx;
background: #07c160;
color: #fff;
font-size: 30rpx;
font-weight: 600;
border-radius: 24rpx;
border: none;
}
.btn-wechat-disabled { opacity: 0.5; }
.btn-wechat-icon { font-weight: 700; margin-right: 8rpx; }
.privacy-wechat-row { margin: 24rpx 0; padding: 24rpx; background: rgba(0,206,209,0.1); border-radius: 16rpx; }
.privacy-wechat-desc { display: block; font-size: 26rpx; color: rgba(255,255,255,0.8); margin-bottom: 16rpx; }
.privacy-agree-btn { width: 100%; padding: 20rpx; background: #07C160; color: #fff; font-size: 28rpx; border-radius: 16rpx; border: none; }
.privacy-agree-btn::after { border: none; }
.login-agree-row {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
margin-top: 32rpx;
font-size: 22rpx;
color: rgba(255, 255, 255, 0.5);
}
.agree-checkbox {
width: 32rpx;
height: 32rpx;
border: 2rpx solid rgba(255, 255, 255, 0.3);
border-radius: 8rpx;
margin-right: 12rpx;
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 24rpx;
}
.agree-checked { background: #14b8a6; border-color: #14b8a6; }
.agree-link { color: #14b8a6; }