{% extends 'base.html.twig' %} {% block title %}Feedback Widget - Design System - Bubul{% endblock %} {% block body %}
Bouton flottant + modal de feedback utilisateur
Le Feedback Widget est un organisme autonome qui permet aux utilisateurs d'envoyer un retour
d'experience directement depuis n'importe quelle page de l'application.
Il se compose d'un bouton flottant fixe en bas a droite de l'ecran et d'une modal
qui s'ouvre au clic pour afficher un formulaire de feedback charge dynamiquement via AJAX.
L'ensemble est pilote par le controller Stimulus shared--feedback.
1
Atome
0
Molecules
1
Controller
0
Parametres
Atomes et controllers utilises
icon
- Icone message (bouton), close (modal), token (reward)
shared--feedback
- Gestion ouverture/fermeture modal + chargement AJAX
Exemple de code Twig
{% verbatim %}{# Dans base.html.twig ou tout template global #}
{% include '_organisms/feedback-widget/feedback-widget.html.twig' %}
{# Aucun parametre necessaire - composant entierement autonome #}{% endverbatim %}
Le composant est deja inclus dans le template de base de l'application. Il n'est pas affiche ici en demo pour eviter de creer un second bouton flottant sur la page.
Interactions et animations
Bouton flottant
fixed bottom-6 right-6)
duration-300
Modal de feedback
backdrop-filter: blur(4px)
Reward Box
Controller Stimulus
shared--feedback#openModal : ouvre la modal
shared--feedback#closeModal : ferme la modal
shared--feedback#preventClose : empeche la fermeture au clic dans la modal
Organisation hierarchique du composant
Feedback Widget
├── Bouton Flottant
│ └── Icon (message, xl, white)
│
└── Modal Overlay (.feedback-modal-overlay)
└── Modal Container (.feedback-modal)
├── Header
│ ├── Icon (message, 2xl, primary)
│ ├── Titre + Description
│ └── Bouton Close
│ └── Icon (close, md)
│
├── Body (formContainer)
│ └── Spinner (chargement AJAX)
│
└── Footer (Reward Box)
├── Icon (token, lg, primary)
└── Texte recompense
Options de configuration
Ce composant est entierement autonome et ne prend aucun parametre.
Son comportement est gere par le controller Stimulus shared--feedback
et le formulaire est charge dynamiquement via AJAX.
templates/_organisms/feedback-widget/feedback-widget.html.twig