Aller au contenu

Composant · Chat

ChatMessage

Stable

Bulle visuelle de message avec rôle, statut, footer, actions et avatar. Le contenu reste piloté par le consumer via des slots.

Quelle est la différence entre Badge et Tag ?
Badge est statique (indicateur) ; Tag est interactif (filtrable, supprimable).
Voir le code (Svelte)
<ChatMessage role="user">Quelle est la différence entre Badge et Tag ?</ChatMessage>
<ChatMessage role="assistant" status="completed" timestamp="14:32">Badge est statique (indicateur) ; Tag est interactif (filtrable, supprimable).</ChatMessage>

Bac à sable de la Bulle de Message

Ajustez dynamiquement toutes les propriétés et les slots de la bulle ChatMessage pour tester son rendu, ses contrastes, son comportement d'accessibilité et ses variations de rôles.

Configuration de la Bulle


Snippets Optionnels (Slots)
Code Svelte correspondant
<script lang="ts">
  import { ChatMessage } from "@sentropic/design-system-svelte";
</script>

<ChatMessage
  role="assistant"
  status="completed"
  timestamp="10:18"
  avatar={avatar}
  footer={footer}
  actions={actions}
>
  <p></p>
</ChatMessage>

Statuts supportés

valuemeaning
pendingMessage en attente d'envoi. Affiche un état neutre atténué.
processingMessage en cours de stream ou de rédaction. Affiche un point clignotant ou un loader discret.
completedMessage entièrement reçu et rendu. Bulle finalisée.
failedÉchec de la requête. Affiche une bordure rouge sémantique et un signalement d'erreur.

Propriétés

PropriétéTypeDescription
role"user" | "assistant" | "system" | "tool"Configure l'alignement visuel (droite pour user, gauche pour assistant) et la palette chromatique.
status"pending" | "processing" | "completed" | "failed"Contrôle l'état d'animation et de validation de la bulle.
timestampstringChaîne de caractères optionnelle affichant l'heure ou l'état de finalisation dans le footer.
avatarSnippet (slot)Rend une zone dédiée à l'avatar (ex: icône utilisateur ou logo IA).
childrenSnippet (slot, requis)Le corps du message, acceptant du HTML ou du markdown formaté.
footerSnippet (slot)Extension personnalisée du pied de page du message.
actionsSnippet (slot)Barre d'actions secondaires apparaissant au survol ou focus du message.

Tokens de style

  • --st-component-chatMessage-gap : Espace entre l'avatar et la bulle.
  • --st-component-chatMessage-avatarSize : Diamètre du conteneur d'avatar.
  • --st-component-chatMessage-assistantBackground : Couleur d'arrière-plan par défaut des bulles.
  • --st-component-chatMessage-maxWidth : Largeur maximale autorisée pour une bulle.