L'ancien thème était crème et vert forêt, corps à 14 px, libellés secondaires à
11 px. Deux défauts s'y cumulaient : ça se lisait mal huit heures par jour, et
le fond chaud décalait la perception des aplats — un jaune de poste virait au
vert, un rouge d'alerte s'éteignait.
Le nouveau part de ce que l'écran est vraiment : un registre qu'on lit en
chiffres. Papier légèrement bleuté, encre bleu-ardoise plus dense, et un seul
bleu d'acte réservé à trois emplois — le filet actif, les liens, le bouton qui
engage. Tout le reste est en gris et en état, ce qui rend les alertes visibles
parce qu'elles sont les seules choses colorées de la page.
Lisibilité d'abord. Le corps monte à 15 px, rien ne descend sous 12, et `ink-3`
passe de 0,545 à 0,50 de clarté : à l'ancienne valeur, les libellés secondaires
tombaient sous 4,5:1 sur ce papier.
Typographie : IBM Plex Sans, et Plex Mono pour les codes. Le choix vient du
contenu — cet écran affiche des identifiants, AB-300, HS-HS25, un matricule, un
département 2A. Plex a été dessiné pour la documentation technique : le 1 porte
un empattement, le l est courbé, le 0 se distingue du O, et ces trois détails
décident si un gestionnaire recopie le bon code. Le zéro barré est activé
partout. Les fichiers sont téléchargés à la compilation et servis par
l'application : `font-src 'self'` tient, et aucune requête ne part vers un tiers.
La structure est portée par un **filet de marge** de 2 px plutôt que par des
bordures et des aplats gris — la marge du cahier, appliquée à une interface. Il
marque l'onglet ouvert, l'en-tête de carte, la section active. Il ne décore
jamais : un filet dit une appartenance.
Le dimanche a le sien, doublé, et une colonne teintée. C'est la seule colonne du
planning qui porte une conséquence de droit — L3132-27 impose une rémunération
au moins double **et** un repos compensateur équivalent. La grille le montre
avant que la paie ne le découvre. Le marquage ne remplace aucune alerte : le
moteur de règles reste seul juge.
La barre d'application devient collante, et les boutons passent de 26 à 32 px de
haut : sur une grille de quatre-vingts lignes, remonter changer de semaine est
le geste le plus répété, et 26 px était sous le seuil confortable au pointeur.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Brings in the token set from the Claude Design export: warm neutrals,
semantic status colours, and the twelve-hue categorical poste palette,
in light and dark. Declared through Tailwind's @theme so utilities
compile to var(--color-*) and follow the theme without per-component
branching.
The poste palette derives every hue from one formula with an
alternating lightness step, so neighbouring hues never land at the same
lightness. ShiftChip always prints the poste code alongside the fill:
colour carries meaning in the grid, and a grid has to stay readable in
print, in greyscale, and to someone who confuses red and green.
Week counters live in src/domain/counters rather than in the component,
because the same numbers will feed the hours report and the payroll
export later. Durations are whole minutes: decimal hours drift by a
minute in ways that are invisible on screen and wrong on a payslip.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Cr9dkEHwbDgkWPnyGj1Rjv