PATTERN NAME: Action Bar
COMPOSES: button.css (tw-btn variants)
CLASSES: tw-action-bar | tw-action-bar-start | tw-action-bar-center | tw-action-bar-end
A fixed bottom bar anchored to the viewport, offset from the sidebar (left: 4rem).
Use for page-level primary actions that must always be accessible regardless of scroll position —
wizard navigation, form save/cancel, or bulk-action confirmation.
Standard wizard step: Back in .tw-action-bar-start,
primary action in .tw-action-bar-end.
The bar is position: fixed so it floats at the bottom of the viewport.
<div class="tw-action-bar">
<div class="tw-action-bar-start">
<button class="tw-btn tw-btn-secondary" type="button">← Back</button>
</div>
<div class="tw-action-bar-end">
<button class="tw-btn tw-btn-primary" type="button">Next →</button>
</div>
</div>
Optional center slot: Use .tw-action-bar-center to display
a count, status label, or progress hint between the start and end groups.
<div class="tw-action-bar">
<div class="tw-action-bar-start">...</div>
<div class="tw-action-bar-center">
<span class="tw:text-sm text-muted fw-semibold">14 students selected</span>
</div>
<div class="tw-action-bar-end">...</div>
</div>
First step or standalone form: Leave .tw-action-bar-start
empty when there is no previous step. The end actions right-align naturally.
<div class="tw-action-bar">
<div class="tw-action-bar-start"></div>
<div class="tw-action-bar-end">
<button class="tw-btn tw-btn-secondary" type="button">Cancel</button>
<button class="tw-btn tw-btn-primary" type="button">Save Changes</button>
</div>
</div>
Final completion step: After a terminal action (e.g., "Schedule Release"), clear both start and end slots so the bar becomes invisible. The completion confirmation appears in the page body instead.
// After terminal action, clear slots via JS:
document.getElementById('wizardActionBarStart').innerHTML = '';
document.getElementById('wizardActionBarEnd').innerHTML = '';
Actual fixed bar visible on this page: The bar below uses
real position: fixed and is offset from the sidebar.
Scroll this preview to confirm it stays anchored to the bottom.
Scroll content area to verify the action bar below stays fixed…
Line 2 of placeholder content
Line 3 of placeholder content
Line 4 of placeholder content
Line 5 of placeholder content