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

Design System

Documentation des composants UI de Bubul

v1.0.0
{# ===== TOKENS ===== #}
🎨

Tokens

Variables de design
{# Colors #}
Disponible

Couleurs

Palette complète avec couleurs sémantiques et gradients

Primary Success Error
{# Spacing - À venir #}
À venir

Espacements

Marges, paddings et gaps

{# Typography - À venir #}
Aa
À venir

Typographie

Fonts, tailles et line-heights

{# ===== INTRODUCTION ===== #}

Introduction

Ce Design System suit la méthodologie Atomic Design de Brad Frost. Les composants sont organisés en 5 niveaux hiérarchiques :

⚛️

Atomes

Boutons, inputs, badges...

🔗

Molécules

Form groups, cards...

🧬

Organismes

Header, sidebar, modals...

📄

Templates

Layouts de page

📱

Pages

Instances finales

{# ===== ATOMES ===== #}
⚛️

Atomes

Éléments de base indivisibles
{# Explication pédagogique #}

Qu'est-ce qu'un Atome ?

Les atomes sont les éléments fondamentaux de l'interface. Ce sont les plus petites unités fonctionnelles qui ne peuvent pas être divisées sans perdre leur sens : boutons, inputs, labels, icônes...

Indépendants Réutilisables Sans logique métier
Btn
Button
Input
Badge
{# Avatar #}
Disponible

Avatar

Images ou initiales utilisateur avec statut

6 tailles 4 statuts
{# Badge #}
Disponible

Badge

Indicateurs visuels pour statuts et compteurs

7 variantes 4 tailles
{# Button #}
Disponible

Button

Boutons d'action avec variantes, tailles et états

10 variantes 5 tailles
{# Checkbox #}
Disponible

Checkbox

Cases à cocher personnalisées

2 variantes 3 tailles
{# Divider #}
Disponible

Divider

Séparateur horizontal ou vertical

3 variantes avec texte
{# Icon #}
Disponible

Icon

Bibliothèque de 67 icônes SVG

6 tailles 10 couleurs
{# Input #}
Disponible

Input

Champs de saisie texte, email, password, textarea

2 variantes 3 tailles
{# Kbd #}
⌘K
Disponible

Kbd

Affichage de raccourcis clavier

3 variantes combos
{# Label #}
Disponible

Label

Étiquettes avec indicateurs et tooltip

3 variantes tooltip
{# Link #}
Disponible

Link

Liens stylisés avec icônes optionnelles

6 variantes 3 tailles
{# Logo #}
{% include '_atoms/icon/icon.html.twig' with { name: 'bubul-logo', size: 'lg', color: 'primary' } %}
Disponible

Logo

Logos Bubul détaillé et simplifié

2 versions guidelines
{# Progress #}
Disponible

Progress

Barres de progression pour tâches et quotas

4 tailles striped
{# Radio #}
Disponible

Radio

Boutons radio pour choix exclusifs

2 variantes 3 tailles
{# Select #}
Disponible

Select

Menus déroulants personnalisés

3 tailles
{# Skeleton #}
Disponible

Skeleton

Placeholders de chargement animés

8 variantes 2 animations
{# Spinner #}
Disponible

Spinner

Indicateurs de chargement animés

5 tailles 6 couleurs
{# Tag #}
Tag
Disponible

Tag

Étiquette supprimable pour filtres

removable selectable
{# Textarea #}
Disponible

Textarea

Champs multiligne avec compteur de caractères

3 resize compteur
{# Toggle #}
Disponible

Toggle

Interrupteurs on/off

5 couleurs 3 tailles
{# Tooltip #}
Disponible

Tooltip

Info-bulles CSS-only au survol

4 positions 2 styles
{# Typography #}
Aa
Disponible

Typography

Titres, textes et labels stylisés

14 variantes 13 couleurs
{# ===== MOLÉCULES ===== #}
🧬

Molécules

Combinaisons d'atomes réutilisables
{# Explication pédagogique #}

Qu'est-ce qu'une Molécule ?

Une molécule combine plusieurs atomes pour créer un composant fonctionnel réutilisable. Elle encapsule la logique de composition et garantit la cohérence à travers l'application.

DRY : Ne pas répéter Cohérence garantie Maintenance centralisée
{# Diagramme visuel #}
Label
+
Input
+
Error
=
FormField
{# Alert #}
Disponible

Alert

Messages de notification et feedback

Icon Typography 5 variantes
{# Toast #}
Disponible

Toast

Notifications temporaires non-bloquantes

Alert JavaScript auto-dismiss
{# Breadcrumb #}
Disponible

Breadcrumb

Fil d'ariane pour la navigation

Icon Link 3 tailles
{# Card #}
Disponible

Card

Conteneur avec header, body et footer

Icon Typography Button
{# EmptyState #}
Disponible

EmptyState

Affichage pour les états vides et résultats nuls

Icon Typography Button
{# FormCheckbox #}
Disponible

FormCheckbox

Checkbox stylisée avec label et messages

Checkbox 2 variantes
{# FormField #}
Disponible

FormField

Label + Input + Error en un seul composant

Label Input Error
{# Modal #}
Disponible

Modal

Dialogues de confirmation et formulaires

Overlay Button 6 tailles
{# Pagination #}
Disponible

Pagination

Navigation paginée pour listes et tableaux

Icon Button 3 tailles
{# SearchBar #}
Disponible

SearchBar

Barre de recherche avec raccourci clavier

Icon Input Kbd
{# Search Input #}
Disponible

Search Input

Champ de recherche pill des bibliothèques d'outils

Icon Stimulus
{# Chart Card #}
{% include '_atoms/icon/icon.html.twig' with { name: 'chart', size: 'lg', color: 'primary' } only %}
Disponible

Chart Card

Carte enveloppant un graphique : en-tête, actions, canvas, état vide

Icon 3 hauteurs
{# StatCard #}
Disponible

StatCard

Carte de statistique pour dashboards

Icon Progress 5 variantes
{# Tabs #}
Disponible

Tabs

Système d'onglets pour organiser le contenu

Icon Badge 4 variantes
{# Progress Ring #}
{% include '_molecules/progress-ring/progress-ring.html.twig' with { value: 75, size: 'xs', showLabel: false } %}
Disponible

Progress Ring

Cercle de progression SVG avec pourcentage

5 tailles 4 variantes
{# Mini Stat #}
{% include '_atoms/icon/icon.html.twig' with { name: 'token', size: 'lg', color: 'primary' } %}
Disponible

Mini Stat

Statistique compacte avec icône et label

Icon 5 variantes
{# Level Indicator #}
{% include '_molecules/level-indicator/level-indicator.html.twig' with { level: 2, maxLevel: 3, size: 'sm' } %}
Disponible

Level Indicator

Barres de niveau pour difficulté/priorité

auto-color labels
{# Nav Item #}
Disponible

Nav Item

Élément de navigation sidebar

Icon Badge collapsed
{# Section Header #}
Section
Disponible

Section Header

En-tête avec barre colorée latérale

Icon produits
{# Filter Tabs #}
Disponible

Filter Tabs

Boutons filtres avec compteurs

Badge 3 variantes
{# Page Header #}
Disponible

Page Header

En-tête de page avec breadcrumb et actions

Icon Button Badge
{# User Card #}
Disponible

User Card

Carte utilisateur avec avatar et progress

Progress Ring Badge
{# Data Row #}
Disponible

Data Row

Paire label:valeur standardisée

Icon 2 layouts
{# Action Bar #}
Disponible

Action Bar

Groupe de boutons d'action CRUD

Icon 4 variantes
{# Tag Group #}
A B +2
Disponible

Tag Group

Collection de tags avec "+X more"

Tag truncate
{# Tool Toggle #}
Disponible

Tool Toggle

Activation/désactivation d'outils

Icon Stimulus 3 tailles
{# Enrolled Card #}
Disponible

Enrolled Card

Carte utilisateur inscrit avec progression

Progress Ring Action Bar
{# Member Slider #}
Disponible

Member Slider

Slider + input synchronisés pour quotas

Stimulus 3 variantes
{# Step Indicator #}
Disponible

Step Indicator

Progression par étapes pour wizards

Icon 2 layouts 3 tailles
{# Step Nav #}
Disponible

Step Nav

Retour et étape suivante — la même barre dans les trois outils

Button Moodia · Slidia · Scormia
{# Activity Item #}
Nouveau

Activity Item

Élément d'activité avec icône et tokens

Icon Badge 4 outils
{# Contract Row #}
Nouveau

Contract Row

Ligne de contrat avec outils et tokens

Icon Badge cliquable
{# Status Zone #}
Nouveau

Status Zone

Zone d'action avec bouton et modal

Icon Button 5 variantes
{# Section Divider #}
Nouveau

Section Divider

Séparateur de section avec icône et compteur

Icon Embed
{# Stepper #}
Nouveau

Stepper

Progression multi-étapes pour wizards

Icon 3 tailles 2 variantes
{# Tip #}
Nouveau

Tip

Encart conseil contextuel avec 4 variantes

Icon 4 variantes
{# Tool Card #}
Nouveau

Tool Card

Carte outil dashboard avec sparkline

Icon SVG Chart Stats
{# Date Range Filter #}
{% include '_atoms/icon/icon.html.twig' with { name: 'calendar', size: 'lg', color: 'info' } only %}
Nouveau

Date Range Filter

Barre de filtre de période, émet du/au en GET

Icon Button Formulaire
{# ===== ORGANISMES ===== #}
🏛️

Organismes

Sections de page complètes
{# Explication pédagogique #}

Qu'est-ce qu'un Organisme ?

Un organisme assemble molécules et atomes pour former une section complète et fonctionnelle de l'interface. C'est une zone distincte de la page avec une responsabilité propre : header, sidebar, formulaire complet, modal...

Sections autonomes Logique métier Contexte spécifique
{# Diagramme visuel #}

LoginForm

{# Sidebar #}
Critique

Sidebar

Navigation principale de l'application

nav-item icon logo
{# Course Card #}
Critique

Course Card

Carte de cours Moodia avec stats et niveau

badge level-indicator mini-stat
{# Company Card #}
Admin

Company Card

Carte d'entreprise avec outils et statut

avatar badge icon
{# Auth Layout #}
Public

Auth Layout

Layout split-screen pour pages d'authentification

logo gradient
{# Login Form #}
Public

Login Form

Formulaire de connexion avec validation

form-field button checkbox
{# Landing Header #}
Public

Landing Header

Header de navigation pour la landing page

logo button nav
{# Landing Hero #}
Public

Landing Hero

Section hero avec blobs animes et CTA

button blobs animations
{# Landing Hero Tool #}
Nouveau

Landing Hero Tool

Section hero parametree pour les pages d'outils (Moodia, Slidia, Serenia...)

liveBadge visualHtml pills
{# Landing Features #}
Public

Landing Features

Grille de fonctionnalites avec icones et descriptions

feature-card icon
{# Landing Features Alternating #}
Nouveau

Landing Features Alternating

Fonctionnalites en alternance texte/visuel pour pages outils

features alternating
{# Landing Steps Tool #}
Nouveau

Landing Steps Tool

Etapes numerotees "Comment ca marche" pour pages outils

steps numbered
{# Landing Tools #}
Public

Landing Tools

Grille de cards outils avec couleurs et badges

tool-card grid
{# Landing Tools Ecosystem #}
Nouveau

Landing Tools Ecosystem

Vue ecosysteme de tous les outils Bubul

ecosystem tools
{# Landing Pricing #}
Public

Landing Pricing

Section tarifs avec plans et toggle mensuel/annuel

pricing-card toggle
{# Landing FAQ #}
Public

Landing FAQ

Section accordeon de questions frequentes

accordion faq-item
{# Landing CTA #}
Public

Landing CTA

Bande d'appel a l'action avec gradient et boutons

button gradient
{# Landing Footer #}
Public

Landing Footer

Footer avec logo, liens produits, nav et mentions legales

logo links socials
{# Landing Trust #}
Nouveau

Landing Trust

Bande de confiance avec badges securite et garanties

trust-badge icons
{# Landing Social Proof #}
Nouveau

Landing Social Proof

Temoignages et avatars formateurs avec stats

testimonials avatars
{# Landing Demo Showcase #}
Nouveau

Landing Demo Showcase

Showcase interactif des demos produit avec tabs

tabs demo
{# Landing Screenshots #}
Nouveau

Landing Screenshots

Galerie de screenshots avec navigation et zoom

gallery slider
{# Landing How It Works #}
Nouveau

Landing How It Works

Section "Comment ca marche" avec etapes visuelles

steps timeline
{# Landing Pillars #}
Nouveau

Landing Pillars

Valeurs et piliers de la plateforme en grille

pillars grid
{# Landing LMS Partnership #}
Nouveau

Landing LMS Partnership

Section partenariat LMS avec logos et integration

logos integration
{# Activity List #}
Nouveau

Activity List

Liste d'activités récentes avec card

activity-item empty-state
{# Contract List #}
Nouveau

Contract List

Liste de contrats avec outils et tokens

contract-row empty-state
{# Feedback Widget #}
Nouveau

Feedback Widget

Bouton flottant + modal de feedback utilisateur

icon stimulus
{# Forgot Password Form #}
Nouveau

Forgot Password Form

Formulaire de recuperation de mot de passe

link input button
{# Reset Password Form #}
Nouveau

Reset Password Form

Formulaire de reinitialisation du mot de passe

link input button
{# Auth Visual #}
Nouveau

Auth Visual

Partie visuelle des pages d'authentification

logo
{# Choice Card #}
Critique

Choice Card

Carte de choix premium pour wizards

icon features gradient
{# Dashboard Activity #}
Nouveau

Dashboard Activity

Liste d'activites recentes avec tokens et energie

icon empty-state
{# Eco Footprint #}
Nouveau

Eco Footprint

Empreinte ecologique avec metriques et graphique

icon chart metrics
{# Tool Header #}
Disponible

Tool Header

En-tête de bibliothèque d'outil, partagé entre les outils

icon badge button
{# Tool Toolbar #}
Disponible

Tool Toolbar

Ligne de filtres et de recherche des bibliothèques d'outils

filter-tabs search-input
{# Choice Page #}
Nouveau

Choice Page

Page « comment voulez-vous commencer ? », gabarit commun aux pages de création des outils

choice-card button
{# Entity Card #}
Nouveau

Entity Card

Coque de carte partagée des bibliothèques d'outils (accent, corps, pied daté, menu)

action-menu icon
{% endblock %}