Aller au contenu

Charte graphique

SETRAG · version 1

Charte graphique · version 1

Une voie, et le ruban qui glisse dessus

Tout le système SETRAG part du logo. La voie ferrée du S donne la structure des écrans. Le ruban vert, jaune, bleu, les couleurs du Gabon, est la seule chose qui bouge : il montre où l’on en est et ce qui avance.

01Le concept

Trois éléments, trois rôles. On ne les mélange pas : la voie ne bouge pas, le ruban ne structure rien, le S n'apparaît qu'aux grands moments.

La voie

Deux rails, des traverses. Elle relie deux informations : une heure de départ et une heure d'arrivée, deux étapes, deux moitiés de billet. Neutre, en gris de ligne, elle ne se voit que si on la cherche.

Le ruban

Vert, jaune, bleu : le drapeau, toujours dans ce sens, le bleu en tête. Il glisse sur la voie pour dire « vous êtes ici », « ça avance », « c'est choisi ». C'est la seule couleur vive qui bouge à l'écran.

Le S

La voie entière, en orange. Il signe : logo, icône d'app, démarrage, états vides. Dans l'interface, on n'en montre que des tronçons droits.

03Couleurs

Deux familles. Celle de l'interface porte les écrans et les statuts. Celle de la marque est réservée au logo, au ruban et à deux usages repris du site : le bandeau d'information, jaune sur bleu, et les pastilles de mise en avant, bleu sur jaune.

Neutres · 60 %Bleu · 22 %Encre · 10 %

Sur un écran type : le ruban et l’orange ne dépassent jamais 8 % de la surface.

Marque

Orange SETRAG--brand-orange#FA6414 · oklch(0.686 0.199 42.3)Le S uniquement. Jamais pour un statut.
Bleu SETRAG--c-accent#0F50A0 · oklch(0.441 0.144 257)Le mot, l'interface, le bouton principal.
Ruban--brand-rubanvert → jaune → bleu, interpolé en oklchCe qui glisse. Décor, jamais une information seule.
Jaune--brand-jaune#FCDF49 · oklch(0.902 0.164 97.9)Ruban ; texte sur bleu (5,9:1) ; pastilles.
Vert Gabon--brand-vert#009E60 · oklch(0.615 0.146 157)Ruban seulement : le succès garde son propre vert.
Indigo--brand-indigo#1A003B · oklch(0.189 0.103 295.7)Titres éditoriaux : e-mails, PDF, pages institutionnelles.

Interface

Fond--c-canvas
Surface--c-surface
Ligne · rails--c-line-strong
Encre--c-ink
À l'heure, validé--c-success
Retard--c-warning
Annulé, erreur--c-danger
Information--c-info

