Files
siop2/docs/02-design/charte-graphique.md
pr-daaif 04e61056f6 docs(r0): kickoff SIOP V2 — vision, cadrage, charte graphique, maquettes HD
Refondation design-first du projet SIOP (v1 gelée) :
- Playbook 00-vision (charte projet, personas, benchmark Atlas)
- Playbook 01-cadrage (releases R0→R5 + DoD, user-story map, exigences, risques)
- Playbook 02-design : charte graphique, tokens.css bi-thème (palettes
  analytics validées CVD/contraste par script), maquettes HD navigables
  (7 écrans dont démo-login DEMO_MODE, bilan codé, portail QR, mobile)

Prochaine étape : validation des maquettes par le référent avant tout code.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 21:06:33 +01:00

80 lines
4.1 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.

# Charte graphique — SIOP V2
> **Rôle de ce document (playbook)** : fixer l'identité visuelle AVANT le code. Toute
> valeur visuelle vit dans [`tokens.css`](tokens.css) (source de vérité, importée telle
> quelle par l'application) ; ce document explique les **choix** et leurs raisons.
> Règle absolue : aucun style codé en dur hors tokens — c'est ce qui a rendu la v1 « flottante ».
## 1. Positionnement
SIOP est un **outil de travail professionnel** pour ascensoristes : sobre, dense sans être
étouffant, lisible en plein soleil sur un chantier comme au bureau. Le monde visuel est
celui du métier — acier, cabine, signalisation de sécurité — pas celui d'une app grand
public. Deux thèmes (clair/sombre) au même niveau de soin.
## 2. Couleur
| Token | Valeur (clair) | Rôle & justification |
| --- | --- | --- |
| `--encre` | `#1B2534` | Texte principal — un « noir acier » à biais bleu, jamais de noir pur |
| `--bleu-treuil` | `#1F4FB8` | **Primaire** (actions, liens, focus) — bleu de vêtement de travail, profond et désaturé, volontairement distinct du bleu néon par défaut des frameworks |
| `--safran` | `#DD8A0B` | **Accent de marque** — safran marocain / gilet haute visibilité. Parcimonieux : logo, rail actif de navigation, moments de marque. Jamais pour un statut |
| Fonds | `#F5F7FA` / surfaces `#FFFFFF` | Acier clair, biais froid assumé |
| Sombre | fond `#0F1622`, surface `#182234` | « Machinerie de nuit » — pas une simple inversion |
**Statuts (réservés, jamais réutilisés ailleurs)** : Ouvert `bleu`, En cours `indigo`,
En attente `ambre`, Terminé `vert`, Annulé `gris`. Priorités : **Personne bloquée**
(rouge vif + pastille animée — la seule animation d'alerte de l'app), Haute `rouge`,
Moyenne `ambre`, Basse `verte`. Toujours pastille/pictogramme + libellé, jamais la couleur seule.
**Palettes graphiques (analytics) — validées par script (CVD, contraste, bande de
luminosité)** :
- Clair : `#3B69D6 · #DD8A0B · #1F9E8E · #8A63D2` (ordre fixe, jamais recyclé ; étiquettes
directes obligatoires — le safran passe sous 3:1 sur blanc).
- Sombre : `#5580E4 · #C7820A · #26A896 · #9673DE` (repas dédiés, pas d'inversion automatique).
## 3. Typographie
- **UI & titres : Manrope** (géométrique-humaniste, OFL, auto-hébergée — jamais de CDN).
Titres en 600/700, `text-wrap: balance`. Les maquettes HTML approximent avec Avenir Next
(présent sur macOS) en attendant l'app.
- **Données : chiffres tabulaires** (`font-variant-numeric: tabular-nums`) partout où des
nombres s'alignent (tables, KPI, coûts).
- Échelle : 12 / 13 / 14 (base) / 16 / 20 / 24 / 32. Libellés en capitales : 11 px,
`letter-spacing: 0.06em`.
## 4. Forme & espace
- Grille d'espacement **4 px** ; densité « bureau » (tables 40 px/ligne) mais cibles
tactiles ≥ 44 px sur mobile.
- Rayons : 10 px (cartes), 8 px (contrôles), 999 px (pastilles).
- Élévation discrète : bordures d'abord (`--bordure`), ombre légère seulement au survol/menus.
- **Motif signature « rail »** : l'élément actif de la navigation porte un rail vertical
safran de 3 px (la cage d'ascenseur) — c'est LE geste identitaire, utilisé nulle part ailleurs.
## 5. Iconographie & logo
- **Lucide**, trait 1,75 px, 1620 px dans l'UI.
- Logotype : « SIOP » en Manrope 700 + marque **▲▼** (montée/descente cabine) safran sur
encre. Favicon = la marque seule.
## 6. Mouvement
Fonctionnel uniquement : transitions 120160 ms (`ease-out`) sur survol/ouverture ;
`prefers-reduced-motion` respecté ; **une seule** animation continue autorisée — la
pastille « personne bloquée ».
## 7. Ton rédactionnel
Français métier, direct, sans jargon système : « Clôturer l'intervention », pas
« Soumettre le formulaire ». Les erreurs disent quoi faire (« La checklist est incomplète :
traitez chaque tâche »), jamais « Erreur 400 ». Vocabulaire du carnet : OT, bilan, organe,
grille du mois.
## 8. Application
`tokens.css` est copié tel quel dans `apps/web` (et mappé vers la config Tailwind/shadcn).
La page `/design` de l'app (R0) expose tous les tokens et composants — c'est la référence
vivante des revues pixel.