Como usar CSS personalizado para estilizar o chat web
O que você vai aprender
Como usar CSS personalizado para mudar a aparência do chat web da Klaviyo — o launcher, a janela de chat, os balões de mensagem e o Composer de mensagens. Você vai aprender quais variáveis de tema e nomes de classe é seguro segmentar e quais vão quebrar quando a Klaviyo lançar uma atualização.
Este artigo se aplica se você usa o chat web sozinho ou como parte do Klaviyo Customer Hub. A interface de chat é a mesma nos dois casos, então o mesmo CSS funciona para ambos.
Antes de começar
O CSS personalizado só é recomendado para profissionais de marketing com conhecimento técnico, ou para quem tem acesso a um desenvolvedor. A equipe de suporte da Klaviyo pode oferecer orientações gerais, mas não pode escrever nem depurar CSS personalizado para você.
Você vai precisar de:
- Uma função de Proprietário, Administrador ou Gerente
- Familiaridade com seletores CSS e propriedades personalizadas (variáveis CSS)
Antes de escrever CSS personalizado, verifique se as configurações de design integradas já fazem o que você precisa. Cores, fontes, formato do botão e posição do launcher são configuráveis sem código, e essas configurações permanecem após atualizações do Klaviyo. Use CSS personalizado apenas para o que as configurações de design não cobrem.
Onde adicionar seu CSS personalizado
O local onde você encontra o editor de CSS personalizado depende da sua configuração.
Se você usa o Klaviyo Customer Hub
- Navegue até Klaviyo Customer Hub > Design.
- Role até a seção Personalizado na parte inferior das configurações de estilo.
- Clique em Adicionar CSS personalizado ou edite o CSS que já está lá.
- Clique em Save.
Se você usa o chat web independente
- Navegue até Configurações > chat web > Design.
- Role até a seção Personalizado na parte inferior das configurações de estilo.
- Clique em Adicionar CSS personalizado ou edite o CSS que já está lá.
- Clique em Save.
Se você tiver o Klaviyo Customer Hub ativado, as configurações de design do chat web vão direcionar você para o Klaviyo Customer Hub. Isso é esperado — o Klaviyo Customer Hub é responsável pelo design das duas superfícies, então há um único lugar para estilizar tudo.
Como o CSS personalizado é aplicado
Seu CSS é adicionado a uma tag style na sua vitrine, depois dos próprios estilos da Klaviyo. Duas coisas decorrem disso:
- Seu CSS prevalece. Como ele carrega por último, suas regras substituem os padrões do Klaviyo sem precisar de !important na maioria dos casos.
- Seu CSS não está com escopo definido para o chat. Ele se aplica à sua página inteira. Sempre defina o escopo dos seletores para um elemento do chat em vez de escrever regras genéricas como button { … }, que afetariam toda a sua vitrine.
Comece com variáveis do tema
A forma mais confiável de redefinir o estilo do chat web é sobrescrever as variáveis de tema da Klaviyo em um bloco :root. Elas são estáveis, fazem a cascata corretamente por toda a interface e têm muito menos chance de quebrar do que segmentar elementos individuais.
:root {
--atlas-chat-bubble-background: #f0ebe4;
--atlas-message-border-radius: 4px;
} Variáveis de mensagens na conversa
Variável | Padrão | Controles |
|---|---|---|
|
| Plano de fundo das mensagens do agente (recebidas) |
|
| Cor do texto das mensagens do agente (recebidas) |
|
| Nome do remetente exibido acima de uma mensagem |
|
| Raio do canto em todos os balões de mensagem |
As mensagens do comprador (de saída) reutilizam intencionalmente as cores da sua marca: o balão usa --atlas-button-primary e o texto usa --atlas-text-primary-inverse, ambos definidos por você nas configurações de design.
Variáveis de cor e de superfície
Variável | Padrão | Controles |
|---|---|---|
|
| Plano de fundo da janela de chat |
|
| Cartões e superfícies elevadas |
|
| Texto do corpo |
|
| Texto secundário e de ajuda |
|
| Texto de placeholder do Composer |
|
| Cor de destaque |
|
| Plano de fundo do botão principal e do balão do cliente |
|
| Texto em botões principais e em bolhas do comprador |
|
| Divisórias sutis |
|
| Cor do anel de foco |
Variáveis de forma e espaçamento
Variável | Padrão | Controles |
|---|---|---|
|
| Raio do canto da janela de chat |
|
| Raio do canto do botão |
|
| Raio do canto da entrada |
|
| Raio do canto do cartão |
|
| Sombra da janela do chat |
Variáveis de tipografia
Variável | Padrão | Controles |
|---|---|---|
| Pilha de fontes do sistema | Fonte do corpo |
| Pilha de fontes do sistema | Fonte do título |
|
| Tamanho base do corpo |
|
| Tamanho do texto pequeno |
|
| Peso do corpo do texto |
|
| Peso do título |
Vários deles já são definidos nas suas configurações de design. Definir fontes e cores na IU das configurações de design é preferível — use as variáveis para valores que a IU não expõe.
Direcione elementos com ganchos de classe
Quando uma variável do tema não for suficiente, direcione os elementos diretamente. A Klaviyo garante os nomes de classe abaixo.
Qualquer nome de classe que você encontrar no inspetor do seu navegador e que não esteja nesta lista não é seguro para usar. A maioria dos nomes de classe internos inclui um hash de build (por exemplo, Chat-chatWindow-a1B2c) que muda sempre que a Klaviyo lança uma atualização, quebrando seu CSS silenciosamente. Regra geral: se uma classe começa com kl-hub-, é seguro. Se não, não é.
Elementos do chat
Seletor | Elemento |
|---|---|
| O botão flutuante de abertura do chat |
| A janela de chat |
| O cabeçalho da janela de chat |
| A área de mensagem rolável |
| Uma bolha de mensagem (do agente e do comprador) |
| O contêiner do Composer de mensagens |
| O campo de texto do Composer |
| Botões de início de conversa e de resposta rápida |
| O plano de fundo atrás da janela de chat |
A janela de chat também tem uma classe que nomeia a tela atual — .kl-hub-route-chat para o próprio chat. No chat web independente, isso é sempre .kl-hub-route-chat. No Klaviyo Customer Hub, isso muda conforme o cliente navega (.kl-hub-route-home, .kl-hub-route-orders, e assim por diante), o que permite que você delimite o CSS para uma única tela.
O botão de envio não tem uma classe dedicada. Direcione-o pelo Composer:
.kl-hub-chat-input-wrapper .kl-hub-button-primary {
background: #2f4f4f;
} Elementos compartilhados
Seletor | Elemento |
|---|---|
| Qualquer elemento de texto |
| Qualquer título (também .kl-hub-h1 através de .kl-hub-h5) |
| Texto de parágrafo (também .kl-hub-p-small, .kl-hub-p-tiny, .kl-hub-p-large) |
| Links |
| Qualquer botão (também .kl-hub-button-primary, .kl-hub-button-secondary, .kl-hub-button-tertiary) |
| Qualquer entrada de texto |
| Cartões, incluindo cartões de produto |
| Miniaturas de produto |
| Ícones |
| Notificações toast |
Estilizar as mensagens do agente e do cliente de formas diferentes
Essa é a solicitação mais comum e precisa de uma abordagem específica. Os balões de agente e comprador compartilham a única mensagem .kl-hub Classe — Não há nenhuma classe estável distinguindo-os, portanto, você não pode selecionar uma diretamente.
Em vez disso, use as variáveis do tema, que já tratam os dois de forma diferente:
: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 também define as cores dos seus botões principais. Se você precisar que o balão do shopper e seus botões sejam diferentes, isso não é compatível no momento.
Exemplos
Acerte tudo
:root {
--atlas-drawer-inset-border-radius: 0;
--atlas-message-border-radius: 0;
--atlas-button-border-radius: 0;
--atlas-input-border-radius-normal: 0;
} Títulos e botões em maiúsculas
.kl-hub-heading,
.kl-hub-button {
text-transform: uppercase;
letter-spacing: 0.04em;
} Deixe o inicializador maior com uma sombra personalizada
.kl-hub-launcher {
width: 72px !important;
height: 72px !important;
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25) !important;
} O launcher define várias propriedades diretamente no elemento, então as regras do launcher precisam de !important para terem efeito. Este é o único lugar em que isso é exigido com frequência.
Amplie a janela de chat no desktop
@media (min-width: 900px) {
.kl-hub-drawer {
width: 480px;
}
} Se o seu CSS não salvar
Ao salvar, a Klaviyo verifica se o seu CSS é analisado corretamente. Se não for, você verá CSS inválido. Verifique a sintaxe. e suas alterações não serão salvas.
Uma folha de estilos só é rejeitada completamente quando não produz nenhuma regra, o que geralmente significa que o que você colou não é CSS. Causas comuns:
- Colar texto simples, HTML ou uma tag de estilo em vez de regras de CSS
- Colar parte de uma declaração em vez de uma regra completa
- Uma folha de estilo na qual toda regra tem um erro de sintaxe
Um único erro de sintaxe geralmente não bloqueia o salvamento. Em vez disso, ele quebra silenciosamente as regras ao redor. Texto solto antes de uma regra é absorvido pelo seletor dessa regra, então a regra não corresponde a nada. Uma regra não fechada engole as declarações que vêm depois dela. Uma chave de fechamento solta é ignorada. Então, se uma regra que você escreveu não tiver efeito, verifique a sintaxe de tudo acima dela, não apenas da própria regra.
O que o CSS personalizado não pode fazer
- Alterar texto. O CSS personalizado não pode editar o texto. Para isso, use as configurações de design e conteúdo.
- Reordenar ou reposicionar elementos além do que o layout de CSS permite. A estrutura do chat não é personalizável.
- Direcione os balões do agente e do comprador separadamente pela classe. Use variáveis de tema, conforme descrito acima.
- Resista automaticamente a reformulações. Os ganchos de classe e as variáveis são estáveis em atualizações normais, mas uma reformulação significativa pode exigir que você revise seu CSS. Teste novamente após grandes lançamentos.
Recursos adicionais
- Como Personalizar seu Klaviyo Customer Hub
Saiba mais sobre as opções de design para estilizar a gaveta do seu Klaviyo Customer Hub e como você pode projetá-la para combinar com a sua marca. Como a interface do Klaviyo Customer Hub está integrada à experiência do cliente, é uma boa prática estilizar para que ela pareça uma extensão do seu site.
- Guia de introdução ao chat web
Saiba mais sobre chat web, um canal de comunicação bidirecional que você pode adicionar ao seu site. O chat web pode ser configurado separadamente para você usar com o Customer Agent e o Helpdesk, mas também foi projetado para ser uma parte integrada do Klaviyo Customer Hub. O chat web permite que sua empresa tenha conversas ao vivo e personalizadas com visitantes no seu site, para que eles possam encontrar respostas para suas perguntas ou ajuda com problemas com facilidade.
- Solução de problemas de CSS, JavaScript e HTML personalizados na Klaviyo
Saiba como solucionar problemas de código personalizado ao importar um modelo de HTML personalizado ou criar seu próprio modelo com código personalizado.