亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

ホームページ ウェブフロントエンド CSSチュートリアル Shadcn のツールチップ矢印をカスタマイズする裏技的な方法

Shadcn のツールチップ矢印をカスタマイズする裏技的な方法

Dec 31, 2024 pm 07:33 PM

導(dǎo)入

Shadcn は、React プロジェクトで UI コンポーネントをコピー&ペーストするための頼りになるライブラリです。よく使用されるコンポーネントの 1 つは Tooltip で、これは @radix-ui/react-tooltip の上に構(gòu)築されます。

デフォルトのツールチップは次のようになります:

Hacky Way to Customize Shadcn’s Tooltip Arrows

ツールチップ矢印の追加

提供されているコンポーネントはそのまま使用しても問(wèn)題なく機(jī)能しますが、ツールチップに矢印を追加するなど、さらにカスタマイズを追加したいと思うようになりました。インスピレーションを得るため、tremor.so の Tooltip コンポーネントを參考にしました。これも @radix-ui/react-tooltip に基づいています。

Hacky Way to Customize Shadcn’s Tooltip Arrows

幸いなことに、@radix-ui/react-tooltip には Arrow コンポーネントが含まれているため、矢印の追加は簡(jiǎn)単です。これを Content コンポーネント內(nèi)に含めるだけです。

import * as TooltipPrimitives from '@radix-ui/react-tooltip'

export default () => (
  <TooltipPrimitives.Provider>
    <TooltipPrimitives.Root>
      <TooltipPrimitives.Trigger />
      <TooltipPrimitives.Portal>
        <TooltipPrimitives.Content>
          <TooltipPrimitives.Arrow /> // Add the Arrow component here
        </TooltipPrimitives.Content>
      </TooltipPrimitives.Portal>
    </TooltipPrimitives.Root>
  </TooltipPrimitives.Provider>
)

しかし、矢印を含むツールチップ全體の周?chē)欷司辰缇€を追加したい場(chǎng)合はどうすればよいでしょうか?

ツールチップの境界線を追加する

これを?qū)g現(xiàn)するには、Arrow コンポーネントのスタイルを設(shè)定する必要があります。いくつかのアプローチを見(jiàn)てみましょう:

素樸なアプローチ

Tailwind クラスを使用して矢印に境界線を直接追加するのが良い出発點(diǎn)と思われます:

<TooltipPrimitives.Arrow
  className='border border-[var(--tooltip-border-color)] fill-[var(--tooltip-color)]'
  width={12}
  height={7}
  aria-hidden='true'
/>

しかし、このアプローチは期待どおりに機(jī)能しません。 border プロパティは、矢印の形狀自體ではなく、要素の長(zhǎng)方形の境界に適用されます。

Hacky Way to Customize Shadcn’s Tooltip Arrows

ストロークプロパティの使用

矢印は SVG 要素であるため、ストローク プロパティを使用して境界線を定義できます。

<TooltipPrimitives.Arrow
  className='border-none fill-[var(--tooltip-color)]'
  stroke='var(--tooltip-border-color)'
  stroke-width='2'
  width={12}
  height={7}
  aria-hidden='true'
/>

これはうまく機(jī)能しますが、矢印の上の境界線はまだ表示されています。これを修正するには、別の方法を検討してみましょう。

Hacky Way to Customize Shadcn’s Tooltip Arrows

ドロップ シャドウ オプションを調(diào)べる

もう 1 つの方法は、ドロップシャドウを使用して境界線をシミュレートすることです。

<TooltipPrimitives.Arrow
  className='-my-px border-none fill-[var(--tooltip-color)] drop-shadow-[0_1px_0_red]'
  width={12}
  height={7}
  aria-hidden='true'
/>

これにより、矢印と境界線を備えた視覚的にシームレスなツールチップが作成されますが、ユースケースによっては、これが常に最も正確なソリューションであるとは限りません。

Hacky Way to Customize Shadcn’s Tooltip Arrows

このソリューションは、開(kāi)発時(shí)間を節(jié)約できるさまざまなカスタマイズ可能なツールチップ バリアントを提供する、Origin UI のツールチップ コンポーネントからインスピレーションを得ていることに言及する価値があります。

獨(dú)自のカスタム SVG を使用するなど、さらにスタイリングしてみてはいかがでしょうか?

カスタムSVG矢印

私は Vercel の Web サイトによくアクセスしますが、そのドロップダウン ナビゲーション バー、特に 矢印 が目に留まりました。

Hacky Way to Customize Shadcn’s Tooltip Arrows

どのように設(shè)計(jì)されたのか興味があったので、開(kāi)発ツールを開(kāi)いて要素を調(diào)べ、SVG 矢印を見(jiàn)つけました。次に、それをコピーして Figma に貼り付けて、詳しく見(jiàn)ていきました。

