Skip to content

feat: place de la recherche à l'écran, sur mobile et sur desktop - #1

Merged
csanchez-jetdev merged 6 commits into
mainfrom
feat/ux-app
Aug 1, 2026
Merged

csanchez-jetdev merged 6 commits into
mainfrom
feat/ux-app

Conversation

@csanchez-jetdev

@csanchez-jetdev csanchez-jetdev commented Aug 1, 2026 •

Copy link
Copy Markdown
Owner

La recherche prenait trop de place à l'écran, sur les deux dispositions.

Desktop : la recherche passe en barre horizontale

Elle occupait 309 px en haut de la colonne de gauche, soit plus que la liste sous elle.

Avant Après
Bloc de recherche 309 px 108 px
Destinations visibles 4,9 8,1
Avant Après

Mobile : bascule carte / liste

Les deux se partageaient la hauteur : la carte trop petite pour séparer les marqueurs, la liste trop courte pour en être une. Une pastille flottante choisit. Taper une destination dans la liste passe sur la carte, où sa fiche s'ancre. 10 destinations visibles au lieu de 5.

Liste Carte

Aussi

  • Recherche en accroche sur la page d'accueil, lien du dépôt dans les en-têtes
  • Boutons de réservation aux couleurs de leur revendeur
  • Carte : cadrage corrigé — 400 px de marge dans un conteneur de 393 px sortaient la moitié des marqueurs du cadre — et suivi de taille repris à la main, le canevas restant figé à sa taille de départ
  • Recherche invisible sur mobile au montage

Vérification

156 tests passent. Les 3 erreurs lint/typecheck sont antérieures à la branche et hors du diff.

Le repli du formulaire en résumé se déclenchait sur tout changement du
résultat d'itinéraire. `useItinerary` étant `server: false`, celui-ci passe
de `undefined` à `null` au montage : sur écran étroit le formulaire se
repliait aussitôt, sans résumé à afficher puisqu'aucune recherche n'avait
eu lieu — plus rien n'était visible ni cliquable. Le repli exige désormais
un résultat, et son état dérive de la présence d'un résumé.

Le corps de l'application passe en grille : recherche, carte puis résultats
sur écran étroit, colonne recherche + résultats à gauche et carte à droite
sur desktop. La carte mobile descend de 38vh à 32dvh.

Lien vers le dépôt dans l'en-tête.
La bannière porte le champ gare et la date plutôt qu'un bouton vers
l'application : la soumission ouvre /app avec la recherche déjà dans l'URL.
Sans gare saisie, seule la date est transmise. Les autres modes restent liés
en dessous.

La bannière n'a plus de hauteur fixe ni de `overflow-hidden` : le contenu
dépassait sous 700 px de haut, et la liste de suggestions était coupée au
bord du bloc.

Lien vers le dépôt dans les en-têtes, le bandeau « open source » et le pied
de page.
Les deux liens sortants de la fiche de destination deviennent deux boutons
de largeur égale, chacun dans la couleur de son revendeur : bleu nuit #0c131f
pour SNCF Connect, vert #00705f pour Trainline. Les valeurs sont relevées sur
les styles calculés de leurs propres pages.

Trainline utilise le vert clair de son logo (#00a88f) sous du texte blanc,
soit 3:1 — sous le seuil AA. C'est leur vert foncé de bouton qui est retenu,
à 6:1.
3000 est occupé par d'autres services sur la machine de développement.
Sans port fixe, Nuxt en choisit un libre au hasard et les URL changent
d'une session à l'autre. La production n'est pas concernée : son port
vient de infra/compose.yml.
Carte et liste occupent la même cellule de grille sur écran étroit, une bascule
flottante décide laquelle est devant. Taper une destination dans la liste passe
sur la carte, où sa fiche s'ancre.

La carte reste dimensionnée sous la liste plutôt que masquée : son cadrage se
calcule sur la taille du conteneur.

Le cadrage remplace ses 400 px de marge à gauche par une fraction du conteneur.
Sur un écran de 393 px, cette marge donnait une largeur utile négative et
sortait la moitié des marqueurs du cadre.

Le suivi de taille de la carte passe de MapLibre à un ResizeObserver local :
le sien écarte sa première notification, qui absorbait ici le repli du
formulaire et figeait le canevas aux deux tiers de sa ligne.
La recherche traverse le haut de l'écran au lieu d'occuper le tiers supérieur de
la colonne de gauche. À 1280×800, elle passe de 309 px de haut à 108, et la liste
de 4,9 à 8,1 destinations visibles.

Les rangées de dates deviennent `display: contents` sur la barre : leurs cellules
s'alignent dans le cadre sans dupliquer le balisage. Les deux textes d'aide
passent sur une seule ligne, aucun n'est supprimé — le premier est le seul endroit
où le mode de recherche est énoncé.

`flex-wrap` plutôt qu'un palier de largeur supplémentaire : la barre se plie en
deux rangées sous 1 000 px.
@csanchez-jetdev
csanchez-jetdev merged commit d1dcf8d into main Aug 1, 2026
1 check failed
@csanchez-jetdev
csanchez-jetdev deleted the feat/ux-app branch August 1, 2026 17:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant