Tooltip
Tooltipは、要素にホバーまたはフォーカスしたときに補足情報を表示するオーバーレイコンポーネントです。 ボタンやアイコンの説明、ショートカットキーの表示などに適しています。
Playground
<Tooltip>
<TooltipTrigger asChild>
<Button variant="outline">Hover me</Button>
</TooltipTrigger>
<TooltipContent>
Tooltip text
</TooltipContent>
</Tooltip>Variants
Sizes
smdefault| Size | フォント | パディング | 用途 | プレビュー |
|---|---|---|---|---|
sm | 12px (text-xs) | 4px 10px | コンパクトな補足情報 | |
default | 13px (text-sm) | 6px 12px | 標準(デフォルト) |
Features
Side Placement
4方向(top, right, bottom, left)に配置できます。デフォルトはtopです。
Arrow
showArrowでトリガーを指す矢印の表示を制御できます。デフォルトは表示です。
Alignment
alignでトリガーに対する配置を調整できます。
Provider
TooltipProviderでグローバルな遅延設定を管理できます。 連続ホバー時にskipDelayDurationにより次のツールチップが即座に表示されます。
API
Component Structure
Tooltip— Radix Tooltip.Triggerホバー/フォーカス対象.ContentPropsツールチップ本体(variant・size・side・arrow).Arrow矢印インジケーター(Content内蔵).Portalポータル(Content内蔵).ProviderPropsグローバル遅延設定Props
Tooltip (Root)
openundefinedbooleanツールチップの表示状態(制御モード)
defaultOpenfalseboolean初期表示状態(非制御モード)
onOpenChangeundefined(open: boolean) => void表示状態が変更されたときのコールバック
delayDuration200numberホバーから表示までの遅延時間(ms)
disableHoverableContentfalsebooleanコンテンツ上のホバーで表示を維持しない
| Name | Type | Default | Description |
|---|---|---|---|
open | boolean | undefined | ツールチップの表示状態(制御モード) |
defaultOpen | boolean | false | 初期表示状態(非制御モード) |
onOpenChange | (open: boolean) => void | undefined | 表示状態が変更されたときのコールバック |
delayDuration | number | 200 | ホバーから表示までの遅延時間(ms) |
disableHoverableContent | boolean | false | コンテンツ上のホバーで表示を維持しない |
TooltipContent
variant"default""default" | "inverted"外観バリアント(default: ダーク背景+シャドウ、inverted: グラスモーフィズム)
size"default""sm" | "default"テキストサイズ
side"top""top" | "right" | "bottom" | "left"表示位置
sideOffset6numberトリガーからの距離(px)
align"center""start" | "center" | "end"トリガーに対するアラインメント
showArrowtrueboolean矢印の表示
| Name | Type | Default | Description |
|---|---|---|---|
variant | "default" | "inverted" | "default" | 外観バリアント(default: ダーク背景+シャドウ、inverted: グラスモーフィズム) |
size | "sm" | "default" | "default" | テキストサイズ |
side | "top" | "right" | "bottom" | "left" | "top" | 表示位置 |
sideOffset | number | 6 | トリガーからの距離(px) |
align | "start" | "center" | "end" | "center" | トリガーに対するアラインメント |
showArrow | boolean | true | 矢印の表示 |
TooltipProvider
delayDuration700numberグローバルなホバー遅延時間(ms)
skipDelayDuration300number連続ホバー時の遅延スキップ時間(ms)
disableHoverableContentfalsebooleanグローバルにコンテンツホバー維持を無効化
| Name | Type | Default | Description |
|---|---|---|---|
delayDuration | number | 700 | グローバルなホバー遅延時間(ms) |
skipDelayDuration | number | 300 | 連続ホバー時の遅延スキップ時間(ms) |
disableHoverableContent | boolean | false | グローバルにコンテンツホバー維持を無効化 |
Tooltip vs Popover
似たフローティングUIですが、用途とインタラクションが異なります。
トリガー
Tooltip: ホバー / フォーカス
Popover: クリック
コンテンツ
Tooltip: テキストのみ(短い補足)
Popover: リッチ(フォーム、ボタン、リンク)
インタラクション
Tooltip: なし(読むだけ)
Popover: あり(操作可能)
デフォルト方向
Tooltip: top(読み流れを邪魔しない)
Popover: bottom(自然な上→下の操作)
閉じ方
Tooltip: ホバー解除で自動
Popover: 外部クリック / Esc / Closeボタン
ARIA
Tooltip: role="tooltip"
Popover: aria-expanded + aria-controls
| 特徴 | Tooltip | Popover |
|---|---|---|
| トリガー | ホバー / フォーカス | クリック |
| コンテンツ | テキストのみ(短い補足) | リッチ(フォーム、ボタン、リンク) |
| インタラクション | なし(読むだけ) | あり(操作可能) |
| デフォルト方向 | top | bottom |
| 閉じ方 | ホバー解除で自動 | 外部クリック / Esc / Close |
| ARIA | role="tooltip" | aria-expanded + aria-controls |
使い分けのポイント: Tooltipは「ホバーで表示される短い補足テキスト」に使用。 リンクやボタンなどインタラクティブなコンテンツが必要な場合はPopoverを使用します。