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.