Ce que c’est
Un site complet pour une plateforme financière destinée aux PME : un héros plein écran qui rétrécit quand on le dépasse, trois cartes produit, un tableau de bord agrandissable, trois témoignages clients, une salle de presse, un bandeau de logos qui défile, un appel à l’action et un pied de page à quatre colonnes. Une page, un fichier HTML.
Ce qui fait ce template, c’est que les captures d’interface n’en
sont pas. Les trois maquettes produit et le tableau de bord des
factures — onglets, tuiles de chiffres clés, tableau à six colonnes avec ses
pastilles d’état — sont écrits en HTML et en CSS. Ils restent nets à toutes
les densités d’écran, ils se traduisent, et on change un montant sans ouvrir
un éditeur d’images. Le tableau de bord est dimensionné en em :
la vue agrandie met tout le panneau à l’échelle en changeant une seule
valeur de font-size.
Le design vient d’un gabarit Webflow pour éditeur de logiciel financier dont
il ne reste aucune image : les six photographies ont été
régénérées pour ce template, au rapport d’aspect exact relevé sur
l’original. Tout le code a été réécrit : jQuery, le moteur d’animation IX2
propriétaire (239 événements pour 33 effets distincts), le CSS minifié, le
chargeur de polices distant, et les style="opacity:0" posés en
ligne sur chaque bloc animé — qu’une politique de sécurité stricte bloque,
ce qui donne une page blanche.
C’est tout l’intérêt : ce template n’est pas là pour être admiré, il est là pour être lu, cassé et remonté.
Ce que tu changes en premier
Les couleurs — l’accent, c’est trois nuances
Tout en haut de assets/css/style.css :
--bg: #060606; /* fond de page */
--bg-soft: #14191f; /* cartes, cadre du tableau de bord */
--brand: #00738a; /* aplats, texte blanc dessus */
--brand-strong: #005c6e; /* le même accent, un cran plus foncé (survol) */
--brand-bright: #3fb8cf; /* le même accent, éclairci pour du texte sur fond sombre */
--deep: #00303f; /* la carte « financement » */
--forest: #002204; /* la carte « comptabilité » */
--ink-2: #ffffffcc; /* texte courant */
--rule: #ffffff33; /* filets */
Une chose à comprendre avant de toucher au reste : il y a trois accents, pas un. L’accent plein est un fond de bouton avec du texte blanc dessus (5,4:1). La même couleur en texte sur le fond presque noir tomberait à 3,7:1, illisible : c’est l’éclairci qui prend le relais (8,7:1). Changer l’accent oblige à changer les trois.
Le nom
Cherche « Fluenta » dans index.html : le logo, le titre, les
intertitres et le pied de page. Aucune classe CSS ne contient la marque — un
rechercher-remplacer ne peut rien casser. Le logo est un SVG de trois formes,
repris dans assets/img/favicon.svg.
Les tailles
L’échelle typographique est déclarée une fois, puis redéclarée à chaque point
de rupture (991 et 767 px). Un titre ne porte donc jamais sa propre media
query : change --h1-size et toute la page suit — 72 px sur grand
écran, puis 50 et 48 px en descendant. Les valeurs sont celles relevées sur
l’original à 1440, 991, 767 et 479 px.
Les neuf effets, et comment ils sont faits
Ils n’ont pas été regardés, ils ont été lus : un export Webflow conserve tout
son moteur d’animation dans un store JavaScript, accessible par
Webflow.require('ix2').store.getState().ixData. 239 événements
en sont sortis — l’outil en crée un par élément de collection — qui se
dédupliquent en 33 effets distincts, dont la moitié appartenait à d’autres
pages du gabarit. Neuf jouent sur celle-ci.
| Effet | Réglages d’origine | Comment |
|---|---|---|
| Titres qui montent (26 blocs) | opacité + y 16 px, 1000 ms, cubic-bezier(.23,1,.32,1) | [data-reveal] + IntersectionObserver |
| Visuels qui montent | idem, y 32 px | idem, à une classe près |
| Héros qui rétrécit | scale 1 à 40 % de la course, 0,9 à 60 % | panneau collant sur une piste de 200 vh ; la position de défilement écrit --hero-scale |
| Boutons qui se lèvent | y 0 → −4 px, 250 ms | idem, sous @media (hover: hover) |
| Cartes qui grossissent | scale 1 → 1,02, 250 ms | idem |
| Bandeau de logos | x 0 → −100 %, 40 000 ms, linéaire | liste écrite deux fois, translateX(-50%) sur 40 s |
| Menus déroulants | 500 ms / 250 ms | CSS pur :hover + :focus-within, deux délais : 80 ms à l’ouverture, 220 ms à la fermeture |
| Panneau mobile | 500 ms | ligne de grille 0fr → 1fr, 320 ms — s’anime jusqu’à sa propre hauteur |
| Vignettes clients | absent de l’original | ajouté : scale(1.04) sur 400 ms, pour que ces trois cartes répondent comme les autres |
Ce qu’il faut savoir
Aucune requête externe, aucune étape de build. On ouvre
index.html dans un navigateur et ça marche. Polices
auto-hébergées, photographies locales, aucun CDN, aucun traceur.
Sans JavaScript, rien n’est caché. L’état masqué des
apparitions s’écrit .js [data-reveal], et
enhance.js est la seule chose qui pose cette classe. Vérifié
script coupé : les 9 titres sur 9 restent visibles, les 26 blocs animés sur
26 aussi, et les menus déroulants s’ouvrent quand même — ils sont en CSS.
Le seuil d’apparition est à 15 % du bas de l’écran, et non à 20 % de l’élément comme dans l’original. La marge est mesurée sur l’écran et non sur l’élément — sinon le héros, plus haut que l’écran, resterait caché pour toujours. Un filet révèle ce qui reste quand on atteint le bas de la page.
Le héros colle, il ne défile pas. Une piste de 200 vh
contient un panneau de 100 vh épinglé en haut : la page défile d’un écran
entier « à travers » un héros immobile avant de passer la main. C’est aussi
pour cela que la racine est en overflow-x: clip et non
hidden — cette dernière ferait de la racine un conteneur de
défilement et décollerait le panneau.
Sous une politique de sécurité stricte
(script-src 'self'; style-src 'self') : zéro violation, vérifié
en servant le dossier avec l’en-tête réel. Aucun style en ligne, aucun script
en ligne, aucun onclick.
Aucun débordement horizontal à 390, 1440 et 2560 px, au
chargement comme après défilement complet. Accessibilité : lien d’évitement,
aria-expanded tenu à jour sur les trois menus et le bouton
mobile, un <dialog> natif pour le tableau de bord agrandi,
un focus visible unique, et prefers-reduced-motion qui remet
aussi les délais à zéro.
Ce qui n’est pas parfait
Les deux vidéos de fond ont disparu. Elles pesaient 6,4 Mo à elles deux pour un décor fixe, et montraient une personne au visage reconnaissable. Une photographie générée au même cadrage les remplace — 53 Ko. Le mouvement en moins est réel ; le rapport poids/apport ne le justifiait pas.
La section « Demo » ne montre plus de vidéo. L’original
ouvrait une lightbox sur une visite guidée du produit ; sans vidéo à y
mettre, le titre aurait menti. Le bloc devient « Take a closer look at the
dashboard » et le bouton agrandit la maquette dans un
<dialog>. La structure est conservée.
Le site d’origine était multi-pages — produits, tarifs, à propos, presse, contact. Tout est ramené à des ancres de la page unique plutôt que de laisser des liens vers des 404. Deux entrées de menu n’ont pas de section propre — « Pricing » et « About us » — et pointent vers la plus proche.
La page fait 7 252 px contre 7 288 px pour la référence (−0,5 %) à 1440 px, et 10 154 px contre 9 811 px à 390 px (+3,5 %), les deux mesurés dans une fenêtre de même hauteur — le héros fait 200 vh, une fenêtre plus courte lui en retire le double. Section par section à 1440 px, quatre des huit tombent au pixel près et aucune ne s’écarte de plus de 3,2 %. Le plus grand écart restant est la section produits à 991 px (−13,9 %), où la référence empile des images de rapport fixe. Rien ne se chevauche.
Sur mobile, le tableau de bord ne se réduit pas en dessous de 600 px : il défile latéralement dans son cadre. Un tableau à six colonnes compressé à 350 px n’est plus un tableau.
Les avatars sont des monogrammes, pas des portraits. Une image générée ne doit pas porter le visage reconnaissable d’une personne réelle, et deux lettres dans un carré coloré font le même travail pour rien.
Le formulaire d’inscription n’envoie rien. Il vérifie l’adresse et le dit franchement. Branche-le sur ton propre service.
Prends-le, ouvre-le, casse-le.
Fluenta est gratuit. La bibliothèque complète — les autres templates et les composants — vient avec l’abonnement, à côté de la formation.
Accès immédiat · Sans engagement · Résiliable en un clic