xiangqinxiaochengxu/miniprogram/pages/match/match.wxss

613 lines
9.4 KiB
Plaintext

.match-page {
padding: 24rpx;
min-height: 100vh;
box-sizing: border-box;
background: linear-gradient(180deg, #fff8f4 0%, #f6f7fb 100%);
display: flex;
flex-direction: column;
}
.match-page-activity {
padding-top: 20rpx;
}
.activity-mode-panel {
margin-bottom: 24rpx;
padding: 28rpx 28rpx 24rpx;
border-radius: 30rpx;
background: linear-gradient(180deg, #fff3eb 0%, #ffffff 100%);
box-shadow: 0 16rpx 40rpx rgba(232, 89, 60, 0.08);
border: 1rpx solid rgba(232, 89, 60, 0.08);
}
.activity-mode-pill {
display: inline-flex;
align-items: center;
padding: 8rpx 18rpx;
border-radius: 999rpx;
background: rgba(232, 89, 60, 0.1);
color: #d95c3d;
font-size: 22rpx;
font-weight: 600;
}
.activity-mode-title {
margin-top: 14rpx;
font-size: 38rpx;
font-weight: 700;
color: #2f1b16;
}
.activity-mode-desc {
margin-top: 10rpx;
color: #7d655d;
line-height: 1.6;
font-size: 24rpx;
}
.activity-mode-meta {
display: flex;
flex-wrap: wrap;
gap: 12rpx;
margin-top: 18rpx;
}
.activity-mode-meta-item {
padding: 10rpx 16rpx;
border-radius: 999rpx;
background: #fff8f5;
color: #a06a5d;
font-size: 22rpx;
}
.activity-mode-actions {
display: flex;
justify-content: flex-end;
margin-top: 18rpx;
}
.activity-mode-btn {
padding: 0 26rpx;
font-size: 24rpx;
}
.hero-box {
display: flex;
align-items: center;
justify-content: space-between;
gap: 24rpx;
margin-bottom: 24rpx;
padding: 28rpx;
border-radius: 28rpx;
background: linear-gradient(135deg, #fff2ec, #ffffff);
}
.swipe-tip {
margin: 4rpx 8rpx 10rpx;
color: #9d7e74;
font-size: 24rpx;
}
.match-page-activity .swipe-tip,
.match-page-activity .ai-status {
display: none;
}
.ai-status {
margin: 0 8rpx 24rpx;
color: #b07a69;
font-size: 22rpx;
}
.ai-btn-loading {
opacity: 0.72;
}
.activity-banner + .activity-banner {
margin-top: -12rpx;
}
.secondary-banner {
background: #fffaf7;
color: #a06a5d;
}
.ai-status text {
color: #d95c3d;
}
.hero-title {
font-size: 38rpx;
font-weight: 700;
color: #2f1b16;
}
.hero-desc {
margin-top: 12rpx;
color: #7d655d;
line-height: 1.6;
}
.ai-btn {
border-radius: 999rpx;
background: linear-gradient(90deg, #ff9566, #e8593c);
color: #ffffff;
white-space: nowrap;
}
.quick-actions {
display: flex;
justify-content: flex-end;
margin: -6rpx 0 20rpx;
}
.quick-btn {
padding: 0 26rpx;
font-size: 24rpx;
}
.deck-area {
position: relative;
flex: 1;
min-height: 0;
padding-top: 20rpx;
padding-bottom: 12rpx;
display: flex;
flex-direction: column;
}
.match-card {
overflow: hidden;
background: #ffffff;
border-radius: 34rpx;
box-shadow: 0 24rpx 56rpx rgba(20, 28, 40, 0.12);
width: 100%;
}
.match-card-shadow {
position: absolute;
top: 30rpx;
left: 20rpx;
right: 20rpx;
transform: scale(0.965);
opacity: 0.58;
transition: transform 0.22s ease, top 0.22s ease, opacity 0.22s ease;
}
.match-card-shadow-active {
top: 18rpx;
transform: scale(0.982);
opacity: 0.72;
}
.match-card-active {
position: relative;
z-index: 2;
transition: transform 0.18s ease;
}
.match-card-active,
.match-card-shadow {
width: 100%;
}
.match-card-moving {
transition: none;
}
.card-exit-like {
transform: translateX(110vw) rotate(20deg) !important;
opacity: 0;
transition: transform 0.22s ease, opacity 0.22s ease !important;
}
.card-exit-skip {
transform: translateX(-110vw) rotate(-20deg) !important;
opacity: 0;
transition: transform 0.22s ease, opacity 0.22s ease !important;
}
.swipe-badge {
position: absolute;
top: 34rpx;
z-index: 3;
padding: 12rpx 24rpx;
border-radius: 999rpx;
font-size: 28rpx;
font-weight: 700;
}
.swipe-badge-like {
right: 24rpx;
background: rgba(16, 185, 129, 0.14);
color: #059669;
}
.swipe-badge-skip {
left: 24rpx;
background: rgba(239, 68, 68, 0.14);
color: #dc2626;
}
.match-cover {
position: relative;
height: 640rpx;
flex-shrink: 0;
}
.deck-area .match-card-active {
display: flex;
flex-direction: column;
min-height: 0;
}
.card-main {
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-between;
min-height: 0;
}
.card-main-header {
flex-shrink: 0;
}
.card-main-body {
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
justify-content: center;
}
.card-summary {
margin-top: 6rpx;
}
.card-summary-name {
font-size: 36rpx;
font-weight: 700;
color: #2f1b16;
}
.card-summary-meta {
margin-top: 6rpx;
color: #9d7e74;
font-size: 24rpx;
}
.card-empty-state {
margin-top: 20rpx;
padding: 22rpx 20rpx;
border-radius: 18rpx;
background: #fff8f5;
color: #a06a5d;
line-height: 1.7;
text-align: center;
}
.shadow-cover {
opacity: 0.9;
}
.cover-image {
width: 100%;
height: 100%;
background: #f0f0f0;
}
.avatar-placeholder {
display: flex;
align-items: center;
justify-content: center;
color: #999999;
}
.cover-overlay {
position: absolute;
inset: 0;
display: flex;
flex-direction: column;
justify-content: space-between;
padding: 32rpx;
background: linear-gradient(180deg, rgba(0, 0, 0, 0.08), rgba(20, 16, 18, 0.72));
}
.cover-top {
display: flex;
justify-content: flex-end;
}
.score-bar-wrap {
margin-top: 12rpx;
}
.score-bar-track {
width: 100%;
height: 10rpx;
border-radius: 999rpx;
background: rgba(255, 255, 255, 0.26);
overflow: hidden;
}
.score-bar-fill {
height: 100%;
border-radius: 999rpx;
background: rgba(255, 255, 255, 0.75);
}
.score-bar-fill--high {
background: linear-gradient(90deg, #34d399, #10b981);
}
.score-bar-fill--mid {
background: linear-gradient(90deg, #fde68a, #f59e0b);
}
.score-bar-fill--low {
background: linear-gradient(90deg, #fda4af, #ef4444);
}
.score-bar-meta {
margin-top: 8rpx;
display: flex;
justify-content: space-between;
color: rgba(255, 255, 255, 0.82);
font-size: 20rpx;
}
.score-chip {
display: inline-flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-width: 116rpx;
padding: 12rpx 18rpx;
border-radius: 999rpx;
background: rgba(255, 255, 255, 0.16);
color: #ffffff;
}
.score-chip--high {
background: rgba(16, 185, 129, 0.18);
}
.score-chip--mid {
background: rgba(255, 255, 255, 0.16);
}
.score-chip--low {
background: rgba(239, 68, 68, 0.18);
}
.score-chip-value {
font-size: 32rpx;
font-weight: 700;
line-height: 1.1;
}
.score-chip-label {
margin-top: 4rpx;
font-size: 20rpx;
opacity: 0.88;
}
.cover-bottom {
color: #ffffff;
}
.card-main {
padding: 28rpx 28rpx 32rpx;
}
.card-caption-row {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 14rpx;
}
.card-caption-title {
font-size: 24rpx;
color: #9b7668;
}
.card-caption-status {
font-size: 22rpx;
color: #d95c3d;
}
.name-row,
.sheet {
display: flex;
}
.name-row {
align-items: center;
justify-content: space-between;
}
.name {
font-size: 42rpx;
font-weight: 700;
}
.meta {
margin-top: 12rpx;
color: rgba(255, 255, 255, 0.92);
font-size: 26rpx;
}
.reasons {
margin-top: 20rpx;
padding: 18rpx 20rpx;
border-radius: 20rpx;
background: #fff8f5;
line-height: 1.6;
}
.card-main-body .reasons {
flex-shrink: 0;
}
.reasons-title {
font-size: 24rpx;
color: #d06b52;
margin-bottom: 8rpx;
}
.reasons-text {
color: #6a5148;
}
.tags {
display: flex;
flex-wrap: wrap;
gap: 14rpx;
margin-top: 8rpx;
}
.card-main-body .tags {
margin-top: 0;
}
.tag {
padding: 10rpx 18rpx;
border-radius: 999rpx;
background: #fff1ee;
color: #e8593c;
font-size: 24rpx;
}
.primary-btn {
background: #e8593c;
color: #ffffff;
border-radius: 999rpx;
}
.ghost-btn {
background: #ffffff;
color: #7d655d;
border: 1rpx solid #ead8d1;
border-radius: 999rpx;
}
.mask {
position: fixed;
inset: 0;
display: flex;
align-items: flex-end;
background: rgba(0, 0, 0, 0.4);
}
.sheet {
width: 100%;
padding: 32rpx;
background: #ffffff;
border-radius: 32rpx 32rpx 0 0;
display: block;
}
.sheet-title {
font-size: 32rpx;
font-weight: 600;
margin-bottom: 20rpx;
}
.sheet-text {
margin-bottom: 16rpx;
color: #555555;
}
.sheet-reasons {
margin: 12rpx 0 20rpx;
padding: 18rpx;
border-radius: 16rpx;
background: #fff8f5;
color: #6a5148;
line-height: 1.6;
}
.empty-card {
margin-top: 32rpx;
padding: 56rpx 36rpx;
border-radius: 28rpx;
background: #ffffff;
text-align: center;
box-shadow: 0 16rpx 40rpx rgba(20, 28, 40, 0.06);
}
@media (max-height: 760px) {
.match-cover {
height: 560rpx;
}
}
.empty-title {
font-size: 34rpx;
font-weight: 700;
color: #2f1b16;
}
.empty-desc {
margin-top: 14rpx;
color: #7d655d;
line-height: 1.7;
}
.success-mask {
position: fixed;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
padding: 48rpx;
background: rgba(12, 16, 24, 0.56);
z-index: 20;
}
.success-card {
width: 100%;
padding: 48rpx 36rpx;
border-radius: 32rpx;
background: linear-gradient(160deg, #fff6f0, #ffffff 55%, #fff2ef);
text-align: center;
}
.success-badge {
display: inline-block;
padding: 10rpx 20rpx;
border-radius: 999rpx;
background: rgba(232, 89, 60, 0.12);
color: #d95c3d;
font-size: 22rpx;
letter-spacing: 2rpx;
}
.success-title {
margin-top: 20rpx;
font-size: 42rpx;
font-weight: 700;
color: #2f1b16;
}
.success-desc {
margin: 18rpx 0 28rpx;
color: #7d655d;
line-height: 1.7;
}
.success-actions {
display: flex;
gap: 16rpx;
}
.success-actions button {
flex: 1;
}
.success-ghost-btn {
background: #fffaf7;
}