The Tooltip component provides contextual information when users hover over or focus on an element. It's a great way to provide additional details, explanations, or help text without cluttering the interface.
import { Tooltip } from '@dashflowx/core'export default function TooltipExample() {return (<TooltiptooltipTrigger={<button>Hover me</button>}tooltipContent="This is a helpful tooltip"/>)}
Preview:
| Prop | Type | Default | Description |
|---|---|---|---|
tooltipTrigger | React.ReactNode | - | The element that triggers the tooltip |
tooltipContent | React.ReactNode | - | The content to display in the tooltip |
side | 'top' | 'bottom' | 'left' | 'right' | 'top' | The side where the tooltip appears |
align | 'start' | 'center' | 'end' | 'center' | The alignment of the tooltip |
className | string | '' | Additional CSS classes for the tooltip |
<TooltiptooltipTrigger={<button>Hover me</button>}tooltipContent="This is a basic tooltip"/>
Preview:
<div className="flex space-x-4"><TooltiptooltipTrigger={<button>Top</button>}tooltipContent="Tooltip on top"side="top"/><TooltiptooltipTrigger={<button>Bottom</button>}tooltipContent="Tooltip on bottom"side="bottom"/><TooltiptooltipTrigger={<button>Left</button>}tooltipContent="Tooltip on left"side="left"/><TooltiptooltipTrigger={<button>Right</button>}tooltipContent="Tooltip on right"side="right"/></div>
Preview:
<TooltiptooltipTrigger={<button>Rich Content</button>}tooltipContent={<div><h4 className="font-semibold">Feature Details</h4><p className="text-sm">This feature provides advanced functionality.</p></div>}/>
Preview:
<TooltiptooltipTrigger={<button>Custom Style</button>}tooltipContent="Custom styled tooltip"className="bg-blue-500 text-white border-2 border-blue-300"/>
Preview:
<div className="flex items-center space-x-2"><span>Complex Setting</span><TooltiptooltipTrigger={<span className="text-gray-400 cursor-help">?</span>}tooltipContent="This setting controls the advanced behavior of the feature"/></div>
<TooltiptooltipTrigger={<button>Delete</button>}tooltipContent="This action cannot be undone"/>
<div className="space-y-2"><label className="flex items-center space-x-2"><span>Password</span><TooltiptooltipTrigger={<span className="text-gray-400 cursor-help">ℹ</span>}tooltipContent="Password must be at least 8 characters with numbers and symbols"/></label><input type="password" className="border rounded px-3 py-2" /></div>
<nav className="flex space-x-4"><TooltiptooltipTrigger={<a href="/dashboard">Dashboard</a>}tooltipContent="View your main dashboard"/><TooltiptooltipTrigger={<a href="/settings">Settings</a>}tooltipContent="Configure your preferences"/><TooltiptooltipTrigger={<a href="/help">Help</a>}tooltipContent="Get help and support"/></nav>
<div className="flex items-center space-x-2"><div className="w-3 h-3 bg-green-500 rounded-full"></div><span>Online</span><TooltiptooltipTrigger={<span className="text-gray-400 cursor-help">ℹ</span>}tooltipContent="Last seen 2 minutes ago"/></div>
Keep tooltip content clear and concise.
// ✅ Good - Clear and concise<TooltiptooltipTrigger={<button>Save</button>}tooltipContent="Save your changes"/>// ❌ Avoid - Too verbose<TooltiptooltipTrigger={<button>Save</button>}tooltipContent="Click this button to save all the changes you have made to the current document or file"/>
Use appropriate elements as triggers.
// ✅ Good - Appropriate trigger<TooltiptooltipTrigger={<span className="text-gray-400 cursor-help">?</span>}tooltipContent="Help text"/>// ✅ Good - Button with tooltip<TooltiptooltipTrigger={<button>Action</button>}tooltipContent="Perform this action"/>
Use consistent positioning throughout your application.
// ✅ Good - Consistent positioning<TooltiptooltipTrigger={<button>Button 1</button>}tooltipContent="Tooltip 1"side="top"/><TooltiptooltipTrigger={<button>Button 2</button>}tooltipContent="Tooltip 2"side="top"/>
Ensure tooltips are accessible to all users.
// ✅ Good - Accessible tooltip<TooltiptooltipTrigger={<button aria-describedby="tooltip-1">Button</button>}tooltipContent="Accessible tooltip content"/>
Don't overuse tooltips - only when they add value.
// ✅ Good - Useful tooltip<TooltiptooltipTrigger={<button>Advanced Settings</button>}tooltipContent="Configure advanced options"/>// ❌ Avoid - Unnecessary tooltip<TooltiptooltipTrigger={<button>Save</button>}tooltipContent="Save"/>
You can customize the tooltip appearance using CSS classes:
<TooltiptooltipTrigger={<button>Custom</button>}tooltipContent="Custom styled tooltip"className="bg-purple-500 text-white border-2 border-purple-300 rounded-lg"/>
Use different colors for different contexts:
// Success tooltip<TooltiptooltipTrigger={<button>Success</button>}tooltipContent="Operation completed successfully"className="bg-green-500 text-white"/>// Warning tooltip<TooltiptooltipTrigger={<button>Warning</button>}tooltipContent="Please review before proceeding"className="bg-yellow-500 text-white"/>// Error tooltip<TooltiptooltipTrigger={<button>Error</button>}tooltipContent="Something went wrong"className="bg-red-500 text-white"/>
Use rich content for more detailed tooltips:
<TooltiptooltipTrigger={<button>Rich Tooltip</button>}tooltipContent={<div className="max-w-xs"><h4 className="font-semibold mb-1">Feature Title</h4><p className="text-sm">Detailed description of the feature and its benefits.</p><div className="mt-2 text-xs text-gray-300"><p>• Benefit 1</p><p>• Benefit 2</p></div></div>}/>
Show tooltips conditionally:
const showTooltip = userLevel === 'beginner';return (<TooltiptooltipTrigger={<button>Advanced Feature</button>}tooltipContent={showTooltip ? "This is an advanced feature" : undefined}/>);
Use dynamic content in tooltips:
<TooltiptooltipTrigger={<button>Status</button>}tooltipContent={`Last updated: ${new Date().toLocaleString()}`}/>
Use multiple tooltips in a single component:
<div className="flex space-x-4"><TooltiptooltipTrigger={<button>Option 1</button>}tooltipContent="First option description"/><TooltiptooltipTrigger={<button>Option 2</button>}tooltipContent="Second option description"/><TooltiptooltipTrigger={<button>Option 3</button>}tooltipContent="Third option description"/></div>
- Popover: For more complex overlay content
- Alert: For important messages
- Badge: For status indicators
- Button: For interactive elements
- Icon: For visual indicators
For the complete API reference and advanced usage patterns, see the Tooltip API documentation.
