AppDrawer

App

Modal navigation panel that slides in from the page edge: trigger button, backdrop, dismiss, focus trap and Escape-to-close. Renders grouped items via `navGroups`, an optional search box (filterAppDrawer) and emits an `appdrawer:select` custom event.

Left side with search + groups

Preview

Navigation

Main

Account

Code
<%- include('modules/app/AppDrawer', {
  id:       'main-nav',
  title:    'Navigation',
  side:     'left',
  activeId: 'dashboard',
  navGroups: [
    { label: 'Main', items: [
      { id: 'dashboard', label: 'Dashboard', iconClass: 'fa-gauge' },
      { id: 'projects',  label: 'Projects',  iconClass: 'fa-folder',     badge: 4  },
      { id: 'tasks',     label: 'Tasks',     iconClass: 'fa-list-check', badge: 12 }
    ]},
    { label: 'Account', items: [
      { id: 'settings', label: 'Settings',  iconClass: 'fa-gear' },
      { id: 'signout',  label: 'Sign out',  iconClass: 'fa-right-from-bracket' }
    ]}
  ]
}) %>

Right side, no search

Preview

Navigation

Code
<%- include('modules/app/AppDrawer', {
  id:         'account-drawer',
  title:      'Account',
  side:       'right',
  searchable: false,
  navItems: [
    { id: 'profile', label: 'Profile', iconClass: 'fa-user' },
    { id: 'billing', label: 'Billing', iconClass: 'fa-credit-card' },
    { id: 'keys',    label: 'API keys', iconClass: 'fa-key' },
    { id: 'team',    label: 'Team',    iconClass: 'fa-users' }
  ]
}) %>
Source modules/app/AppDrawer.ejs