findme-miniprogram-frontend/subpackages/social/friend-detail/friend-detail.wxss
2025-12-27 17:16:03 +08:00

915 lines
No EOL
16 KiB
Text
Raw Permalink 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.

/* 足迹下方两个容器并排平分整行 */
.footprint-gradient-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 32rpx;
width: 100%;
margin: 32rpx auto;
}
.footprint-gradient-row .footprint-gradient-box {
width: 100%;
height: 332rpx;
border-radius: 40rpx;
margin: 0;
}
/* 足迹下方两个渐变圆角容器样式 */
.footprint-gradient-box {
width: 100%;
height: 332rpx;
border-radius: 40rpx;
margin: 0;
}
.footprint-gradient-yellow {
background: linear-gradient(180deg, rgba(255, 255, 255, 0.31) 60%,#fff600 160%);
}
.footprint-gradient-blue {
background: linear-gradient(110deg, #139dff 10%, #3137ea 50%, #3bc493 100%);
}
/* 足迹模块样式(完全复制 profile.wxss */
.myfootprint{
margin: 30rpx 0;
padding: 20rpx;
border-radius: 20rpx;
background: linear-gradient(135deg, #34a853 0%, #7b4397 50%, #4285f4 100%);
position: relative;
height: 200rpx;
display: flex;
align-items: center;
justify-content: center;
margin-top: 0;
}
/* 左上角:足迹标题 */
.footprint-title {
position: absolute;
top: 20rpx;
left: 20rpx;
font-size: 32rpx;
font-weight: 600;
color: #fff;
z-index: 2;
}
/* 中间:地球图标 */
.footprint-earth {
width: 560rpx;
height: 120rpx;
position: relative;
top: 61%;
left: 40%;
transform: translate(-50%, -50%);
z-index: 1;
}
/* 右下角:足迹信息白色 pill */
.footprint-badge {
position: absolute;
bottom: 20rpx;
right: 20rpx;
background: #fff;
padding: 0 20rpx;
border-radius: 10rpx;
font-size: 24rpx;
height:56rpx;
line-height: 56rpx;
z-index: 3;
}
.footprint-badge text {
font-size: 24rpx;
font-weight: bold;
color: #000;
}
/* 好友详情页面样式 */
.friend-detail-container {
min-height: 100vh;
/* 渐变页面背景 - 从右下角往上,深变浅 */
background: radial-gradient(ellipse at right bottom, #1c3954 0%, #1d3c7c 40%, #193170 70%, rgba(25, 49, 112, 0.8) 100%);
}
/* 自定义导航栏已移除,使用系统导航栏 */
.profile-info{
margin-left: 20rpx;
}
/* 加载状态 */
.loading-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 200px;
}
.loading-spinner {
width: 30px;
height: 30px;
border: 3px solid #f3f3f3;
border-top: 3px solid #007aff;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.loading-text {
margin-top: 12px;
font-size: 14px;
color: #999;
}
/* 详情内容 */
.detail-content {
height: 100vh; /* 系统导航下全屏滚动 */
padding: 12px 14px 24px 14px;
box-sizing: border-box;
/* 与页面保持一致的渐变背景 - 从右下角往上,深变浅 */
background: radial-gradient(ellipse at right bottom, #1c3954 0%, #1d3c7c 40%, #193170 70%, rgba(25, 49, 112, 0.8) 100%);
}
/* 统一头像区域为 profile 页的布局与尺寸 */
.profile-top {
display: flex;
align-items: center;
position: relative;
z-index: 1;
}
.avatar-container {
width: 186rpx;
height: 186rpx;
position: relative;
background-color: #fff;
border-radius: 50%;
border: 10rpx solid #193170;
transition: all 0.3s ease;
backdrop-filter: blur(20rpx);
-webkit-backdrop-filter: blur(20rpx);
margin-left: 46rpx;
}
.avatar-container:active {
transform: scale(0.95);
box-shadow: 0 8rpx 32rpx rgba(102, 126, 234, 0.4);
}
.avatar-image {
width: 166rpx;
height: 166rpx;
object-fit: cover;
border-radius: 50%;
position: absolute;
z-index: 1;
}
.avatar-decoration {
position: absolute;
top: 0;
left: 15rpx;
transform: translateX(-50%) rotate(-15deg);
width: 70rpx;
height: 70rpx;
font-size: 56rpx;
line-height: 70rpx;
text-align: center;
z-index: 3;
display: flex;
align-items: center;
justify-content: center;
text-shadow: 0 0 10rpx rgba(255, 215, 0, 0.8);
filter: drop-shadow(0 2rpx 4rpx rgba(0, 0, 0, 0.3));
}
.online-status.online {
position: absolute;
top: 20rpx;
right: 5rpx;
width: 32rpx;
z-index: 2;
height: 32rpx;
background: #4CAF50;
border: 3rpx solid #ffffff;
border-radius: 50%;
box-shadow: 0 0 0 4rpx rgba(76, 175, 80, 0.3);
animation: pulse 2s infinite;
}
@keyframes pulse {
0% { box-shadow: 0 0 0 0 rgba(76,175,80,0.4); }
70% { box-shadow: 0 0 0 10rpx rgba(76,175,80,0); }
100% { box-shadow: 0 0 0 0 rgba(76,175,80,0); }
}
/* 信息卡片 */
.info-card {
border-radius: 14px;
}
.basic-info {
display: flex;
margin-bottom: 14px;
gap: 12px;
}
.avatar-section {
position: relative;
margin-right: 16px;
}
.friend-avatar {
width: 74px;
height: 74px;
/* 改为圆形头像 */
border-radius: 50%;
overflow: hidden;
box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}
.avatar-image {
width: 100%;
height: 100%;
}
.avatar-placeholder {
width: 100%;
height: 100%;
background: linear-gradient(135deg,#dadfe4,#cfd5db);
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
}
.avatar-text {
font-size: 32px;
color: #999;
font-weight: 500;
}
.member-badge {
position: absolute;
bottom: -4px;
right: -4px;
background: linear-gradient(45deg, #ff6b6b, #ffa500);
border-radius: 8px;
padding: 2px 6px;
}
.member-text {
font-size: 10px;
color: #fff;
font-weight: 600;
}
.info-section {
flex: 1;
}
.name-row {
display: flex;
align-items: center;
margin-bottom: 8px;
}
.friend-name {
font-size: 19px;
font-weight: 600;
color: #222;
margin-right: 8px;
}
.gender-icon {
width: 20px;
height: 20px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}
.gender-text {
font-size: 12px;
color: #fff;
}
.friend-id {
font-size: 14px;
color: #999;
margin-bottom: 4px; /* 与简介垂直间距更紧凑 */
display: block; /* 独占一行,避免与简介挤在同一行 */
line-height: 1.3;
}
.friend-bio {
font-size: 13px;
color: #555;
line-height: 1.45;
margin-bottom: 10px;
display: block; /* 独占一行 */
white-space: normal; /* 确保可换行 */
}
.friendship-info {
display: flex;
flex-direction: column;
}
.friendship-text {
font-size: 13px;
color: #007aff;
margin-bottom: 4px;
}
.friendship-days {
font-size: 12px;
color: #007aff;
}
/* 操作按钮 */
.action-buttons {
display: flex;
gap: 10px;
margin-top: 4px;
}
.action-btn {
flex: 1;
height: 42px;
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
font-size: 14px;
}
.action-btn.primary {
background: linear-gradient(135deg,#4d7dff,#246bff);
box-shadow: 0 4px 10px rgba(36,107,255,0.25);
}
.action-btn.secondary {
background: #f0f3f7;
}
.btn-icon {
width: 20px;
height: 20px;
/* font-size: 15px; */
}
.btn-text {
font-size: 14px;
font-weight: 600;
margin-top: 30rpx;
}
.action-btn.primary .btn-text {
color: #fff;
}
.action-btn.secondary .btn-text {
color: #333;
}
/* 详细信息区域 */
.detail-sections {
display: flex;
flex-direction: column;
gap: 12px;
}
.detail-section {
background-color: #fff;
border-radius: 14px;
overflow: hidden;
border: 1px solid #f1f2f5;
box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.section-header {
padding: 14px 16px 6px 16px;
}
.section-title {
font-size: 15px;
font-weight: 600;
color: #222;
letter-spacing: .5px;
}
/* 信息项 */
.info-items {
padding: 0 16px 14px 16px;
}
.info-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 0;
border-bottom: 1px solid #f1f2f5;
}
.info-item:last-child {
border-bottom: none;
}
.item-label {
font-size: 14px;
color: #666;
}
.item-value {
font-size: 14px;
color: #222;
text-align: right;
}
/* 位置信息 */
.location-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 14px 16px 14px 16px;
}
.location-info {
display: flex;
align-items: center;
flex: 1;
}
.location-icon {
font-size: 16px;
margin-right: 12px;
}
.location-details {
display: flex;
flex-direction: column;
}
.location-address {
font-size: 14px;
color: #222;
margin-bottom: 4px;
}
.location-time {
margin-left: 20px;
font-size: 11px;
color: #777;
}
.location-arrow {
font-size: 16px;
color: #c7c7cc;
}
/* 设置项 */
.setting-items {
padding: 0 16px 12px 16px;
}
.setting-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 14px 0;
border-bottom: 1px solid #f1f2f5;
}
.setting-item:last-child {
border-bottom: none;
}
.setting-info {
display: flex;
align-items: center;
flex: 1;
}
.setting-icon {
font-size: 16px;
margin-right: 12px;
}
.setting-label {
font-size: 14px;
color: #222;
}
.setting-arrow {
font-size: 16px;
color: #c7c7cc;
}
/* .setting-switch 已移除(消息免打扰/置顶聊天功能暂不提供) */
.detail-section.danger-section {
background-color: #5c8bff;
border-radius: 44rpx;
height: 88rpx;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
border: none;
box-shadow: none;
}
.danger-item {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
gap: 6px;
}
.danger-text {
font-size: 14px;
color: #ffffff;
font-weight: 600;
letter-spacing: .5px;
}
/* 底部安全区域 */
.safe-area-bottom {
height: 34px;
}
.verified-tag-p {
width: 32rpx;
height: 40rpx;
display: block;
object-fit: contain;
}
.verify-btn-p {
width: 32rpx;
height: 40rpx;
display: block;
object-fit: contain;
}
/* profile-name-row 样式(仿照 profile.wxml */
.profile-name-row {
height: 100%;
}
.profile-name {
font-size: 36rpx;
white-space: normal;
word-wrap: break-word;
font-weight: 500;
color: #ffffff;
line-height: 1.2;
}
.gender-badge {
font-size: 24rpx;
margin-left: 8rpx;
color: #ffffff;
display: flex;
align-items: center;
justify-content: center;
}
.gender-badge .gender-icon {
width: 32rpx;
height: 32rpx;
}
.vip-crown {
font-size: 24rpx;
margin-left: 8rpx;
color: #ffd700;
}
/* profile-id 样式(仿照 profile.wxml */
.profile-id {
display: flex;
align-items: center;
width: fit-content;
}
.id-label {
font-size: 28rpx;
color: #f3f3f3;
font-weight: 400;
margin-right: 12rpx;
}
.id-value-wrapper {
display: inline-flex;
align-items: center;
padding: 10rpx 8rpx;
margin-right: 12rpx;
border-radius: 8rpx;
transition: background-color 0.2s ease;
}
.id-value-wrapper:active {
background-color: rgba(255, 255, 255, 0.1);
}
.id-value {
font-size: 28rpx;
color: #ffffff;
font-weight: 400;
font-family: 'SF Mono', 'Monaco', 'Consolas', monospace;
}
.verify-btn {
color: white;
font-size: 24rpx;
font-weight: 400;
padding: 6rpx 20rpx;
margin-left: 16rpx;
display: flex;
align-items: center;
justify-content: center;
gap: 12rpx;
line-height: 1;
}
.verified-tag {
color: #fa6294;
font-size: 28rpx;
font-weight: 400;
padding: 6rpx 20rpx;
border-radius: 24rpx;
margin-left: 16rpx;
border: 1rpx solid #50a853;
display: flex;
align-items: center;
justify-content: center;
gap: 12rpx;
line-height: 1;
}
.verify-text,
.verified-text {
font-size: 24rpx;
color: inherit;
}
/* profile-bottom 样式(仿照 profile.wxml */
.profile-bottom {
background: linear-gradient(123deg, #8361FB 15.54%, #70AAFC 39.58%, #F0F8FB 62.43%, #F07BFF 90.28%);
border-radius: 28rpx;
gap: 32rpx;
position: relative;
z-index: 0;
margin-top: -60rpx;
}
.action-buttons {
display: flex;
width: fit-content;
margin-left: auto;
justify-content: flex-end;
gap: 4rpx;
padding-top: 20rpx;
padding-right: 20rpx;
}
.qr-code-btn {
display: flex;
align-items: center;
gap: 12rpx;
transition: all 0.2s ease;
}
.qr-code-icon {
width: 40rpx;
height: 40rpx;
}
.edit-btn {
background: linear-gradient(124deg, #FF6460 1.58%, #EC42C8 34.28%, #435CFF 54%, #00D5FF 84.05%);
border-radius: 30rpx;
padding: 0 20rpx;
display: flex;
align-items: center;
margin-left: 20rpx;
transition: all 0.2s ease;
height: 40rpx;
}
.edit-icon {
width: 32rpx;
height: 32rpx;
margin-right: 12rpx;
}
.edit-text {
font-size: 24rpx;
font-weight: 400;
color: black;
}
.setting-btn {
padding: 0 20rpx;
display: flex;
align-items: center;
transition: all 0.2s ease;
margin-left: 20rpx;
}
.setting-icon {
width: 40rpx;
height: 40rpx;
}
.profile-location {
background: rgba(43, 43, 43, 1);
max-width: 80%;
width: fit-content;
display: flex;
align-items: center;
background-color: #36393e;
border-radius: 24rpx;
min-height: 48rpx;
padding: 0 20rpx;
margin-left: 32rpx;
margin-top: -10rpx;
overflow-x: auto;
overflow-y: hidden;
}
.location-icon {
width: 24rpx;
height: 24rpx;
margin-right: 12rpx;
}
.location-text-qr {
color: #ffffff;
font-size: 24rpx;
white-space: nowrap;
margin-right: 20rpx;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
}
.location-arrow {
font-size: 36rpx;
color: #ffffff;
margin-left: auto;
font-weight: 300;
}
.profile-signature {
height: 240rpx;
max-height: 240rpx;
display: flex;
align-items: flex-start;
padding: 24rpx;
background: rgba(90, 90, 90, 0.548);
border-radius: 24rpx;
backdrop-filter: blur(20rpx);
-webkit-backdrop-filter: blur(20rpx);
border: 1rpx solid rgba(255, 255, 255, 0.2);
box-shadow: 0 8rpx 12rpx rgba(0, 0, 0, 0.1), inset 0 0 20rpx rgba(255, 255, 255, 0.1);
overflow-y: auto;
overflow-x: hidden;
margin: 22rpx 32rpx;
}
.signature-text {
font-size: 30rpx;
color: #000000;
margin: auto;
font-weight: 400;
word-wrap: break-word;
word-break: break-all;
white-space: pre-wrap;
width: 100%;
}
.profile-tabs {
width: 100%;
margin-bottom: 1rem;
padding: 0 40rpx;
}
.tab-scroll {
display: flex;
flex-direction: row;
white-space: nowrap;
}
.tab-item {
margin-top: .5rem;
font-size: 24rpx;
line-height: 36rpx;
height: 36rpx;
display: flex;
align-items: center;
color: white;
padding: 0 20rpx;
border-radius: 20rpx;
background: rgba(90, 90, 90, 0.548);
transition: all 0.2s;
margin-left: .3rem;
margin-right: .3rem;
}
/* 详细信息上方操作按钮 */
.detail-action-buttons {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
margin: 32rpx 0;
padding: 0 30rpx;
gap: 30rpx;
}
.detail-action-btn-wrapper {
flex: 1;
height: 64rpx;
border-radius: 32rpx;
padding: 2rpx;
background: linear-gradient(180deg, #4e4e4e 0%, #404040 100%);
}
.detail-action-btn {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
border-radius: 30rpx;
background: linear-gradient(180deg, #000 0%, #232323 100%);
}
.detail-action-btn text {
font-size: 28rpx;
color: #ffffff;
font-weight: 400;
}
/* ================== 暗色主题覆盖(社交-好友详情) ================== */
/* 说明:仅在已将页面背景设为深色后,统一卡片/文字暗化;若未来引入全局切换可抽离为公共 .theme-dark */
.friend-detail-container .detail-section {
background-color: #1e1e1e;
border: 1px solid #2a2a2a;
box-shadow: 0 2px 8px rgba(0,0,0,0.6);
}
/* 渐变背景已改成深色,如需更低明度可再调:#1a1a1a → #121212 */
/* 次级浅色按钮背景 */
.friend-detail-container .action-btn.secondary {
background: #2a2a2a;
}
.friend-detail-container .action-btn.secondary .btn-text { color: #e0e0e0; }
/* 信息分区的分隔线颜色调整 */
.friend-detail-container .info-item,
.friend-detail-container .setting-item {
border-bottom: 1px solid #2a2a2a;
}
.friend-detail-container .info-item:last-child,
.friend-detail-container .setting-item:last-child { border-bottom: none; }
/* 文字颜色层级:主文案 #f5f5f5次级 #b0b0b0弱化 #777 → #6b6b6b */
.friend-detail-container .friend-name,
.friend-detail-container .section-title,
.friend-detail-container .item-value,
.friend-detail-container .location-address,
.friend-detail-container .setting-label,
.friend-detail-container .danger-text { color: #ffffff; }
.friend-detail-container .friend-bio,
.friend-detail-container .item-label,
.friend-detail-container .friendship-text,
.friend-detail-container .friendship-days,
.friend-detail-container .friend-id,
.friend-detail-container .location-time { color: #b0b0b0; }
/* 危险区背景保持融合 */
.friend-detail-container .detail-section.danger-section {
background-color: #5c8bff;
border-radius: 44rpx;
height: 88rpx;
border: none;
box-shadow: none;
}
/* 占位/淡色背景统一 */
.friend-detail-container .avatar-placeholder { background: #fff; }
/* 提示、加载文字 */
.friend-detail-container .loading-text { color: #888; }