Popovers and Tooltips

Back

Loading concept...

🎈 Popovers & Tooltips: Your Website’s Friendly Helpers

Imagine you have a magic sticky note that appears when you need help, then disappears when you don’t. That’s exactly what Popovers and Tooltips do in Bootstrap!


🌟 The Big Picture

Think of your website like a museum:

  • Tooltips = Quick labels next to each painting (just the title)
  • Popovers = Detailed information cards with the artist’s story

Both pop up to help visitors, but one gives a quick hint, the other tells a story!


📌 Popovers: The Detailed Helper

A Popover is like a speech bubble in a comic book. When you click something, a little box appears with a title AND a message inside.

How to Create a Popover

<button type="button"
  data-bs-toggle="popover"
  data-bs-title="Hello!"
  data-bs-content="I am a popover!">
  Click Me
</button>

What happens:

  1. User clicks the button
  2. A bubble appears with “Hello!” at the top
  3. Below that, it says “I am a popover!”

🔌 Turn On Your Popovers

Popovers are shy! They need a little push to work. Add this JavaScript:

// Wake up all popovers!
const popoverList =
  document.querySelectorAll(
    '[data-bs-toggle="popover"]'
  );
popoverList.forEach(el => {
  new bootstrap.Popover(el);
});

🧭 Popover Directions

Popovers can appear in 4 directions, like a compass:

graph TD A["🔼 TOP"] --> B["Button"] B --> C["🔽 BOTTOM"] D["◀️ LEFT"] --> B B --> E["▶️ RIGHT"]

Set the Direction

Use data-bs-placement to tell the popover where to go:

<!-- Appears on top -->
<button data-bs-toggle="popover"
  data-bs-placement="top"
  data-bs-content="I'm above!">
  Top
</button>

<!-- Appears on right -->
<button data-bs-toggle="popover"
  data-bs-placement="right"
  data-bs-content="I'm on the side!">
  Right
</button>

<!-- Appears at bottom -->
<button data-bs-toggle="popover"
  data-bs-placement="bottom"
  data-bs-content="I'm below!">
  Bottom
</button>

<!-- Appears on left -->
<button data-bs-toggle="popover"
  data-bs-placement="left"
  data-bs-content="I'm on this side!">
  Left
</button>

👆 Dismiss on Click (Outside)

Normally, you click a button to open a popover, then click it again to close. But what if you want it to close when clicking ANYWHERE outside?

The Magic Trick

Add data-bs-trigger="focus" and use a link styled as button:

<a tabindex="0"
  class="btn btn-primary"
  role="button"
  data-bs-toggle="popover"
  data-bs-trigger="focus"
  data-bs-title="Dismissible"
  data-bs-content="Click outside to close me!">
  Click Me
</a>

Why a link (<a>) and not a button?

  • Links can receive “focus” and lose it when you click away
  • It’s like a light switch that turns off when you walk away!

🚫 Popovers on Disabled Elements

Here’s a tricky situation: Disabled buttons can’t be clicked!

The Problem:

<!-- This WON'T work! -->
<button disabled
  data-bs-toggle="popover">
  Can't Click Me
</button>

The Solution: Wrap it in a container!

<!-- This WORKS! -->
<span class="d-inline-block"
  tabindex="0"
  data-bs-toggle="popover"
  data-bs-content="Button is disabled">
  <button class="btn btn-primary"
    disabled>
    Disabled Button
  </button>
</span>

Think of it like putting a gift in a box. You can’t touch the gift, but you CAN touch the box!


💬 Tooltips: The Quick Whisperer

Tooltips are like tiny Post-it notes. They show up when you hover (or tap on mobile), and they only have ONE piece of information.

Create a Simple Tooltip

<button type="button"
  data-bs-toggle="tooltip"
  data-bs-title="I'm a tooltip!">
  Hover over me
</button>

🔌 Turn On Your Tooltips

Just like popovers, tooltips need to be activated:

// Wake up all tooltips!
const tooltipList =
  document.querySelectorAll(
    '[data-bs-toggle="tooltip"]'
  );
tooltipList.forEach(el => {
  new bootstrap.Tooltip(el);
});

🧭 Tooltip Directions

Tooltips also appear in 4 directions!

<!-- Top (default) -->
<button data-bs-toggle="tooltip"
  data-bs-placement="top"
  data-bs-title="Top tip!">
  Top
</button>

<!-- Right -->
<button data-bs-toggle="tooltip"
  data-bs-placement="right"
  data-bs-title="Right tip!">
  Right
</button>

<!-- Bottom -->
<button data-bs-toggle="tooltip"
  data-bs-placement="bottom"
  data-bs-title="Bottom tip!">
  Bottom
</button>

<!-- Left -->
<button data-bs-toggle="tooltip"
  data-bs-placement="left"
  data-bs-title="Left tip!">
  Left
</button>

✨ Tooltip with HTML Inside

Want to make your tooltip fancy? Add bold text, italics, or even links!

Enable HTML Content

<button data-bs-toggle="tooltip"
  data-bs-html="true"
  data-bs-title="<b>Bold</b> and
    <em>italic</em> text!">
  Fancy Tooltip
</button>

Important: Add data-bs-html="true" to unlock HTML powers!

Example with a Link

<button data-bs-toggle="tooltip"
  data-bs-html="true"
  data-bs-title="Visit
    <a href='#'>here</a>">
  Link Inside
</button>

🚫 Tooltips on Disabled Elements

Same trick as popovers! Wrap the disabled element:

<span class="d-inline-block"
  tabindex="0"
  data-bs-toggle="tooltip"
  data-bs-title="Can't click this">
  <button class="btn btn-secondary"
    disabled>
    Disabled
  </button>
</span>

The wrapper becomes the “touchable surface” for your tooltip!


🎯 Quick Comparison

Feature Popover Tooltip
Content Title + Body Single line
Trigger Click Hover/Focus
Use For Detailed info Quick hints
HTML Yes Needs setting

🚀 Real-Life Examples

Where to use Tooltips:

  • ℹ️ Icon explanations
  • 🔘 Button labels
  • ❓ Help hints

Where to use Popovers:

  • 📝 Form field help
  • 👤 User profile previews
  • 📊 Data explanations

🎉 You Did It!

Now you know how to create:

  • ✅ Popovers that appear in any direction
  • ✅ Popovers that close when clicking outside
  • ✅ Popovers on disabled buttons
  • ✅ Tooltips in all four directions
  • ✅ Tooltips with HTML content
  • ✅ Tooltips on disabled elements

You’re ready to add helpful pop-up messages to your website! 🎈

Loading story...

Story - Premium Content

Please sign in to view this story and start learning.

Upgrade to Premium to unlock full access to all stories.

Stay Tuned!

Story is coming soon.

Story Preview

Story - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.