Skip to content

Tooltip

A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.

Hover me

Installation

bash
npx @galaxy-stack/nebula-cli@latest add tooltip
bash
pnpm dlx @galaxy-stack/nebula-cli@latest add tooltip
bash
yarn dlx @galaxy-stack/nebula-cli@latest add tooltip
bash
bunx @galaxy-stack/nebula-cli@latest add tooltip
bash
# If you have installed galaxy-design globally
galaxy-design add tooltip

Usage

API Reference

Props

PropTypeDefaultDescriptionFrameworks
openbooleanundefinedControlled open stateReact, Vue, Angular
defaultOpenbooleanfalseUncontrolled initial open stateAll
onOpenChange(open: boolean) => void-Called when open state changesReact, Vue, Angular
delayDurationnumber200Delay before showing tooltipAll
disabledbooleanfalseDisables the tooltipAll
contentstring | ReactNode-Tooltip contentAll
side'top' | 'bottom' | 'left' | 'right''top'Side to render tooltipReact, Vue, Angular
sideOffsetnumber4Offset from sideReact, Vue, Angular
classNamestring''CSS class namesReact, React Native
classstring''CSS class namesVue, Angular, Flutter

Subcomponents

TooltipTrigger

PropTypeDefaultDescriptionFrameworks
asChildbooleanfalseRender as child elementReact, Vue, Angular
classNamestring''CSS class namesReact, React Native
classstring''CSS class namesVue, Angular, Flutter

TooltipContent

PropTypeDefaultDescriptionFrameworks
side'top' | 'bottom' | 'left' | 'right''top'Side to render contentReact, Vue, Angular
sideOffsetnumber4Offset from sideReact, Vue, Angular
asChildbooleanfalseRender as child elementReact, Vue, Angular
classNamestring''CSS class namesReact, React Native
classstring''CSS class namesVue, Angular, Flutter

TooltipProvider

PropTypeDefaultDescriptionFrameworks
delayDurationnumber200Default delay for all tooltipsReact, Vue, Angular
skipDelayDurationnumber300Delay before skippingReact, Vue, Angular

Vue

vue
<script setup lang="ts">
import { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from '@/components/ui'
</script>

<template>
  <TooltipProvider>
    <Tooltip>
      <TooltipTrigger>Hover me</TooltipTrigger>
      <TooltipContent>
        <p>Add to library</p>
      </TooltipContent>
    </Tooltip>
  </TooltipProvider>
</template>

React

tsx
import { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from '@/components/ui'

export default function TooltipDemo() {
  return (
    <TooltipProvider>
      <Tooltip>
        <TooltipTrigger>Hover me</TooltipTrigger>
        <TooltipContent>
          <p>Add to library</p>
        </TooltipContent>
      </Tooltip>
    </TooltipProvider>
  )
}

Angular

typescript
import { Component } from '@angular/core';
import { TooltipComponent } from '@/components/ui';

@Component({
  selector: 'app-tooltip-demo',
  standalone: true,
  imports: [TooltipComponent],
  template: `
    <ui-tooltip>
      <button trigger>Hover me</button>
      <div content>Add to library</div>
    </ui-tooltip>
  `
})
export class TooltipDemoComponent {}

Accessibility

  • Keyboard Navigation: [TODO]
  • Screen Reader: [TODO]
  • Focus Management: [TODO]
  • WCAG Compliance: WCAG 2.1 Level AA compliant

Author

Bùi Trọng Hiếu (kevinbui)

License

MIT © 2025 Bùi Trọng Hiếu (kevinbui)

Released under the MIT License.