/* ===== 统一文件树(浏览/编辑/分享三模式共用)===== */ .file-tree-menu { flex: 1; padding: 8px; overflow-y: auto; overflow-x: hidden; border-right: none; background: var(--sider-bg); color: var(--text-color); scrollbar-width: thin; scrollbar-color: var(--border-color) transparent; /* 悬停行背景:明/暗主题分别取与侧栏背景有足够反差的浅色 */ --file-tree-hover-bg: rgba(0, 0, 0, 0.055); } body.dark .file-tree-menu { --file-tree-hover-bg: rgba(255, 255, 255, 0.08); } /* 细滚动条 */ .file-tree-menu::-webkit-scrollbar { width: 6px; } .file-tree-menu::-webkit-scrollbar-track { background: transparent; } .file-tree-menu::-webkit-scrollbar-thumb { background: var(--border-color); border-radius: 3px; } .file-tree-menu::-webkit-scrollbar-thumb:hover { background: var(--text-color-secondary); } .file-tree-menu .ant-menu-item, .file-tree-menu .ant-menu-submenu-title { overflow: hidden; display: flex !important; align-items: center; min-width: 0; border-radius: 6px; transition: background-color 0.15s ease, color 0.15s ease; } .file-tree-menu .ant-menu-title-content { display: flex; align-items: center; min-width: 0; overflow: hidden; } /* 统一标签:兼作右键菜单命中区域(编辑模式),三模式外观一致 */ .file-tree-label { display: flex; align-items: center; gap: 6px; width: 100%; min-width: 0; user-select: none; padding: 4px 8px; margin: -4px -8px; border-radius: 6px; transition: color 0.15s ease; color: var(--text-color); } .file-tree-label-text { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .file-tree-share-icon { color: var(--link-color); font-size: 12px; flex: none; opacity: 0.9; } /* ===== 悬停状态(重设计):整行浅色高亮 + 文字变主题色 ===== 仅对未选中行生效,避免覆盖选中态 */ .file-tree-menu .ant-menu-item:not(.ant-menu-item-selected):hover, .file-tree-menu .ant-menu-submenu:not(.file-tree-folder-selected) > .ant-menu-submenu-title:hover { background-color: var(--file-tree-hover-bg) !important; } .file-tree-menu .ant-menu-item:not(.ant-menu-item-selected):hover .file-tree-label, .file-tree-menu .ant-menu-submenu:not(.file-tree-folder-selected) > .ant-menu-submenu-title:hover .file-tree-label { color: var(--link-color) !important; } /* ===== 选中节点:背景、文字、图标统一高亮(选中态优先于悬停态) ===== */ .file-tree-menu .ant-menu-item-selected, .file-tree-folder-selected > .ant-menu-submenu-title { background-color: var(--selected-bg) !important; } .file-tree-menu .ant-menu-item-selected .file-tree-label, .file-tree-folder-selected > .ant-menu-submenu-title .file-tree-label, .file-tree-menu .ant-menu-submenu-selected > .ant-menu-submenu-title .file-tree-label { color: var(--link-color) !important; font-weight: 500; } .file-tree-menu .ant-menu-item-selected .ant-menu-item-icon, .file-tree-folder-selected > .ant-menu-submenu-title .ant-menu-item-icon, .file-tree-menu .ant-menu-submenu-selected > .ant-menu-submenu-title .ant-menu-item-icon { color: var(--link-color) !important; } .file-tree-folder-selected > .ant-menu-submenu-title:hover { background-color: var(--selected-bg) !important; } /* 空状态 */ .file-tree-empty { flex: 1; display: flex; align-items: center; justify-content: center; padding: 32px 20px; color: var(--text-color-secondary); }