ツールチップTooltipExperimental

ホバーやフォーカス時に、操作名・補足・無効理由などの短い情報を表示します。

プレビュー

状態とバリエーション

アイコン操作

アイコンだけのボタンに操作名を補足します。

ショートカット付き

操作名とキーボードショートカットを一緒に伝えます。

無効理由

押せない理由を hover/focus で説明します。

長めの補足

長すぎる場合は Popover へ分ける判断材料にします。

表示位置

上下左右の表示位置を指定できます。

プロパティ

表は横にスクロールできます
プロパティ初期値説明
delayDurationnumber-表示までの待ち時間です。
side"top" | "right" | "bottom" | "left""top"表示したい方向です。
align"start" | "center" | "end""center"トリガーに対する揃え位置です。
portalContainerHTMLElement | null-docs preview やアプリ内フレームに overlay を閉じ込めるための任意コンテナです。

設計の判断

  • 中身を触れないようにして、リンクやボタンを入れられなくした。資料は「Tooltip にリンクやボタンやフォームを含める」を禁止に挙げています。ホバーで開くものにカーソルを移そうとすると閉じてしまい、たどり着けないからです。GUNJO の TooltipContentpointer-events-none を持つので、中に置いたものはそもそも押せません。押せるものが要る場面は Popover の仕事だ、という切り分けを部品の側で固定しました。
  • 指で押したときも開く。資料は「必須の情報を Tooltip に入れると、モバイルとキーボードの一部の利用者が届かなくなる」を核に挙げています。GUNJO は openOnPress を既定で入りにし、指かペンで押したときは押した瞬間に開いて2.2秒後に閉じます(pressOpenDuration)。押せない理由やアイコンだけのボタンの名前を、スマホでも読めるようにするためです。それでも読み上げには届かないので、アイコンだけのボタンには aria-label を別に付けます。
  • 幅を max-w-xs で頭打ちにした。資料は「テキストは短く、最大2行」と書いています。行数では止められないので、GUNJO は幅を20remで止めて中央寄せにしました。長い文を入れると縦に伸びて目に見えて不格好になるので、書いた時点で気づけます。出るまでの間は土台の Radix の既定のままで、必要なら delayDuration を渡して変えられます。

いつ・なぜ使うか(UIXHERO)

「いつ・なぜ使うか」の判断は、姉妹サイト UIXHERO の記事で解説しています。