docs(ideai): met à jour la mémoire et les tickets après l'identité visuelle

Ajoute la note mémoire sur l'identité visuelle Court Blazer et reflète
le ticket #17 (terminé) ainsi que le cadrage du ticket #18.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 23:46:30 +02:00
parent 2686c175f3
commit e35ff8fba0
8 changed files with 140 additions and 1 deletions

View File

@ -4,3 +4,4 @@
- [gametime-ux-conception](gametime-ux-conception.md) — memory note gametime-ux-conception - [gametime-ux-conception](gametime-ux-conception.md) — memory note gametime-ux-conception
- [gametime-architecture-initial-stack-data-model](gametime-architecture-initial-stack-data-model.md) — memory note gametime-architecture-initial-stack-data-model - [gametime-architecture-initial-stack-data-model](gametime-architecture-initial-stack-data-model.md) — memory note gametime-architecture-initial-stack-data-model
- [gametime-dev-environment](gametime-dev-environment.md) — memory note gametime-dev-environment - [gametime-dev-environment](gametime-dev-environment.md) — memory note gametime-dev-environment
- [gametime-visual-identity](gametime-visual-identity.md) — memory note gametime-visual-identity

View File

@ -0,0 +1,62 @@
---
name: gametime-visual-identity
description: memory note gametime-visual-identity
metadata:
type: project
---
# GameTime — Identité visuelle retenue : "Court Blazer"
Décision finale validée par l'utilisateur (2026-07-17), après comparaison de 4 pistes dans un artifact de maquette (Grain de Jeu, Cour d'École, Court Elite, Court Blazer).
**Court Blazer = couleurs de Court Elite + structure/logo de Cour d'École + typographie de Cour d'École** (pas Fraunces, qui avait été proposé puis écarté : l'utilisateur a préféré rester sur Anton/Archivo, jugées suffisamment affirmées).
## Palette
Thème sombre :
| Rôle | Hex |
|---|---|
| Primaire (or) | `#C9A24A` |
| Accent (crimson) | `#D72638` |
| Fond | `#080A12` |
| Surface / carte | `#141824` |
| Texte principal | `#F5F1E8` |
| Texte secondaire | `#A7ADBA` |
| Bordure | `#242A3A` |
Thème clair :
| Rôle | Hex |
|---|---|
| Primaire (or bruni) | `#9E7623` |
| Accent (crimson) | `#B91C2B` |
| Fond | `#F4F1EA` |
| Surface / carte | `#FFFFFF` |
| Texte principal | `#11131A` |
| Texte secondaire | `#626A78` |
| Bordure | `#E4DFD2` |
Succès `#2ECC71` (sombre) / `#178A4A` (clair), Erreur `#FF4D5E` (sombre) / `#C81E32` (clair) — repris de la piste Court Elite d'origine.
## Typographie
- **Anton** (Regular, poids unique) pour tous les titres, l'app-wordmark, le nom d'exercice, et surtout les **chiffres** (chrono d'exécution, valeurs de séries/répétitions/score) — grand format façon tableau de score.
- **Archivo** (police variable, weight 400 pour le corps, 600-700 pour emphase) pour tout le texte courant, labels, descriptions.
- Fichiers de police bundlés en local (offline-first, pas de dépendance réseau type `google_fonts` package) : `assets/fonts/Anton-Regular.ttf` et `assets/fonts/Archivo-Variable.ttf` (police variable, Flutter gère nativement la sélection de graisse via `FontWeight` sur ce fichier unique).
## Forme et composants
- Rayon de bordure : 6px (entre le carré strict de Cour d'École et l'arrondi de Court Elite).
- Cartes et panneaux : plats, sans ombre portée (pas de glassmorphism, pas d'ombre "tamponnée").
- Liseré supérieur de 2px en couleur accent (crimson) sur les cartes clés (bloc chrono, carte historique, bandeau de reprise) — clin d'œil "tableau de score", en version atténuée par rapport à Cour d'École (qui utilisait 3px).
- Badges : rayon 5px (ni pilule complète, ni carré strict).
## Logo
Concept "patch" hérité de Cour d'École, recoloré :
- Rectangle à coins arrondis (rx 9-10), fond `surface`, contour `primary` (or).
- Bande diagonale traversant le badge (via clipPath), couleur `accent` (crimson).
- Petit point plein `primary` en haut à gauche (accent ballon).
- Monogramme "GT" centré, police Anton (au lieu de Fraunces envisagé un temps).
## Référence
Maquette comparative complète (4 pistes, clair/sombre) conservée dans l'artifact Claude : voir historique de conversation Main du 2026-07-17. Cette mémoire fait foi pour l'implémentation Flutter réelle (tickets d'implémentation DA, cf. tickets IdeA #16+).

View File

@ -0,0 +1,16 @@
---
issueRef: "#17"
version: 4
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
updatedAt: 1784324772157
---
Détail technique à respecter :
- pubspec.yaml : déclarer les polices locales sous `flutter: fonts:` avec deux familles : "Anton" (assets/fonts/Anton-Regular.ttf) et "Archivo" (assets/fonts/Archivo-Variable.ttf, police variable — Flutter gère nativement FontWeight dessus, pas besoin de fichiers séparés par graisse).
- Créer/étendre un fichier de thème centralisé (ex: lib/presentation/theme.dart) avec deux ThemeData (light/dark) construits depuis les tokens de la mémoire "gametime-visual-identity". Éviter de dupliquer les couleurs en dur dans chaque écran : passer par ColorScheme/TextTheme centralisés, réutilisés par tous les écrans existants (#6 à #10).
- textTheme : displayLarge/headlineLarge/titleLarge etc. en Anton pour les titres ; bodyLarge/bodyMedium/labelLarge en Archivo. Les chiffres du chrono, du stepper de répétitions et du score doivent utiliser explicitement Anton (via un TextStyle dédié réutilisable, ex: `AppTextStyles.scoreNumber`), avec `fontFeatures`/`fontVariations` tabulaires si disponible pour éviter les sauts visuels.
- Le sélecteur de thème clair/sombre existant (ou à créer si absent) doit permuter entre les deux ThemeData sans redémarrer l'app.
- Composants : rayon de bordure global 6px (via `CardTheme`/`ButtonTheme`/etc. plutôt qu'en dur par écran), pas d'ombre portée sur les cartes (elevation 0 + bordure fine `--border`), liseré supérieur 2px couleur accent sur les cartes clés identifiées dans la mémoire (bloc chrono de l'écran d'exécution, carte d'historique, bandeau de reprise de séance).
- Logo : reproduire le concept "patch" (rectangle arrondi rx~9, contour or, bande diagonale crimson clippée, point or, monogramme "GT" en Anton) en widget Flutter réutilisable (CustomPainter ou assemblage de Container/ClipPath), utilisé dans l'app bar/en-tête à la place du texte seul actuel, et comme icône d'app Android (adaptive icon) si le temps le permet — sinon signale-le comme restant à faire.
- Vérifie que ce nouveau thème ne casse aucun test widget existant (les tests cherchent du texte/des types de widgets, pas des couleurs précises normalement, mais vérifie les assertions de type de bouton/style si certaines en dépendent).
Rappel environnement (mémoire "gametime-dev-environment") : ton sandbox n'a pas accès pub.dev, donne les commandes exactes à lancer côté Main (pub get, analyze, test, build apk).

View File

@ -0,0 +1,16 @@
---
id: "76558095-5b64-4a94-87f4-120eef982942"
number: 17
title: "[DevFrontend] Implémentation de l'identité visuelle \"Court Blazer\" sur toute l'app"
status: "closed"
priority: "high"
sprint: null
links: [{"target":"#9","kind":"relatesTo"},{"target":"#6","kind":"relatesTo"}]
agentRefs: [{"agentId":"9933c93a-b8a1-4164-a3bb-7063fdad747d","role":"assigned"}]
createdBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
createdAt: 1784324260799
updatedAt: 1784324772157
version: 4
---
Appliquer la direction artistique retenue (mémoire "gametime-visual-identity") à l'ensemble de l'application Flutter GameTime : ThemeData clair et sombre (le thème doit rester sélectionnable par l'utilisateur, cf. mémoire "gametime-ux-conception"), typographie Anton (titres/chiffres) + Archivo (corps), palette Court Elite, forme de composants héritée de Cour d'École (rayon 6px, liseré haut 2px accent sur cartes clés, pas d'ombre portée), logo "patch" recoloré appliqué en tant qu'icône d'app et dans l'en-tête de l'application. Les polices sont déjà placées dans assets/fonts/ (Anton-Regular.ttf, Archivo-Variable.ttf).

View File

@ -0,0 +1,6 @@
---
issueRef: "#18"
version: 2
updatedBy: {"kind":"user"}
updatedAt: 1784324398610
---

View File

@ -0,0 +1,16 @@
---
id: "bf1aef7d-5f3b-4354-aba9-851df92be313"
number: 18
title: "Ajouter un type de score spécial temps"
status: "open"
priority: "medium"
sprint: null
links: []
agentRefs: []
createdBy: {"kind":"user"}
updatedBy: {"kind":"user"}
createdAt: 1784324324152
updatedAt: 1784324398610
version: 2
---
J'aimerais ajouter un type de score qui serait un temps avec un chrono intégré. Le but serait que l'utilisateur au début de sa série puisse lancer le chrono et l'arrêter à la fin. Ca lui permettrait ainsi d'avoir comme score le temps qu'il a mit à faire sa série sans avoir à lancer un autre chrono

View File

@ -1,3 +1,3 @@
{ {
"nextNumber": 16 "nextNumber": 19
} }

View File

@ -180,6 +180,28 @@
"9933c93a-b8a1-4164-a3bb-7063fdad747d" "9933c93a-b8a1-4164-a3bb-7063fdad747d"
], ],
"updatedAt": 1784319755572 "updatedAt": 1784319755572
},
{
"issueRef": "#17",
"path": "17",
"title": "[DevFrontend] Implémentation de l'identité visuelle \"Court Blazer\" sur toute l'app",
"status": "closed",
"priority": "high",
"sprint": null,
"assignedAgentIds": [
"9933c93a-b8a1-4164-a3bb-7063fdad747d"
],
"updatedAt": 1784324772157
},
{
"issueRef": "#18",
"path": "18",
"title": "Ajouter un type de score spécial temps",
"status": "open",
"priority": "medium",
"sprint": null,
"assignedAgentIds": [],
"updatedAt": 1784324398610
} }
] ]
} }