Hacky Way to Customize Shadcn’s Tooltip Arrows

ツールチップの矢印としては、興味深いデザインの選択になるかもしれないと思いました。

位置決め

Hacky Way to Customize Shadcn’s Tooltip Arrows

SVG 矢印の位置は、ツールチップの配置 (、、または ) によって異なります。 Content コンポーネントは、位置を動(dòng)的に調(diào)整するために使用できるデータ側(cè)屬性を公開(kāi)します。

import * as TooltipPrimitives from '@radix-ui/react-tooltip'

export default () => (
  <TooltipPrimitives.Provider>
    <TooltipPrimitives.Root>
      <TooltipPrimitives.Trigger />
      <TooltipPrimitives.Portal>
        <TooltipPrimitives.Content>
          <TooltipPrimitives.Arrow /> // Add the Arrow component here
        </TooltipPrimitives.Content>
      </TooltipPrimitives.Portal>
    </TooltipPrimitives.Root>
  </TooltipPrimitives.Provider>
)

次に、組み込みのツールチップ Arrow コンポーネントをカスタム デザインに置き換えることができます。完璧に動(dòng)作するはずですよね?

Hacky Way to Customize Shadcn’s Tooltip Arrows

そうですね、まだです。これを見(jiàn)てください: 矢印はトリガーの近くに配置されるのではなく、ツールチップの中央に固定されています。

Hacky Way to Customize Shadcn’s Tooltip Arrows

この望ましくない動(dòng)作は、各側(cè)の靜的な位置を定義しただけであるために発生します。代わりに、この問(wèn)題を解決するには動(dòng)的な位置を使用する必要があります。

ダイナミックポジション

組み込みの Arrow コンポーネントを再度使用してみましょう。ツールチップの位置変更をシミュレートしながら開(kāi)発ツールで Arrow コンポーネントを検査すると、SVG 要素が左の CSS プロパティを持つスパンでラップされていることがわかります。

Hacky Way to Customize Shadcn’s Tooltip Arrows

この値は、ツールチップの位置に基づいて動(dòng)的に変化します。この左側(cè)の CSS 値をキャプチャして、カスタム矢印コンポーネントに適用できます。

この左の値を追跡するには、MutationObserver を使用してそれを観察する必要があります。

<TooltipPrimitives.Arrow
  className='border border-[var(--tooltip-border-color)] fill-[var(--tooltip-color)]'
  width={12}
  height={7}
  aria-hidden='true'
/>

最終結(jié)果

期待どおりに動(dòng)作していますか??

Hacky Way to Customize Shadcn’s Tooltip Arrows

追伸ツールチップを左側(cè)または右側(cè)に表示したい場(chǎng)合は、上部の位置を調(diào)整するとよいでしょう。

結(jié)論

このアプローチは機(jī)能しますが、より簡(jiǎn)単で柔軟なツールヒントのスタイルを可能にする UI ライブラリがあると思います。ただし、これに対する回避策を見(jiàn)つけることができてやりがいを感じています。他のオプションを検討することに興味がある場(chǎng)合は、このディスカッションをチェックしてみてください。

以上がShadcn のツールチップ矢印をカスタマイズする裏技的な方法の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類(lèi)リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ロードスピナーとアニメーションを作成するためのCSSチュートリアル ロードスピナーとアニメーションを作成するためのCSSチュートリアル Jul 07, 2025 am 12:07 AM

CSSロード回転子を作成するには3つの方法があります。1。境界の基本回転子を使用して、HTMLとCSSを介してシンプルなアニメーションを?qū)g現(xiàn)します。 2。複數(shù)のポイントのカスタム回転子を使用して、異なる遅延時(shí)間を経てジャンプ効果を?qū)g現(xiàn)します。 3.ボタンに回転子を追加し、JavaScriptを介してクラスを切り替えて、読み込みステータスを表示します。各アプローチは、ユーザーエクスペリエンスを向上させるために、色、サイズ、アクセシビリティ、パフォーマンスの最適化などのデザインの詳細(xì)の重要性を強(qiáng)調(diào)しています。

CSSブラウザの互換性の問(wèn)題とプレフィックスに対処します CSSブラウザの互換性の問(wèn)題とプレフィックスに対処します Jul 07, 2025 am 01:44 AM

