Design de la Chatbox TALKR.ai
Guide complet : structure, tokens CSS, composants et personnalisation du widget de chat
🖥️ Aperçu
La chatbox TALKR.ai est un widget de conversation autonome, léger (un seul fichier HTML) et entièrement personnalisable. Elle se connecte à l'API TALKR pour offrir une expérience conversationnelle fluide.
🏗️ Structure HTML
Le widget suit une architecture BEM simple avec 4 zones principales :
🎨 Design Tokens CSS
Les variables CSS personnalisables sont définies dans :root :
Couleurs
Dimensions
| Token | Valeur | Usage |
|---|---|---|
--radius |
1rem |
Border-radius global (container, bulles) |
width |
420px |
Largeur fixe du widget |
max-width |
95vw |
Limite mobile |
height |
680px |
Hauteur fixe du widget |
max-height |
90vh |
Limite viewport |
Typographie
| Élément | Font | Taille |
|---|---|---|
| Corps / messages | Inter 400 | .9rem |
| Titre header | Poppins 700 | 1rem |
| Sous-titre | Inter 400 | .75rem |
| Popover texte | Inter 400 | .8rem |
| Popover lien | Poppins 600 | .85rem |
🧩 Composants
purple → navy. Contient l'avatar, le titre, le statut en ligne (pastille verte) et les boutons d'action.
fadeIn au rendu.
border-radius: 2rem) + bouton d'envoi circulaire violet avec icône flèche SVG. Focus = bordure violette. Désactivé pendant l'envoi.
rgba(255,255,255,.15)) avec icônes SVG blanches. Hover = plus opaque.
Refresh : réinitialise session + messages.
Éclair : toggle un popover avec logo TALKR et lien vers le site.
✨ Animations
| Animation | Durée | Cible | Effet |
|---|---|---|---|
fadeIn |
0.25s ease | Toutes les bulles .msg |
Slide-up 6px + fade opacity 0→1 |
bounce |
0.6s infinite alternate | Dots du typing indicator | Translation Y -6px + opacity →0.4 |
| Transitions | 0.2s | Boutons, input focus, popover link | Background-color, border-color, transform |
🔧 Personnalisation
Changer les couleurs
Modifiez les variables CSS dans :root pour adapter le widget à votre charte graphique :
Changer l'avatar
Remplacez l'emoji dans .chat__avatar par une image :
Changer l'endpoint API
Modifiez la constante API_URL dans le <script> :
Dimensions du widget
Ajustez width et height dans la classe .chat :
⚙️ Logique JavaScript
Flux de conversation
Le widget gère automatiquement la session avec l'API TALKR :
- Initialisation — Appel POST sans session → le bot retourne son message d'accueil + un ID de session
- Messages suivants — Chaque appel envoie
session,trackinget le message utilisateur - Réponse — Extraction des messages intermédiaires (
data.messages) et de la réponse finale (variables.bot_answer) - Refresh — Reset de
sessionettrackingànull, vidage des messages, re-init
Fonctions principales
| Fonction | Rôle |
|---|---|
init() |
Charge le message d'accueil du bot au démarrage |
callAPI(msg) |
Envoie une requête POST à l'API TALKR |
extractBotResponse(data) |
Parse la réponse API et retourne un tableau de textes |
sendMessage() |
Gère l'envoi d'un message utilisateur (UI + API) |
addMessage(text, type) |
Ajoute une bulle dans le DOM |
showTyping() / hideTyping() |
Affiche/masque l'indicateur de frappe |
setEnabled(bool) |
Active/désactive l'input pendant un envoi |
📋 Exemple complet
Le widget est un fichier HTML autonome. Voici la structure minimale pour l'intégrer :
Le fichier complet est disponible dans le dossier chatbox/ du projet.
Prêt à intégrer votre chatbox ?
Consultez la documentation API pour configurer votre bot et le connecter au widget.
📡 Documentation API 🚀 Guide de démarrage