カスタムCSSを使用してウェブチャットのスタイルを設定する方法
このページで学べること
カスタムCSSを使用してKlaviyoウェブチャットの外観(ランチャー、チャットウィンドウ、メッセージバブル、メッセージコンポーザー)を変更する方法。どのテーマ変数とクラス名が安全にターゲットにできるか、またどれがKlaviyoがアップデートをリリースすると壊れるかを学びます。
この記事は、ウェブチャットを単体で使用する場合も、Klaviyo Customer Hubの一部として使用する場合も適用されます。チャットインターフェースはどちらの場合も同じであるため、同じCSSを両方に使用できます。
始める前に
カスタムCSSは、技術に詳しいマーケター、またはデベロッパーにアクセスできる方にのみ推奨されます。Klaviyoのサポートチームは一般的なガイダンスを提供できますが、カスタムCSSの作成やデバッグはできません。
必要なもの:
- オーナー、管理者、またはマネージャーのロール
- CSS セレクターとカスタムプロパティ(CSS 変数)に関する知識
カスタムCSSを記述する前に、組み込みのデザイン設定で必要な内容がすでに実現できないか確認してください。色、フォント、ボタンの形状、ランチャーの位置はすべてコードなしで設定でき、これらの設定はKlaviyoのアップデート後も保持されます。デザイン設定でカバーできない内容に限って、カスタムCSSを使用してください。
カスタムCSSを追加する場所
カスタムCSSエディターの場所は、設定内容によって異なります。
Klaviyo Customer Hub を使用している場合
- Klaviyo Customer Hub > [デザイン]に進みます。
- スタイル設定の下部にある カスタム セクションまでスクロールします。
- [カスタムCSSを追加] をクリックするか、すでにあるCSSを編集してください。
- [保存] をクリックします。
スタンドアロンのウェブチャットを使用している場合
- [設定] > [ウェブチャット] > [デザイン] に移動します。
- スタイル設定の下部にある カスタム セクションまでスクロールします。
- [カスタムCSSを追加] をクリックするか、すでにあるCSSを編集してください。
- [保存] をクリックします。
Klaviyo Customer Hubを有効にしている場合、ウェブチャットのデザイン設定からはKlaviyo Customer Hubが表示されます。これは想定どおりです。Klaviyo Customer Hubが両方の画面のデザインを管理しているため、すべてのスタイルを設定する場所は1か所になります。
カスタムCSSの適用方法
CSS は、ストアフロントの style タグ内で、Klaviyo 独自のスタイルの後に追加されます。ここから、次の2点が導かれます:
- CSSの設定が優先されます。最後に読み込まれるため、ほとんどの場合、!importantを使用しなくてもルールがKlaviyoのデフォルトを上書きします。
- CSS はチャットにスコープされていません。ページ全体に適用されます。button { … } のような単独のルールを書くのではなく、必ずチャット要素に対してセレクタをスコープしてください。単独のルールはストアフロント全体に影響します。
テーマ変数から始めます
ウェブチャットを最も確実に再スタイル設定する方法は、:rootブロックでKlaviyoのテーマ変数をオーバーライドすることです。これらは安定しており、インターフェース全体で正しくカスケードし、個々の要素をターゲティングするよりも破損する可能性がはるかに低くなります。
:root {
--atlas-chat-bubble-background: #f0ebe4;
--atlas-message-border-radius: 4px;
}チャットメッセージ変数
可変 | デフォルト | コントロール |
|---|---|---|
|
| エージェント(受信)のメッセージの背景 |
|
| エージェント(受信)のメッセージのテキストカラー |
|
| メッセージの上部に表示される送信者名 |
|
| すべてのメッセージバブルの角丸半径 |
ショッパー(送信)メッセージでは、ブランドカラーが意図的に再利用されます。バブルは --atlas-button-primary、テキストは --atlas-text-primary-inverse を使用します。いずれもデザイン設定で設定します。
色とサーフェス変数
可変 | デフォルト | コントロール |
|---|---|---|
|
| チャットウィンドウの背景 |
|
| カードと浮き上がったサーフェス |
|
| 本文 |
|
| セカンダリテキストとヘルパーテキスト |
|
| Composerのプレースホルダーテキスト |
|
| アクセントカラー |
|
| プライマリボタンとショッパーバブルの背景 |
|
| 主要なボタンとショッパーバブルのテキスト |
|
| 控えめな区切り線 |
|
| フォーカスリングの色 |
形状と間隔の変数
可変 | デフォルト | コントロール |
|---|---|---|
|
| チャットウィンドウの角丸半径 |
|
| ボタンの角丸半径 |
|
| 角丸半径を入力 |
|
| カードの角丸半径 |
|
| チャットウィンドウの影 |
タイポグラフィ変数
可変 | デフォルト | コントロール |
|---|---|---|
| システムフォントスタック | 本文フォント |
| システムフォントスタック | 見出しフォント |
|
| ベースの本文サイズ |
|
| 小さいテキストサイズ |
|
| 本文の太さ |
|
| 見出しの太さ |
これらのうちいくつかは、デザイン設定ですでに記述されています。デザイン設定UIでフォントと色を設定する方が望ましいため、UIで公開されていない値には変数を使用してください。
クラスフックで要素をターゲットにする
テーマ変数では対応できない場合は、要素を直接指定してください。Klaviyoは以下のクラス名を保証します。
このリストにないブラウザのインスペクタで見つかったクラス名は、安全に使用できません。ほとんどの内部クラス名には(例:Chat-chatWindow-a1B2cのような)ビルドハッシュが含まれており、Klaviyoがアップデートをリリースするたびに変更され、CSSが気付かないうちに破損します。経験則:クラスがkl-hub-で始まる場合は安全です。それ以外の場合は安全ではありません。
チャット要素
セレクター | 要素 |
|---|---|
| フローティングチャットランチャーボタン |
| チャットウィンドウ |
| チャットウィンドウのヘッダー |
| スクロール可能なメッセージ領域 |
| メッセージバブル(エージェントとショッパーの両方) |
| メッセージComposerコンテナ |
| Composerのテキストフィールド |
| 会話スターターとクイック返信ボタン |
| チャットウィンドウの背後の背景 |
チャットウィンドウには、現在の画面に名前を付けるクラス(.kl-hub-route-chat)も含まれます。チャット自体の場合。スタンドアロンのウェブチャットでは、これは常に .kl-hub-route-chat です。Klaviyo Customer Hub では、買い物客が移動するにつれて変わります(.kl-hub-route-home、.kl-hub-route-orders、など)それにより、CSS の適用範囲を1つの画面に限定できます。
送信ボタンには専用のクラスがありません。Composerで対象にします:
.kl-hub-chat-input-wrapper .kl-hub-button-primary {
background: #2f4f4f;
}共有要素
セレクター | 要素 |
|---|---|
| 任意のテキスト要素 |
| 任意の見出し(.kl-hub-h1~ .kl-hub-h5) |
| 段落テキスト(.kl-hub-p-small、.kl-hub-p-tiny、.kl-hub-p-large) |
| リンク |
| 任意のボタン(.kl-hub-button-primaryも含む、.kl-hub-button-secondary、.kl-hub-button-tertiary) |
| 任意のテキスト入力 |
| 商品カードを含むカード |
| 商品サムネイル |
| アイコン |
| トースト通知 |
エージェントのメッセージと買い物客のメッセージを異なるスタイルにする
これは最も一般的なリクエストであり、特定のアプローチが必要です。エージェントとショッパーのバブルは単一の .kl-hub-message クラスを共有しています。— 安定した区別用クラスが存在しないため、どちらか一方を直接選択することはできません。
代わりに、すでにこの2つを別々に扱うテーマ変数を使用してください。
:root {
/* Agent messages */
--atlas-chat-bubble-background: #f0ebe4;
--atlas-chat-bubble-text-primary: #2b2b2b;
/* Shopper messages */
--atlas-button-primary: #1f3a3d;
--atlas-text-primary-inverse: #ffffff;
}--atlas-button-primaryは、主要ボタンの色も設定します。ショッパーバブルとボタンの色を異なるものにする必要がある場合、現時点ではサポートされていません。
例
すべてを四角くします
:root {
--atlas-drawer-inset-border-radius: 0;
--atlas-message-border-radius: 0;
--atlas-button-border-radius: 0;
--atlas-input-border-radius-normal: 0;
}大文字の見出しとボタン
.kl-hub-heading,
.kl-hub-button {
text-transform: uppercase;
letter-spacing: 0.04em;
}カスタムの影を使ってランチャーを大きくする
.kl-hub-launcher {
width: 72px !important;
height: 72px !important;
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25) !important;
}ランチャーは要素に複数のプロパティを直接設定するため、ランチャーのルールが有効になるには!importantが必要です。ここだけは、通常どおり必要になります。
デスクトップでチャットウィンドウを広げる
@media (min-width: 900px) {
.kl-hub-drawer {
width: 480px;
}
}CSSを保存できない場合
保存すると、KlaviyoはCSSが解析できることを確認します。解析できない場合、無効な CSS です。構文を確認してください。と表示されます。変更は保存されません。
スタイルシートが完全に拒否されるのは、ルールがまったく生成されない場合のみです。通常、貼り付けたものが CSS ではないことを意味します。一般的な原因:
- CSSルールではなく、プレーンテキスト、HTML、またはstyleタグを貼り付けること
- 完全なルールではなく宣言の一部を貼り付けること
- すべてのルールに構文エラーがあるスタイルシート
通常、単一の構文エラーでは保存がブロックされません。代わりに、その周囲のルールが静かに壊れます。ルールの前にある余分なテキストはそのルールのセレクタに取り込まれるため、ルールは何にも一致しなくなります。閉じられていないルールは、後に続く宣言を飲み込みます。余分な閉じかっこは無視されます。そのため、記述したルールに効果がない場合は、そのルール自体だけでなく、上にあるすべての構文を確認してください。
カスタム CSS でできないこと
- テキストを変更します。カスタムCSSでは文言を編集できません。その場合は、デザインとコンテンツの設定を使用してください。
- CSSレイアウトで可能な範囲を超えて要素を並べ替えたり再配置したりすることはできません。チャットの構造はカスタマイズできません。
- エージェントとショッパーのバブルをクラスで個別にターゲットにします。上記の説明に従ってテーマ変数を使用します。
- 再デザインにも自動的に対応します。クラスフックと変数は通常のアップデートでは安定していますが、大幅な再デザインの場合は CSS の見直しが必要になることがあります。メジャーリリース後は再テストしてください。
その他のリソース
- カスタマーハブのスタイル設定
カスタマーハブのドロワーのスタイル設定で利用可能なオプションと、ブランドに合わせてデザインする方法について説明します。カスタマーハブのインターフェースは顧客体験に深く組み込まれているため、ウェブサイトの延長のように見えるスタイルを採用するのがベストプラクティスです。
- ウェブチャットのスタートガイド
ウェブチャットについてご確認ください。ウェブチャットは、ウェブサイトに追加できる双方向のコミュニケーションチャネルです。ウェブチャットは、カスタマーエージェントとヘルプデスクで使用するために単体で設定できますが、Klaviyoカスタマーハブのシームレスな一部となるようにも設計されています。ウェブチャットを使用すると、ウェブサイトの訪問者とライブでパーソナライズされた会話を行えるため、質問への回答や問題に関するサポートを簡単に受けられます。
- Klaviyo でカスタム CSS、JavaScript、HTML のトラブルシューティングを行う
カスタム HTML テンプレートをインポートする場合や独自のカスタムコード テンプレートを作成する場合に、カスタムコードのトラブルシューティングを行う方法を確認します。