sidebar dark navigation menu profile sidebar dark navigation menu links profile avatar sections dark sidebar navigation dark themed side menu with user profile
Sidebar Dark
Fetch pattern JSON:
curl https://webspire.de/patterns/sidebar/dark.json dark.html
<aside class="ws-sidebar hidden h-screen w-64 flex-shrink-0 bg-[var(--ws-sidebar-bg)] lg:block">
<div class="flex h-full flex-col">
<!-- Brand -->
<div class="flex h-16 items-center gap-3 border-b border-[var(--ws-sidebar-border)] px-6">
<div class="flex h-8 w-8 items-center justify-center rounded-lg bg-indigo-600 text-sm font-bold text-white">W</div>
<span class="text-base font-semibold text-[var(--ws-sidebar-text)]">Webspire</span>
</div>
<!-- Navigation: Main -->
<nav aria-label="Sidebar navigation" class="flex-1 overflow-y-auto px-3 py-4">
<p class="mb-2 px-3 text-xs font-semibold uppercase tracking-wider text-[var(--ws-sidebar-text-muted)]">Main</p>
<div class="space-y-1">
<a href="#" class="flex items-center gap-3 rounded-lg bg-[var(--ws-sidebar-active-bg)] px-3 py-2 text-sm font-medium text-[var(--ws-sidebar-active-text)]">
<svg class="h-5 w-5 text-indigo-400" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M2.25 12l8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25" /></svg>
Dashboard
</a>
<a href="#" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-[var(--ws-sidebar-text-muted)] transition hover:bg-[var(--ws-sidebar-hover-bg)] hover:text-[var(--ws-sidebar-text)]">
<svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 013 19.875v-6.75zM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V8.625zM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V4.125z" /></svg>
Analytics
</a>
<a href="#" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-[var(--ws-sidebar-text-muted)] transition hover:bg-[var(--ws-sidebar-hover-bg)] hover:text-[var(--ws-sidebar-text)]">
<svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M15 19.128a9.38 9.38 0 002.625.372 9.337 9.337 0 004.121-.952 4.125 4.125 0 00-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 018.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0111.964-3.07M12 6.375a3.375 3.375 0 11-6.75 0 3.375 3.375 0 016.75 0zm8.25 2.25a2.625 2.625 0 11-5.25 0 2.625 2.625 0 015.25 0z" /></svg>
Users
</a>
<a href="#" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-[var(--ws-sidebar-text-muted)] transition hover:bg-[var(--ws-sidebar-hover-bg)] hover:text-[var(--ws-sidebar-text)]">
<svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M2.25 12.75V12A2.25 2.25 0 014.5 9.75h15A2.25 2.25 0 0121.75 12v.75m-8.69-6.44l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z" /></svg>
Projects
</a>
</div>
<!-- Divider -->
<div class="my-4 border-t border-[var(--ws-sidebar-border)]"></div>
<!-- Navigation: Settings -->
<p class="mb-2 px-3 text-xs font-semibold uppercase tracking-wider text-[var(--ws-sidebar-text-muted)]">Settings</p>
<div class="space-y-1">
<a href="#" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-[var(--ws-sidebar-text-muted)] transition hover:bg-[var(--ws-sidebar-hover-bg)] hover:text-[var(--ws-sidebar-text)]">
<svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.324.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 011.37.49l1.296 2.247a1.125 1.125 0 01-.26 1.431l-1.003.827c-.293.24-.438.613-.431.992a6.759 6.759 0 010 .255c-.007.378.138.75.43.99l1.005.828c.424.35.534.954.26 1.43l-1.298 2.247a1.125 1.125 0 01-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.57 6.57 0 01-.22.128c-.331.183-.581.495-.644.869l-.213 1.28c-.09.543-.56.941-1.11.941h-2.594c-.55 0-1.02-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 01-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 01-1.369-.49l-1.297-2.247a1.125 1.125 0 01.26-1.431l1.004-.827c.292-.24.437-.613.43-.992a6.932 6.932 0 010-.255c.007-.378-.138-.75-.43-.99l-1.004-.828a1.125 1.125 0 01-.26-1.43l1.297-2.247a1.125 1.125 0 011.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.087.22-.128.332-.183.582-.495.644-.869l.214-1.281z" /><path stroke-linecap="round" stroke-linejoin="round" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z" /></svg>
General
</a>
<a href="#" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-[var(--ws-sidebar-text-muted)] transition hover:bg-[var(--ws-sidebar-hover-bg)] hover:text-[var(--ws-sidebar-text)]">
<svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75L11.25 15 15 9.75m-3-7.036A11.959 11.959 0 013.598 6 11.99 11.99 0 003 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285z" /></svg>
Security
</a>
<a href="#" class="flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-[var(--ws-sidebar-text-muted)] transition hover:bg-[var(--ws-sidebar-hover-bg)] hover:text-[var(--ws-sidebar-text)]">
<svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M14.857 17.082a23.848 23.848 0 005.454-1.31A8.967 8.967 0 0118 9.75v-.7V9A6 6 0 006 9v.75a8.967 8.967 0 01-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 01-5.714 0m5.714 0a3 3 0 11-5.714 0" /></svg>
Notifications
</a>
</div>
</nav>
<!-- User -->
<div class="border-t border-[var(--ws-sidebar-border)] px-4 py-4">
<div class="flex items-center gap-3">
<div class="h-9 w-9 rounded-full bg-[var(--ws-sidebar-hover-bg)] ring-2 ring-[var(--ws-sidebar-border)] flex items-center justify-center">
<svg class="h-5 w-5 text-[var(--ws-sidebar-text-muted)]" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0ZM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632Z" /></svg>
</div>
<div class="min-w-0">
<p class="truncate text-sm font-medium text-[var(--ws-sidebar-text)]">Alex Rivera</p>
<p class="truncate text-xs text-[var(--ws-sidebar-text-muted)]">Product Designer</p>
</div>
</div>
</div>
</div>
</aside>
Details
Responsive Dark Mode Tailwind Only SSR Safe Copy & Paste
Stable Published
sidebardarknavigationmenuprofile
Slots
| Name | Required | Description |
|---|---|---|
| brand | Yes | Logo and brand name at the top of the sidebar. |
| navigation | Yes | Sectioned navigation links with icons and active state. |
| user | Yes | User avatar, name, and role at the bottom. |
Dark sidebar navigation (w-64) on a slate-900/950 background with light text. Top: brand logo and name. Navigation split into two sections (Main and Settings) separated by a divider. Each link has an icon and label with subtle hover effects (bg-white/10). Active link highlighted with an indigo accent background. User avatar, name, and role displayed at the bottom. Hidden on mobile with responsive breakpoint at lg.