Files
petitspas/docs/32_MINI-SPEC-BULLES-CARTES.md
T
jmartinandCursor 32f6eeeeed feat(#173): carte congés maquette + mini-spec bulles pour alignement back
Layout aqua (valise, période une ligne, pilules peintes, lien agenda),
encre pétrole, et docs/32 pour palette sémantique + demandes API couleur.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-01 17:10:41 +02:00

7.1 KiB
Raw Blame History

Mini-spec · Bulles / file d’attention (#173)

Front · octobre 2026 — pour alignement backend (garant de la spec API).


1. Contexte / objectif

Les bulles (cartes) sont la file d’attention du quotidien parent / AM : décisions et infos proches (congés, arrêt maladie, absences, plus tard soins / admin).

Cette note formalise :

  1. Ce qui est déjà en place côté front (branche feature/173-feed-bulles-parent).
  2. La palette sémantique retenue (couleur = famille).
  3. Les évolutions API souhaitées pour que le back pousse les bonnes couleur / types.
  4. Les idées de bulles futures (non branchées).

Les cartes restent une mémoire courte (purge_at) ; la source de vérité absences / congés reste absences_garde (voir 31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md).


2. Contrat API actuel (rappel)

Endpoint principal : GET /api/v1/cards (filtre couple / placement).

Champs utiles côté UI :

Champ Rôle UI
type_code Layout + libellé sémantique + icône
couleur Teinte du fond pastel (assets/cards/card_*_h.png)
titre Fallback si type_code inconnu
statut ouverte · refusee · traitee
response_mode none · ack · accept_refuse
is_creator Masque les boutons réponse pour le créateur
payload.date_debut / date_fin Période affichée
payload.motif Non affiché sur la maquette congés actuelle
last_refuse_comment Affiché si refusee
id_absence Lien métier absence / congé
purge_at Péremption file

Règle front actuelle : le destinataire peut répondre si !is_creator && statut == ouverte && response_mode != none.


3. Évolutions front déjà livrées (#173)

3.1 Feed

  • Widget partagé CartesFeed (parent + AM).
  • Fond carte via widget Carte (bandeau / 9-slice horizontal).
  • Dégradés haut / bas sur la liste scrollable.
  • Plus de libellés « À traiter / Traité » : actions via modales accepter / refuser / ack.
  • Libellés UI sémantiques (indépendants du titre API brut) :
    • conge_am → « Demande de congés »
    • arret_maladie_am → « Arrêt maladie »
    • absence_enfant (+ _modif) → « Notification d’absence »

3.2 Carte congés (conge_am) — maquette validée

Élément Comportement
Fond Aqua forcé côté front (même si l’API envoie encore lavender)
Encre Pétrole désaturé #315F63 (titre) ; date un peu plus claire #4A7276 ; lien #2B5868
Icône Valise assets/images/valise.png
Période Une ligne type « Du 04 au 06 novembre 2026 » + petite icône calendrier
Actions Pilules peintes ✓ vert / ✕ corail (btn_coche_pilule / btn_croix_pilule) si accept_refuse
Lien « Ouvrir dans l’agenda ↗ » (stub UI pour l’instant)
Opacité Carte atténuée si traitee (sauf règle arrêt maladie ci-dessous)

3.3 Arrêt maladie (arret_maladie_am)

  • Reste visible / opaque tant que la période n’est pas finie (date_fin jour inclus), même si statut == traitee.
  • Icône thermomètre (asset dédié). Fond encore piloté par couleur API (cible produit : bleu — voir §4).

3.4 Assets couleurs horizontales

Teintes dispo dans frontend/assets/cards/ (V + H), dont aqua ajouté pour les congés.

Clés API reconnues côté front : red · pink · peach · lime · lavender · green · blue · aqua. Défaut UI si inconnu : peach.


4. Palette sémantique (alignement demandé)

Couleur API (couleur) Famille Types / exemples
aqua Congés conge_am
blue Arrêt maladie arret_maladie_am
pink Soins du quotidien médicament, température, bobo, crème… (futur)
peach Absence / info pratique absence_enfant, absence_enfant_modif
lavender Administratif / autre infos admin, divers (à utiliser avec parcimonie)

Principes

  • La couleur = famille (lisible sans lire tout le texte).
  • L’icône précise l’action (surtout sur fond rose : thermomètre, flacon, pansement, croix de soin…).
  • Rose = doux / rassurant, pas une alerte médicale forte.
  • Éviter le lavande pour les congés (trop « admin », dissonant avec valise / aqua).

Demande backend (prioritaire)

  1. Seeds / création de cartes : conge_am → couleur: "aqua" (le front force déjà ; l’API devrait être source de vérité).
  2. arret_maladie_am → couleur: "blue".
  3. absence_enfant* → couleur: "peach".
  4. Documenter les valeurs autorisées de couleur (enum / check) pour inclure aqua.
  5. Ne plus mapper les congés sur lavender.

5. Idées de bulles futures (hors scope #173)

Non implémentées ; pour anticipation contrat types + couleurs.

Famille Couleur Exemples de type_code (propositions) response_mode typique Icônes (ex.)
Soins pink soin_temperature, soin_medicament, soin_bobo, soin_creme ack (parent) thermomètre, flacon, pansement, tube
Sortie / autorisation peach ou lavender sortie_a_valider accept_refuse à définir
Admin lavender info_admin, document_a_fournir ack / none classeur, tampon
Congé / maladie (évol.) aqua / blue modif période, annulation selon métier valise / thermomètre

Variante soins : un seul fond rose ; l’icône change selon l’événement — la famille « santé/soin » reste immédiate.


6. Comportements métier à ne pas casser

  • Créateur : pas de boutons réponse ; éventuel libellé « En attente de réponse ».
  • Refus : afficher last_refuse_comment si présent.
  • Congé : accept_refuse côté destinataire.
  • Absence enfant : souvent info / ack (pas de veto AM en V1 — voir mini-spec quotidien).
  • Péremption : respecter purge_at / retention ; pas un historique long.

7. Fichiers front de référence

  • frontend/lib/models/carte_bulle.dart — mapping type → libellé / icône / fond
  • frontend/lib/widgets/quotidien/cartes_feed.dart — layout feed + carte congés
  • frontend/lib/models/card_assets.dart — enum teintes dont aqua
  • Assets : frontend/assets/cards/card_aqua(_h).png, frontend/assets/images/valise.png, frontend/assets/images/cartes/btn_*_pilule.png

8. Non-régression / recettes suggérées (back + front)

  • Carte conge_am créée avec couleur=aqua (et lisible si encore lavande côté vieux seeds grâce au forçage front).
  • Accept / refuse congé → statut + commentaire refus.
  • Arrêt maladie traité mais période en cours → reste visible côté destinataire.
  • Filtre couple / placement : une seule file pour le couple actif.
  • Aucune régression sur absence_enfant (création parent → bulle AM).

9. Références

  • Ticket front : #173
  • Contrat cartes / réponses : #194 (si applicable)
  • Quotidien parent–AM : docs/31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md
  • Maquette congés : ressources/bulle_congés.jpg