/* 🔍 全局搜索页面样式 - 深色主题重构(修复合并破坏) */ /* 变量(深色默认) */ page { --primary-color: #4d7dff; --primary-light: #246bff; --primary-dark: #1c56d4; --background-color: #121212; --surface-color: #1e1e1e; --text-primary: #f5f5f5; --text-secondary: #b0b0b0; --text-tertiary: #666666; --border-color: #2a2a2a; --shadow-light: 0 1rpx 3rpx rgba(0,0,0,0.5); --shadow-medium: 0 4rpx 16rpx rgba(0,0,0,0.65); --radius-small: 8rpx; --radius-medium: 12rpx; --radius-large: 20rpx; } @media (prefers-color-scheme: dark) { page { --background-color: #101010; --surface-color: #1c1c1c; } } /* 布局容器 */ .search-container { height: 100vh; background: var(--background-color); display: flex; flex-direction: column; } /* 头部 */ /* 头部:改为与 social/search 一致的中性深色背景,移除蓝色渐变 */ .search-header { background: #1e1e1e; /* 与 search 页面 search-section 暗色一致 */ border-bottom: 1rpx solid #2a2a2a; box-shadow: 0 2rpx 8rpx rgba(0,0,0,0.4); z-index: 1; } .header-content { display: flex; align-items: center; padding: 24rpx 32rpx 20rpx; /* 上下留白更贴近原 search 页面 */ gap: 20rpx; } .search-input-container { flex: 1; } /* 搜索输入:圆润 pill 风格,参照 social/search */ .search-input-wrapper { height: 88rpx; background: #262626; border-radius: 50rpx; display: flex; align-items: center; padding: 0 32rpx; gap: 20rpx; border: 1rpx solid #333; box-shadow: inset 0 0 0 0 rgba(0,0,0,0.0); transition: border-color .25s, box-shadow .25s; } .search-input-wrapper:focus-within { border-color: #3d6bff; box-shadow: 0 0 0 4rpx rgba(77,125,255,0.15); } .search-icon { width: 40rpx; height: 40rpx; display: block; } .search-input { flex:1; font-size:32rpx; color:#e0e0e0; background:transparent; line-height:1.4; } .search-input::placeholder { color:#777; } .search-input::placeholder { color:#777; } .clear-btn { width:40rpx; height:40rpx; border-radius:50%; background:#444; display:flex; align-items:center; justify-content:center; transition:all .2s; } .clear-btn:active { background:#555; transform:scale(.9); } .clear-icon { font-size:22rpx; color:#fff; font-weight:600; } /* 右侧搜索按钮紧凑化 */ .search-btn { height:72rpx; padding:0 32rpx; background:linear-gradient(135deg,#4d7dff,#246bff); border-radius:40rpx; display:flex; align-items:center; justify-content:center; border:none; box-shadow:0 4rpx 14rpx rgba(36,107,255,0.35); transition:opacity .2s, transform .15s; } .search-btn:active { opacity:.85; transform:scale(.95); } .search-btn-text { font-size:26rpx; color:#fff; font-weight:600; letter-spacing:2rpx; } /* 内容区域 */ .search-content { flex:1; background:var(--background-color); overflow:hidden; } /* 建议 / 历史 */ .search-suggestions { padding:32rpx; } .suggestion-section { margin-bottom:40rpx; } .section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:24rpx; } .section-title { font-size:32rpx; font-weight:600; color:var(--text-primary); } .clear-history-btn { padding:12rpx 24rpx; background:var(--background-color); border-radius:var(--radius-small); border:1rpx solid var(--border-color); transition:all .2s; } .clear-history-btn:active { background:#1a1a1a; } .clear-text { font-size:26rpx; color:var(--text-secondary); } .history-list { display:flex; flex-direction:column; gap:16rpx; } .history-item { display:flex; align-items:center; padding:24rpx; background:var(--surface-color); border-radius:var(--radius-medium); border:1rpx solid var(--border-color); transition:all .2s; } .history-item:active { background:#222; transform:scale(.98); } .history-icon { font-size:32rpx; color:var(--text-secondary); margin-right:24rpx; } .history-text { flex:1; font-size:30rpx; color:var(--text-primary); line-height:1.4; } .remove-history-btn { width:48rpx; height:48rpx; border-radius:50%; background:var(--background-color); display:flex; align-items:center; justify-content:center; transition:all .2s; } .remove-history-btn:active { background:#1f1f1f; transform:scale(.9); } .remove-icon { font-size:24rpx; color:var(--text-secondary); } /* 热门搜索(已移除) */ /* 提示 */ .search-tips { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:120rpx 32rpx; text-align:center; } .tips-icon { font-size:120rpx; margin-bottom:32rpx; opacity:.35; } .tips-title { font-size:36rpx; font-weight:600; color:var(--text-primary); margin-bottom:16rpx; } .tips-description { font-size:28rpx; color:var(--text-secondary); line-height:1.5; } /* 结果区域 */ .search-results { flex:1; display:flex; flex-direction:column; } .search-status-bar { padding:24rpx 32rpx; background:var(--surface-color); border-bottom:1rpx solid var(--border-color); } .search-status-text { font-size:28rpx; color:var(--text-secondary); margin-bottom:16rpx; display:block; } /* 搜索类型筛选(已移除) */ /* Scroll 区域 */ .results-scroll { flex:1; background:var(--background-color); } .result-section { padding:16rpx 32rpx; } /* 结果项 */ .result-item { display:flex; align-items:flex-start; padding:28rpx; background:var(--surface-color); border-radius:var(--radius-medium); border:1rpx solid var(--border-color); margin-bottom:16rpx; transition:all .2s; } .result-item:active { background:#222; transform:scale(.98); } .result-avatar { margin-right:24rpx; } .avatar-image, .avatar-placeholder { width:88rpx; height:88rpx; border-radius:44rpx; border:2rpx solid var(--border-color); } .avatar-placeholder { background:linear-gradient(135deg,var(--primary-color) 0%, var(--primary-light) 100%); display:flex; align-items:center; justify-content:center; } .avatar-text { font-size:32rpx; font-weight:600; color:#fff; } .result-content { flex:1; min-width:0; } .result-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:12rpx; } .sender-name { font-size:30rpx; font-weight:600; color:var(--text-primary); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1; margin-right:16rpx; } .message-time { font-size:24rpx; color:var(--text-secondary); white-space:nowrap; } .result-body { margin-bottom:12rpx; } .message-text { font-size:28rpx; color:var(--text-primary); line-height:1.5; word-break:break-word; } .message-media { display:flex; align-items:center; gap:12rpx; } .media-icon { font-size:28rpx; } .media-text { font-size:28rpx; color:var(--text-secondary); } .conversation-info { margin-top:8rpx; } .conversation-name { font-size:24rpx; color:var(--text-tertiary); } .result-actions { margin-left:16rpx; } .action-btn { width:64rpx; height:64rpx; border-radius:50%; background:var(--primary-color); display:flex; align-items:center; justify-content:center; transition:all .2s; box-shadow:0 4rpx 12rpx rgba(36,107,255,0.35); } .action-btn:active { background:var(--primary-dark); transform:scale(.9); box-shadow:0 2rpx 6rpx rgba(36,107,255,0.2); } .action-icon { font-size:28rpx; color:#fff; font-weight:600; } /* 高亮 */ .search-highlight { background:linear-gradient(135deg, rgba(255,235,59,.3) 0%, rgba(255,193,7,.3) 100%); border-radius:4rpx; padding:0 4rpx; font-weight:600; } /* 加载更多 */ .load-more { display:flex; align-items:center; justify-content:center; padding:40rpx; gap:16rpx; } .load-more-text { font-size:28rpx; color:var(--text-secondary); } /* 无结果 */ .no-results { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:120rpx 32rpx; text-align:center; } .no-results-icon { font-size:120rpx; margin-bottom:32rpx; opacity:.35; } .no-results-title { font-size:36rpx; font-weight:600; color:var(--text-primary); margin-bottom:16rpx; } .no-results-description { font-size:28rpx; color:var(--text-secondary); line-height:1.5; } /* 加载状态 */ .loading-state { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:120rpx 32rpx; gap:32rpx; } .loading-spinner { width:60rpx; height:60rpx; border:4rpx solid var(--border-color); border-top:4rpx solid var(--primary-color); border-radius:50%; animation:spin 1s linear infinite; } @keyframes spin { 0% { transform:rotate(0deg);} 100% { transform:rotate(360deg);} } .loading-text { font-size:28rpx; color:var(--text-secondary); } /* 响应式 */ @media screen and (max-width:375px) { .header-content { height:80rpx; padding:0 20rpx; } .search-input-wrapper { height:64rpx; } .search-input { font-size:28rpx; } .search-suggestions { padding:24rpx; } .result-item { padding:24rpx; } .avatar-image, .avatar-placeholder { width:72rpx; height:72rpx; border-radius:36rpx; } .sender-name { font-size:28rpx; } .message-text { font-size:26rpx; } } @media screen and (min-width:414px) { .header-content { height:96rpx; padding:0 32rpx; } .search-input-wrapper { height:80rpx; } .search-input { font-size:36rpx; } .search-suggestions { padding:40rpx; } .result-item { padding:32rpx; } .avatar-image, .avatar-placeholder { width:96rpx; height:96rpx; border-radius:48rpx; } .sender-name { font-size:32rpx; } .message-text { font-size:30rpx; } } @media screen and (max-height:667px) { .search-suggestions { padding:24rpx; } .no-results, .loading-state { padding:80rpx 32rpx; } } @media screen and (min-height:812px) { .search-suggestions { padding:40rpx; } .no-results, .loading-state { padding:160rpx 32rpx; } } .section-title { font-size: 32rpx; font-weight: 600; color: var(--text-primary); } .clear-history-btn { padding: 12rpx 24rpx; background: var(--background-color); border-radius: var(--radius-small); border: 1rpx solid var(--border-color); transition: all 0.2s ease; } .clear-history-btn:active { background: var(--border-color); } .clear-text { font-size: 26rpx; color: var(--text-secondary); } /* 🎨 搜索历史列表 */ .history-list { display: flex; flex-direction: column; gap: 16rpx; } .history-item { display: flex; align-items: center; padding: 24rpx; background: var(--surface-color); border-radius: var(--radius-medium); border: 1rpx solid var(--border-color); transition: all 0.2s ease; } .history-item:active { background: var(--background-color); transform: scale(0.98); } .history-icon { font-size: 32rpx; color: var(--text-secondary); margin-right: 24rpx; } .history-text { flex: 1; font-size: 30rpx; color: var(--text-primary); line-height: 1.4; } .remove-history-btn { width: 48rpx; height: 48rpx; border-radius: 50%; background: var(--background-color); display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; } .remove-history-btn:active { background: var(--border-color); transform: scale(0.9); } .remove-icon { font-size: 24rpx; color: var(--text-secondary); } /* 🎨 热门搜索 */ .hot-search-list { display: flex; flex-wrap: wrap; gap: 16rpx; } .hot-search-item { padding: 16rpx 24rpx; background: var(--surface-color); border-radius: var(--radius-large); border: 1rpx solid var(--border-color); transition: all 0.2s ease; } .hot-search-item:active { background: var(--primary-color); border-color: var(--primary-color); } .hot-search-item:active .hot-search-text { color: white; } .hot-search-text { font-size: 28rpx; color: var(--text-primary); transition: color 0.2s ease; } /* 🎨 搜索提示 */ .search-tips { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 120rpx 32rpx; text-align: center; } .tips-icon { font-size: 120rpx; margin-bottom: 32rpx; opacity: 0.4; } .tips-title { font-size: 36rpx; font-weight: 600; color: var(--text-primary); margin-bottom: 16rpx; } .tips-description { font-size: 28rpx; color: var(--text-secondary); line-height: 1.5; } /* 🎨 搜索结果区域 */ .search-results { flex: 1; display: flex; flex-direction: column; } .search-status-bar { padding: 24rpx 32rpx; background: var(--surface-color); border-bottom: 1rpx solid var(--border-color); } .search-status-text { font-size: 28rpx; color: var(--text-secondary); margin-bottom: 16rpx; display: block; } /* 🎨 搜索类型筛选 */ .search-type-filter { display: flex; gap: 16rpx; } .filter-item { padding: 12rpx 24rpx; background: var(--background-color); border-radius: var(--radius-large); border: 1rpx solid var(--border-color); transition: all 0.2s ease; } .filter-item.active { background: var(--primary-color); border-color: var(--primary-color); } .filter-item:active { transform: scale(0.95); } .filter-text { font-size: 26rpx; color: var(--text-primary); transition: color 0.2s ease; } .filter-item.active .filter-text { color: white; } /* 🎨 搜索结果滚动区域 */ .results-scroll { flex: 1; background: var(--background-color); } .result-section { padding: 16rpx 32rpx; } /* 🎨 搜索结果项 */ .result-item { display: flex; align-items: flex-start; padding: 28rpx; background: var(--surface-color); border-radius: var(--radius-medium); border: 1rpx solid var(--border-color); margin-bottom: 16rpx; transition: all 0.2s ease; } .result-item:active { background: var(--background-color); transform: scale(0.98); } .result-avatar { margin-right: 24rpx; } .avatar-image { width: 88rpx; height: 88rpx; border-radius: 44rpx; border: 2rpx solid var(--border-color); } .avatar-placeholder { width: 88rpx; height: 88rpx; border-radius: 44rpx; background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%); display: flex; align-items: center; justify-content: center; border: 2rpx solid var(--border-color); } .avatar-text { font-size: 32rpx; font-weight: 600; color: white; } .result-content { flex: 1; min-width: 0; } .result-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12rpx; } .sender-name { font-size: 30rpx; font-weight: 600; color: var(--text-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; margin-right: 16rpx; } .message-time { font-size: 24rpx; color: var(--text-secondary); white-space: nowrap; } .result-body { margin-bottom: 12rpx; } .message-text { font-size: 28rpx; color: var(--text-primary); line-height: 1.5; word-break: break-word; } .message-media { display: flex; align-items: center; gap: 12rpx; } .media-icon { font-size: 28rpx; } .media-text { font-size: 28rpx; color: var(--text-secondary); } .conversation-info { margin-top: 8rpx; } .conversation-name { font-size: 24rpx; color: var(--text-tertiary); } .result-actions { margin-left: 16rpx; } .action-btn { width: 64rpx; height: 64rpx; border-radius: 50%; background: var(--primary-color); display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; } .action-btn:active { background: var(--primary-dark); transform: scale(0.9); } .action-icon { font-size: 28rpx; color: white; font-weight: 600; } /* 🎨 搜索高亮样式 */ .search-highlight { background: linear-gradient(135deg, rgba(255, 235, 59, 0.3) 0%, rgba(255, 193, 7, 0.3) 100%); border-radius: 4rpx; padding: 0 4rpx; font-weight: 600; } /* 🎨 加载更多 */ .load-more { display: flex; align-items: center; justify-content: center; padding: 40rpx; gap: 16rpx; } .load-more-text { font-size: 28rpx; color: var(--text-secondary); } /* 🎨 无结果提示 */ .no-results { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 120rpx 32rpx; text-align: center; } .no-results-icon { font-size: 120rpx; margin-bottom: 32rpx; opacity: 0.4; } .no-results-title { font-size: 36rpx; font-weight: 600; color: var(--text-primary); margin-bottom: 16rpx; } .no-results-description { font-size: 28rpx; color: var(--text-secondary); line-height: 1.5; } /* 🎨 加载状态 */ .loading-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 120rpx 32rpx; gap: 32rpx; } .loading-spinner { width: 60rpx; height: 60rpx; border: 4rpx solid var(--border-color); border-top: 4rpx solid var(--primary-color); border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .loading-text { font-size: 28rpx; color: var(--text-secondary); } /* 📱 响应式设计 - 适配不同屏幕尺寸 */ @media screen and (max-width: 375px) { .header-content { height: 80rpx; padding: 0 20rpx; } .search-input-wrapper { height: 64rpx; } .search-input { font-size: 28rpx; } .search-suggestions { padding: 24rpx; } .suggestion-item { padding: 20rpx; } .suggestion-text { font-size: 28rpx; } .result-item { padding: 24rpx; } .avatar-image, .avatar-placeholder { width: 72rpx; height: 72rpx; border-radius: 36rpx; } .sender-name { font-size: 28rpx; } .message-text { font-size: 26rpx; } } @media screen and (min-width: 414px) { .header-content { height: 96rpx; padding: 0 32rpx; } .search-input-wrapper { height: 80rpx; } .search-input { font-size: 36rpx; } .search-suggestions { padding: 40rpx; } .suggestion-item { padding: 28rpx; } .suggestion-text { font-size: 32rpx; } .result-item { padding: 32rpx; } .avatar-image, .avatar-placeholder { width: 96rpx; height: 96rpx; border-radius: 48rpx; } .sender-name { font-size: 32rpx; } .message-text { font-size: 30rpx; } } @media screen and (max-height: 667px) { .search-suggestions { padding: 24rpx; } .no-results { padding: 80rpx 32rpx; } .loading-state { padding: 80rpx 32rpx; } } @media screen and (min-height: 812px) { .search-suggestions { padding: 40rpx; } .no-results { padding: 160rpx 32rpx; } .loading-state { padding: 160rpx 32rpx; } }