drawer Component

Drawer Class API Reference

Type Class Options Usage Notes
Base drawer Required base class Always required
drawer-overlay Overlay container Wraps the drawer element
Position left Slides from left edge Default position
right Slides from right edge For filters/details
top Slides from top edge For notifications
bottom Slides from bottom edge Mobile action sheets
Size tiny 240px / 20vh Minimal content
small 320px / 30vh Simple forms
(default) 400px / 40vh No class needed
large 600px / 60vh Detailed forms
big 800px / 80vh Complex interfaces
fullscreen 100% viewport Full coverage
Color (Semantic) (default) Gray/neutral No class needed
primary Main action color Blue-based
positive Success/confirm Green-based
negative Danger/delete Red-based
warning Caution/alert Yellow/orange-based
info Information Blue-based
Overlay no-backdrop No overlay background Transparent overlay
dark-backdrop Darker overlay 70% black opacity
light-backdrop Light overlay 70% white opacity

Drawer System

The drawer system provides sliding panels from screen edges. It requires three parts:

  1. Trigger Button - A button with data-drawer="drawer-id" attribute
  2. Drawer HTML - The drawer structure with matching id="drawer-id"
  3. JavaScript - Automatically loaded via hygge.core.js (no setup needed!)

Position Variants

Left Drawer (Default)

Preview Code
Copy

Right Drawer

Preview Code
Copy

Top Drawer

Preview Code
Copy

Bottom Drawer

Preview Code
Copy

Size Variants

Tiny Drawer

Preview Code
Copy

Large Drawer

Preview Code
Copy

Fullscreen Drawer

Preview Code
Copy

Color Variants

Primary Drawer

Preview Code
Copy

Negative Drawer

Preview Code
Copy

Form Example

Form Drawer

Preview Code
Copy

JavaScript API

JavaScript Methods

Preview Code
Copy
// Open drawer Drawer.open('drawer-id'); Drawer.open('drawer-id', { position: 'right', size: 'large' }); // Close drawer Drawer.close('drawer-id'); // Toggle drawer Drawer.toggle('drawer-id'); // Close all drawers Drawer.closeAll(); // Check if drawer is open if (Drawer.isOpen('drawer-id')) { console.log('Drawer is open'); } // Event listeners document.getElementById('drawer-id').addEventListener('drawer:open', (e) => { console.log('Drawer opened', e.detail); }); document.getElementById('drawer-id').addEventListener('drawer:close', (e) => { console.log('Drawer closed', e.detail); });

Data Attributes

Advanced Trigger Options

Preview Code
Copy

Interactive Examples

Usage Guidelines

Best Practices

  • Position: Use left for navigation, right for details/filters, top for notifications, bottom for mobile actions
  • Size: Choose based on content - tiny for menus, fullscreen for complex forms
  • Colors: Use semantic colors to convey meaning (positive for success, negative for danger)
  • Overlay: Clicking the overlay closes the drawer by default (can be disabled)
  • Keyboard: ESC key closes the drawer, Tab key is trapped within
  • Mobile: Swipe gestures are supported on touch devices
  • Accessibility: Proper ARIA attributes and focus management are built-in