Citations
Le mur de citations, en quinconce autour du titre, et sa carte.
Le mur
Trois colonnes de la trame. Les citations se posent en quinconce autour du titre, qui occupe deux cases au milieu de la grille ; des cases vides laissent respirer. C’est la section « Ce qu’ils en disent » de l’accueil, telle quelle.
- Emploi
- Les citations des clients, en bloc, avec le titre de la section au milieu et un bouton vers les réalisations.
- Moment
- Une fois par page, sur l’accueil et sur la page carrières. La page d’un cas cite autrement : une seule carte, celle de son client, dans le bloc CitationCas (voir Page de cas).
- Jamais
- Avec des citations écrites par nous, ni dans un carrousel : le mur ne défile pas.
-
Emplacement du verbatim client, sur ce que le produit a changé. verbatim réel à récupérer
Prénom Nom Fonction · Entreprise -
Emplacement du verbatim client, sur le déroulement du projet et les délais tenus. verbatim réel à récupérer
Prénom Nom Fonction · Entreprise -
Témoignages
Ce qu’en disent ceux qui nous ont choisis.
Voir les réalisations -
« Grinn développe notre application depuis sa première version, en 2022, et l’a fait évoluer au rythme de notre croissance. C’est une équipe qui connaît notre produit aussi bien que nous, et qui répond vite quand il le faut. »
Timothée Lachenal Directeur général · PepPsy -
Emplacement du verbatim client, sur l’assistant et le temps qu’il fait gagner. verbatim réel à récupérer
Prénom Nom Fonction · Entreprise
<Mur verbatims={verbatims} etiquette={V3.verbatims.surtitre} titre={V3.verbatims.titre} titreId="mur-spec" bouton={{href:'/realisations/',libelle:V3.realisations.bouton}} /> const verbatims = (await getCollection('verbatims')).sort((a, b) => a.data.ordre - b.data.ordre) Qui va où
Le composant range huit cases dans l’ordre du tableau MUR : la tête prend deux colonnes, les vides n’existent qu’à partir de 1000 px. En dessous, le titre passe en tête (order -1) et les cases vides disparaissent ; la grille a deux colonnes dès 700 px, trois dès 1000 px.
| Case | Dès 1000 px (trois colonnes) | Sous 1000 px |
|---|---|---|
| 1 | citation 1, rangée 1 | citation 1 |
| 2 | citation 2, rangée 1 | citation 2 |
| 3 | vide, rangée 1 | masquée |
| 4 | la tête, sur deux colonnes, rangée 2 | en tête de grille, pleine largeur |
| 5 | citation 3, rangée 2 | citation 3 |
| 6 | vide, rangée 3 | masquée |
| 7 | citation 4, rangée 3 | citation 4 |
| 8 | vide, rangée 3 | masquée |
| Classe | Zone | Valeur |
|---|---|---|
| .tr-dires | la grille | une colonne ; deux dès 700 px ; trois dès 1000 px ; data-stagger 80, data-lignes |
| .tr-dire | une cellule de citation | padding clamp(16px, 2vw, 24px) |
| .tr-dire--tete | la cellule du titre | padding clamp(24px, 3vw, 44px) ; étiquette, h2 sur 12ch au plus, bouton au trait petit à 26 px dessous ; dès 1000 px : grid-column span 2, order 0 |
| .tr-dire--vide | une case vide | display none ; display block dès 1000 px ; min-height 120 px ; aria-hidden ; data-cellules="calme" : des cases de 48 px s’y allument, deux à la fois (trame.ts, partie 5) ; la deuxième case vide est pâle (les verts en relief) |
La carte
Dans sa cellule au trait pointillé, la carte a un bord plein. Le logo en haut, la citation en romain, puis le portrait rond et le nom en capitales.
| Classe | Zone | Valeur |
|---|---|---|
| .tr-dire__carte | la carte | fond surface, bord plein 1 px var(--line), padding 24 px, 18 px entre les blocs, hauteur 100 % de la cellule |
| .tr-dire:hover .tr-dire__carte | au survol | fond pâle (var(--pale)) et bord ink-3, en 200 ms (var(--fast)) |
| .tr-dire__logo | le logo, en réserve | 32 px de haut, padding 0 12 px, bord 1 px tireté ink-3, fond var(--photo) : Inter 600 10 px, capitales, .14em, ink-3 ; aria-hidden ; 10 px dessous, pour une tête de 42 px |
| .tr-dire__logo--img | le logo du client | quand la fiche nomme un client et que son fichier existe : 28 px × --echelle, 132 px au plus, opacité .85, alt = le client, lazy ; la marge dessous complète la tête à 42 px |
| .tr-dire__logo--nom | le client sans fichier | son nom en toutes lettres : Outfit 700 15 px, encre, sans bord ni fond |
| blockquote | la citation | Inter 400 17 px / 1.5, encre, text-wrap pretty |
| .tr-dire--attente blockquote | sans citation | ink-2 : le texte de réserve se lit en retrait |
| .tr-dire__carte .pend | la pastille « verbatim réel à récupérer » | 8 px à gauche, alignée au milieu de la ligne |
| .tr-dire__carte figcaption | le pied de carte | poussé en bas (margin-top auto), 6 px au-dessus, 12 px entre portrait et nom |
| .tr-dire__photo | le portrait, en réserve | 32 × 32 px, rond, bord 1 px tireté ink-3, fond var(--photo) |
| .tr-dire__qui | nom et fonction | Inter 600 10,5 px / 1.3, capitales, .1em, chiffres de tableau ; le nom en encre, la fonction en ink-3 |
| --photo | le fond des réserves | var(--color-grinn-pale), #F5FAF5, sur la trame (.tr) depuis le 12 octobre (les verts en relief ; #F2F0EC avant) ; #ECEAE6, gris chaud, à la racine |
Aucune citation inventée
Les quatre fiches de src/content/verbatims n’ont qu’un ordre et un sujet. Citation, auteur et fonction valent null tant que le client n’a pas fourni les siens.
Quand la citation manque, la carte écrit « Emplacement du verbatim client, sur » suivi du sujet, puis la pastille EnAttente « verbatim réel à récupérer » ; le nom devient « Prénom Nom » et la fonction « Fonction · Entreprise ». Quand une citation existe, elle s’affiche entre guillemets “ ”, avec l’auteur et la fonction de la fiche. Rien d’autre ne change : la carte garde la même place et le même bord.
| Fiche | Sujet | Citation | Auteur |
|---|---|---|---|
| verbatim-1 | ce que le produit a changé | null : la carte montre sa réserve | null : « Prénom Nom » |
| verbatim-2 | le déroulement du projet et les délais tenus | null : la carte montre sa réserve | null : « Prénom Nom » |
| verbatim-3 | le suivi après la mise en ligne | fournie | Timothée Lachenal |
| verbatim-4 | l’assistant et le temps qu’il fait gagner | null : la carte montre sa réserve | null : « Prénom Nom » |
Le logo du client
Le champ client de la fiche (src/content.config.ts, null aujourd’hui) nomme le client. Mur.astro affiche alors son logo à l’encre s’il est dans public/assets/logos/clients/, sinon son nom en toutes lettres ; la réserve « Logo client » reste tant que le champ est vide. Un logo ne se publie qu’avec l’accord du client.
Sur la page d’un cas
Le même champ client relie un verbatim à la page de son cas : la page cherche la fiche dont le client, mis en slug, est l’identifiant du cas ou le nom du client, et qui a une citation. Elle la pose dans CitationCas, une carte bordée à côté de l’étiquette « Ce qu’en dit le client » ; sans elle, la carte garde sa réserve au nom du client, et la note dit que le témoignage est à venir. Le détail : Page de cas, rubrique 05.
D’où vient la forme
Le mur reprend la disposition des citations de baseten.co, choisie par JB à la place du carrousel de l’accueil précédent : la grille, le titre au milieu et les cases vides viennent de là, le trait pointillé, les verts et la réserve de logo sont à nous.
Le carrousel (Carrousel.astro et Verbatim.astro, encore visibles sur l’accueil précédent) demandait un script pour défiler ; le mur se lit en entier, sans rien toucher, et chaque carte garde sa place dans la grille.
RègleUne carte sans citation le dit en clair, dans la même case : on n’écrit jamais une phrase à la place d’un client.