Como usar CSS personalizado para estilizar o chat web
O que você vai aprender
Como usar CSS personalizado para alterar a aparência do chat web da Klaviyo — o inicializador, a janela de chat, os balões de mensagem e o Composer de mensagens. Você vai aprender quais variáveis de tema e ganchos de classe usar e como evitar seletores que podem mudar quando a Klaviyo atualizar a interface.
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.
Para ocultar o launcher em determinadas páginas do seu site ou mostrá-lo apenas em determinadas páginas, consulte Como mostrar ou ocultar o launcher em páginas específicas.
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
- Acesse Klaviyo Customer Hub > Design e clique em Edite seu Hub.
- Selecione Estilo na barra lateral esquerda e role até CSS personalizado.
- Clique no botão + ao lado de Custom CSS e insira seu CSS ou edite o CSS que já está lá.
- Clique em Save. Se um teste de visibilidade estiver em execução, ao salvar você o encerra antecipadamente. Clique em Finalizar teste e publicar apenas se você estiver pronto para encerrar o teste.
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 e insira seu CSS 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.
Depois de salvar, verifique o chat no seu site em larguras de desktop e de celular. Abra e feche o iniciador, envie uma mensagem e verifique os estados da resposta e do botão de envio. Para desfazer uma alteração, remova o CSS afetado e salve novamente.
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:
- Regras posteriores podem substituir regras anteriores. Seu CSS é carregado depois dos estilos da Klaviyo, mas a especificidade do seletor, os estilos inline e as animações ainda podem ter precedência. Use !important apenas quando necessário.
- 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
Comece substituindo as variáveis de tema do Klaviyo em um bloco :root. Isso permite que você altere cores e formas compartilhadas sem precisar definir cada elemento individualmente. Essas mudanças também podem afetar outras partes do Klaviyo Customer Hub. As tabelas abaixo mostram os padrões básicos da folha de estilos; suas configurações de design podem substituir esses valores.
:root {
--atlas-chat-bubble-background: #f0ebe4;
--atlas-message-border-radius: 4px;
}Variáveis de mensagens na conversa
Variável | Base padrão | Controles |
|---|---|---|
|
| Plano de fundo dos balões de mensagem do agente humano |
|
| Cor do texto dos balões de mensagem do agente humano |
|
| Cor do texto do Customer Agent e das respostas automatizadas |
|
| 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 | Base 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 | Base padrão | Controles |
|---|---|---|
|
| Raio de canto da janela de chat flutuante |
|
| Raio de canto de botão Standard. Use --atlas-button-border-radius-small e --atlas-button-border-radius-tiny para botões menores. |
|
| Raio do canto da entrada |
|
| Raio do canto do cartão |
|
| Sombra da janela de chat flutuante independente no desktop |
Variáveis de tipografia
Variável | Base 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.
Use nomes de classe que comecem com kl-hub- para CSS personalizado. As tabelas abaixo não são uma lista exaustiva. Evite nomes de classe internos gerados, como Chat-chatWindow-a1B2c, porque eles podem mudar entre versões e fazer com que seu CSS deixe de corresponder.
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 |
| Um contêiner de mensagem de texto, incluindo respostas sem balões |
| 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 |
| A sobreposição ao redor da janela de chat. O chat flutuante independente no desktop não tem fundo esmaecido. |
| Texto de introdução do palestrante |
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:not(:disabled) {
--atlas-button-primary: #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
Mensagens de texto entre agente humano e comprador compartilham a .kl-hub-message classe. O Customer Agent e as respostas automatizadas também usam isso. Não há uma classe estável que selecione apenas um tipo de remetente.
Use variáveis de tema para estilizar de forma diferente os balões do agente humano e do comprador. O Customer Agent e as respostas automatizadas não têm balão e usam --atlas-text-primary como cor do texto. Defina o escopo das variáveis para .kl-hub-message para manter essas mudanças dentro dos contêineres de mensagens:
.kl-hub-message {
/* Human-agent messages */
--atlas-chat-bubble-background: #f0ebe4;
--atlas-chat-bubble-text-primary: #2b2b2b;
/* Customer Agent and automated replies */
--atlas-text-primary: #2b2b2b;
/* Shopper messages */
--atlas-button-primary: #1f3a3d;
--atlas-text-primary-inverse: #ffffff;
}Definir --atlas-button-primary em :root também muda os botões principais. O exemplo acima define isso apenas nos contêineres de mensagens, então os botões principais fora das mensagens mantêm as configurações de design. Isso também afeta links dentro de mensagens recebidas.
Exemplos
Deixe a janela de chat, os balões de mensagem, os botões e os campos de entrada quadrados
:root {
--atlas-drawer-inset-border-radius: 0;
--atlas-message-border-radius: 0;
--atlas-button-border-radius-normal: 0;
--atlas-button-border-radius-small: 0;
--atlas-button-border-radius-tiny: 0;
--atlas-input-border-radius-normal: 0;
--atlas-input-border-radius-small: 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
O launcher usa regras de CSS mais específicas e animações de tamanho, então este exemplo usa !important. Fixar a largura e a altura dele também impede que ele se expanda para notificações ou conteúdo de Adicionar ao carrinho. Verifique esses estados para ver se há conteúdo cortado antes de manter essas substituições de tamanho.
.kl-hub-launcher {
width: 72px !important;
height: 72px !important;
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25) !important;
}Amplie a janela de chat no desktop
@media (min-width: 900px) {
.kl-hub-drawer.kl-hub-route-chat {
width: 480px !important;
}
}Solucionar problemas de CSS personalizado
No chat web independente, a Klaviyo verifica seu CSS antes de salvar. Se a verificação falhar, você verá CSS inválido. Verifique a sintaxe. e suas alterações não serão salvas.
Essa verificação rejeita uma folha de estilos não vazia quando o navegador não consegue interpretar nenhuma regra. Você pode limpar o campo e salvar para remover seu CSS personalizado. Se você vir o erro, verifique se há:
- 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
Salvar com sucesso não garante que toda regra seja válida ou corresponda a um elemento. Os navegadores podem ignorar um CSS inválido ou interpretá-lo de forma diferente do que foi planejado. Se uma regra não tiver efeito, verifique a sintaxe acima dela, assim como a própria regra, especialmente textos soltos antes dos seletores e chaves ausentes.
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.
- Como mostrar ou ocultar o launcher em páginas específicas
Oculte o inicializador do chat web e do Klaviyo Customer Hub em determinadas páginas do seu site ou mostre-o apenas em determinadas páginas, com um pequeno snippet de CSS no tema do seu site.