Skip to main content
ウィジェットは、ライトテーマとダークテーマを内蔵したグラスモーフィズムのバーとして表示されます。カスタマイズは3つのレベルで可能です。一般的なオプション用のprops、テーマ設定用のCSSカスタムプロパティ、完全な制御を行うためのCSSクラスオーバーライドを使用できます。
これらのスタイリングオプションは、ThunderPhoneWidget ReactコンポーネントおよびThunderPhone.mount() CDNメソッドで表示されるビルド済みウィジェットに適用されます。完全にカスタムなUIが必要な場合は、代わりにヘッドレスフックを使用してください。

テーマ

theme propはウィジェットの配色を制御します。ウィジェットのルートにtp--lightまたはtp--darkクラスを適用します。
どちらのテーマも、背景ぼかしと控えめな透明感を備えたグラスモーフィズムのバーデザインを使用します。

CSS カスタムプロパティ

このウィジェットは、個別のクラスに手を加えずに色を変更できる、オーバーライド可能な CSS カスタムプロパティ(変数)を公開しています。これらは、.tp-widget ルートに適用されるテーマクラス(.tp--light または .tp--dark)で定義されます。

カスタムプロパティのオーバーライド

アクセントカラーは primaryColor プロパティで設定します。
--tp-accentprimaryColor プロパティからインラインスタイルとして設定されるため、スタイルシートで --tp-accent をオーバーライドしても効果はありません。アクセントはプロパティで変更してください。その他のカスタムプロパティはすべて CSS でオーバーライドできます。
その他のカスタムプロパティは CSS でオーバーライドします。スタイルシートの順序にかかわらず、デフォルトを定義するテーマクラスよりルールの優先度を高くするため、2クラスセレクター(.tp-widget.tp--light / .tp-widget.tp--dark)を使用してください。

CSS クラス

すべてのウィジェットクラスには、既存のスタイルとの競合を避けるため tp- プレフィックスが付いています。

Props によるカスタムアクセント

ウィジェットをブランドに合わせる最も簡単な方法:

CSS によるカスタムカラー

カスタムプロパティを上書きして、カラーを完全に制御します。アクセントは CSS ではなく primaryColor props から設定される点に注意してください:

カスタムサイズ

バー、ボタン、テキストのサイズを調整して、ウィジェットを大きくまたは小さくします:

テキストラベルを非表示にする

ウィジェットのすべてのテキストは .tp-meta に含まれています。波形とボタンだけを残すには、これを完全に非表示にします:
または、個別の要素を非表示にします:
アイドル時のラベルは .tp-status ではなく .tp-name/.tp-sub にあります。.tp-status のみを非表示にしても、ウィジェットがアイドル状態のときはタイトルが表示されます。

テーマ固有の上書き

テーマクラスを使用して、特定のテーマを対象にします:

className によるスコープ設定

React コンポーネントを使用する場合は、className props を渡して、上書きを特定のウィジェットインスタンスに限定します:
次に、CSS でそのクラスを対象にします:
これにより、同じページ上に異なるスタイルのウィジェットインスタンスを複数配置できます。各インスタンスの primaryColor props を使用して、それぞれに独自のアクセントを設定します(--tp-accent はインラインで設定されるため、CSS では上書きできません)。

完全にカスタムな UI

CSS の上書きだけでは不十分な場合、ヘッドレスフック を使用すると完全に制御できます。すべての HTML とスタイリングを用意し、useThunderPhone が音声セッションを処理します。このフックは、波形のようなオーディオ反応型ビジュアライゼーションを構築するための audioLevelRef も提供します。
オーディオ反応型アニメーション、カスタムレイアウト、または既存のコンポーネントライブラリへの統合が必要な場合は、ヘッドレスフックが適しています。CSS の上書きとカスタムプロパティは、手早くテーマを調整する場合に適しています。