Living Documentation

Offcanvas panels for filters, contextual detail, and layered utility workflows

Use offcanvas panels when content should stay attached to the current screen instead of feeling like a full modal. This page standardizes placement, width, scroll strategy, and embedded utility patterns for Lumora drawers.

Four placements Filter and detail drawers Live playground Copy-ready snippets
Catalog Blocks 6 Variants, placement, state, composition, snippets, playground
Drawer Placements 4 Start, end, top, and bottom panel positions
Behavior Toggles 5 Backdrop, body scroll, close button, tone, and size
Preview State End - Soft Updates live from playground controls

1. Variant Matrix

Use drawers for filters, utility trays, and secondary task flows

Placement triggers
Use-case recipes

2. Interaction Playground

Tune placement, width, tone, and behavior for a live preview drawer

The preview renders a fresh Bootstrap offcanvas instance whenever these controls change.
Live Output
End Soft
End placement, soft tone, backdrop on.
Preview is embedded below and opens with Bootstrap offcanvas behavior.

3. Placement and Sizing

Choose placement based on whether the drawer complements reading or blocks primary motion

Directional guidance
Start Good for nav-like utilities, saved views, and assistive panels.
End Best for record details, filters, and contextual edit flows.
Top / Bottom Use for mobile trays, quick actions, and transient summaries.

4. State Modeling

Backdrop and scroll strategy determine whether the drawer feels modal or supplemental

Filter drawer with body scroll off

Preferred when users should focus on configuration before returning to the page.

Supplemental drawer with body scroll on

Use when the page should remain readable while the drawer is open.

5. Composition Patterns

Typical Lumora uses include bulk filters, record inspectors, and settings trays

Bulk filter drawer
Cluster filters into sections Status, owner, date range, and tags should feel grouped instead of scattered in a toolbar.
Record inspector
Surface metadata without route changes Use an end drawer for timelines, tags, assignments, and secondary actions.

6. Real-use Snippets

Copy-ready offcanvas markup for common utility panels

End Drawer
<button class="btn btn-outline" type="button" data-bs-toggle="offcanvas" data-bs-target="#detailDrawer">
  Open details
</button>

<div class="offcanvas offcanvas-end offcanvas-lumora" tabindex="-1" id="detailDrawer">
  <div class="offcanvas-header">
    <h5 class="offcanvas-title">Record details</h5>
    <button type="button" class="btn-close" data-bs-dismiss="offcanvas"></button>
  </div>
  <div class="offcanvas-body">Drawer content.</div>
</div>
Filter Drawer
<div class="offcanvas offcanvas-end offcanvas-lumora offcanvas-lumora--soft" tabindex="-1" id="filterDrawer" data-bs-scroll="false" data-bs-backdrop="true">
  <div class="offcanvas-header">
    <h5 class="offcanvas-title">Advanced filters</h5>
    <button type="button" class="btn-close" data-bs-dismiss="offcanvas"></button>
  </div>
  <div class="offcanvas-body">Form controls...</div>
</div>
Bottom Mobile Tray
<div class="offcanvas offcanvas-bottom offcanvas-lumora" tabindex="-1" id="mobileTray" data-bs-scroll="true">
  <div class="offcanvas-header">
    <h5 class="offcanvas-title">Quick actions</h5>
  </div>
  <div class="offcanvas-body">Action shortcuts...</div>
</div>
© Lumora — Hand-crafted with ❤️ care & passion.
v 1.0.0
Snippet copied.
Placement
Start drawer

Use the start edge when a panel feels adjacent to navigation or a contextual tool rail.

Placement
End drawer
Inspector metadataBest fit for details and secondary actions.
Placement
Bottom tray

A bottom tray works well for compact mobile actions that should not feel like a full-screen modal.

Use case
Advanced filters
StatusOpen, paused, archived
OwnerTeam, assignee, or watcher filters
Use case
Record inspector
Assigned teamGrowth operations
Recent updates5 changes in the last 24 hours
State
Focused task drawer

Backdrop stays on and body scroll stays off to keep attention on the current task.

State
Supplemental reading drawer

Body scroll is enabled here so the page can remain readable while the drawer stays open as a companion panel.