Usage
Use a Button or any other component in the default slot of the Tooltip.
Text
Use the text prop to set the content of the Tooltip.
<template>
  <UTooltip text="Open on GitHub">
    <UButton label="Open" color="neutral" variant="subtle" />
  </UTooltip>
</template>
Kbds
Use the kbds prop to render Kbd components in the Tooltip.
<template>
  <UTooltip text="Open on GitHub" :kbds="['meta', 'G']">
    <UButton label="Open" color="neutral" variant="subtle" />
  </UTooltip>
</template>
meta that displays as ⌘ on macOS and Ctrl on other platforms.Delay
Use the delay-duration prop to change the delay before the Tooltip appears. For example, you can make it appear instantly by setting it to 0.
<template>
  <UTooltip :delay-duration="0" text="Open on GitHub">
    <UButton label="Open" color="neutral" variant="subtle" />
  </UTooltip>
</template>
tooltip.delayDuration option in the App component.Content
Use the content prop to control how the Tooltip content is rendered, like its align or side for example.
<template>
  <UTooltip
    :content="{
      align: 'center',
      side: 'bottom',
      sideOffset: 8
    }"
    text="Open on GitHub"
  >
    <UButton label="Open" color="neutral" variant="subtle" />
  </UTooltip>
</template>
Arrow
Use the arrow prop to display an arrow on the Tooltip.
<template>
  <UTooltip arrow text="Open on GitHub">
    <UButton label="Open" color="neutral" variant="subtle" />
  </UTooltip>
</template>
Disabled
Use the disabled prop to disable the Tooltip.
<template>
  <UTooltip disabled text="Open on GitHub">
    <UButton label="Open" color="neutral" variant="subtle" />
  </UTooltip>
</template>
Examples
Control open state
You can control the open state by using the default-open prop or the v-model:open directive.
<script setup lang="ts">
const open = ref(false)
defineShortcuts({
  o: () => open.value = !open.value
})
</script>
<template>
  <UTooltip v-model:open="open" text="Open on GitHub">
    <UButton label="Open" color="neutral" variant="subtle" />
  </UTooltip>
</template>
API
Props
| Prop | Default | Type | 
|---|---|---|
| text | 
 The text content of the tooltip. | |
| kbds | 
 The keyboard keys to display in the tooltip. | |
| content | 
 | 
 The content of the tooltip. | 
| arrow | 
 | 
 Display an arrow alongside the tooltip. | 
| portal | 
 | 
 Render the tooltip in a portal. | 
| defaultOpen | 
 The open state of the tooltip when it is initially rendered. Use when you do not need to control its open state. | |
| open | 
 The controlled open state of the tooltip. | |
| delayDuration | 
 | 
 Override the duration given to the  | 
| disableHoverableContent | 
 Prevents Tooltip.Content from remaining open when hovering. Disabling this has accessibility consequences. Inherits from Tooltip.Provider. | |
| disableClosingTrigger | 
 | 
 When  | 
| disabled | 
 | 
 When  | 
| ignoreNonKeyboardFocus | 
 | 
 Prevent the tooltip from opening if the focus did not come from
the keyboard by matching against the  | 
| ui | 
 | 
Slots
| Slot | Type | 
|---|---|
| default | 
 | 
| content | 
 | 
Emits
| Event | Type | 
|---|---|
| update:open | 
 | 
Theme
export default defineAppConfig({
  ui: {
    tooltip: {
      slots: {
        content: 'flex items-center gap-1 bg-[var(--ui-bg)] text-[var(--ui-text-highlighted)] shadow-sm rounded-[var(--ui-radius)] ring ring-[var(--ui-border)] h-6 px-2 py-1 text-xs select-none data-[state=delayed-open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in]',
        arrow: 'fill-[var(--ui-border)]',
        text: 'truncate',
        kbds: "hidden lg:inline-flex items-center shrink-0 gap-0.5 before:content-['·'] before:me-0.5",
        kbdsSize: 'sm'
      }
    }
  }
})