{% extends 'base.html.twig' %} {% block title %}Toast - Design System - Bubul{% endblock %} {% block body %}
showToast(){% verbatim %}{% include %}{% endverbatim %}Le Toast utilise le meme design que l'Alert mais avec positionnement fixe, auto-dismiss et animations.
Testez le systeme de Toast en temps reel
Survolez une notification pour mettre en pause le timer. Les notifications apparaissent en bas a droite.
Pour les actions cote client (AJAX, interactions)
// Afficher un toast
showToast('success', 'Titre', 'Message descriptif');
// Variantes disponibles
showToast('success', 'Succes', 'Operation reussie.');
showToast('error', 'Erreur', 'Une erreur est survenue.');
showToast('warning', 'Attention', 'Action irreversible.');
showToast('info', 'Info', 'Nouvelle version disponible.');
showToast('neutral', 'Note', 'Information generale.');
// Options disponibles
showToast('warning', 'Attention', 'Cette action est irreversible.', {
duration: 8000, // Duree en ms (defaut: 5000)
dismissible: true, // Bouton fermer (defaut: true)
pauseOnHover: true // Pause au survol (defaut: true)
});
// Toast persistant (sans auto-dismiss)
showToast('error', 'Erreur critique', 'Connexion perdue.', {
duration: 999999 // Tres long = quasi-persistant
});
// Effacer tous les toasts
clearAllToasts();
fetch('/api/save', { method: 'POST', body: data })
.then(response => {
if (response.ok) {
showToast('success', 'Sauvegarde', 'Donnees enregistrees avec succes.');
} else {
showToast('error', 'Erreur', 'Impossible de sauvegarder.');
}
})
.catch(() => {
showToast('error', 'Erreur réseau', 'Vérifiez votre connexion.');
});
Pour les redirections apres actions serveur
// Format: addFlash('type', 'Titre|Message')
// Le pipe (|) separe le titre du message
$this->addFlash('success', 'Compte cree|Votre compte a ete cree avec succes.');
$this->addFlash('error', 'Erreur|Une erreur est survenue lors de la sauvegarde.');
$this->addFlash('warning', 'Attention|Cette action est irreversible.');
$this->addFlash('info', 'Information|Une mise a jour est disponible.');
return $this->redirectToRoute('app_dashboard');
Le systeme de toast est deja integre dans base.html.twig.
Les flash messages Symfony sont automatiquement convertis en toasts apres chaque redirect.
| Parametre | Type | Defaut | Description |
|---|---|---|---|
variant | string | (requis) | success, error, warning, info, neutral |
title | string | (requis) | Titre principal en gras |
message | string | (requis) | Message descriptif |
options.duration | number | 5000 | Duree d'affichage en millisecondes |
options.dismissible | bool | true | Afficher le bouton fermer |
options.pauseOnHover | bool | true | Pause du timer au survol |
templates/_molecules/toast/toast.html.twig
Inclus une seule fois dans base.html.twig. Contient le container, les templates HTML et le JavaScript.