refactor: 主题选择改为调色盘图标+下拉菜单

- 🎨 图标按钮点击弹出下拉菜单
- 4 个中文主题选项:赤红合成/霓虹青蓝/琥珀终端/紫雾迷离
- 每项带彩色色块指示
- 当前主题高亮显示
- 点击外部自动关闭下拉
This commit is contained in:
Youzini-afk
2026-03-24 17:43:41 +08:00
parent 4288705117
commit 2240ad5e77
3 changed files with 118 additions and 38 deletions

View File

@@ -202,33 +202,86 @@
font-weight: 400;
}
.bme-theme-palette {
.bme-theme-picker {
position: relative;
margin-right: 4px;
}
.bme-theme-picker-btn {
width: 28px;
height: 28px;
display: flex;
align-items: center;
gap: 6px;
margin-right: 8px;
}
.bme-theme-dot {
width: 16px;
height: 16px;
border-radius: 50%;
border: 2px solid transparent;
background: var(--dot-color);
justify-content: center;
border: none;
background: transparent;
color: var(--bme-on-surface-dim);
cursor: pointer;
padding: 0;
transition: transform 0.15s, border-color 0.15s, box-shadow 0.15s;
box-shadow: 0 0 0 0 transparent;
border-radius: 4px;
font-size: 14px;
transition: all 0.15s;
}
.bme-theme-dot:hover {
transform: scale(1.2);
box-shadow: 0 0 6px var(--dot-color);
.bme-theme-picker-btn:hover {
background: var(--bme-surface-highest);
color: var(--bme-primary);
}
.bme-theme-dot.active {
border-color: var(--bme-on-surface, #e4e1e6);
box-shadow: 0 0 8px var(--dot-color);
.bme-theme-dropdown {
display: none;
position: absolute;
top: 100%;
right: 0;
margin-top: 6px;
background: var(--bme-surface-container, #1f1f22);
border: 1px solid var(--bme-border);
border-radius: 8px;
padding: 4px;
min-width: 130px;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
z-index: 100;
animation: bme-dropdown-in 0.12s ease-out;
}
.bme-theme-dropdown.open {
display: block;
}
@keyframes bme-dropdown-in {
from { opacity: 0; transform: translateY(-4px); }
to { opacity: 1; transform: translateY(0); }
}
.bme-theme-option {
display: flex;
align-items: center;
gap: 8px;
width: 100%;
padding: 7px 10px;
border: none;
background: transparent;
color: var(--bme-on-surface);
font-size: 12.5px;
cursor: pointer;
border-radius: 5px;
transition: background 0.12s;
white-space: nowrap;
}
.bme-theme-option:hover {
background: var(--bme-surface-high);
}
.bme-theme-option.active {
background: var(--bme-primary-dim);
color: var(--bme-primary-text);
}
.bme-theme-swatch {
width: 10px;
height: 10px;
border-radius: 50%;
flex-shrink: 0;
}
.bme-panel-close {