コンテンツにスキップ

Tooltip

ホバーやフォーカスで短い補足情報を表示するツールチップ。画面端を考慮した配置と、ポインター移動の猶予に対応します。

<pe-tooltip>
<button type="button" class="Trigger" data-tooltip-trigger>Save</button>
<span class="Popup" data-tooltip-content hidden>
  <span class="Arrow" data-tooltip-arrow></span>
  Saves this draft without publishing.
</span>
</pe-tooltip>

Tooltip は、ホバーやフォーカス時に短い補足情報を表示するコンポーネントです。内容は短く、操作を含めず、可視ラベルの代わりに使わないでください。コンテンツには hidden を付けます。

外部トリガーや複数トリガーにはホストの id を使います。

<button type="button" data-tooltip-trigger="publish-tip">Publish</button>
<pe-tooltip id="publish-tip" data-tooltip-side="bottom">
<span data-tooltip-content hidden>
Makes the current version visible to visitors.
</span>
</pe-tooltip>
要素 セレクター 役割
ホスト <pe-tooltip> 1 つのツールチップの状態とライフサイクルを管理します
トリガー [data-tooltip-trigger] ホバーまたはフォーカスで表示します。表示中にクリックすると閉じます
コンテンツ [data-tooltip-content] 表示する内容です。role="tooltip" が設定されます
矢印 [data-tooltip-arrow] 任意の装飾要素。コンテンツの直下に置き、計算後の位置を受け取ります

兄弟ホストに同じ data-tooltip-delay-group を指定すると、グループ内を移動するときの表示待ちを省略できます。

<div class="Toolbar">
<button class="Trigger" data-tooltip-trigger="bold-tip">Bold</button>
<button class="Trigger" data-tooltip-trigger="italic-tip">Italic</button>
</div>

<pe-tooltip
id="bold-tip"
data-tooltip-delay="400"
data-tooltip-delay-group="formatting"
data-tooltip-skip-delay="300"
>
<span class="Popup" data-tooltip-content hidden>Bold text</span>
</pe-tooltip>

<pe-tooltip
id="italic-tip"
data-tooltip-delay="400"
data-tooltip-delay-group="formatting"
data-tooltip-skip-delay="300"
>
<span class="Popup" data-tooltip-content hidden>Italic text</span>
</pe-tooltip>
名前説明
isOpenboolean (readonly)ツールチップが現在開いているかどうかを読み取ります。
open(trigger?)void指定したトリガーまたはアクティブなトリガーに対してツールチップを開きます。
close()voidツールチップを閉じます。
toggle(trigger?)voidツールチップを表示または非表示にします。
名前説明
data-tooltip-arrow任意の装飾用矢印です。`data-tooltip-content` の直下に置く必要があります。
data-tooltip-side優先する表示方向: top | right | bottom | left。初期値: top。
data-tooltip-alignトリガーに対する揃え方: start | center | end。初期値: center。
data-tooltip-offsetトリガーからの距離(ピクセル)。初期値: 8。
data-tooltip-align-offset表示方向と直交する軸のずれ(ピクセル)。初期値: 0。
data-tooltip-collision-padding表示方向の反転や位置調整で確保する、ビューポート端からの余白。初期値: 4。
data-tooltip-arrow-padding矢印とコンテンツ端との最小距離。初期値: 5。
data-tooltip-delayホバーしてから表示するまでの待ち時間(ミリ秒)。初期値: 0。フォーカス時と JavaScript からの open はすぐに表示されます。
data-tooltip-close-delayトリガーやコンテンツからポインターが離れた後、またはフォーカスを失った後に、閉じるまで待つ時間(ミリ秒)。初期値: 0。
data-tooltip-delay-group関連するツールチップに共通のグループ ID を指定します。同じグループ内では、同時に 1 つだけ表示されます。
data-tooltip-skip-delayグループ内のツールチップを続けて操作するときに、表示待ちを省略する時間(ミリ秒)。この間は data-tooltip-delay を適用しません。data-tooltip-close-delay のほうが長い場合を除き、閉じるまでの猶予にもこの値を使います。初期値: 0。
data-stateホスト、コンテンツ、矢印、トリガーに "open" または "closed" を設定します。トリガーが複数ある場合、実際に表示したトリガーだけが "open" になります。
data-side / data-align画面端を考慮して計算された、実際の表示方向と揃え方です。コンテンツと矢印のスタイリングに利用できます。
data-uncentered端パディングによりトリガー中央に配置できない場合、矢印に付与されます。
名前説明
pe-tooltip:openツールチップが開いたときに発火します。detail には content、trigger、reason が含まれます。
pe-tooltip:closeツールチップが閉じたときに発火します。detail には content、trigger、reason が含まれます。

detail.reason には、イベントが発生した理由として hoverfocustriggerescapeprogrammatic のいずれかが入ります。

閉じているコンテンツは、基本スタイルで非表示にします。

.Popup:not([data-state="open"]) {
display: none;
}

表示中のコンテンツには position: fixed が設定されます。枠線、文字、背景、影などは、.Popup に直接指定してください。

任意の [data-tooltip-arrow] は装飾専用としてコンテンツ直下に置きます。サイズ、形、方向別のスタイルは CSS で指定し、そのサイズを data-tooltip-offset に含めてください。

表示中は、コンテンツ要素で次の CSS 変数も利用できます。

名前 説明
--anchor-width / --anchor-height アクティブなトリガーの寸法
--available-width / --available-height 実際の表示方向で利用できるビューポート内の領域
--transform-origin 表示・非表示アニメーションに使える、トリガーを基準にした原点

--transform-origintransform を組み合わせると、トリガーを基準に拡大・縮小できます。表示開始時には data-starting-style、非表示開始時には data-ending-style が付きます。時間が有限のトランジションについては、その終了を待ってからコンテンツを非表示にします。