Skip to content
fandhe-frontendcore v0.4.3
GitHub

Tooltip

fandhe-frontend-pre-styled-ui の tooltip mod が提供するスタイル済み Tooltip 部品です。hover / focus で開く吹き出しヒントで、WAI-ARIA tooltip パターンに従い trigger は aria-describedby で content と関連付けます(aria-expanded/ aria-controls は使いません)。content 側が role="tooltip" を持ちます。

Important

Demo はトリガー起点のオーバーレイ部品を「開いた状態」で固定掲示しています。本来の配置(画面全体を覆う・トリガー直下に重なる)ではページ内の他セクションと重なるため、掲示専用 CSS(assets/pre-styled-ui.css の .pre-styled-showcase スコープ)でページの流れの中へ収めています。実アプリケーションでの overlay 配置は pre-styled-ui の recipe CSS がそのまま担います。

関連 API: fandhe-frontend-pre-styled-ui API / fandhe-frontend-headless-ui API

Demo

headless-ui の Tooltip(role="tooltip"、WAI-ARIA tooltip パターン)に pre-styled-ui の recipe CSS を適用した静的掲示です。positioner はフロー内配置へ中和しています。2 つ目のインスタンス(closed)は hidden 属性・data-state="closed" により本文上は非表示です。1 つ目のインスタンス(open)は presence transition が適用されており、対応ブラウザではページ読み込み時にフェードインが実際に発火します。

Features

  • 吹き出しヒント。Root / Trigger / Positioner / Content / Arrow / ArrowTip の 6 anatomy パーツを持つ。
  • WAI-ARIA tooltip パターンに従い、trigger は aria-describedby で content と関連付ける(aria-expanded / aria-controls は使わない)。content 側が role="tooltip" を持つ。
  • openDelay / closeDelay(表示・非表示までの遅延タイマー)は wasm-full 側の後続スコープ。
  • 開閉は Disclosure を埋め込んだ状態機械 Tooltip が管理する。
  • positioner は data-side 属性(top(既定)/ bottom / left / right)で表示位置を切り替えられる(イシュー #2041、shadcn/ui の side prop 相当。fandhe-frontend-wasm-full のハイドレーション下では実座標追従、SSR / no-JS では静的フォールバック、イシュー #2210)。
  • content の children へテキストと fandhe-frontend-pre-styled-ui::kbd を組み合わせるキーボードショートカット併記パターンが可能(イシュー #2041、shadcn/ui の With Keyboard Shortcut Example 相当。下記 Examples 節参照)。

Anatomy

root
  trigger
  positioner
    content

API Reference

Arguments

NameTypeDefaultDescription
stateOpenState—開閉状態(Open/Closed)。root/content の data-state へ反映される。
positioner の attrsVec<(&str, &str)>—positioner へ透過する属性。data-side="bottom"/"left"/"right" を渡すと表示位置の静的フォールバックが切り替わる(未指定は top 相当)。fandhe-frontend-wasm-full のハイドレーション下では実測座標へ追従するため、この制約は解消する(イシュー #2210)。SSR / no-JS の静的フォールバックでは、left/right は root 幅が trigger 幅に一致する文脈(flex アイテム等で shrink-wrap される場合)でのみ trigger に隣接する位置になる。

Data Attributes

PartAttributeObserved Values
contentdata-stateclosed, open
positionerdata-stateclosed, open
rootdata-stateclosed, open
triggerdata-stateclosed, open

CSS Variables

VariableDefault
--fandhe-tooltip-arrow-rotate225deg
--fandhe-tooltip-arrow-x50%
--fandhe-tooltip-arrow-y100%

Examples

With keyboard shortcut

shadcn/ui(Base UI)の With Keyboard Shortcut Example に相当する、content の children へテキストと kbd を組み合わせる合成パターンです。新しい variant や data-* 語彙を追加せず、既存の tooltip::content の自由な children と fandhe-frontend-pre-styled-ui::kbd の既存 API のみで構成しています(Ctrl+P のような複数 kbd 連結〔KbdGroup 相当〕は本リポジトリに対応するラッパーが無いため単一 kbd の再現に留めています)。

Accessibility

WAI-ARIA

AttributeDescription
aria-describedbytrigger に付与。content の id が設定されているときのみ出力される。
role="tooltip"content に固定付与。