findme-miniprogram-frontend/subpackages/search/global-search/global-search.wxss

735 lines
18 KiB
Text
Raw Normal View History

2025-12-27 17:16:03 +08:00
/* 🔍 全局搜索页面样式 - 深色主题重构(修复合并破坏) */
/* 变量(深色默认) */
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;
}
}