CSSブラウザの互換性とプレフィックスの問(wèn)題に対処するには、ブラウザサポートの違いを理解し、ベンダーのプレフィックスを合理的に使用する必要があります。 1. FlexBoxやグリッドのサポート、位置:粘著性の無(wú)効、アニメーションのパフォーマンスなどの一般的な問(wèn)題を理解することは異なります。 2. CANIUSE確認(rèn)機(jī)能サポートステータスを確認(rèn)します。 3. -webkit-、-moz-、-ms-、-o-およびその他のメーカーのプレフィックスを正しく使用します。 4.自動(dòng)的にプレフィックスを追加するためにAutoprefixerを使用することをお?jiǎng)幛幛筏蓼埂?5. PostCSSをインストールし、ターゲットブラウザを指定するようにBrowserSlistを構(gòu)成します。 6.建設(shè)中の互換性を自動(dòng)的に処理します。 7. Modernizr検出機(jī)能は、古いプロジェクトに使用できます。 8.すべてのブラウザの一貫性を追求する必要はありません、

スタイリングは、CSSとは異なるリンクを訪問(wèn)しました スタイリングは、CSSとは異なるリンクを訪問(wèn)しました Jul 11, 2025 am 03:26 AM

アクセスしたリンクのスタイルを設(shè)定すると、特にコンテンツ集約型のWebサイトでユーザーエクスペリエンスを向上させることができ、ユーザーがより良いナビゲートを支援します。 1。CSSを使用してください:訪問(wèn)した擬似クラスは、色の変化などの訪問(wèn)されたリンクのスタイルを定義します。 2。ブラウザは、プライバシーの制限により、いくつかの屬性の変更のみを許可することに注意してください。 3.突然の狀態(tài)を避けるために、色の選択は全體的なスタイルと調(diào)整する必要があります。 4.モバイル端子はこの効果を表示しない場(chǎng)合があり、アイコン補(bǔ)助ロゴなどの他の視覚的なプロンプトと組み合わせることをお?jiǎng)幛幛筏蓼埂?/p>

CSSクリップパスでカスタムシェイプを作成します CSSクリップパスでカスタムシェイプを作成します Jul 09, 2025 am 01:29 AM

CSSのクリップパス屬性を作物要素に使用して、寫(xiě)真やSVGに依存することなく、三角形、円形ノッチ、ポリゴンなどのカスタム形狀になります。その利點(diǎn)には、次のものが含まれます。1。円、楕円、ポリゴンなどのさまざまな基本的な形狀をサポートします。 2。レスポンシブ調(diào)整とモバイル端子に適応可能。 3.アニメーションが簡(jiǎn)単で、HoverまたはJavaScriptと組み合わせて動(dòng)的効果を?qū)g現(xiàn)できます。 4.レイアウトフローには影響せず、ディスプレイエリアのみを収穫します。一般的な使用法は、円形のクリップパス:円(50pxatcenter)および三角クリップパス:ポリゴン(50%0%、100 0%、0 0%)などです。知らせ

ディスプレイの違いは何ですか:インライン、ディスプレイ:ブロック、ディスプレイ:インラインブロック? ディスプレイの違いは何ですか:インライン、ディスプレイ:ブロック、ディスプレイ:インラインブロック? Jul 11, 2025 am 03:25 AM

Themaindifferencesbetweendisplay:インライン、ブロック、およびinline-blockinhtml/cssarelayoutbehavior、spaceusage、andstylingcontrol.1.inlineelementsflowwithtext、notstartonnewlines、nagrorewidth/height、height、andonlyhorizo??ntalpadddddddddddddddding

CSSペイントAPIとは何ですか? CSSペイントAPIとは何ですか? Jul 04, 2025 am 02:16 AM

thecsspaintingapienablesdynamicimagegeneration incssusingjavascript.1.developerscreateapaintclasswithapaint()method.2.they registeritviaregisterpaint()

CSSを使用して応答性のある畫(huà)像を作成する方法は? CSSを使用して応答性のある畫(huà)像を作成する方法は? Jul 15, 2025 am 01:10 AM

CSSを使用してレスポンシブ畫(huà)像を作成するには、主に次の方法で達(dá)成できます。1。最大幅を使用してください:100%と高さ:自動(dòng)化して、割合を維持しながら畫(huà)像がコンテナ幅に適応できるようにします。 2。HTMLのSRCSETおよびサイズの屬性を使用して、異なる畫(huà)面に適合した畫(huà)像ソースをインテリジェントにロードします。 3.オブジェクトフィットとオブジェクトポジションを使用して、畫(huà)像のトリミングとフォーカスディスプレイを制御します。一緒に、これらの方法により、畫(huà)像がさまざまなデバイスで明確かつ美しく表示されるようになります。

CSSとは何ですか? CSSとは何ですか? Jul 03, 2025 am 01:48 AM

CSS、orcascadingStylesheets、iSthepartofwebdevelopment oncontrolsawebpageのvisualapearance、colors、fonts、spacing、andlayout.theterm「cascading」

See all articles