Tooltip

Tooltipはユーザーが能動的に表示しなければならない、拡大表示時に領域外に表示されてしまうなどの課題があるため、安易な使用はお勧めしません。基本的にはTooltip以外のUIを使用することを検討してください。

Tooltipコンポーネントは、UI上のスペースが限られている場合に、補足テキストを一時的に表示するために使います。

  • 補足的な説明テキストを表示する場合
  • アイコンだけのボタンにラベルを表示する場合
  • 省略されたテキストを全文表示する場合

使用上の注意

Tooltipの使用を避けるケース

Tooltip内の情報は隠れるため、操作に必要な情報の表示への使用は避けましょう。ユーザーが把握しておかないと操作が進められないような重要な情報は、常に表示することを検討してください。

重要な情報とは、フォームの入力に必要な情報などが該当します。具体例は次の通りです。

  • パスワードに使用できる文字や、エラーになる入力値などの入力要件
  • 入力エラーとなった際のエラーメッセージ
  • 操作補助になる情報(ショートカットなど)

例外

  • ユーザーの操作過程で「確認が必須ではない」程度の付加的な情報を表示する目的での使用
  • Tooltipによる表示が提供されているコンポーネントにおいて、利用基準に沿った使用
    • LineClamp
      • 折り返して表示することがどうしても難しい場合
    • SearchInput
      • 検索キーワードに該当する検索結果が得られなかったとき、再検索を行なうめのヒントを見える場所に必ず表示したうえで、補助としてTooltipのメッセージを使う場合
    • ButtondisabledDetail props 使用時
      • DropdownMenuButton 内のButtonで使う場合(配置できるスペースがドロップダウン内に限られるため仕方なく使う)
      • Button単独の場合でも、ユーザーの操作過程で「確認が必須ではない」程度の付加的な情報を表示する目的で使う場合
      • 上記以外のケースは、Tooltipを使わずにdisabledである理由を見える場所に表示する

種類

Tooltipはトリガー要素にfocushoverで表示します。詳しくはトリガーパターンを参照してください。

レイアウト

構成

  1. Tooltip
  2. トリガー

Tooltipによる補足情報の構成要素

1. Tooltip

Tooltipそのものです。吹き出し形式で補足的なテキストを表示します。

2. トリガー

Tooltipが表示されるきっかけとなる要素を「トリガー」と呼びます。
トリガーは、Tooltipが表示されることをユーザーに示唆するために、マウスオーバーが可能な要素であることを想起させるテキスト、アイコン、色を組み合わせます。

Tooltipの配置

Tooltipの配置は8種類の選択肢があります。

  • 矢印の出る方向をhorizontal(横)とvertical(縦)の組み合わせで指定します。
  • レイアウトによってTooltipの一部が見切れる場合があるため、Tooltip全体が表示されるように指定してください。
  • horizontal(横)とvertical(縦)の両方にautoを指定すると、レイアウトを加味して自動的に方向を決めてくれます。

上配置

left & bottom
center & bottom
right & bottom

下配置

left & top
center & top
right & top

横配置

left & middle
right & middle

自動配置

auto & auto

ライティング

関連するライティングガイドラインを参照してください。

デザインパターン

Tooltipのトリガーパターン

トリガーは、用途によっていくつかの種類に分けられます。

A. テキスト+アイコン

テキスト

文章でさらに補足したい内容がある場合に使います。
補足する対象となるテキストの横に「」アイコン(FaInfoCircleIcon)を配置し、補足情報の存在を明確に表示します。 アイコンの色は、テキストと同様にTEXT_LINKとすることで、マウスオーバーが可能であることを示唆します。

B. アイコンのみ

充分にスペースを確保できないときに、アイコン単体をトリガーにするパターンですが、どうしても他に方法がないときだけ使用してください。
何を対象とした補足説明なのかを明確にするために、可能な限り「テキスト+アイコン」を採用することを推奨します。

アイコンは、マウスオーバーが可能であることを示唆するためにリンク色(TEXT_LINK)を使います。

  • アイコン単体で意味が伝わるようであれば、Tooltipは不要です。
  • アイコンに必ず代替テキストを設定します。
テキストとあわせて使用
テキスト
タイトル

トリガーとなるのはアイコンのみで、タイトルやよくあるテーブルのオブジェクト名のテキストとあわせて使います。
タイトルやよくあるテーブルのオブジェクト名の遷移リンクの役割を阻害しないために、アイコンのみにTEXT_GRAYを使います。

ステータスの補足に使用
テキスト
テキスト

ステータスの補足説明を加えるときにはテキストの左に配置し、ステータスの色に合わせます。
トリガーはステータスアイコンのみとなるので、テキストはリンクとして使用できます。

C. アイコンボタン

Buttonのアイコンボタンのように、ラベルテキストを表示できないボタンに、(ラベルテキスト相当の)機能を表す補足をTooltipで表示するパターンです。

Textボタンのアイコンボタンには使用しません。

ボタンは明確なアクションを促す役割を持つため、ラベルテキスト以上の説明を表示したい場合は、ラベルテキストがあるボタンの採用や、説明テキストが入るようなレイアウトを検討しましょう。

D. 省略テキスト

テキストを省略…

テキストを表示するスペースを十分確保できないときに、テキスト全体をトリガーとして、省略したすべてのテキストをTooltipで表示するパターンです。

テキストは、ellipsisを使い省略されていることを示します。

単純に文章を省略したい場合には、LineClampを使用してください。

Props

message必須
string number false true ReactElement<any, string | JSXElementConstructor<any>> Iterable<ReactNode> ReactPortal

ツールチップ内に表示するメッセージ

triggerType
"text" "icon"

ツールチップを表示する対象のタイプ。アイコンの場合は icon を指定する

multiLine
false true

ツールチップ内を複数行で表示する場合に true を指定する

ellipsisOnly
false true

true のとき、ツールチップを表示する対象が省略されている場合のみツールチップ表示を有効にする

horizontal
"auto" "center" "left" "right"

水平方向の位置

vertical
"auto" "middle" "top" "bottom"

垂直方向の位置

tabIndex
number

ツールチップを表示する対象の tabIndex 値

ariaDescribedbyTarget
"wrapper" "inner"

ツールチップを内包要素に紐付けるかどうか