Popover

Quick start guide and documentation

3-Minute Setup

1 Include Files (Add to <head>)

Required Files • HTML


                    

2 Create Your First Popover

Basic Popover • HTML






                    
✓ Done! You now have a working popover. Click the button to see it!

Common Patterns

1. Help Icon Tooltip (Hover)

Code • HTML




                        

2. Dashboard Metric Info

Code • HTML

Active Users

3. Destructive Action Confirmation

Code • HTML




                        

4. Feature Tour Step

Code • JavaScript

// Show programmatically for tour
const trigger = document.getElementById('feature-button');
RSL.Popover.show(trigger, {
    placement: 'bottom',
    animation: 'scale'
});
                        

5. Hover for More Details

Code • HTML


    Premium Plan



                        

6. Auto Positioning with Collision Detection

Code • HTML




                        
Tip: Use placement="auto" for elements near viewport edges. The popover will automatically choose the best position (top, bottom, left, or right) to stay visible.

Quick Reference

Data Attributes

Attribute Values Description
data-toggle popover | tooltip Required. Enables popover/tooltip
data-placement top | bottom | left | right | auto Where to show popover
data-trigger click | hover | focus | manual How to trigger popover
aria-describedby ID of popover element Links trigger to popover (required)
data-animation fade | scale | none Animation type
data-offset Number (pixels) Distance from trigger (default: 10)

Color Variants

Class Color Best For
popover-primary Brand Purple Key actions, brand messaging
popover-success Green Confirmations, positive feedback
popover-danger Red Warnings, destructive actions
popover-warning Yellow Cautions, important notices
popover-info Cyan Helpful information, tips
popover-dark Dark Gray Dark mode interfaces

Size Modifiers

Class Max Width
rsl-popover-sm 200px
rsl-popover 276px (default)
rsl-popover-lg 400px

JavaScript API

All API Methods • JavaScript

// Get trigger element
const trigger = document.getElementById('my-trigger');

// Show popover
RSL.Popover.show(trigger, {
    placement: 'top',      // 'top', 'bottom', 'left', 'right', 'auto'
    offset: 10,            // Distance from trigger
    animation: 'fade',     // 'fade', 'scale', 'none'
    onShow: function(popover, trigger) {
        console.log('Popover shown');
    },
    onHide: function(popover, trigger) {
        console.log('Popover hidden');
    }
});

// Hide popover
RSL.Popover.hide(trigger);

// Toggle popover
RSL.Popover.toggle(trigger);

// Hide all popovers
RSL.Popover.hideAll();

// Update popover position (useful after scroll/resize)
RSL.Popover.updatePosition(trigger);

// Update all active popovers
RSL.Popover.updateAll();

// Re-initialize popovers (useful for dynamically added elements)
RSL.Popover.init();
                    

Custom Events

Listen to Events • JavaScript

// Listen for popover show
document.addEventListener('popover:show', function(e) {
    const { popover, trigger } = e.detail;
    console.log('Popover shown:', popover);
});

// Listen for popover hide
document.addEventListener('popover:hide', function(e) {
    const { popover, trigger } = e.detail;
    console.log('Popover hidden:', popover);
});
                    

Troubleshooting

Popover Won't Show?

Position is Wrong?

Popover Behind Other Elements?

Click Outside Not Closing?

Pro Tips

✨ Tip 1: Use placement="auto" for popovers near viewport edges—it automatically finds the best position
✨ Tip 2: For tooltips, use data-toggle="tooltip" instead of data-toggle="popover" for automatic hover behavior
✨ Tip 3: Always include the arrow div—it provides visual connection to the trigger
✨ Tip 4: For long content, use rsl-popover-lg class for a wider popover
✨ Tip 5: Add data-offset="20" to increase space between trigger and popover
✨ Tip 6: Use popover:show and popover:hide events for analytics tracking

ADA Compliance Built-In

Popovers are fully accessible out of the box:

  • ✅ ARIA roles (role="tooltip") for screen readers
  • aria-describedby links trigger to content
  • aria-expanded indicates open/closed state
  • ✅ Keyboard navigation (Escape closes popovers)
  • ✅ Focus management for interactive popovers
  • ✅ High contrast colors meet WCAG AA standards

Next Steps

See It In Action

Open popover.html in your browser

Copy Examples

Use playground.html as a template

Advanced Use

Combine with RSL grids, cards, and modals for powerful UIs