/* 兴趣搭子页面样式 - Figma设计 */ page { background: #F8F8F8; } .page-container { min-height: 100vh; background: #F8F8F8; } /* 顶部导航栏已移除,改用全局 unified-header */ /* 内容滚动区域 */ .content-scroll { height: 100vh; box-sizing: border-box; } /* 顶部Banner */ .hero-banner { margin: 32rpx 32rpx 48rpx; height: 240rpx; border-radius: 32rpx; position: relative; overflow: hidden; background: linear-gradient(90deg, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.2) 50%, rgba(0, 0, 0, 0) 100%), url('https://images.unsplash.com/photo-1529156069898-49953e39b3ac?w=800') center/cover; box-shadow: 0px 8rpx 12rpx -8rpx rgba(0, 0, 0, 0.1), 0px 20rpx 30rpx -6rpx rgba(0, 0, 0, 0.1), 0px 0px 0px 2rpx rgba(0, 0, 0, 0.05); } .hero-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(90deg, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.2) 50%, rgba(0, 0, 0, 0) 100%); } .hero-content { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: center; gap: 16rpx; padding: 0 48rpx; height: 100%; } .hero-title { font-size: 52rpx; font-weight: 900; color: #FFFFFF; line-height: 1.5; letter-spacing: 0.025em; text-shadow: 0px 6rpx 12rpx rgba(0, 0, 0, 0.12); } .hero-subtitle { font-size: 34rpx; font-weight: 700; color: rgba(255, 255, 255, 0.95); line-height: 1.5; letter-spacing: 0.025em; text-shadow: 0px 2rpx 8rpx rgba(0, 0, 0, 0.15); } /* 兴趣分类列表 */ .interest-list { padding: 0 32rpx; display: flex; flex-direction: column; gap: 32rpx; } .interest-card { display: flex; align-items: center; gap: 40rpx; padding: 2rpx 42rpx; height: 238rpx; background: #FFFFFF; border: 2.324rpx solid #F1F5F9; border-radius: 40rpx; box-shadow: 0px 2rpx 6rpx 0px rgba(0, 0, 0, 0.1), 0px 2rpx 4rpx -2rpx rgba(0, 0, 0, 0.1); transition: all 0.3s ease; } .interest-card:active { transform: scale(0.98); box-shadow: 0px 1rpx 2rpx -1rpx rgba(0, 0, 0, 0.1); } /* 图标样式 */ .interest-icon { width: 152rpx; height: 152rpx; border-radius: 52rpx; flex-shrink: 0; display: flex; align-items: center; justify-content: center; position: relative; box-sizing: border-box; } /* 图标图片 */ .icon-image { width: 152rpx; height: 152rpx; } /* 加载提示 */ .loading-tip { text-align: center; padding: 80rpx 0; font-size: 28rpx; color: #999; } /* 空状态提示 */ .empty-tip { text-align: center; padding: 120rpx 0; font-size: 28rpx; color: #999; } /* 保留原有的固定分类图标样式作为备用 */ /* 美食聚餐 - 橙色 */ .food-icon { background: #FFF7ED; } .food-icon::before { content: ''; position: absolute; width: 80rpx; height: 80rpx; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF7A45' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8h1a4 4 0 0 1 0 8h-1'/%3E%3Cpath d='M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z'/%3E%3Cline x1='6' y1='1' x2='6' y2='4'/%3E%3Cline x1='10' y1='1' x2='10' y2='4'/%3E%3Cline x1='14' y1='1' x2='14' y2='4'/%3E%3C/svg%3E"); background-size: contain; background-repeat: no-repeat; background-position: center; } /* 旅游出行 - 青色 */ .travel-icon { background: #ECFEFF; } .travel-icon::before { content: ''; position: absolute; width: 80rpx; height: 80rpx; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2336CFC9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/%3E%3Cpolyline points='7.5 4.21 12 6.81 16.5 4.21'/%3E%3Cpolyline points='7.5 19.79 7.5 14.6 3 12'/%3E%3Cpolyline points='21 12 16.5 14.6 16.5 19.79'/%3E%3Cpolyline points='3.27 6.96 12 12.01 20.73 6.96'/%3E%3Cline x1='12' y1='22.08' x2='12' y2='12'/%3E%3C/svg%3E"); background-size: contain; background-repeat: no-repeat; background-position: center; } /* 唱歌观影 - 紫色 */ .entertainment-icon { background: #FAF5FF; } .entertainment-icon::before { content: ''; position: absolute; width: 80rpx; height: 80rpx; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239254DE' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18V5l12-2v13'/%3E%3Ccircle cx='6' cy='18' r='3'/%3E%3Ccircle cx='18' cy='16' r='3'/%3E%3C/svg%3E"); background-size: contain; background-repeat: no-repeat; background-position: center; } /* 舞蹈走秀 - 粉色 */ .dance-icon { background: #FDF2F8; } .dance-icon::before { content: ''; position: absolute; width: 80rpx; height: 80rpx; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F759AB' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='5' r='2'/%3E%3Cpath d='M10 22v-5l-1-1v-4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4l-1 1v5'/%3E%3C/svg%3E"); background-size: contain; background-repeat: no-repeat; background-position: center; } /* 书画摄影 - 蓝色 */ .art-icon { background: #EEF2FF; } .art-icon::before { content: ''; position: absolute; width: 80rpx; height: 80rpx; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23597EF7' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z'/%3E%3Ccircle cx='12' cy='13' r='4'/%3E%3C/svg%3E"); background-size: contain; background-repeat: no-repeat; background-position: center; } /* 运动康养 - 绿色 */ .sports-icon { background: #F0FDF4; } .sports-icon::before { content: ''; position: absolute; width: 80rpx; height: 80rpx; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2373D13D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-4l-3 9L9 3l-3 9H2'/%3E%3C/svg%3E"); background-size: contain; background-repeat: no-repeat; background-position: center; } /* 信息区域 */ .interest-info { flex: 1; display: flex; flex-direction: column; gap: 16rpx; } .interest-header { display: flex; justify-content: space-between; align-items: center; gap: 24rpx; } .interest-name { font-size: 48rpx; font-weight: 700; color: #1D293D; line-height: 1.5; letter-spacing: -0.025em; } .interest-members { display: flex; align-items: center; gap: 12rpx; flex-shrink: 0; } .members-icon { width: 40rpx; height: 40rpx; } .members-count { font-size: 32rpx; font-weight: 700; color: #62748E; line-height: 1.5; } .interest-desc { font-size: 44rpx; font-weight: 700; color: #45556C; line-height: 1.5; } /* 如何加入说明 */ .how-to-join { display: flex; align-items: flex-start; gap: 24rpx; padding: 32rpx 32rpx 32rpx 32rpx; margin: 0 32rpx 0; background: #FFF7ED; border-radius: 32rpx; } .join-icon-wrapper { flex-shrink: 0; width: 72rpx; height: 72rpx; display: flex; align-items: center; justify-content: center; } .join-icon { position: relative; width: 40rpx; height: 40rpx; } .dot { position: absolute; width: 6.66rpx; height: 6.66rpx; background: transparent; border: 3.33rpx solid #F54900; border-radius: 50%; } .dot-1 { top: 5rpx; left: 5rpx; } .dot-2 { top: 5rpx; right: 5rpx; } .dot-3 { bottom: 5rpx; right: 5rpx; } .dot-4 { bottom: 5rpx; left: 5rpx; } .line { position: absolute; top: 50%; left: 11.66rpx; width: 16.66rpx; height: 0; border-top: 3.33rpx solid #F54900; transform: translateY(-50%); } .join-content { flex: 1; display: flex; flex-direction: column; gap: 8rpx; padding-right: 32rpx; } .join-title { font-size: 32rpx; font-weight: 700; color: #1D293D; line-height: 1.5; } .join-desc { font-size: 28rpx; font-weight: 400; color: #45556C; line-height: 1.625; } /* 二维码弹窗 */ .qrcode-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; } /* 遮罩层 */ .modal-mask { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.6); backdrop-filter: blur(4rpx); } /* 弹窗内容 */ .modal-content { position: relative; width: 680rpx; background: #FFFFFF; border-radius: 64rpx; padding: 64rpx; box-shadow: 0 50rpx 100rpx -24rpx rgba(0, 0, 0, 0.25); display: flex; flex-direction: column; align-items: center; z-index: 1; } /* 关闭按钮 */ .close-btn { position: absolute; top: 32rpx; right: 32rpx; width: 72rpx; height: 72rpx; background: #F1F5F9; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; } .close-btn:active { transform: scale(0.9); background: #E2E8F0; } .close-icon { width: 40rpx; height: 40rpx; } /* 标题 */ .modal-title { font-size: 48rpx; font-weight: 700; color: #1D293D; text-align: center; margin-bottom: 16rpx; line-height: 1.5; } /* 副标题 */ .modal-subtitle { font-size: 32rpx; color: #62748E; text-align: center; margin-bottom: 48rpx; line-height: 1.5; } /* 二维码容器 */ .qrcode-container { width: 440rpx; height: 440rpx; background: #F8FAFC; border: 2rpx solid #F1F5F9; border-radius: 40rpx; display: flex; align-items: center; justify-content: center; margin-bottom: 48rpx; overflow: hidden; } .qrcode-image { width: 404rpx; height: 404rpx; border-radius: 24rpx; } /* 保存按钮 */ .save-btn { width: 552rpx; height: 116rpx; background: #07C160; border-radius: 100rpx; display: flex; align-items: center; justify-content: center; font-size: 40rpx; font-weight: 700; color: #FFFFFF; box-shadow: 0 20rpx 30rpx -6rpx rgba(220, 252, 231, 1), 0 8rpx 12rpx -8rpx rgba(220, 252, 231, 1); transition: all 0.3s ease; } .save-btn:active { transform: scale(0.96); box-shadow: 0 10rpx 20rpx -6rpx rgba(220, 252, 231, 1); }