Files
bilan-ECF/docs/superpowers/specs/2026-06-21-bilan-redesign-design.md
T
2026-06-21 16:38:56 +02:00

94 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Redesign Professionnel — Bilan d'Évaluation
**Date :** 2026-06-21
**Contexte :** Application React/Vite standalone utilisée par un formateur seul pour évaluer un apprenant (CP1CP9), puis exporter un PDF.
---
## Problèmes identifiés
1. Pas de hiérarchie visuelle — tout est au même niveau
2. Workflow non évident — l'ordre des actions n'est pas guidé
3. Aspect peu professionnel à montrer
4. Actions importantes (Générer, IA, PDF) noyées en bas de page
---
## Architecture générale
### Topbar sticky (64px)
Structure en trois zones :
- **Gauche :** logo Arinfo (32px hauteur) + séparateur + CP selector stylisé en pill indigo
- **Centre :** titre dynamique `Bilan CPX — [sous-titre]` en font-weight 600, taille 15px
- **Droite :** champs Prénom + Nom (inputs compacts, 36px, fond transparent) + trois boutons d'action principaux
Boutons topbar (hiérarchie visuelle explicite) :
- `📝 Générer` — style outline, secondaire
- `✨ Résumer avec l'IA` — gradient violet→rose, bouton dominant
- `📄 PDF` — gradient emerald, visible uniquement si `anySelected === true`
Le topbar reste visible au scroll via `position: sticky; top: 0; z-index: 100`.
### Toolbar critères (44px)
Barre fine sous le topbar, fond `#f8fafc`, `border-bottom` subtile :
- Gauche : liens texte "Tout sélectionner" / "Tout désélectionner"
- Droite : input "Ajouter un critère…" + bouton `+` compact
### Grille de critères
Trois colonnes (Performance / Compétence / Connaissance), layout identique à l'existant avec amélioration du layout interne des items.
**Header de card :** titre bucket uppercase + badge compteur sur fond coloré très léger (teinte propre à chaque bucket).
**Layout interne d'un item :** passage de `flex-column` à `flex-row` :
```
[☐ checkbox] [label texte — flex-grow] [NA][EC][AC][MA] [× supprimer]
```
Cela rend les items plus denses, plus lisibles, et réduit la hauteur de page.
### Section synthèse
Séparée du reste par un divider visuel centré : `──── Synthèse & Export ────`
Layout deux colonnes :
- **Gauche :** notes formateur (textarea), tonalité (select), checkbox "insérer en tête", config API OpenAI (accordéon collapsible)
- **Droite :** textarea bilan (monospace, `min-height: 380px`, hauteur libre)
### Notifications de statut
Les messages de statut (`success`, `error`, `info`) passent en **toast flottant** positionné `fixed` en bas à droite, avec disparition automatique. Ils ne s'insèrent plus dans le flux de contenu.
---
## Changements CSS
- Ajout de `.app-topbar` (sticky header)
- Ajout de `.criteria-toolbar`
- Ajout de `.section-divider`
- Modification de `.competence-item` : `flex-direction: row`, `align-items: center`
- Modification de `.level-group` : suppression du `border-top`, intégration inline
- Ajout de `.toast-container` + `.toast` (positionnement fixed)
- Suppression des `.controls` génériques (remplacés par topbar et toolbar dédiés)
---
## Changements JSX
- Le rendu passe de `.bilan-wrapper > .bilan-container` à `.app-shell > .app-topbar + .app-main`
- Le `<select>` CP selector, les inputs identité et les trois boutons d'action montent dans le topbar
- La toolbar critères regroupe les boutons "Tout sélectionner/désélectionner" et le champ "Ajouter"
- `showStatus` redirige vers un système de toast (état `toasts: []`, auto-retrait)
- Le reste de la logique métier est inchangé
---
## Ce qui ne change pas
- Logique métier complète (niveaux, drag & drop, génération PDF, appel OpenAI)
- Les 3 colonnes de critères et leurs level pills
- Les variables CSS existantes (couleurs, shadows, fonts)
- La responsivité mobile (media queries à adapter)