style(admin): update sidebar width to 240px and refine nav item styles
This commit is contained in:
+2
-2
@@ -123,7 +123,7 @@ Les ombres existent uniquement pour les éléments qui **flottent au-dessus** de
|
|||||||
|
|
||||||
```
|
```
|
||||||
┌─────────────────────────────────────────────┐
|
┌─────────────────────────────────────────────┐
|
||||||
│ Sidebar 220px │ Barre supérieure 48px │
|
│ Sidebar 240px │ Barre supérieure 48px │
|
||||||
│ ├─────────────────────────── │
|
│ ├─────────────────────────── │
|
||||||
│ Logo │ │
|
│ Logo │ │
|
||||||
│ │ Zone de contenu │
|
│ │ Zone de contenu │
|
||||||
@@ -134,7 +134,7 @@ Les ombres existent uniquement pour les éléments qui **flottent au-dessus** de
|
|||||||
└─────────────────────────────────────────────┘
|
└─────────────────────────────────────────────┘
|
||||||
```
|
```
|
||||||
|
|
||||||
- **Sidebar** : fixe, 220px. Fond blanc (`#ffffff`). Séparée par une bordure droite.
|
- **Sidebar** : fixe, 240px. Fond blanc (`#ffffff`). Séparée par une bordure droite.
|
||||||
- **Barre supérieure** : fixe, 48px. Fond blanc. Fil d'Ariane à gauche, utilisateur à droite.
|
- **Barre supérieure** : fixe, 48px. Fond blanc. Fil d'Ariane à gauche, utilisateur à droite.
|
||||||
- **Contenu** : gris très pâle (`#fafafa` / `neutral-50`). Les cartes et tableaux ont un fond blanc, ce qui crée naturellement la séparation visuelle sans avoir besoin de bordures de section.
|
- **Contenu** : gris très pâle (`#fafafa` / `neutral-50`). Les cartes et tableaux ont un fond blanc, ce qui crée naturellement la séparation visuelle sans avoir besoin de bordures de section.
|
||||||
|
|
||||||
|
|||||||
@@ -90,11 +90,11 @@ const AdminSidebar = ({ isMobileMenuOpen, setIsMobileMenuOpen, appName, enabledM
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
const itemBase = 'w-full flex items-center justify-between px-[10px] py-[7px] rounded-lg text-[13px] font-normal transition-colors duration-[120ms] ease-out';
|
const itemBase = 'w-full flex items-center justify-between px-[10px] py-[7px] rounded-lg text-[13px] font-normal transition-colors duration-[120ms] ease-out';
|
||||||
const itemActive = 'bg-neutral-100 dark:bg-neutral-900 text-black dark:text-white';
|
const itemActive = 'bg-neutral-100 dark:bg-neutral-900 text-black dark:text-white font-medium';
|
||||||
const itemActiveParent = 'text-black dark:text-white hover:bg-neutral-100 dark:hover:bg-neutral-900';
|
const itemActiveParent = 'text-black font-medium dark:text-white hover:bg-neutral-100 dark:hover:bg-neutral-900';
|
||||||
const itemInactive = 'text-neutral-500 dark:text-neutral-400 hover:bg-neutral-100 dark:hover:bg-neutral-900 hover:text-neutral-900 dark:hover:text-white';
|
const itemInactive = 'text-neutral-500 dark:text-neutral-400 hover:bg-neutral-100 dark:hover:bg-neutral-900 hover:text-neutral-900 dark:hover:text-white';
|
||||||
|
|
||||||
const subItemBase = 'w-full flex items-center justify-between px-[10px] py-[7px] rounded-lg text-[12px] transition-colors duration-[120ms] ease-out';
|
const subItemBase = 'w-full flex items-center justify-between px-[10px] py-[7px] rounded-lg text-[13px] font-medium transition-colors duration-[120ms] ease-out';
|
||||||
|
|
||||||
const renderNavSection = (section) => {
|
const renderNavSection = (section) => {
|
||||||
const Icon = resolveIcon(section.icon);
|
const Icon = resolveIcon(section.icon);
|
||||||
@@ -153,7 +153,7 @@ const AdminSidebar = ({ isMobileMenuOpen, setIsMobileMenuOpen, appName, enabledM
|
|||||||
: 'max-h-[1000px] opacity-100'
|
: 'max-h-[1000px] opacity-100'
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
<ul className="flex flex-col gap-0.5 pt-0.5">
|
<ul className="flex flex-col">
|
||||||
{section.items.map(renderNavItem)}
|
{section.items.map(renderNavItem)}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -170,7 +170,7 @@ const AdminSidebar = ({ isMobileMenuOpen, setIsMobileMenuOpen, appName, enabledM
|
|||||||
className={`${subItemBase} ${item.current ? itemActive : itemInactive}`}
|
className={`${subItemBase} ${item.current ? itemActive : itemInactive}`}
|
||||||
>
|
>
|
||||||
<div className="flex items-center">
|
<div className="flex items-center">
|
||||||
<span className="pl-[27px]">{item.name}</span>
|
<span className="pl-[25px]">{item.name}</span>
|
||||||
</div>
|
</div>
|
||||||
{item.badge && (
|
{item.badge && (
|
||||||
<span className="bg-red-500 text-white text-[10px] px-1.5 py-0.5 rounded-lg font-medium">
|
<span className="bg-red-500 text-white text-[10px] px-1.5 py-0.5 rounded-lg font-medium">
|
||||||
@@ -195,7 +195,7 @@ const AdminSidebar = ({ isMobileMenuOpen, setIsMobileMenuOpen, appName, enabledM
|
|||||||
{/* Sidebar */}
|
{/* Sidebar */}
|
||||||
<div className={`
|
<div className={`
|
||||||
${isMobileMenuOpen ? 'translate-x-0' : '-translate-x-full lg:translate-x-0'}
|
${isMobileMenuOpen ? 'translate-x-0' : '-translate-x-full lg:translate-x-0'}
|
||||||
fixed lg:static inset-y-0 left-0 z-40 w-[220px] bg-white dark:bg-black border-r border-neutral-200 dark:border-neutral-800/70 flex flex-col h-screen transition-transform duration-[120ms] ease-out
|
fixed lg:static inset-y-0 left-0 z-40 w-[240px] bg-white dark:bg-black border-r border-neutral-200 dark:border-neutral-800/70 flex flex-col h-screen transition-transform duration-[120ms] ease-out
|
||||||
`}>
|
`}>
|
||||||
{/* Logo */}
|
{/* Logo */}
|
||||||
<Link href="/admin" className="px-4 h-12 flex items-center justify-start gap-2 border-b border-neutral-200 dark:border-neutral-800/70">
|
<Link href="/admin" className="px-4 h-12 flex items-center justify-start gap-2 border-b border-neutral-200 dark:border-neutral-800/70">
|
||||||
|
|||||||
Reference in New Issue
Block a user