Page Réalisations
Les cas en grille : le bandeau à badges, les cartes vitrine, les cas en largeur, les petites cartes, l’appel sur l’encre, le mur des clients.
Le déroulé
Six blocs, d’après la maquette validée par JB le 12 octobre, sur le modèle de la page des clients de baseten.co : l’en-tête, un bandeau de logos, la grille des cas en rythmes différents, le mur des clients, la bande, le contact. Les textes viennent de pages-v3 et accueil-v3, les cas de leurs fiches ; la page n’écrit aucun texte.
| Bloc | Composant | Donnée |
|---|---|---|
| L’en-tête | EnTetePage sans scène : FilAriane, h1, chapô, un bouton | fil Réalisations ; P.realisations.titre, lead ; V3.cta vers /contact/ ; le titre de l’onglet et la description : P.realisations.title et description |
| Le bandeau | Section tr-logos + Logos, sans étiquette, avec badge | les noms du mur, dans son ordre ; P.realisations.badge sur les clients dont le cas a sa page |
| La grille des cas | Section #cas tr-cases-sec, un h2 masqué, puis Grille tr-cases : CarteCas, AppelCas, cases vides | P.realisations.catalogue.etiquette (le h2 masqué) ; la table de la page, les fiches ; V3.realisations.offreLibelle ; P.realisations.lireCas, voirSite, reserve ; P.realisations.appel et V3.cta |
| Le mur | Section tr-murl-sec + MurLogos | P.realisations.mur.titre, surligne ; les clients avec accord (ceux dont le cas a sa page d’abord, dans l’ordre des fiches), puis ceux de V3.logos.ordre qui manquent ; P.realisations.badge |
| La bande | Bande motif b | aucune : décorative |
| Le contact | Section #contact tr-contact + Contact | V3.contact.surtitre, P.realisations.contact.titre et sousTitre, V3.cta, V3.contact.types ; aucun type présélectionné |
La page précédente posait tous les cas, sous une tête, dans la grille tr-cas, une photo en réserve par carte ; le bandeau des clients venait après, avec son étiquette, ses logos chargés à la demande. Les cartes de l’accueil et des pages d’offre gardent cette carte (Cas.astro, voir Cartes) : celles des pages d’offre avec leur photo en réserve, celles de l’accueil, depuis le 13 octobre, avec la vitrine du cas au format des petites cartes de cette page. La page Réalisations a la sienne, CarteCas, avec la vitrine du cas.
Le bandeau à badges
Le bandeau des clients, juste sous l’en-tête, sans étiquette : le titre du mur la porte plus bas. Il défile comme sur l’accueil ; un petit badge marque les clients dont le cas a sa page.
-
cas -
cas -
cas -
cas -
cas -
cas -
cas -
- Renault
<Section classe="tr-logos">
<Logos noms={mur.map((c) => c.nom)} badge={P.realisations.badge} />
</Section> | Classe | Zone | Valeur |
|---|---|---|
| Logos noms badge | la liste | les noms du mur, puis, comme partout, les cas qui ont l’accord du client et un logo s’ils n’y sont pas déjà ; un badge pour chaque client dont le cas a sa page (page, accord, pas de masque) |
| sans etiquette | pas de titre | le titre du mur dit déjà « Ils nous ont confié leur projet. » ; .tr-logos__tete--seul pose le bouton pause, sans fond, au bout du bandeau, au milieu de sa hauteur ; le bandeau reste sur le blanc de la page (la maquette le posait sur le gris) |
| .tr-logos__defile | le fondu | sans étiquette, hors mouvement réduit : les logos s’effacent à gauche sur 6 % ; à droite, ils s’effacent entre 120 px et 46 px du bord, et le bouton pause occupe le bout |
| .tr-badge | le badge | dans le coin haut droit de la case (10 px du haut, 12 px de la droite ; 8 et 8 jusqu’à 480 px) ; Inter 600 9 px, capitales, .14em ; vert profond sur le pâle, filet vert (4,81:1), comme l’étiquette ; pointer-events none |
| .tr-logos:has(+ .tr-cases-sec) .tr-logos__cadre | le bas du bandeau | pas de trait en bas : la ligne de la section des cas, juste dessous, suffit |
Le défilement, l’arrêt au survol, le bouton pause et le mouvement réduit sont ceux du bandeau de l’accueil : voir Logos. Le badge est un mot de la copie (P.realisations.badge) : dans la piste lue, il suit le nom du client (l’alt du logo, ou le nom écrit) ; la seconde piste est muette. Les cases du bandeau ne sont pas des liens : ce sont celles du mur qui mènent aux cas.
La grille des cas
Six colonnes dès 861 px, une seule en dessous. Les cas se posent dans l’ordre d’une table écrite dans la page, chacun avec sa forme : par deux en carte vitrine, seul en largeur, par trois en petite carte. La cellule d’appel ferme la dernière rangée.
| Rang | Fiche | Forme | Aujourd’hui |
|---|---|---|---|
| 1 | bosco-services | carte vitrine | carte liée à sa page |
| 2 | cathedrale-de-nantes | carte vitrine | carte liée à sa page |
| 3 | mes-jardiniers | en largeur | carte liée à sa page |
| 4 | peppsy | carte vitrine | carte liée à sa page |
| 5 | la-grande-table | carte vitrine | carte liée à sa page |
| 6 | builders | en largeur | carte liée à sa page |
| 7 | clotilde-davenne | petite carte | carte liée à sa page |
| 8 | ie-architecture | petite carte | carte sans lien, avec « Voir le site » |
| Rangée | Les cases, dès 861 px |
|---|---|
| 1 | Bosco Services (carte vitrine), Cathédrale de Nantes (carte vitrine) |
| 2 | Mes Jardiniers (en largeur) |
| 3 | PepPsy (carte vitrine), La Grande Table (carte vitrine) |
| 4 | Builders (en largeur) |
| 5 | Clotilde Davenne (petite carte), IE Architecture (petite carte), la cellule d’appel |
Une carte vitrine prend trois colonnes, un cas en largeur six, une petite carte et l’appel deux. Une rangée ne mélange pas les formes : quand la forme change, ou que la place manque, une case vide finit la rangée. Sous 861 px, tout passe sur une colonne, dans le même ordre, et les cases vides disparaissent.
<Section id="cas" classe="tr-cases-sec" titreId="tr-cas">
<h2 class="sr-only" id="tr-cas">{P.realisations.catalogue.etiquette}</h2>
<Grille classe="tr-cases" stagger={null}>
<CarteCas slug={cas.id} cas={cas.data} forme="vitrine" nom={v.nom} logo={v.logo} href={v.href} site={v.site} anonyme={v.anonyme}
etiquette={V3.realisations.offreLibelle[cas.data.expertise] ?? cas.data.expertise}
lire={P.realisations.lireCas} voirSite={P.realisations.voirSite} reserve={P.realisations.reserve} eager={eager} />
<!-- … une carte par cas, dans l’ordre de la table ; forme="large" ou forme="petite" -->
<li class="tr-cel tr-cc tr-cc--vide" style="--span:3" aria-hidden="true"></li>
<AppelCas etiquette={P.realisations.appel.etiquette} titre={P.realisations.appel.titre} texte={P.realisations.appel.texte}
bouton={{ href: '/contact/', libelle: V3.cta }} />
</Grille>
</Section> | Classe | Zone | Valeur |
|---|---|---|
| .tr-cases-sec > .tr-in | la section | padding haut et bas à 0 : la grille touche le bandeau et la section suivante |
| .tr-cases | la grille | une colonne ; dès 861 px, six ; margin-bottom -1 px et clip-path : la dernière rangée perd son trait du bas, celui de la section suivante le remplace |
| .tr-cc--vitrine | une carte vitrine | trois colonnes sur six : deux par rangée |
| .tr-cc--large | un cas en largeur | toute la rangée |
| .tr-cc--petite, .tr-cc--appel | une petite carte, l’appel | deux colonnes sur six : trois par rangée |
| .tr-cc--vide | une case vide | aria-hidden ; finit une rangée incomplète sur --span colonnes ; masquée sous 861 px |
| Grille stagger null | l’apparition | les cartes apparaissent chacune quand elle entre dans l’écran (data-reveal), sans décalage de rang ; les traits se tracent |
La carte vitrine
Le logo à gauche et « Lire le cas » à droite, l’offre en voix d’étiquette, un titre, puis la vitrine du cas. Quand le cas a sa page, toute la carte est le lien, et pâlit au survol.
- Emploi
- Présenter un cas sur la page Réalisations : son client, son offre, une phrase, et son produit dans sa vitrine.
- Moment
- Dans la grille tr-cases, par deux, à la place que lui donne la table de la page.
- Jamais
- Hors de la page Réalisations : l’accueil et les pages d’offre gardent la carte Cas. Avec un chiffre de résultat dans le titre ou dans la capture.
| Classe | Zone | Valeur |
|---|---|---|
| .tr-cc | la cellule | flex en colonne, sans padding : le corps la remplit |
| .tr-cc__corps | le corps | un lien quand le cas a sa page, sinon un div ; flex en colonne, écart 16 px, padding clamp(20px, 2.4vw, 32px) |
| .tr-cc__tete | la tête | le logo à gauche, « Lire le cas » à droite (sans page, « Voir le site » si la fiche donne un site) ; 44 px de haut au moins |
| .tr-cc__logo | le logo | 30 px × --echelle, 58 % de la tête et 170 px au plus, calé à gauche ; alt : le nom du client |
| .tr-cc__nom | sans logo | le nom en Outfit 700 20 px, encre ; trop long pour tenir à côté du bouton, il garde sa ligne et le bouton passe dessous (la tête passe en flex-wrap) |
| .tr-cc__lire | « Lire le cas » | un bouton au trait dessiné (un span, pas un lien) ; au survol ou au focus de la carte, son trait passe à l’encre et sa flèche sort |
| .tr-cc__offre | l’offre | un paragraphe en voix d’étiquette, sans pastille : Inter 600 11 px, capitales, .14em, encre troisième |
| .tr-cc h3 | le titre | l’accroche de la fiche, à défaut son résumé (sans l’un ni l’autre, pas de titre) ; Outfit clamp(20px, 2vw, 26px), interligne 1,18, 30ch au plus |
| .tr-cc__vit | la vitrine | format carte (16/10), poussée en bas : les vitrines d’une rangée s’alignent ; deux puces au plus, aucune sur une réserve ; sous 720 px, 4/3 et sans puce |
| .tr-cc--lien | le survol, le focus | la case passe au pâle ; le focus trace l’anneau vert profond dedans, à -4 px, car la grille coupe ce qui dépasse |
| a.tr-cc__corps | le nom du lien | aria-labelledby : « Lire le cas » puis le logo (son alt) ou le nom ; aria-describedby : le titre |
Le cas en largeur
Toute la rangée : le texte à gauche, avec une phrase d’appui et trois faits en grands chiffres, la vitrine à droite. Les faits disent la durée, l’année de mise en service, la stack ou ce qui est propre au cas : jamais un résultat.
| Classe | Zone | Valeur |
|---|---|---|
| .tr .tr-cc--large h3 | le titre | clamp(24px, 2.6vw, 34px), 22ch au plus |
| .tr-cc__appui | l’appui | le champ appui de la fiche ; 14,5 px, interligne 1,55, encre seconde, 56ch au plus |
| .tr-cc__faits | les faits | les faits de la fiche (faits : valeur et légende, trois au plus d’après le schéma), jamais un résultat ; dès 861 px, sur une seule rangée |
| .tr-cc__valeur | la valeur | Outfit 600 clamp(24px, 2.4vw, 32px), interligne 1,05, -0,03em, encre, sur une ligne |
| .tr-cc__legende | la légende | 13 px, interligne 1,4, encre troisième, 6 px sous la valeur |
| .tr-cc--large .tr-cc__corps | la disposition | dès 861 px, deux colonnes 1fr et 1,1fr, centrées en hauteur ; le texte à gauche, la vitrine à droite |
| Vitrine format haute | la vitrine | 16/11 ; une seule puce, et jamais celle qui répète un fait |
Les cas en largeur aujourd’hui : Mes Jardiniers, Builders. Sous 861 px, la carte s’empile comme les autres : le texte, les faits, puis la vitrine.
Les petites cartes et l’appel
La dernière rangée, par trois : les petites cartes, le bouton en bas, et la cellule d’appel sur l’encre, qui ferme la grille.
- Lire le cas
E-commerce
La boutique Shopify d’un domaine de Chablis, règles du vin comprises.
- Voir le site (nouvel onglet)
Site internet
Le premier site d’une agence d’architecture, qui publie elle-même ses projets.
-
Votre projet
Démarrer un projetLe prochain cas, c’est le vôtre.
Dites-nous où vous en êtes. Une personne de l’équipe vous répond.
| Classe | Zone | Valeur |
|---|---|---|
| .tr .tr-cc--petite h3 | le titre | clamp(18px, 1.6vw, 21px) |
| .tr-cc--petite .btn | le bouton | en bas, calé à gauche : « Lire le cas » dessiné si le cas a sa page ; sinon « Voir le site », un vrai lien au trait, dans un nouvel onglet |
| Vitrine format petite | la vitrine | 16/11, le navigateur à 84 %, aucune puce |
| .tr-cc--appel | la cellule d’appel | fond encre (validé par JB le 12 octobre), texte blanc ; l’étiquette en haut, le bouton en bas, espace entre |
| .tr .tr-cc--appel h3 | son titre | la taille des titres de carte, en blanc (17,5:1 sur l’encre) ; 12 px dessous |
| .tr-cc__appel p | sa phrase | 14,5 px, interligne 1,55, --on-dark #D6D3D1 (11,7:1 sur l’encre), 36ch au plus |
| .tr-cc__appel-btn | son bouton | plein, vert Grinn, texte à l’encre (10,3:1) ; au survol, il se remplit de blanc, bord blanc ; anneau de focus vert ; son libellé peut passer à la ligne jusqu’à 480 px, et de 861 à 960 px, où la cellule est étroite |
La cellule d’appel est la seule cellule de grille à l’encre. La règle « jamais d’aplat » tient pour les sections ; cette cellule, dans la grille et délimitée par son trait, est une exception validée par JB sur la maquette.
Le mur des clients
Le titre centré, un passage surligné, puis tous les clients en cases, cinq par rangée, deux au téléphone. Ceux dont le cas a sa page portent le badge et mènent à leur cas.
<Section classe="tr-murl-sec" titreId="tr-mur">
<MurLogos clients={mur} titre={P.realisations.mur.titre} surligne={P.realisations.mur.surligne} badge={P.realisations.badge} id="tr-mur" />
</Section> | Classe | Zone | Valeur |
|---|---|---|
| Tete centre | le titre | P.realisations.mur.titre, « confié leur projet » surligné |
| .tr-murl | la grille | deux colonnes ; cinq dès 861 px ; margin-bottom -1 px et clip-path, comme la grille des cas ; .tr-murl-sec > .tr-in n’a pas de padding bas ; les cases apparaissent l’une après l’autre (data-stagger 60) et les traits se tracent |
| .tr-murl__corps | une case | 96 px de haut au moins, padding 20 / 16 px, centrée ; un lien vers le cas quand il a sa page, sinon un span |
| .tr-murl__corps img | le logo | clamp(26px, 2.2vw, 32px) × --echelle, 130 px au plus, opacité .9 (1 au survol d’une case lien) ; alt : le nom du client |
| .tr-murl__nom | sans logo | le nom en Outfit 700 clamp(16px, 1.4vw, 20px), opacité .72 |
| .tr-murl__case--lien | le survol, le focus | la case passe au pâle ; l’anneau vert profond dedans, à -4 px ; le badge dans le coin |
| .tr-murl__vide | les cases vides | aria-hidden ; de quoi finir la dernière rangée à cinq dès 861 px, à deux dessous |
Les cas limites
Ce que fait la page quand une fiche ne donne pas tout. La dernière colonne est calculée sur les fiches, à la construction de cette page.
| Cas | Ce que fait la page | Aujourd’hui |
|---|---|---|
| Sans accord du client | si Bosco Services, seul cas que la copie sait désigner sans le nommer (V3.realisations.anonyme), perd l’accord, sa carte reste : le nom « Une entreprise d’interventions », ni logo, ni lien, ni site, la vitrine en réserve sur sa matière, sans puce, et aucune case dans le mur ni dans le bandeau ; tout autre cas sans accord n’a pas de carte, et son nom ne paraît dans le mur et le bandeau que si V3.logos.ordre le porte | carte anonyme : aucun ; sans carte : aucun |
| Masqué | pas de carte ; si V3.logos.ordre le nomme, son nom paraît quand même dans le mur et le bandeau, sans lien ni badge | Renault |
| L’accord, sans page | la carte n’est pas un lien ; « Voir le site » si la fiche donne un site ; une case du mur sans badge | IE Architecture |
| Absent de la table | il entre en carte vitrine, dans l’ordre des fiches, après les cas de la table et avant la rangée des petites cartes : l’appel ferme toujours la grille | aucun |
| Une rangée incomplète | une case vide la finit ; une rangée ne mélange pas les formes | aucune |
| Sans capture | la vitrine montre la réserve, P.realisations.reserve, sans puce | Bosco Services |
| Sans accroche | le titre de la carte est le résumé | aucun |
| En largeur, sans faits ou sans appui | la carte garde sa forme ; ce qui manque ne s’affiche pas | aucun |
| La puce d’un cas en largeur | la première puce qui ne répète pas un fait | Mes Jardiniers : Réservation en ligne ; Builders : Builders Arcade |
| Sans logo | le nom en Outfit, dans la carte, le bandeau et le mur | cartes : aucun ; mur : Renault |
| Le premier écran | les deux premières cartes chargent leur logo et leur vitrine tout de suite (eager) ; les autres attendent | Bosco Services, Cathédrale de Nantes |
RègleUn cas se montre avec l’accord de son client, dans sa vitrine, et sans chiffre de résultat ; sans accord, la page ne le nomme pas.