Tooltip

Easily provide hints or display details for users, enhancing usability and clarity.
Installation
API Reference
Important Note
This is the documentation for gluestack-ui v2 (beta). For @gluestack-ui/themed (stable) documentation, refer to gluestack-ui v1.
This is an illustration of Tooltip component.
placement
<Tooltip
placement="top"
trigger={(triggerProps) => {
return (
<Button className="p-4" {...triggerProps}>
<ButtonText>Hover on me!</ButtonText>
</Button>
)
}}
>
<TooltipContent>
<TooltipText>Tooltip</TooltipText>
</TooltipContent>
</Tooltip>

Installation

Run the following command:

npx gluestack-ui add tooltip

API Reference

To use this component in your project, include the following import statement in your file.
import { Tooltip } from "@/components/ui/tooltip"
anatomy-image
export default () => (
<Tooltip>
<TooltipContent>
<TooltipText />
</TooltipContent>
</Tooltip>
)

Component Props

This section provides a comprehensive reference list for the component props, detailing descriptions, properties, types, and default behavior for easy project integration.

Tooltip

It inherits all the properties of React Native's View component.
Prop
Type
Default
Description
isOpen
boolean
false
Whether the tooltip is opened. Useful for controlling the open state.
isDisabled
boolean
false
Whether the tooltip is disabled.
defaultIsOpen
boolean
false
If true, the popover will be opened by default.
onOpen
() => void
true
This function will be invoked when the tooltip is opened.
onClose
() => void
-
This function will be invoked when tooltip is closed. It will also be called when the user attempts to close the tooltip via Escape key or backdrop press.
openDelay
number
0
Duration in ms to wait till displaying the tooltip.
closeDelay
number
0
Duration in ms to wait till hiding the tooltip.
placement
"bottom" | "top" | "right" | "left" | "top left" | "top right" | "bottom left" | "bottom right" | "right top" | "right bottom" | "left top" | "left bottom"
bottom left
Tooltip placement
children
any
-
The content to display inside the tooltip.
closeOnClick
boolean
true
Whether tooltip should be closed on Trigger click.
trigger
() => any
-
Function that returns a React Element. This element will be used as a Trigger for the tooltip.
offset
number
10
Distance between the trigger and the tooltip.
crossOffset
number
-
The additional offset applied along the cross axis between the element and its trigger element.
shouldOverlapWithTrigger
boolean
false
Determines whether tooltip content should overlap with the trigger.
shouldFlip
boolean
true
Whether the element should flip its orientation (e.g. top to bottom or left to right) when there is insufficient room for it to render completely.
closeOnOverlayClick
boolean
true
Closes tooltip when clicked outside.

TooltipText

Contains all text related layout style props and actions. It inherits all the properties of React Native's Text component.

TooltipContent

Contains all backdrop related layout style props and actions. It inherits all the properties of React Native's View component.

Accessibility

We have outlined the various features that ensure the Tooltip component is accessible to all users, including those with disabilities. These features help ensure that your application is inclusive and meets accessibility standards. It adheres to the WAI-ARIA design pattern.

Examples

Tooltip with Heading

A tooltip component with an avatar is a user interface element that displays a small pop-up box of additional information when the user hovers over or interacts with an avatar or an icon.
function App() {
return (
<Box className="justify-center h-96">
<AvatarGroup className="flex-row">
<Tooltip
placement="top"
trigger={(triggerProps) => {
return (
<Avatar
size="lg"
{...triggerProps}
className="border-outline-0 border-2 bg-primary-600"
>
<AvatarFallbackText>+ 3</AvatarFallbackText>
</Avatar>
)
}}
>
<TooltipContent className="p-4 rounded-md max-w-72 bg-background-50">
<VStack space="md" className="rounded-lg">
<Heading size="sm">View all members of this channel</Heading>
<Center>
<Text className="font-sm">
Includes John, Sarah, Mike, Emily
</Text>
<Text className="font-sm">and David</Text>
</Center>
</VStack>
</TooltipContent>
</Tooltip>
<Avatar size="lg" className="border-outline-0 border-2 bg-emerald-600">
<AvatarFallbackText className="text-white">
Sandeep Srivastva
</AvatarFallbackText>
</Avatar>
<Avatar size="lg" className="border-outline-0 border-2 bg-cyan-600">
<AvatarFallbackText className="text-white">
Arjun Kapoor
</AvatarFallbackText>
</Avatar>
<Avatar size="lg" className="border-outline-0 border-2 bg-indigo-600">
<AvatarFallbackText className="text-white">
Ritik Sharma{" "}
</AvatarFallbackText>
</Avatar>
</AvatarGroup>
</Box>
)
}

Tooltip with Icon

A tooltip component with an icon is a user interface element that provides contextual information or explanatory text when the user hovers over or interacts with an icon.
function App() {
return (
<Box className="h-96 justify-center">
<Tooltip
placement="top"
trigger={(triggerProps) => {
return (
<Avatar size="md" {...triggerProps} className="bg-primary-600">
<Icon as={EditIcon} size="sm" className="text-white" />
</Avatar>
)
}}
>
<TooltipContent className="bg-background-50 rounded-md">
<Box className="p-2.5">
<Text size="sm">New message</Text>
<HStack space="xs" className="p-1 ml-3">
<Avatar size="xs" className="bg-gray-500 rounded">
<Icon as={Command} className="text-typography-0" />
</Avatar>
<Avatar size="xs" className="bg-gray-500 rounded">
<AvatarFallbackText>N</AvatarFallbackText>
</Avatar>
</HStack>
</Box>
</TooltipContent>
</Tooltip>
</Box>
)
}