@@ -31,17 +31,24 @@ export const Sidebar: React.FC<SidebarProps> = ({ items, isOpen, onClose }) => {
3131 { /* Sidebar */ }
3232 < aside
3333 className = { cn (
34- 'fixed left-0 top-0 z-40 flex h-screen w-sidebar flex-col border-r border-slate-200 bg-white transition-transform dark:border-slate-800 dark:bg-slate-900 lg:translate-x-0' ,
34+ // Light mode: warm orange/amber gradient
35+ 'fixed left-0 top-0 z-40 flex h-screen w-sidebar flex-col border-r border-orange-300/60' ,
36+ 'bg-gradient-to-b from-orange-100 via-amber-100 to-yellow-100' ,
37+ // Dark mode: modern deep gradient (slate-950 -> indigo-950 -> slate-900)
38+ 'dark:from-slate-950 dark:via-indigo-950 dark:to-slate-900 dark:border-slate-800/60' ,
39+ 'transition-transform lg:translate-x-0' ,
3540 ! isOpen && '-translate-x-full lg:translate-x-0' ,
3641 ) }
3742 aria-label = "Primary navigation"
3843 >
3944 { /* Header */ }
40- < div className = "flex items-center justify-between p-6 border-b border-slate-200 dark:border-slate-800" >
41- < h1 className = "text-xl font-bold text-primary-600" > OpenDocs</ h1 >
45+ < div className = "flex items-center justify-between p-6 border-b border-orange-300/60 dark:border-slate-800/60" >
46+ < h1 className = "text-xl font-bold bg-gradient-to-r from-orange-500 via-amber-500 to-yellow-500 dark:from-sky-500 dark:via-blue-500 dark:to-indigo-500 bg-clip-text text-transparent" >
47+ OpenDocs
48+ </ h1 >
4249 < button
4350 onClick = { onClose }
44- className = "lg:hidden p-2 hover:bg-slate-100 dark:hover:bg-slate-800 rounded-lg"
51+ className = "lg:hidden p-2 hover:bg-orange-300/60 dark:hover:bg-slate-800/60 rounded-lg text-slate-700 dark:text-slate-200 "
4552 aria-label = "Close navigation"
4653 >
4754 < svg className = "w-5 h-5" fill = "none" stroke = "currentColor" viewBox = "0 0 24 24" >
@@ -60,20 +67,21 @@ export const Sidebar: React.FC<SidebarProps> = ({ items, isOpen, onClose }) => {
6067 onClick = { onClose }
6168 className = { ( { isActive } ) =>
6269 cn (
63- 'flex items-center justify-between rounded-lg px-4 py-3 transition-colors' ,
64- 'hover:bg-slate-100 dark:hover:bg-slate-800' ,
65- isActive
66- ? 'bg-primary-50 text-primary-700 dark:bg-primary-950 dark:text-primary-200'
67- : 'text-slate-700 dark:text-slate-300' ,
70+ 'flex items-center justify-between rounded-lg px-4 py-3 transition-all duration-200' ,
71+ // Inactive: subtle text + hover
72+ ! isActive && 'text-slate-700 dark:text-slate-300 hover:bg-orange-300/60 dark:hover:bg-slate-800/60' ,
73+ // Active: light mode = warm orange/amber gradient, dark mode = blue/indigo gradient
74+ isActive &&
75+ 'bg-gradient-to-r from-orange-500 via-amber-500 to-yellow-500 text-white shadow-lg shadow-orange-500/30 dark:from-sky-500 dark:via-blue-500 dark:to-indigo-500 dark:shadow-blue-500/30' ,
6876 )
6977 }
7078 >
7179 < div className = "flex items-center gap-3" >
7280 < span className = "w-5 h-5" > { item . icon } </ span >
73- < span > { item . label } </ span >
81+ < span className = "font-medium" > { item . label } </ span >
7482 </ div >
7583 { item . badge && (
76- < span className = "px-2 py-1 text-xs font-semibold text-white bg-primary-600 rounded-full" >
84+ < span className = "px-2 py-1 text-xs font-semibold text-white bg-white/20 rounded-full backdrop-blur " >
7785 { item . badge }
7886 </ span >
7987 ) }
@@ -84,9 +92,11 @@ export const Sidebar: React.FC<SidebarProps> = ({ items, isOpen, onClose }) => {
8492 </ nav >
8593
8694 { /* Footer */ }
87- < div className = "border-t border-slate-200 dark:border-slate-800 p-4 space-y-3" >
95+ < div className = "border-t border-orange-300/60 dark:border-slate-800/60 p-4 space-y-3" >
8896 < div className = "flex items-center justify-between" >
89- < span className = "text-xs font-semibold text-slate-500 dark:text-slate-400 uppercase" > Theme</ span >
97+ < span className = "text-xs font-semibold text-slate-500 dark:text-slate-400 uppercase tracking-wider" >
98+ Theme
99+ </ span >
90100 < ThemeSwitcher />
91101 </ div >
92102 </ div >
0 commit comments