Estilo con CSS personalizado para el Widget de chat

CSS personalizado

Si los ajustes de color y tema integrados no son suficientes, puedes rediseñar ambos widgets con tu propio CSS. El CSS se inyecta directamente en el widget, por lo que funciona aunque el widget se ejecute en un Shadow DOM al que las hojas de estilo de tu página no pueden acceder.

Disponible en planes Estándar y superiores, tanto para el widget flotante como para el Widget integrado, cada uno con su propio campo de CSS.

Dónde encontrarlo

  • Widget flotante: Panel → tu asistente → Canales → Widget de chat → Avanzado
  • Widget integrado: Panel → tu asistente → Canales → Chat integrado → Avanzado

La Vista previa en vivo junto al editor aplica tu CSS a medida que escribes. El campo acepta hasta 20.000 caracteres.

Selectores estables

Tu CSS se dirige a los elementos del widget a través de estas clases documentadas. Son un contrato estable: siguen funcionando tras las actualizaciones del widget.

SelectorElementWidget
.wca-widgetVentana de chatAmbos
.wca-headerEncabezado / títuloAmbos
.wca-messagesLista de mensajesAmbos
.wca-messageCualquier mensajeAmbos
.wca-message--botMensaje del botAmbos
.wca-message--userMensaje del usuarioAmbos
.wca-inputCampo de entradaAmbos
.wca-input-containerÁrea de entradaAmbos
.wca-prompt-buttonBotones de sugerenciaAmbos
.wca-welcomeÁrea de bienvenidaAmbos
.wca-action-barAction BarSolo flotante
.wca-bubbleBotón de chat flotanteSolo flotante
.wca-speech-bubbleBocadillo junto al botónSolo flotante

Advertencia: Solo estos selectores son estables. Todos los demás nombres de clases internas pueden cambiar sin previo aviso cuando se actualice el widget y pueden romper tus estilos. Vuelve a revisar tus estilos tras las actualizaciones del widget.

No se necesita !important

Tu CSS sobrescribe automáticamente los estilos integrados del widget; basta con selectores simples:

.wca-header {
  background: #0f172a;
}
.wca-message--bot {
  border-radius: 4px;
}

Técnicamente, el widget traslada sus estilos integrados a una capa de cascada de CSS cuando hay CSS personalizado, por lo que tus reglas (sin capa) siempre tienen prioridad, independientemente de la especificidad del selector.

Ejemplos

Rediseñar el botón de chat con una animación:

@keyframes wca-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}
.wca-bubble {
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  animation: wca-pulse 2s ease-in-out infinite;
}

Burbujas de mensaje cuadradas con un tamaño de fuente personalizado:

.wca-message--bot,
.wca-message--user {
  border-radius: 4px;
  font-size: 15px;
}

Estilos personalizados para la entrada:

.wca-input {
  border: 2px solid #0f172a;
  border-radius: 8px;
}
.wca-input::placeholder {
  color: #94a3b8;
}

Limitaciones

  • Posición y tamaño del widget flotante (desplazamientos, ancho, alto) se controlan desde la configuración del panel, no mediante CSS, ya que se aplican como estilos en línea
  • Otras clases internas más allá de los selectores documentados .wca-* no son estables
  • Se permiten las referencias @import y las url() externas, pero cuentan para el límite de caracteres y aumentan el tiempo de carga

Buenas prácticas

  • Prioriza la configuración integrada para colores, fuentes e imágenes; usa CSS personalizado solo para lo que la configuración no pueda cubrir
  • Limítate a los selectores documentados para que las actualizaciones del widget no rompan tus estilos
  • Revisa tu sitio en producción tras las actualizaciones del widget, especialmente si aplicaste estilos fuera de los selectores estables
  • Mantenlo reducido, unas pocas reglas bien dirigidas son más fáciles de mantener que un rediseño completo del tema