{% extends 'base.html.twig' %} {% block title %}Stepper - Design System - Bubul{% endblock %} {% block body %}
{# ===== HEADER ===== #}
Molecules /

Stepper

Composant de progression par etapes pour les wizards et formulaires multi-step

{# ===== COMPOSITION ===== #}

Composition

Icon + Typography = Stepper
{# ===== USAGE ===== #}

Usage

{% verbatim %}{% include '_molecules/stepper/stepper.html.twig' with {
    steps: [
        { label: 'Source' },
        { label: 'Configuration' },
        { label: 'Génération' }
    ],
    currentStep: 2
} %}{% endverbatim %}

Fichier : templates/_molecules/stepper/stepper.html.twig

{# ===== BASIQUE ===== #}

Basique

3 etapes simples avec labels, etape 2 active

{% include '_molecules/stepper/stepper.html.twig' with { steps: [ { label: 'Source' }, { label: 'Configuration' }, { label: 'Génération' } ], currentStep: 2 } %}
{# ===== AVEC ICONES ===== #}

Avec icones

Parametres : steps[].icon + size: 'lg'

{% include '_molecules/stepper/stepper.html.twig' with { steps: [ { label: 'Source', icon: 'document' }, { label: 'Config', icon: 'settings' }, { label: 'Preview', icon: 'eye' }, { label: 'Générer', icon: 'rocket' } ], currentStep: 2, size: 'lg' } %}
{# ===== TAILLES ===== #}

Tailles

Parametre : size

Small (sm)

{% include '_molecules/stepper/stepper.html.twig' with { steps: [ { label: 'Source' }, { label: 'Configuration' }, { label: 'Génération' } ], currentStep: 2, size: 'sm' } %}

Medium (md) - defaut

{% include '_molecules/stepper/stepper.html.twig' with { steps: [ { label: 'Source' }, { label: 'Configuration' }, { label: 'Génération' } ], currentStep: 2, size: 'md' } %}

Large (lg)

{% include '_molecules/stepper/stepper.html.twig' with { steps: [ { label: 'Source' }, { label: 'Configuration' }, { label: 'Génération' } ], currentStep: 2, size: 'lg' } %}
{# ===== VARIANTES ===== #}

Variantes

Parametre : variant

Default - Labels toujours visibles

{% include '_molecules/stepper/stepper.html.twig' with { steps: [ { label: 'Source' }, { label: 'Configuration' }, { label: 'Génération' } ], currentStep: 2, variant: 'default' } %}

Compact - Labels masques sur mobile

{% include '_molecules/stepper/stepper.html.twig' with { steps: [ { label: 'Source' }, { label: 'Configuration' }, { label: 'Génération' } ], currentStep: 2, variant: 'compact' } %}

Minimal - Sans labels

{% include '_molecules/stepper/stepper.html.twig' with { steps: [ { label: 'Source' }, { label: 'Configuration' }, { label: 'Génération' } ], currentStep: 2, variant: 'minimal' } %}
{# ===== ETAPES TERMINEES ===== #}

Etapes terminees

Derniere etape active - toutes les precedentes sont completees

{% include '_molecules/stepper/stepper.html.twig' with { steps: [ { label: 'Source' }, { label: 'Configuration' }, { label: 'Génération' } ], currentStep: 3 } %}
{# ===== PARAMETRES ===== #}

Parametres

Parametre Type Defaut Description
stepsarray[]Liste des etapes {label, icon?}
currentStepint1Etape active (1-indexed)
sizestring'md'sm, md, lg
variantstring'default'default, compact, minimal
clickableboolfalseEtapes precedentes cliquables
baseUrlstringnullURL de base pour les liens (requis si clickable)

Structure d'une etape

{% verbatim %}{ label: 'Nom de l\'étape', icon: 'nom-icone' }{% endverbatim %}

Le champ icon est optionnel. S'il est defini, l'icone s'affiche sur l'etape active a la place du numero.

{% endblock %}