Sidebar Variants Test

AppSidebar komponentinin özellikleri ve kullanımı

Mevcut Sidebar
Soldaki menü AppSidebar komponenti

Özellikler:

  • ✅ Collapsible (açılır/kapanır)
  • ✅ Nested navigation (2 seviye: NavItem → NavSubItem)
  • ✅ Active route highlighting (aktif sayfa vurgulu)
  • ✅ Badge desteği (bildirim sayısı gösterimi)
  • ✅ User dropdown (kullanıcı menüsü)
  • ✅ Lucide React ikonları
  • ✅ Responsive (mobilde otomatik overlay)
  • ✅ Theme uyumlu

Navigation Yapısı:

Ana Sayfa
Kargolar 12
Tüm Kargolar
Yeni Kargo
AppSidebar Props
Özelleştirilebilir özellikler
PropTipZorunluAçıklama
brandBrandDataLogo ve marka bilgileri
userUserDataKullanıcı bilgileri
navGroupsNavGroup[]Menü grupları
Navigation Yapısı
Nested menü oluşturma
import { Home, Package } from 'lucide-react'

const navGroups = [
  {
    label: "Menü",  // Grup başlığı (opsiyonel)
    items: [
      {
        title: "Ana Sayfa",
        url: "/",
        icon: Home,
      },
      {
        title: "Kargolar",
        icon: Package,
        badge: "12",      // Bildirim sayısı
        items: [          // Alt menü
          { title: "Tüm Kargolar", url: "/shipments" },
          { title: "Yeni Kargo", url: "/shipments/new" },
        ],
      },
    ],
  },
  {
    // Label olmadan grup (ayraç çizgisi görünür)
    items: [
      {
        title: "Ayarlar",
        url: "/settings",
        icon: Settings,
      },
    ],
  },
]
Type Definitions
interface NavGroup {
  label?: string          // Grup başlığı (opsiyonel)
  items: NavItem[]
}

interface NavItem {
  title: string
  url?: string           // Ana item tıklanabilir mi?
  icon: LucideIcon
  badge?: string         // Bildirim badge
  items?: NavSubItem[]   // Alt menü
}

interface NavSubItem {
  title: string
  url: string           // Alt item'lar mutlaka url'e sahip
}

interface BrandData {
  title: string
  subtitle?: string
  url: string
  icon: LucideIcon
}

interface UserData {
  name: string
  email: string
  avatar?: string
  role?: string
}
Active State
Aktif rota vurgulama

Otomatik Active Detection:

  • URL ile eşleşen menü öğesi otomatik vurgulanır
  • Alt menü açıksa parent da vurgulu olur
  • Collapsible alt menüler açık kalır

CSS Sınıfları:

// Aktif item
<a className="bg-sidebar-accent text-sidebar-accent-foreground">

// Hover state
<a className="hover:bg-sidebar-accent hover:text-sidebar-accent-foreground">
User Dropdown
Sidebar footer kullanıcı menüsü

Sidebar'ın altında kullanıcı bilgileri ve dropdown menü bulunur:

  • Avatar (varsa) veya baş harfler
  • İsim ve email
  • Rol badge'i (varsa)
  • Profil, Ayarlar, Çıkış Yap menüleri
Responsive Davranış
Mobil ve desktop davranışı

Desktop (≥768px):

  • Sidebar yan tarafta sabit
  • Toggle butonu ile genişlik 256px ↔ 64px
  • Kapatıldığında sadece ikonlar görünür

Mobile (<768px):

  • Sidebar overlay olarak açılır
  • Hamburger menü butonu header'da
  • Dışına tıklanınca kapanır
Deneyin!
Sidebar'ı test edin

Sol taraftaki sidebar'da şunları test edebilirsiniz:

  • Toggle butonuna tıklayarak sidebar'ı açın/kapatın
  • Nested menülere tıklayın (Kargolar, Auth Kit Test)
  • Farklı sayfalara gidin ve active state'i görün
  • User dropdown'ı açın (sidebar altı)
  • Tarayıcı genişliğini değiştirin (responsive test)