HTML
<section class="row g-4">
<div class="col-xl-8">
<article class="athena-card p-4 h-100">
<span class="badge text-bg-primary mb-3">Core Set</span>
<h2 class="h4">Action Hierarchy</h2>
<p class="text-secondary">Use one primary action per task area, then place secondary, neutral, and destructive actions after it.</p>
<div class="d-flex flex-wrap gap-2" aria-label="Button hierarchy examples">
<button class="btn btn-primary" type="button">Save Changes</button>
<button class="btn btn-outline-primary" type="button">Preview</button>
<button class="btn btn-outline-secondary" type="button">Cancel</button>
<button class="btn btn-danger" type="button">Delete Record</button>
</div>
</article>
</div>
<div class="col-xl-4">
<article class="athena-card p-4 h-100">
<span class="badge text-bg-success mb-3">Best Practice</span>
<h2 class="h5">Button Copy</h2>
<ul class="athena-check-list mb-0">
<li><i class="bi bi-check2" aria-hidden="true"></i><span>Use verbs: Save, Export, Invite, Revoke.</span></li>
<li><i class="bi bi-check2" aria-hidden="true"></i><span>Avoid vague labels such as OK when the action has risk.</span></li>
<li><i class="bi bi-check2" aria-hidden="true"></i><span>Keep destructive actions visibly different and confirm them where needed.</span></li>
</ul>
</article>
</div>
<div class="col-lg-4">
<article class="athena-card p-4 h-100">
<span class="badge text-bg-info mb-3">Icon Buttons</span>
<h2 class="h5">Named Controls</h2>
<p class="text-secondary">Icon-only buttons need a clear accessible name because the icon is decorative to assistive technology.</p>
<div class="d-flex flex-wrap gap-2" aria-label="Icon button examples">
<button class="btn btn-icon btn-outline-primary" type="button" aria-label="Edit record"><i class="bi bi-pencil" aria-hidden="true"></i></button>
<button class="btn btn-icon btn-outline-secondary" type="button" aria-label="Duplicate record"><i class="bi bi-copy" aria-hidden="true"></i></button>
<button class="btn btn-icon btn-outline-danger" type="button" aria-label="Delete record"><i class="bi bi-trash" aria-hidden="true"></i></button>
</div>
</article>
</div>
<div class="col-lg-4">
<article class="athena-card p-4 h-100">
<span class="badge text-bg-warning mb-3">States</span>
<h2 class="h5">Loading And Disabled</h2>
<p class="text-secondary">Use disabled states only for genuinely unavailable actions, and pair loading spinners with text.</p>
<div class="d-grid gap-2">
<button class="btn btn-primary" type="button" disabled><span class="spinner-border spinner-border-sm me-2" aria-hidden="true"></span>Saving</button>
<button class="btn btn-outline-secondary" type="button" disabled aria-disabled="true">Unavailable Until Complete</button>
</div>
</article>
</div>
<div class="col-lg-4">
<article class="athena-card p-4 h-100">
<span class="badge text-bg-secondary mb-3">Groups</span>
<h2 class="h5">Toolbars</h2>
<p class="text-secondary">Group related commands with a named toolbar so keyboard and screen reader users understand the set.</p>
<div class="btn-toolbar gap-2" role="toolbar" aria-label="Record actions">
<div class="btn-group" role="group" aria-label="Edit actions">
<button class="btn btn-outline-secondary" type="button">Undo</button>
<button class="btn btn-outline-secondary" type="button">Redo</button>
</div>
<div class="btn-group" role="group" aria-label="Publish actions">
<button class="btn btn-primary" type="button">Publish</button>
</div>
</div>
</article>
</div>
</section>