{% extends 'base.html.twig' %} {% block title %}Member Slider - Design System - Bubul{% endblock %} {% block body %}
{% verbatim %}{% include '_molecules/member-slider/member-slider.html.twig' with {
value: 50000,
min: 0,
max: 500000,
step: 1000,
unit: 'tokens/mois'
} %}{% endverbatim %}
Déplacez le slider ou modifiez l'input - ils sont synchronisés
Allocation de tokens
{% include '_molecules/member-slider/member-slider.html.twig' with { value: 150000, min: 0, max: 500000, step: 1000, unit: 'tokens/mois' } %}Pourcentage de quota
{% include '_molecules/member-slider/member-slider.html.twig' with { value: 75, min: 0, max: 100, step: 5, unit: '%' } %}Paramètre : variant
primary (défaut)
{% include '_molecules/member-slider/member-slider.html.twig' with { value: 60, max: 100, variant: 'primary' } %}success
{% include '_molecules/member-slider/member-slider.html.twig' with { value: 80, max: 100, variant: 'success' } %}warning
{% include '_molecules/member-slider/member-slider.html.twig' with { value: 45, max: 100, variant: 'warning' } %}Paramètre : disabled: true
Événement : shared--member-slider:change
{% verbatim %}// JavaScript
document.addEventListener('shared--member-slider:change', (event) => {
console.log('Nouvelle valeur:', event.detail.value);
console.log('Pourcentage:', event.detail.percentage);
console.log('Min/Max:', event.detail.min, event.detail.max);
});
// Ou avec Stimulus (dans un autre controller)
// data-action="shared--member-slider:change->myController#onSliderChange"{% endverbatim %}
Utilisation dans le block controls
{% verbatim %}{% embed '_molecules/user-card/user-card.html.twig' with {
name: 'Jean Dupont',
subtitle: 'Solde : 250 000 tokens',
variant: 'bordered'
} %}
{% block controls %}
{% include '_molecules/member-slider/member-slider.html.twig' with {
value: user.monthlyAllocation,
max: 500000,
step: 1000,
unit: 'tokens/mois',
name: 'allocation[' ~ user.id ~ ']'
} %}
{% endblock %}
{% endembed %}{% endverbatim %}
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
value | number | 0 | Valeur actuelle |
min | number | 0 | Valeur minimum |
max | number | 100 | Valeur maximum |
step | number | 1 | Pas d'incrémentation |
unit | string | null | Unité affichée (ex: 'tokens/mois', '%') |
name | string | null | Nom du champ pour formulaire |
disabled | bool | false | Désactiver le slider |
variant | string | primary | primary, success, warning |
class | string | '' | Classes CSS additionnelles |