ツールチップTooltipExperimental
ホバーやフォーカス時に、操作名・補足・無効理由などの短い情報を表示します。
プレビュー
状態とバリエーション
プロパティ
表は横にスクロールできます
| プロパティ | 型 | 初期値 | 説明 |
|---|---|---|---|
| delayDuration | number | - | 表示までの待ち時間です。 |
| side | "top" | "right" | "bottom" | "left" | "top" | 表示したい方向です。 |
| align | "start" | "center" | "end" | "center" | トリガーに対する揃え位置です。 |
| portalContainer | HTMLElement | null | - | docs preview やアプリ内フレームに overlay を閉じ込めるための任意コンテナです。 |
設計の判断
- 中身を触れないようにして、リンクやボタンを入れられなくした。資料は「Tooltip にリンクやボタンやフォームを含める」を禁止に挙げています。ホバーで開くものにカーソルを移そうとすると閉じてしまい、たどり着けないからです。GUNJO の
TooltipContentはpointer-events-noneを持つので、中に置いたものはそもそも押せません。押せるものが要る場面はPopoverの仕事だ、という切り分けを部品の側で固定しました。 - 指で押したときも開く。資料は「必須の情報を Tooltip に入れると、モバイルとキーボードの一部の利用者が届かなくなる」を核に挙げています。GUNJO は
openOnPressを既定で入りにし、指かペンで押したときは押した瞬間に開いて2.2秒後に閉じます(pressOpenDuration)。押せない理由やアイコンだけのボタンの名前を、スマホでも読めるようにするためです。それでも読み上げには届かないので、アイコンだけのボタンにはaria-labelを別に付けます。 - 幅を
max-w-xsで頭打ちにした。資料は「テキストは短く、最大2行」と書いています。行数では止められないので、GUNJO は幅を20remで止めて中央寄せにしました。長い文を入れると縦に伸びて目に見えて不格好になるので、書いた時点で気づけます。出るまでの間は土台の Radix の既定のままで、必要ならdelayDurationを渡して変えられます。
関連コンポーネント
いつ・なぜ使うか(UIXHERO)
「いつ・なぜ使うか」の判断は、姉妹サイト UIXHERO の記事で解説しています。