✓ Associations sûres

  • Jaune sur bleu SETRAG : 5,9:1, tout texte (bandeau d'information).
  • Bleu sur jaune : pastille « Meilleur prix », « Promo ».
  • Orange sur encre : 5,7:1, le S du billet et des écrans sombres.

✕ À proscrire

  • Texte orange sur blanc (3:1) sous 24 px.
  • Texte sur le ruban, ou ruban en fond de bouton.
  • Une couleur seule pour dire un statut : toujours une icône et un mot.

04Typographie

Deux familles, servies en local. Le mot-symbole est dessiné dans la police de l'interface : le logo et les écrans parlent la même langue.

Schibsted Grotesk

Aa

Tout le texte d'interface, du titre à la légende. Graisses 400, 500, 600, 700.

Schibsted Grotesk 800 italique

ETRAG

Réservée au mot-symbole. Jamais pour un titre d'écran : l'italique n'existe pas ailleurs.

IBM Plex Mono

07:40

Heures, durées, points kilométriques, références de billet. Les chiffres s'alignent d'une ligne à l'autre.

Display · 49

Owendo → Franceville

Titre 1 · 39

Vos billets

Titre 2 · 31

Choisissez votre classe

Titre 3 · 25

Express 201

Titre 4 · 20

Moyen de paiement

Texte · 16

Votre train partira 12 min plus tard. Votre place est conservée.

Petit · 14

Places tenues 15 minutes pendant le paiement.

Légende · 12

PK 338 · Booué

Heure · mono 25

07:40 → 19:25

05Icônes

Lucide : trait de 2 px sur une grille de 24, extrémités arrondies. Une icône accompagne un mot ; elle ne le remplace que dans la barre d'onglets, où le libellé reste affiché.

Train
Billet
Trajet
Gare
Horaire
Retard
Annulé
À l'heure
Classe
Voyageurs
Enfant
Bagage
Animal
Colis
Mobile Money
Carte
Wallet
Hors réseau
Alerte
Info trafic

06La voie et le ruban dans l'interface

Dans les écrans, la voie est droite, grise et fine ; le ruban y glisse pour un état précis. Chaque usage est un composant, construit une fois dans packages/ui et porté dans packages/mobile-ui.

07:4019:25

Trajet

La voie relie départ et arrivée. Le ruban la remplit quand le trajet est choisi.

Attente

Une rame passe, 1,6 s, sans fin. Seulement pour une attente de plus d’une seconde, toujours avec une phrase.

État vide

Le S en gris, la rame à quai en haut : rien ne roule encore. Jamais animé.

ÉlémentWebMobileCouleur
Rails2 × 1,5 px, entraxe 6,5 px2 × 1,5 pt--c-line-strong
Traverses2 px tous les 7 px, 14 px de longidem en pt--c-line
Ruban sur la voie8 px de haut, rayon 48 pt--brand-ruban
Ruban indicateur3 px, sous l'onglet3 pt, au-dessus de l'onglet--brand-ruban
Rame d'attente34 % de la voie34 %ruban, bleu en tête

07Le mouvement

Des animations qu'on ne remarque pas. Une seule chose bouge à la fois ; la réponse au doigt est immédiate ; l'information s'affiche tout de suite, l'animation l'accompagne sans la retenir ; les boucles sont réservées aux attentes réelles, toujours avec une phrase.

Une chose à la fois

Si le ruban glisse, le contenu attend ou se contente d’un fondu.

Au doigt, tout de suite

Une pression répond en 90 ms ; l’écran reste utilisable pendant toute l’animation.

L’information d’abord

Le prix, l’heure et le statut s’affichent sans attendre la fin du mouvement.

Une boucle pour attendre

La rame tourne seulement pendant une attente réelle, avec une phrase qui dit ce qu’on attend.

Durées

--dur-micro
90 ms
Réponse au doigt : pression d'un bouton.
--dur-fast
120 ms
Survol, fondu d'un contenu d'onglet.
--dur-base
200 ms
Bordure, bandeau, toast, cascade des résultats.
--dur-slow
320 ms
Feuille, choix segmenté.
--dur-glisse
480 ms
Le ruban se déplace : onglet, jour, trajet, étape.
--dur-boucle
1 600 ms
Un passage de rame, pendant une attente réelle.

Courbes

--easecubic-bezier(0.2, 0.8, 0.2, 1)
Réponse : part vite, se pose doucement.
--ease-glissecubic-bezier(0.45, 0, 0.2, 1)
Glissement : départ progressif, arrivée douce, comme un train.
--ease-sortiecubic-bezier(0.4, 0, 1, 1)
Sortie : ce qui part accélère, et part plus vite qu'il n'est venu.

Le catalogue

Pression

Le bouton s’enfonce sous le doigt. Appuyez.

Durée
90 ms · retour 160 ms
Effet
échelle 0,98

OngletNavRuban

Le ruban glisse vers l’onglet choisi. Cliquez les onglets.

Durée
480 ms · --ease-glisse
Contenu
fondu 120 ms, sans glissement

Trajet choisi

Le ruban remplit la voie entre les heures. Touchez la carte.

Durée
480 ms · --ease-glisse
Avec
bordure accent, 200 ms
  1. Trajet (franchie)
  2. Voyageurs
  3. Paiement
  4. Billet

Étape suivanteStepper

Le ruban avance jusqu’à la gare suivante, qui s’allume à l’arrivée.

Durée
480 ms · --ease-glisse

Bouton en attente

Le libellé ne change pas ; une rame passe sous le texte tant que l’action tourne. Cliquez le bouton.

Boucle
1 600 ms · --ease-glisse
Seuil
après 300 ms seulement

Recherche des trains…

Attente longueChargeur

Recherche, validation Mobile Money : une rame passe, avec une phrase.

Boucle
1 600 ms
Seuil
au-delà de 1 s ; avant, squelettes

Changement de page

Le ruban traverse le filet du haut pendant le chargement de la page suivante.

Seuil
après 150 ms de chargement
Boucle
1 600 ms

Arrivée des résultats

Les cartes montent de 6 px en cascade courte. Au-delà de la sixième, elles sont déjà là.

Durée
200 ms · décalage 28 ms
Express 201 · ven. 2 oct.
07:40Owendo
11 h 45
19:25Franceville
Voiture
4
Place
32
Classe
2e

Billet émis

Le ruban traverse la découpe, une fois.

Durée
720 ms · --ease-glisse
Haptique
impact léger, à l'arrivée (mobile)
+12 min

Retard mis à jour

Le nouveau chiffre remplace l’ancien en montant. Pas de clignotement, pas de secousse.

Durée
240 ms · --ease
  1. 12:14Lopé(desservi)
  2. 13:07Booué
  3. 14:02Ivindo
  4. 15:50Lastourville

Rame du suiviLigneArrets

La rame avance d’un cran à chaque mise à jour du statut, puis s’arrête.

Durée
1 200 ms · --ease-glisse
Rythme
à la mise à jour, jamais en continu

Travaux samedi : départs +25 min. Vos places sont conservées.

Billets ajoutés à Wallet

Bandeau et toast

Le bandeau descend du haut, le toast monte du bas. Ils partent plus vite qu’ils n’arrivent.

Entrée
200 ms · --ease
Sortie
160 ms · --ease-sortie

FeuilleFeuille

Choix de la gare, filtres : la feuille monte et se pose, sans rebond.

Durée
320 ms · --ease
Voile
fondu 200 ms
Grand écran
fenêtre centrée
Tirez pour actualiser

Tirer pour actualiser

Le ruban prend le relais pendant l’actualisation.

Geste
la voie suit le doigt, sans durée imposée
Après le geste
rame de 1 600 ms jusqu’à la réponse

Logo animéLogoAnime

À l’ouverture de l’app installée, une fois.

Durée
3,3 s · Lottie
Sortie
dès 2,4 s si l'app est prête

Fichiers Lottie

Ces fichiers reprennent la géométrie du logo et du signe. Les calques du logo sont nommés (traverses, rails, ruban, mot, signature) pour adapter leur couleur dans l’app mobile. Les animations de chargement ne tournent que pendant une attente.

logo-anime

Démarrage de l’app

3,3 s

JSON

logo-anime-negatif

Démarrage en thème sombre

3,3 s

JSON

logo-anime-compact

Petits écrans, sans signature

3,3 s

JSON

symbole-anime

Formats carrés et vidéos courtes

2,8 s

JSON

chargement-voie

Attente longue sur mobile

1,6 s · boucle

JSON

chargement-s

Premier chargement plein écran

2,2 s · boucle

JSON

ruban-apparition

Première ouverture de Ruban

700 ms

JSON

ruban-reflexion

Réflexion de Ruban

1,6 s · boucle

JSON

Moins d’animations

AnimationSi le système réduit les animations
Logo animéImage finale affichée directement
Ruban : onglets, jours, trajet, étapesIl apparaît à sa place, en fondu de 120 ms
Rame et bouton en attenteRuban fixe au milieu de la voie ; la phrase reste
Billet émisDécoupe remplie d’emblée ; vibration légère conservée
Résultats, bandeau, toast, feuilleFondu seul, sans déplacement
Rame du suiviElle passe directement à sa nouvelle position

✓ Ce qui reste

  • Les états finaux : ruban posé sous l'onglet, voie remplie, étape atteinte.
  • La rame d'attente, immobile au centre de la voie, avec sa phrase.
  • Le logo fixe à la place du logo animé.

✕ Ce qui s'arrête

  • Tout glissement, toute cascade, toute boucle décorative.
  • L'animation du logo et le tracé du signe de Ruban.
  • Le mouvement de la feuille : elle apparaît en fondu.

Mise en œuvre

Web

Animer transform et opacity ; utiliser la propriété --p pour le remplissage du ruban. Charger le logo animé à la demande.

Mobile

Reanimated suit la courbe de glissement, Lottie joue le logo et les attentes, une vibration légère suit l’émission du billet.

Hors de l’app

Widgets et activités en direct n’ont pas d’animation propre. Le système anime le changement de valeur publié.

✓ Toujours

  • Animer transform et opacity à 60 images par seconde.
  • Laisser l’écran utilisable pendant l’animation.
  • Vérifier le mode « moins d’animations » avant une livraison.

✕ Jamais

  • Rebond, élastique ou secousse sur une erreur.
  • Parallaxe, animation au défilement ou confettis.
  • Roue qui tourne : l’attente est montrée par la voie.

08Les composants

Tous les composants de la billetterie, tels qu'ils vivent dans packages/ui. Ce qui s'affiche ici est ce que voit le voyageur : même code, mêmes états. Les horaires et les prix sont des exemples.

Actions

Boutoncomponents/button

Pastille. Un seul primaire par écran : celui qui fait avancer le voyage.

Variantes
primaire, secondaire, fantôme, danger, noir (Wallet)
Hauteur
44 px au moins (md), 52 px (lg)
En attente
le libellé reste, une rame passe dessous

Bouton rond

Inverser deux gares, fermer, revenir.

Tailles
36, 44, 52 px
Libellé
toujours un aria-label

Saisie

Tel qu'écrit sur la pièce d'identité
Numéro incomplet : 9 chiffres après +241.
Adultes
1
Enfants
1

Champcomponents/field

Le libellé au-dessus, l’aide dessous, l’erreur écrite. Aucune secousse.

Hauteur
52 px, rayon 12
États
repos, focus (anneau 3 px), erreur, désactivé
Erreur
écrite : ce qu'il faut faire, pas seulement ce qui ne va pas

Code, compteur, jours

Code
un seul champ réel, lu automatiquement par le téléphone
Compteur
chiffre en mono, bornes désactivées
Jours
le ruban glisse sous le jour choisi

Statuts et messages

PrévuÀ l'heure+12 minSuppriméArrivéMeilleur prixExpressOmnibus
ValidePaiement en attenteUtiliséAnnuléRembourséExpiré

Travaux entre Booué et Ivindo samedi 3 octobre : les départs de l’après-midi partiront 25 min plus tard. Vos places sont conservées.

En savoir plus
Paiement au guichet.Réglez avant 18:00 demain, sinon les places sont libérées.
Billets envoyés.Vous les recevrez aussi par SMS.
Plus que 4 places.En première classe, sur ce train.
Billets ajoutés à WalletVoir

Pastillecomponents/tag · voyage/statut

Règle
toujours une icône et un mot ; le retard toujours chiffré
Marque
bleu sur jaune : mises en avant commerciales, jamais un statut

Bandeau d'informationvoyage/bandeau-trafic

Couleurs
jaune sur bleu, comme le site (5,9:1)
Texte
ce qui change, puis ce qui reste acquis

La voie et le ruban

Vide
Pleine
À moitié
Attente
  1. Trajet (franchie)
  2. Voyageurs (franchie)
  3. Paiement
  4. Billet

Voiecomponents/voienouveau

États
vide · pleine · attente, ou rempli 0 → 1
Fonds
clair · encre · bleu

Étapescomponents/stepper

Étapes
des gares ; le ruban avance jusqu'à la courante
Accessibilité
« Étape 2 sur 4 » reste écrit

Trajets et achat

Vous recevrez une demande de validation.
Owendo → FrancevilleVen. 2 oct. · 07:40 → 19:25 · Express 201

Vos places sont tenues encore13:00

1 adulte · 2e classe22 000
1 enfant · 2e classe22 000
Réduction enfant −50 %−11 000
Total33 000 XAF

Trajetvoyage/carte-trajet

Ordre
l'heure (mono 24), le prix, le reste en gris
Choisi
bordure accent + ruban 480 ms, les classes se déplient
Supprimé
heures barrées, le mot « Supprimé », non cliquable

Choix, récapitulatifvoyage/choix · voyage/recapitulatif

Places
affichées seulement sous 10
Tenue
rebours en mono, danger sous 2 min, sans clignoter

Le billet

Express 201Valide
07:40Owendo
ven. 2 oct.
19:25Franceville
Voiture
4
Place
32
Classe
2e
RS-EXEMPLE · 1/2
Ariane MoussavouAdulte
Omnibus 203 · 14 sept.Utilisé
06:15Ndjolé
10:02Booué
Express 205 · 3 oct.Annulé
10:20Owendo
21:40Franceville

Billetvoyage/billet

Fond
encre, dans les deux thèmes
Code
Aztec signé, sur fond blanc, lisible hors réseau
États
valide, retard, utilisé, annulé, expiré

Découpe

Voie
remplace les pointillés
Émission
le ruban la traverse une fois, 720 ms

Suivi

Owendo · PK 0Ntoum · PK 35Andem · PK 57Mbel · PK 85Oyan · PK 118Abanga · PK 148Ndjolé · PK 182Alembé · PK 202Otoumbi · PK 226Bissouma · PK 244Ayem · PK 267Lopé · PK 290Offoué · PK 312Booué · PK 338Ivindo · PK 375Mouyabi · PK 411Milolé · PK 448Lastourville · PK 484Doumé · PK 514Lifouta · PK 549Mboungou Badouma · PK 584Moanda · PK 619Franceville · PK 669OwendoPK 0NdjoléPK 182BoouéPK 338LastourvillePK 484FrancevillePK 669Express 201Omnibus 204
  1. 07:40OwendoPK 0(desservi)
  2. 10:5210:40NdjoléPK 182(desservi)
  3. 12:2612:14LopéPK 290
  4. 13:1913:07BoouéPK 338Vous
  5. 16:0215:50LastourvillePK 484

Départs d'Owendo

07:02
HeureDestinationTrainQuaiÉtat
07:40FrancevilleNdjolé, Booué, LastourvilleExpress 201 · quai 1Express 2011À l'heure
18:3518:10FrancevilleToutes garesOmnibus 203 · quai 2Omnibus 2032+25 min

Arrêtscomponents/ligne-arretsnouveau

Heures
réelle en gras, prévue barrée dessous
Rame
entre deux gares, d'après l'horaire et le retard

Schéma de ligne, départscomponents/schema-ligne · voyage/tableau-departs

Gares
à leur point kilométrique réel
Tableau
comme en gare : fond encre, heures en jaune

États

Pas de train ce jour-làLe prochain part samedi à 07:40.
Ariane MoussavouJean NdongAvatars : initiales, jamais de couleur aléatoire

État videcomponents/empty-state

Illustration
le S gris, rame à quai : jamais animé
Sortie
toujours une action : un jour voisin, une recherche

Chargement

Sous 1 s
squelettes
Au-delà
la voie et une phrase

09Widgets & Live

Le prochain voyage reste lisible sans ouvrir l’app : widgets, écran verrouillé, activité en direct, notifications et Wallet. La voie relie les gares ; le ruban n’avance que lorsqu’une nouvelle position estimée est publiée. Les données ci-dessous sont fictives.

D’où viennent les informations

Le statut de desserte publié par le backend (planifié, à l’heure, retardé, supprimé ou terminé) alimente ces surfaces par notification. La position du train est estimée d’après l’horaire et le retard annoncé, sans GPS. Dès qu’on montre cette position, on indique l’heure de sa dernière mise à jour.

Widgets de l’écran d’accueil

Petit : l’heure et le quai. Moyen : le trajet et la place. Grand : le voyage en cours, gare par gare. Toucher un widget ouvre le billet correspondant.

Express 201
07:40
Owendo → Franceville
Quai 1dans 48 min
Petit · l’heure domine, en chiffres mono.
Prochain train · ven. 2 oct.À l’heure
07:40Owendo19:25Franceville
Quai
1
Voiture
4
Place
32
Embarq.
07:10
Moyen · trajet, statut, quai, voiture et place.
Express 201 · en route +12 min
Prochain arrêtBooué · 13:07
Arrivée à Franceville19:37
  1. Lopé · 12:14
  2. Booué · 13:07
  3. Lastourville · 15:50
  4. Franceville · 19:37

Position estimée · mise à jour à 12:16

Grand · le prochain arrêt et la progression pendant le voyage.

✓ Dans un widget

  • L’heure de départ est l’information la plus grande, toujours en chiffres mono.
  • Un retard est chiffré en minutes et l’heure montrée est l’heure réelle.
  • Le widget ouvre le billet, directement.

✕ À éviter

  • Le logo complet : le symbole suffit quand le nom de l’app est déjà affiché.
  • Une animation continue : le widget ne change qu’à sa mise à jour.

Écran verrouillé et activité en direct

L’activité démarre 2 h avant le départ et s’arrête à l’arrivée. Avant le départ, elle montre le compte à rebours, le quai et la place. Pendant le trajet, elle montre le prochain arrêt et la position estimée. Le ruban rejoint sa nouvelle position en 1,2 s à chaque mise à jour ; il ne roule jamais en continu.

Express 201 · Owendo → Franceville À l’heure
Départ dans48 min
Quai 1 · voiture 4Place 32
Owendo 07:40BoouéFranceville 19:25
Avant le départ · seules les minutes du compte à rebours changent.
Express 201 · en route +12 min
Prochain arrêtBooué 13:07
Arrivée à Franceville19:37
OwendoBoouéFranceville
Position estimée · mise à jour à 12:16
Pendant le voyage · nouvelle position après chaque changement de statut.

Écran verrouillé

Le cercle indique le temps avant le départ, puis la part du trajet. La ligne courte donne le quai ou le prochain arrêt.

Dynamic Island

Compacte : symbole, prochain arrêt et retard. Minimale : symbole seul. Étendue : trajet et position du ruban. Le système anime les transitions.

Android

Widget aux grands rayons. La notification de progression d’Android 16 marque les gares majeures par des segments et place le train à la position estimée.

Notifications

Chaque titre nomme le train ou la gare. Le message annonce le fait, puis ce qui reste acquis pour le voyageur.

Retard ou suppression

Express 201 · 12 min de retard

Arrivée prévue à Franceville à 19:37. Votre place est conservée.

Dès le changement de statut · Push ; SMS sans app

Rappel

Embarquement à 07:10, quai 1

Express 201 pour Franceville. Votre billet est prêt, même sans réseau.

30 min avant l’embarquement · Push

Achat

2 billets émis

Owendo → Franceville, vendredi 2 octobre. Réf. STG-7K4Q2P.

Paiement reçu, billets émis · Push ; reçu par SMS

Remboursement

Omnibus 405 supprimé

Remboursement de 12 000 XAF lancé sur votre compte Airtel Money.

Lancé, puis effectué · Push ; e-mail

Cartes Wallet

Apple Wallet garde le fond encre du billet, avec des libellés orange lisibles sur ce fond. Google Wallet reprend la voie et le ruban en liseré. Les deux utilisent un code Aztec sur fond blanc ; le nom du voyageur, la voiture, la place et le quai restent écrits à côté du code.

Ven. 2 oct.
OWENDO07:40Quai 1
FRANCEVILLE19:25Express 201
VoyageurN. MboumbaVoiture4Place32Classe2e
STG-7K4Q2P · exemple
Apple Wallet · même fond encre que le billet.
SETRAG · Express 201
OWEOwendo · 07:40
FCVFranceville · 19:25
Date
2 oct.
Voiture
4
Place
32
Quai
1
STG-7K4Q2P · exemple
Google Wallet · voie et ruban entre les gares.

✓ Toujours

  • Afficher l’heure de mise à jour dès qu’une position est estimée.
  • Afficher l’heure réelle en premier ; l’heure prévue seulement si elle diffère.
  • Utiliser les codes OWE et FCV là où la place manque, le nom complet ailleurs.
  • Employer le symbole seul sous 48 pt et chiffrer chaque retard.

✕ Jamais

  • Présenter une position comme actuelle si son statut a plus de 15 min : le retard de mise à jour doit être écrit.
  • Faire porter un retard par la couleur seule.
  • Faire bouger ces surfaces en dehors d’une mise à jour réelle.
Heures en mono Position estimée signalée Retard chiffré

10Ruban, l'assistant

SETRAG pose la voie, Ruban roule dessus. Son signe est le ruban lui-même, posé en S, sans les rails : reconnaissable au premier coup d'œil, et toujours à sa place dans l'identité. Ruban répond aux questions, cherche un train, réserve et fait payer dans la conversation, sur le site, dans l'app et bientôt sur WhatsApp et Telegram.

ReposBouton flottant, avatar des réponses. Rien ne bouge.
RéflexionUne rame parcourt le S, seulement si la réponse tarde plus de 400 ms.
ÉcouteL'épaisseur suit la voix du voyageur, lissée.
ParoleL'épaisseur suit la voix de Ruban.
Hors ligneLe ruban devient gris : Ruban a besoin du réseau.

Sur fond encre, la tête du ruban s’éclaircit : le bleu reste lisible.

Le bouton flottant : 60 px sur le web, 56 sur mobile, toujours encre — c’est ce qui le rend reconnaissable sur n’importe quelle page. À la première ouverture de la session, le ruban se trace une fois (700 ms). Touchez-le.

Le nom et la voix restent à valider avec SETRAG. Ruban n’a ni visage ni âge et ne se présente jamais comme une personne. Son signe reprend le tracé du S, sans les rails ni l’orange du logo.

Placement et façon de parler

✓ À faire

  • Web : bouton en bas à droite, à 24 px des bords. Mobile : au-dessus de la barre d’onglets ; un appui long ouvre la voix.
  • Masquer le bouton pendant le paiement, sur le billet plein écran et quand le clavier est ouvert.
  • Dire l’heure, le prix ou le quai, puis ce que cela change. Deux phrases, puis une carte ; détailler sur demande.
  • Citer la source d’une information de trafic et dire quand l’information manque. Vouvoyer le voyageur.

✕ À éviter

  • Animer le bouton au repos, le faire rebondir ou le colorer en bleu SETRAG.
  • Remplacer le signe par une bulle de discussion ou des étincelles.
  • Plaisanter sur un retard ou ajouter des émojis à une réponse.

La conversation et ses cartes

Fenêtre web

400 × 640 px, ancrée au bouton. Elle connaît la page et le trajet consultés ; la page /assistant donne accès à l’historique.

Feuille mobile

Elle s’ouvre au-dessus de la page, puis peut occuper tout l’écran. Le fil et les actions restent les mêmes.

Cartes d’action

Trajets, récapitulatif, paiement, billet ou modification : les composants de l’app dans le fil. Trois trajets au plus, deux boutons par carte.

Après une action

La carte traitée se replie en une ligne de résumé. Seule la dernière carte du fil reste active.

La voix

Le micro du champ dicte un message ; le bouton au signe lance la conversation orale. Tout ce que Ruban dit s’écrit aussi à l’écran, avec les mêmes cartes que dans le fil écrit.

Écoute

Les mots s’écrivent pendant que le voyageur parle. Une pause de 1 s termine la phrase.

Recherche

Ruban annonce ce qu’il cherche. Pas plus de 3 s sans indication.

Réponse

Trois phrases au plus ; les heures se disent en toutes lettres. Le texte suit à l’écran.

Interruption

Le voyageur peut parler pendant la réponse : Ruban s’arrête et écoute.

Une réservation, une modification ou une annulation se confirme par un toucher ou par un « oui » après la relecture du récapitulatif. Le paiement Mobile Money se valide sur le téléphone. Aucun code secret, code SMS ou numéro de carte n’est demandé à voix haute.

Actions et confirmation

ActionCe qui la déclenche
Chercher, répondre, suivreLa question du voyageur.
Tenir des placesLe choix d’un trajet ; les places se libèrent après 15 min.
Payer en Mobile MoneyLe bouton « Payer », puis la validation sur le téléphone.
Payer par carteUn formulaire sécurisé ouvert hors du fil.
ModifierLa confirmation sur la carte avant / après.
Annuler, rembourserUn bouton qui nomme le billet concerné.

Le mouvement de Ruban

MomentMouvementDurée
OuvertureMontée depuis le bouton, sans rebond ; voile en fondu320 ms
Première ouvertureLe signe se trace une fois700 ms
RéflexionUne rame parcourt le S après 400 ms d’attente1 600 ms, boucle
RéponseLe texte s’écrit ; la carte monte de 6 px14 mots/s · 200 ms
Écoute et paroleL’épaisseur du ruban suit la voixLissage 80 ms
Carte traitéeElle se replie en une ligne200 ms
AlerteUn point jaune apparaît, sans rebond200 ms

Ruban utilise les mêmes fonctions et la même session que l’interface. Une action sensible passe par un brouillon, puis par la confirmation du voyageur ; elle est inscrite au journal d’audit.

✓ Ce que fait Ruban

  • Il montre des cartes : trajets, récapitulatif, paiement, billet. Le voyageur agit sur la carte.
  • Il demande une confirmation avant toute réservation, tout paiement, toute annulation.
  • Il dit quand il ne sait pas, et renvoie vers le guichet ou l'aide.

✕ Ce qu'il ne fait jamais

  • Demander un code secret, un code reçu par SMS ou un numéro de carte.
  • Payer sans un geste du voyageur : la validation se fait sur son téléphone.
  • Parler à la place d'une information officielle de trafic : il la cite.

11Le ton

Ce qu'on écrit compte autant que ce qu'on montre. Des phrases courtes, un fait, puis ce que ça change pour le voyageur.

« Incident d'exploitation »

« Votre train partira 12 min plus tard. Votre place est conservée. »

« Transaction en cours de traitement »

« Validez le paiement sur votre téléphone. Vos places sont tenues 15 minutes. »

« Erreur 503 »

« Pas de réseau. Vos billets restent consultables. »

« Aucun résultat »

« Pas de train ce jour-là. Le prochain part samedi à 07:40. »