Add compact, contextual details to workflow actions with Bootstrap's native popover behavior.
Use data-bs-toggle="popover" for compact contextual details attached to a clear, focusable trigger. Provide a concise title, body content, or both with Bootstrap popover attributes, and choose a placement that keeps the popover close to the action without covering the work the user is reviewing.
data-bs-toggle="popover"
Initialize popovers only on pages that use them; Bootstrap keeps them opt-in for performance. Use container="body" or another explicit container when the trigger sits inside complex layouts such as input groups, button groups, tables, or dialogs where clipping and focus containment can matter.
container="body"
Keep critical confirmations, long forms, and required instructions outside popovers. Bootstrap sanitizes HTML content, disabled elements need a wrapper trigger, and the popover should be hidden before its trigger is removed from the DOM.
Use popover_title and popover_content on a standard button trigger for quick inline context.
popover_title
popover_content
1<button class="btn btn-outline-secondary" type="button" data-bs-toggle="popover" data-bs-title="Routing review" data-bs-content="Approve this request, reassign it, or return it for clarification." data-bs-placement="top">Review update</button>
<button class="btn btn-outline-secondary" type="button" data-bs-toggle="popover" data-bs-title="Routing review" data-bs-content="Approve this request, reassign it, or return it for clarification." data-bs-placement="top">Review update</button>
Set popover_placement to top, right, bottom, or left to position the popover close to the action.
popover_placement
top
right
bottom
left
1 2 3 4 5 6<div class="d-flex flex-wrap gap-2"> <button class="btn btn-outline-secondary" type="button" data-bs-toggle="popover" data-bs-content="Keep the action rail visible while reviewing this item." data-bs-placement="top">Top</button> <button class="btn btn-outline-secondary" type="button" data-bs-toggle="popover" data-bs-content="Open queue details to the right when space is available." data-bs-placement="right">Right</button> <button class="btn btn-outline-secondary" type="button" data-bs-toggle="popover" data-bs-content="Show helper text underneath the current control." data-bs-placement="bottom">Bottom</button> <button class="btn btn-outline-secondary" type="button" data-bs-toggle="popover" data-bs-content="Reserve space on the left for this control-heavy view." data-bs-placement="left">Left</button> </div>
<div class="d-flex flex-wrap gap-2"> <button class="btn btn-outline-secondary" type="button" data-bs-toggle="popover" data-bs-content="Keep the action rail visible while reviewing this item." data-bs-placement="top">Top</button> <button class="btn btn-outline-secondary" type="button" data-bs-toggle="popover" data-bs-content="Open queue details to the right when space is available." data-bs-placement="right">Right</button> <button class="btn btn-outline-secondary" type="button" data-bs-toggle="popover" data-bs-content="Show helper text underneath the current control." data-bs-placement="bottom">Bottom</button> <button class="btn btn-outline-secondary" type="button" data-bs-toggle="popover" data-bs-content="Reserve space on the left for this control-heavy view." data-bs-placement="left">Left</button> </div>
Set popover_html=true to format body content. Bootstrap still applies its default sanitizer, so stay with allowlisted tags like <strong> and <code>.
popover_html=true
<strong>
<code>
1<button class="btn btn-outline-secondary" type="button" data-bs-toggle="popover" data-bs-title="Queue notes" data-bs-content="Review <strong>priority rules</strong> and <code>follow-up notes</code> before owners change." data-bs-placement="top" data-bs-html="true">View guidance</button>
<button class="btn btn-outline-secondary" type="button" data-bs-toggle="popover" data-bs-title="Queue notes" data-bs-content="Review <strong>priority rules</strong> and <code>follow-up notes</code> before owners change." data-bs-placement="top" data-bs-html="true">View guidance</button>
Bootstrap's focus-triggered dismiss pattern uses an <a> element with tabindex="0", data-bs-trigger="focus", and the documented popover attributes rather than a button.
<a>
tabindex="0"
data-bs-trigger="focus"
1 2 3 4 5 6 7 8 9 10 11 12<a href="#!" role="button" tabindex="0" class="btn btn-outline-secondary" data-bs-toggle="popover" data-bs-trigger="focus" data-bs-placement="top" data-bs-title="Dismissible note" data-bs-content="Click anywhere outside this panel to close it." > Dismiss details </a>
<a href="#!" role="button" tabindex="0" class="btn btn-outline-secondary" data-bs-toggle="popover" data-bs-trigger="focus" data-bs-placement="top" data-bs-title="Dismissible note" data-bs-content="Click anywhere outside this panel to close it." > Dismiss details </a>
A disabled control does not receive pointer or focus events, so attach the popover to a focusable <span> wrapper.
disabled
<span>
1 2 3<span class="d-inline-block" tabindex="0" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-content="This action is currently unavailable"> <button class="btn btn-outline-secondary" type="button" disabled>Archive</button> </span>
<span class="d-inline-block" tabindex="0" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-content="This action is currently unavailable"> <button class="btn btn-outline-secondary" type="button" disabled>Archive</button> </span>
Compare Arabic, Hebrew, and English popover triggers in the same review workflow.
1 2 3<div dir="rtl"> <button class="btn btn-outline-secondary btn-sm" type="button" data-bs-toggle="popover" data-bs-title="ملاحظة المراجعة" data-bs-content="تحقق من هذه الخطوة قبل إرسال الإشعار النهائي." data-bs-placement="bottom">فتح ملاحظة المراجعة</button> </div>
<div dir="rtl"> <button class="btn btn-outline-secondary btn-sm" type="button" data-bs-toggle="popover" data-bs-title="ملاحظة المراجعة" data-bs-content="تحقق من هذه الخطوة قبل إرسال الإشعار النهائي." data-bs-placement="bottom">فتح ملاحظة المراجعة</button> </div>
1 2 3<div dir="rtl"> <button class="btn btn-outline-secondary btn-sm" type="button" data-bs-toggle="popover" data-bs-title="הערת ביקורת" data-bs-content="בדוק את הצעד לפני שליחת ההתרעה הסופית." data-bs-placement="bottom">פתח הערת ביקורת</button> </div>
<div dir="rtl"> <button class="btn btn-outline-secondary btn-sm" type="button" data-bs-toggle="popover" data-bs-title="הערת ביקורת" data-bs-content="בדוק את הצעד לפני שליחת ההתרעה הסופית." data-bs-placement="bottom">פתח הערת ביקורת</button> </div>
1 2 3<div dir="ltr"> <button class="btn btn-outline-secondary btn-sm" type="button" data-bs-toggle="popover" data-bs-title="Review note" data-bs-content="Check this step before sending the final notice." data-bs-placement="bottom">Open review note</button> </div>
<div dir="ltr"> <button class="btn btn-outline-secondary btn-sm" type="button" data-bs-toggle="popover" data-bs-title="Review note" data-bs-content="Check this step before sending the final notice." data-bs-placement="bottom">Open review note</button> </div>
For Bootstrap's Popover plugin options, positioning, and accessibility notes, see the Bootstrap Popovers documentation.
No matching pages.
Restore the default appearance.