From 6f3b2c8d9252d2b007518013e89e19bb8019dc77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=93=E4=BA=AE?= <787615673@qq.com> Date: Sat, 14 Mar 2026 13:02:13 +0800 Subject: [PATCH 1/4] =?UTF-8?q?style(DocumentSidebar):=20=E7=AE=80?= =?UTF-8?q?=E5=8C=96=E6=96=87=E4=BB=B6=E4=BE=A7=E8=BE=B9=E6=A0=8F=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E7=A7=BB=E9=99=A4=E6=B8=90=E5=8F=98=E6=95=88?= =?UTF-8?q?=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除文件侧边栏中的渐变背景和阴影效果,改用更简洁的纯色设计 调整选中状态和悬停状态的样式,统一颜色方案 优化图标和文本的显示效果,提升视觉一致性 --- .../folder/components/RenderFile.tsx | 69 ++++++++----------- 1 file changed, 28 insertions(+), 41 deletions(-) diff --git a/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/components/RenderFile.tsx b/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/components/RenderFile.tsx index 060be8d2..5c19e9e9 100644 --- a/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/components/RenderFile.tsx +++ b/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/components/RenderFile.tsx @@ -122,20 +122,14 @@ export const RenderFile: React.FC<{
{ e.stopPropagation(); @@ -180,27 +174,25 @@ export const RenderFile: React.FC<{ {isFolder ? (
) : (
- +
)}
@@ -232,9 +224,7 @@ export const RenderFile: React.FC<{ 'px-0 py-0', 'cursor-pointer pointer-events-none', 'truncate', - isSelected - ? 'text-blue-700 dark:text-blue-300' - : 'text-slate-700 dark:text-slate-300 group-hover:text-blue-700 dark:group-hover:text-blue-300', + isSelected ? 'text-[#333]' : 'text-[#333] dark:text-[#cccccc]', ], )} defaultValue={file.name} @@ -270,8 +260,8 @@ export const RenderFile: React.FC<{ className={cn( 'p-1.5 rounded-lg transition-all duration-300 transform hover:scale-110', isSelected - ? 'hover:bg-blue-100/50 text-blue-600 hover:text-blue-700' - : 'hover:bg-blue-100 dark:hover:bg-slate-600 text-slate-500 dark:text-slate-400 hover:text-blue-600 dark:hover:text-blue-400', + ? 'hover:bg-[#e0e0e0] text-[#333]' + : 'hover:bg-[#f5f5f5] dark:hover:bg-[#3a3a3a] text-[#717171] dark:text-[#858585] hover:text-[#333] dark:hover:text-[#cccccc]', 'shadow-sm hover:shadow-md', )} onClick={(e) => { @@ -286,8 +276,8 @@ export const RenderFile: React.FC<{ className={cn( 'p-1.5 rounded-lg transition-all duration-300 transform hover:scale-110', isSelected - ? 'hover:bg-blue-100/50 text-blue-600 hover:text-blue-700' - : 'hover:bg-blue-100 dark:hover:bg-slate-600 text-slate-500 dark:text-slate-400 hover:text-blue-600 dark:hover:text-blue-400', + ? 'hover:bg-[#e0e0e0] text-[#333]' + : 'hover:bg-[#e8e8e8] dark:hover:bg-[#2a2d2e] text-[#717171] dark:text-[#858585] hover:text-[#333] dark:hover:text-[#cccccc]', 'shadow-sm hover:shadow-md', )} onClick={(e) => { @@ -313,8 +303,8 @@ export const RenderFile: React.FC<{ className={cn( 'p-1.5 rounded-lg', isSelected - ? 'hover:bg-blue-100/50 text-blue-600 hover:text-blue-700' - : 'hover:bg-blue-100 dark:hover:bg-slate-600 text-slate-500 dark:text-slate-400 hover:text-blue-600 dark:hover:text-blue-400', + ? 'hover:bg-[#e0e0e0] text-[#333]' + : 'hover:bg-[#e8e8e8] dark:hover:bg-[#2a2d2e] text-[#717171] dark:text-[#858585] hover:text-[#333] dark:hover:text-[#cccccc]', )} />
@@ -347,20 +337,17 @@ export const RenderFile: React.FC<{ {isAddingNewItem && (
-
+
Date: Mon, 16 Mar 2026 11:13:58 +0800 Subject: [PATCH 2/4] =?UTF-8?q?style(=E6=96=87=E6=A1=A3=E4=BE=A7=E8=BE=B9?= =?UTF-8?q?=E6=A0=8F):=20=E7=BB=9F=E4=B8=80=E6=96=87=E4=BB=B6=E6=A0=91?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=A0=B7=E5=BC=8F=E4=B8=BA=E7=AE=80=E7=BA=A6?= =?UTF-8?q?=E9=A3=8E=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除渐变背景和阴影效果,使用统一的中性色系 调整间距和图标颜色以提升视觉一致性 优化暗黑模式下的颜色对比度 --- .../DocumentSidebar/folder/FileItemMenu.tsx | 24 +++++----- .../folder/components/ContextMenu.tsx | 12 ++--- .../folder/components/DocumentGroupHeader.tsx | 12 ++--- .../folder/components/FileTree.tsx | 16 +++---- .../folder/components/GroupedFileTree.tsx | 47 +++++++++---------- .../folder/components/RenderFile.tsx | 12 ++--- 6 files changed, 60 insertions(+), 63 deletions(-) diff --git a/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/FileItemMenu.tsx b/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/FileItemMenu.tsx index d3a2299d..cc61b82b 100644 --- a/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/FileItemMenu.tsx +++ b/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/FileItemMenu.tsx @@ -106,35 +106,35 @@ const FileItemMenu = ({ label: '分享', action: () => onShare?.(file), show: !!onShare, - className: 'text-blue-600 hover:bg-blue-50', + className: 'text-[#333] hover:bg-[#e0e0e0] dark:hover:bg-[#444444]', }, { icon: 'Download', label: '下载', action: () => onDownload?.(file), show: !!onDownload && file.type === 'file', - className: 'text-green-600 hover:bg-green-50', + className: 'text-[#333] hover:bg-[#e0e0e0] dark:hover:bg-[#444444]', }, { icon: 'Copy', label: '复制', action: () => onDuplicate?.(file), show: !!onDuplicate, - className: 'text-gray-600 hover:bg-gray-50', + className: 'text-[#333] hover:bg-[#e0e0e0] dark:hover:bg-[#444444]', }, { icon: 'Pencil', label: '重命名', action: () => onRename?.(file), show: !!onRename, - className: 'text-gray-600 hover:bg-gray-50', + className: 'text-[#333] hover:bg-[#e0e0e0] dark:hover:bg-[#444444]', }, { icon: 'Trash', label: '删除', action: () => onDelete?.(file), show: !!onDelete, - className: 'text-red-600 hover:bg-red-50', + className: 'text-[#cc0000] hover:bg-[#ffe6e6] dark:hover:bg-[#442222]', divider: true, }, ].filter((item) => item.show); @@ -148,29 +148,31 @@ const FileItemMenu = ({ > {isOpen && (
{menuItems.map((item, index) => (
- {item.divider && index > 0 &&
} + {item.divider && index > 0 && ( +
+ )}
diff --git a/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/components/ContextMenu.tsx b/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/components/ContextMenu.tsx index ab436856..1595af77 100644 --- a/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/components/ContextMenu.tsx +++ b/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/components/ContextMenu.tsx @@ -132,8 +132,8 @@ const ContextMenu: React.FC = ({ )} onClick={() => onCreateFile(targetFile.id)} > -
- +
+
新建文件 @@ -147,8 +147,8 @@ const ContextMenu: React.FC = ({ )} onClick={() => onCreateFolder(targetFile.id)} > -
- +
+
新建文件夹 @@ -165,8 +165,8 @@ const ContextMenu: React.FC = ({ )} onClick={() => onRename(targetFile?.id || '')} > -
- +
+
重命名 diff --git a/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/components/DocumentGroupHeader.tsx b/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/components/DocumentGroupHeader.tsx index d8cc2143..3792bec1 100644 --- a/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/components/DocumentGroupHeader.tsx +++ b/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/components/DocumentGroupHeader.tsx @@ -38,20 +38,20 @@ const DocumentGroupHeader: React.FC = ({ const getGroupColor = () => { switch (type) { case 'personal': - return 'from-blue-500 to-indigo-600'; + return 'bg-[#e0e0e0] dark:bg-[#3a3a3a]'; case 'organization': - return 'from-purple-500 to-pink-600'; + return 'bg-[#e0e0e0] dark:bg-[#3a3a3a]'; case 'shared': - return 'from-green-500 to-emerald-600'; + return 'bg-[#e0e0e0] dark:bg-[#3a3a3a]'; default: - return 'from-slate-500 to-slate-600'; + return 'bg-[#e0e0e0] dark:bg-[#3a3a3a]'; } }; return (
= ({ getGroupColor(), )} > - +
{/* 分组名称 */} diff --git a/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/components/FileTree.tsx b/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/components/FileTree.tsx index 995fc614..2e6820c8 100644 --- a/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/components/FileTree.tsx +++ b/apps/DocFlow/src/app/docs/_components/DocumentSidebar/folder/components/FileTree.tsx @@ -76,13 +76,13 @@ const FileTree: React.FC = (props) => {
@@ -113,9 +113,8 @@ const FileTree: React.FC = (props) => {
@@ -100,12 +99,12 @@ const GroupedFileTree: React.FC = (props) => { type="text" className={cn( 'flex-1 bg-white/90 dark:bg-slate-700/90 backdrop-blur-sm', - 'border-2 border-green-400/70 dark:border-green-500/70', - 'focus:border-green-500 dark:focus:border-green-400', - 'focus:ring-2 focus:ring-green-500/30 dark:focus:ring-green-400/30', + 'border-2 border-[#999999] dark:border-[#555555]', + 'focus:border-[#333] dark:focus:border-[#cccccc]', + 'focus:ring-2 focus:ring-[#333]/30 dark:focus:ring-[#cccccc]/30', 'px-3 py-2 text-sm rounded-lg transition-all duration-300', 'text-slate-900 dark:text-slate-100', - 'shadow-lg shadow-green-200/30 dark:shadow-green-800/20', + 'shadow-sm', 'min-w-0', )} value={newItemName} @@ -119,9 +118,8 @@ const GroupedFileTree: React.FC = (props) => {