Patterns
Overview

Layout Patterns Overview

The MetronicLayout component provides 8 layout variants covering all 10 Metronic demo layouts. Each variant defines the structural arrangement of sidebar, header, navbar, and content areas.

All Variants

VariantMetronic DemoStructure
sidebarLayout 1280px sidebar + 70px header
horizontalLayout 2Full-width header + horizontal navbar
mini-sidebarLayout 358px icon sidebar + fixed navbar
card-sidebarLayouts 4/6/8Sidebar + muted bg + card content
content-sidebarLayout 554px sticky header + tabs + sidebar
top-onlyLayout 7100px header only
mega-menuLayout 9Header + mega-menu navbar
dark-sidebarLayout 10270px dark sidebar

Common Props

All variants share these props:

interface MetronicLayoutProps {
  variant?: MetronicLayoutVariant;     // Layout variant
  menu: MetronicMenuConfig;            // Sidebar/navbar menu items
  children: React.ReactNode;           // Page content
 
  // Sidebar
  sidebarCollapsed?: boolean;          // Collapsed state
  onSidebarToggle?: () => void;        // Toggle handler
  sidebarWidth?: number;               // Width in px
  sidebarTheme?: 'light' | 'dark';     // Sidebar color theme
 
  // Header
  logo?: React.ReactNode;             // Logo element
  logoCollapsed?: React.ReactNode;    // Logo when sidebar collapsed
  headerUser?: { name: string };      // User display
  headerNavItems?: HeaderNavItem[];   // Header navigation
  headerContent?: React.ReactNode;   // Custom header content
  notificationCount?: number;         // Badge count
 
  // Navigation
  currentPath?: string;               // Active path for highlighting
  onNavigate?: (path: string) => void; // Path change handler
  navbarLinks?: NavbarLink[];         // Horizontal navbar links
 
  // Footer
  footerContent?: React.ReactNode;    // Footer element
}

Menu Configuration

const menu: MetronicMenuConfig = [
  {
    heading: 'Main',
    items: [
      { title: 'Dashboard', path: '/', icon: 'LayoutGrid' },
      {
        title: 'Settings',
        icon: 'Settings',
        children: [
          { title: 'General', path: '/settings/general' },
          { title: 'Security', path: '/settings/security' },
        ],
      },
    ],
  },
  { separator: true },
  {
    heading: 'Apps',
    items: [
      { title: 'CRM', path: '/crm', icon: 'Users' },
    ],
  },
];

Choosing a Variant

  • General admin apps: sidebar (most common)
  • Data-heavy dashboards: horizontal or top-only
  • Many navigation sections: mini-sidebar or mega-menu
  • Document/content apps: content-sidebar
  • Professional/dark brand: dark-sidebar
  • Visual separation: card-sidebar