DOCS/claude design
Thomas Fransolet b5883be088 Maquette : Article et Événement en paysage sur la borne (K3, K7, K8)
Une seule passe de design pour les deux écrans. Les trancher séparément
donnerait deux grammaires différentes sur la même dalle, alors qu'ils
posent la même question : ces écrans sont dessinés pour un téléphone tenu
debout, une borne fait 1280 px de large et se lit à un mètre.

Six règles communes, chacune corrigeant un idiome de téléphone qui devient
faux sur une dalle large et fixe : deux colonnes (un ancrage fixe, un flux
qui défile), texte plafonné à ~65 caractères, héros à 26 % au lieu de 52 %,
plus de showModalBottomSheet (il y a la place à côté), carte affichée à sa
taille utile sans « Agrandir », et accents dérivés de
configuration.primaryColor — précédent K4, tablet-app n'a pas de flavor.

Quatre décisions prises le 12/08 :

- Fond clair, aux valeurs réelles de l'app (kBackgroundColor #FFFFFF,
  kBackgroundLight #F3F3F3), pour que la section ne dénote pas.
- Pas de sélecteur de langue : elle est choisie en amont.
- Hors dates, aucune prose : le programme reste, sans pastille EN COURS,
  et les dates du héros disent qu'on est avant ou après.
- Retour automatique après 5 min : adopté mais sorti du périmètre, K8.

Trois états incomplets, tous possibles en configuration. La règle qui les
couvre : le rail média n'existe que s'il a quelque chose à ancrer.

- Sans audio : le dock tombe, l'image reprend la hauteur.
- Sans photo : le rail tombe — une colonne de 38 % avec un seul lecteur
  serait un trou. L'audio passe en tête de la colonne de lecture.
- Texte seul : une colonne centrée, toujours plafonnée. Le vide latéral
  est voulu, c'est lui qui garde le texte lisible.

Quatre vérifications faites dans le code plutôt que supposées :

- Les statistiques sont déjà acquises. section_page_detail émet
  sectionView et sectionLeave avec durée et enveloppe les treize types :
  l'article sera compté dès que son case entre dans le switch.
- tablet-app n'a aucun i18n — pas de l10n/, pas d'AppLocalizations,
  libellés français en dur. C'est ce qui interdit un bandeau « Édition
  passée » et impose d'exprimer l'état hors dates par des dates.
- audioIds est une List<TranslationDTO> : « sans audio » est un état de
  la langue courante, pas de l'article. Un article peut avoir sa version
  française et pas sa néerlandaise.
- isContentTop existe déjà et dit si le texte passe avant le média. En
  paysage il ne veut plus dire « au-dessus » mais « à gauche » : à
  câbler, sinon un réglage déjà offert dans manager-app reste sans effet.

Retiré de la maquette : un repère « 3 / 8 » en pied d'article, inventé
pour occuper la place libérée par le sélecteur de langue. SectionPageDetail
ne reçoit qu'une section et un booléen isFromMenu, jamais la liste de ses
voisines — le repère n'était adossé à aucune donnée.

K8 ajouté au plan et au kanban : le retour à l'accueil s'écrit une seule
fois dans section_page_detail. Bénéfice de bord, il passe par le même
dispose et émet donc un sectionLeave avec sa durée réelle au lieu de
laisser une consultation ouverte jusqu'au visiteur suivant.

Source de vérité dans le repo, artifact pour la diffusion (convention DB0).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-12 14:39:06 +02:00
..