/* 好友页面 - 简洁现代设计 */ .friends-container { height: 100vh; background-color: #f5f5f5; display: flex; flex-direction: column; } /* 导航栏 */ .nav-bar { background-color: #fff; border-bottom: 1px solid #e5e5e5; position: fixed; top: 0; left: 0; right: 0; z-index: 1000; } .nav-content { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; height: 44px; } .nav-left { flex: 1; } .nav-title { font-size: 20px; font-weight: 600; color: #333; line-height: 1.2; } .nav-subtitle { font-size: 12px; color: #999; margin-top: 2px; } .nav-actions { display: flex; gap: 8px; } .nav-btn { width: 36px; height: 36px; border-radius: 18px; background-color: #f0f0f0; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; } .nav-btn:active { background-color: #e0e0e0; transform: scale(0.95); } .nav-icon { font-size: 16px; } /* 内容区域 */ .content-area { position: fixed; left: 0; right: 0; bottom: 0; background-color: #f5f5f5; } /* 搜索栏 */ .search-section { padding: 12px 16px; background-color: #fff; border-bottom: 1px solid #e5e5e5; } .search-bar { position: relative; background-color: #f0f0f0; border-radius: 20px; padding: 0 16px; } .search-input { height: 36px; font-size: 14px; color: #333; } .search-clear { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; border-radius: 10px; background-color: #ccc; display: flex; align-items: center; justify-content: center; } .clear-icon { font-size: 12px; color: #fff; } /* 功能入口 */ .function-section { background-color: #fff; margin-bottom: 12px; } .function-item { display: flex; align-items: center; padding: 16px; border-bottom: 1px solid #f0f0f0; transition: all 0.2s ease; } .function-item:last-child { border-bottom: none; } .function-item:active { background-color: #f8f8f8; } .function-icon { width: 40px; height: 40px; border-radius: 8px; display: flex; align-items: center; justify-content: center; margin-right: 12px; position: relative; } .function-icon.new-friends { background-color: #4CAF50; } .function-icon.groups { background-color: #2196F3; } .icon-text { font-size: 20px; color: #fff; } .badge { position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px; background-color: #ff4444; border-radius: 9px; display: flex; align-items: center; justify-content: center; font-size: 10px; color: #fff; font-weight: 600; border: 2px solid #fff; } .function-info { flex: 1; } .function-title { font-size: 16px; font-weight: 500; color: #333; margin-bottom: 2px; } .function-desc { font-size: 12px; color: #999; } .function-arrow { font-size: 18px; color: #ccc; } /* 好友列表 */ .friends-section { background-color: #fff; } .section-header { padding: 12px 16px 8px 16px; background-color: #f8f8f8; border-bottom: 1px solid #e5e5e5; } .section-title { font-size: 14px; color: #666; font-weight: 500; } .friends-list { background-color: #fff; } .friend-item { display: flex; align-items: center; padding: 12px 16px; border-bottom: 1px solid #f0f0f0; transition: all 0.2s ease; } .friend-item:last-child { border-bottom: none; } .friend-item:active { background-color: #f8f8f8; } /* 头像 */ .friend-avatar { width: 48px; height: 48px; border-radius: 24px; margin-right: 12px; position: relative; overflow: hidden; } .avatar-img { width: 100%; height: 100%; } .avatar-placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, #667eea, #764ba2); display: flex; align-items: center; justify-content: center; } .avatar-text { color: #fff; font-size: 18px; font-weight: 600; } .online-dot { position: absolute; bottom: 2px; right: 2px; width: 12px; height: 12px; border-radius: 6px; background-color: #ccc; border: 2px solid #fff; } .online-dot.online { background-color: #4CAF50; } /* 好友信息 */ .friend-info { flex: 1; min-width: 0; } .friend-name { font-size: 16px; font-weight: 500; color: #333; margin-bottom: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .friend-status { font-size: 12px; color: #999; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* 操作按钮 */ .friend-actions { display: flex; gap: 8px; } .action-btn { width: 32px; height: 32px; border-radius: 16px; background-color: #f0f0f0; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; } .action-btn:active { background-color: #e0e0e0; transform: scale(0.9); } .action-icon { font-size: 14px; } /* 空状态 */ .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 80px 32px; text-align: center; } .empty-icon { font-size: 64px; margin-bottom: 16px; opacity: 0.3; } .empty-title { font-size: 18px; font-weight: 600; color: #333; margin-bottom: 8px; } .empty-desc { font-size: 14px; color: #999; margin-bottom: 24px; } .empty-btn { background: linear-gradient(135deg, #667eea, #764ba2); color: #fff; padding: 12px 24px; border-radius: 20px; transition: all 0.2s ease; } .empty-btn:active { transform: scale(0.95); } .btn-text { font-size: 14px; font-weight: 500; color: #fff; } /* 加载状态 */ .loading-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px 20px; } .loading-spinner { width: 32px; height: 32px; border: 3px solid #f0f0f0; border-top: 3px solid #667eea; border-radius: 50%; animation: spin 1s linear infinite; margin-bottom: 12px; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .loading-text { font-size: 14px; color: #999; } /* 响应式设计 */ @media (max-width: 375px) { .nav-content { padding: 8px 12px; } .function-item, .friend-item { padding: 12px; } .friend-avatar { width: 44px; height: 44px; border-radius: 22px; } .avatar-text { font-size: 16px; } }