要素がキーボードフォーカスを受け取るか、マウスがその上にホバーしたときに、要素に関する情報を表示するポップアップ。
import React from 'react';import * as Tooltip from '@radix-ui/react-tooltip';import { PlusIcon } from '@radix-ui/react-icons';import './styles.css';const TooltipDemo = () => {return (<Tooltip.Provider><Tooltip.Root><Tooltip.Trigger asChild><button className="IconButton"><PlusIcon /></button></Tooltip.Trigger><Tooltip.Portal><Tooltip.Content className="TooltipContent" sideOffset={5}>Add to library<Tooltip.Arrow className="TooltipArrow" /></Tooltip.Content></Tooltip.Portal></Tooltip.Root></Tooltip.Provider>);};export default TooltipDemo;
表示遅延をグローバルに制御するためのプロバイダー。
トリガーにフォーカスまたはホバーすると開きます。
トリガーがアクティブになった場合、またはEscapeキーを押すと閉じます。
カスタムタイミングをサポートします。
コマンドラインからコンポーネントをインストールします。
すべての部品をインポートして組み立てる。
ツールチップにグローバルな機能を提供するためにアプリケーションをラップします。
ツールチップのすべての部品を含みます。
ツールチップを切り替えるボタン。デフォルトでは、Tooltip.Content
はトリガーに対して自身を配置します。
使用すると、コンテンツ部分をbody
にポータルします。
ツールチップが開いているときに表示されるコンポーネント。
ツールチップと一緒にレンダリングするためのオプションの矢印要素。これを使用して、トリガーとTooltip.Content
の視覚的なリンクを支援できます。Tooltip.Content
内でレンダリングする必要があります。
Provider
を使用して、delayDuration
とskipDelayDuration
をグローバルに制御します。
delayDuration
プロパティを使用して、ツールチップが開くまでの時間を制御します。
コンテンツの幅をトリガーの幅に合わせるように制約したい場合や、高さをビューポートを超えないように制約したい場合があります。
これをサポートするために、--radix-tooltip-trigger-width
や--radix-tooltip-content-available-height
などのいくつかのCSSカスタムプロパティを公開しています。これらを使用して、コンテンツの寸法を制約してください。
CSSカスタムプロパティ--radix-tooltip-content-transform-origin
を公開しています。side
、sideOffset
、align
、alignOffset
、および衝突に基づいて、計算された起点からコンテンツをアニメーション化するために使用します。
data-side
属性とdata-align
属性を公開しています。これらの値は、実行時に衝突を反映するように変化します。これらを使用して、衝突と方向を認識するアニメーションを作成します。
プリミティブな部分を独自のコンポーネントに抽象化することで、独自のAPIを作成します。
この例では、Tooltip
のすべての部分を抽象化し、新しいcontent
プロパティを導入しています。
asChild
プロパティを使用して、トリガー部分をスロット可能な領域に変換します。これにより、トリガーが渡された子に置き換えられます。