{% extends 'base.html.twig' %} {% block title %}Context Banner - Design System - Bubul{% endblock %} {% block body %}
Bandeau contextuel pleine largeur — sélection et affichage du contexte actif
Le context-banner est un bandeau pleine largeur
collé en haut de chaque section. Il affiche le contexte actif (ex : entreprise sélectionnée) et
propose un sélecteur pour en changer. Conçu pour s'échapper du padding de la <main>
via des marges négatives -mx-6 lg:-mx-8.
1
Atome
4
Variantes couleur
7
Pages SAM
sticky
Position
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
| title | string | requis | Titre du contexte (ex: nom d'entreprise) |
| subtitle | string | null | Sous-titre (HTML autorisé via |raw) |
| icon | string | 'building' | Nom de l'icône Solar (atom icon) |
| color | string | 'primary' | Variante: primary, cohorts, success, warning |
| selector | object | null | Config sélecteur: {items, selected, controller, baseUrl} |
| actions | array | null | Boutons d'action: [{label, href, icon}] |
| sticky | bool | true | Fixe le bandeau en haut au scroll |
| class | string | '' | Classes Tailwind additionnelles |
theme: 'light' (défaut)Fond blanc avec trait de couleur en haut et icône tintée. Recommandé pour s'intégrer dans un layout existant.
color: 'cohorts', theme: 'light' — SAM (utilisé en production)
color: 'primary', theme: 'light'
color: 'success', theme: 'light'
theme: 'dark'Fond plein coloré avec texte blanc. Pour les bandeaux à fort impact visuel.
color: 'cohorts', theme: 'dark'
color: 'primary', theme: 'dark'
color: 'warning', theme: 'dark'
Affiché uniquement si selector.items contient plus d'un élément.
{%- verbatim %}
{# Dans sam/layout.html.twig — hérité automatiquement par toutes les pages SAM #}
{% include '_organisms/context-banner/context-banner.html.twig' with {
title: company ? company.name : 'Toutes les entreprises',
subtitle: company
? stats.users ~ ' apprenants · ' ~ stats.courses ~ ' cours'
: 'Vue d\'ensemble — toutes entreprises',
icon: 'building',
color: 'cohorts',
selector: (isAdmin and companies|length > 1) ? {
items: companies|map(c => { label: c.name, value: c.uuid }),
selected: company ? company.uuid : null,
controller: 'sam--company-selector',
baseUrl: currentPageUrl
} : null
} %}
{% endverbatim -%}
Marges négatives requises
Le context-banner s'échappe automatiquement du padding px-6 lg:px-8 py-8
de la <main> grâce aux classes internes
-mx-6 lg:-mx-8 -mt-8 lg:-mt-12 mb-8.
Il doit être placé en premier enfant du block body.