Ce que c’est
Un site d’agence de voyage, complet : accueil en photo avec carte vidéo, présentation chiffrée, destinations épinglées au défilement, formules, services dépliables, expériences, arguments en boucle, galerie en carrousel, avis, FAQ, formulaire, appel à l’action, pied de page. Une seule page, un seul fichier HTML.
Le design reprend celui d’un template commercial dont seules les
photos, la vidéo et les textes ont été conservés. Tout
le code a été réécrit : l’original livrait 152 Ko de CSS minifié,
jQuery, trois bundles de 700 Ko, GSAP avec ScrollTrigger et SplitText,
un moteur de défilement fluide, un widget de démarchage du vendeur, et
un bloc de style qui posait visibility: hidden !important
sur soixante classes tant que le moteur d’animation n’avait pas
démarré. Illisible, donc inutile pour apprendre.
C’est le point important : 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 — six lignes
Tout en haut de assets/css/style.css :
--color-accent: #2739ff; /* boutons, numéros de l’index, icônes */
--color-accent-strong: #1c2ad6; /* le même bleu, un cran plus foncé (survol) */
--color-accent-light: #7f8cff; /* le même bleu éclairci, sur les panneaux sombres */
--color-page: #ecf2f6; /* fond de page */
--color-deep: #020e26; /* bande des formules, pied de page */
--color-sky: #b0dffb; /* la bande bleu pâle « pourquoi nous » */
Une chose à comprendre avant de toucher au reste : il y a trois bleus, pas un. L’accent plein passe largement sur le blanc (6,74:1) et sur le fond de page (5,97:1), mais il tombe à 2,85:1 sur le bleu nuit du pied de page — sous le seuil AA. C’est pour ça que le lien de courriel et le message du formulaire utilisent la version éclaircie (6,49:1). Si tu changes l’accent, change les trois.
Le nom
Cherche « Nomadra » dans index.html. Aucune classe CSS ne
contient la marque : un rechercher-remplacer ne peut rien casser. Une
seule précaution — le mot géant de l’accueil est dimensionné en
vw pour occuper la largeur de l’écran : sept lettres à
24vw remplissent 1440 px, un nom plus long demande une
valeur plus petite.
Les tailles
L’échelle typographique est déclarée une fois, puis redéclarée à chaque
point de rupture. Un titre n’a donc jamais sa propre media query : tu
changes --h2-size et toute la page suit.
Les dix-neuf effets, et comment ils sont faits
Tous relevés dans les données du moteur d’animation de l’original — 33 interactions et 32 timelines, extraites du bundle du site puis remesurées au navigateur, pas à l’œil — plus le carrousel de la galerie, qui était un script écrit à la main dans la page.
| Effet | Où | Comment |
|---|---|---|
| Entrée de l’accueil | mot géant, titre, bouton, carte | quatre départs décalés de 0 à 0,96 s, mêmes durées que l’original |
| Titre lettre par lettre | 7 sections | découpe au script, 0,7 s, étalement total 0,5 s |
| Paragraphe ligne par ligne | 7 sections | lignes regroupées par position, chacune dans une bande qui coupe |
| Texte qui s’éclaire au défilement | présentation | lettres de 20 % à 100 % d’opacité, pilotées par la position de la page |
| Rideau sur les photos | présentation | clip-path de 101 % à 0, la seconde photo à 0,59 s |
| Compteurs à rouleau | 3 cartes | pile 0-9 puis le chiffre visé, 2 s, 80 ms de décalage par colonne |
| Blocs qui montent | partout | IntersectionObserver, déclenchement à 15 % du bas de l’écran |
| Destinations épinglées | section 3 | bloc collant, une seule variable de progression écrite au défilement |
| Deux boucles infinies | destinations mobiles, arguments | bande écrite deux fois, translation de la moitié de sa hauteur |
| Survol des boutons et des liens | partout | deux copies du libellé dans une boîte qui coupe, la seconde remplace la première |
| Survol des cartes | destinations, formules, expériences | photo qui grandit ou s’élargit, flèche qui sort par la droite |
| Lignes de service | 4 lignes | <details> natif, hauteur animée, ouverture au survol et au clavier |
| Carrousel coverflow | galerie | positions et échelles écrites en variables CSS ; sans JS, une bande que l’on balaye |
| Accordéons | 6 questions | <details> natif, hauteur animée par l’API Web Animations |
| Logo du pied | pied de page | lettres masquées qui remontent, 1 s, étalement 0,5 s |
Ce qu’il faut savoir
- Aucune requête externe. 44 requêtes au chargement, toutes locales. L’original chargeait jQuery, trois bundles Webflow, GSAP, Lenis et deux polices Google depuis cinq domaines.
-
L’apparition au scroll ne peut pas masquer le contenu.
L’état caché n’existe que si le JavaScript a tourné. Vérifié en
retirant les balises
<script>: 25 titres sur 25 restent visibles, les 3 rideaux sont levés, les 10 accordéons s’ouvrent, la galerie reste une bande de 7 photos que l’on balaye. -
Zéro style et zéro script en ligne. Le template
respecte la politique de sécurité stricte du site — celle-là même que
le
visibility: hiddende l’original rendait impossible à lever. - Le déclencheur est à 15 % du bas de l’écran, pas au premier pixel comme dans l’original, et il est mesuré sur l’écran et non sur l’élément : un seuil en pourcentage de l’élément laisserait invisible à jamais tout bloc plus haut que la fenêtre.
- La vidéo n’est demandée qu’au clic. L’original sert un fichier de 1280 × 720 dans une carte de 384 × 303 et le lance au chargement ; ici la carte affiche une image de 13 Ko jusqu’à ce qu’on appuie sur lecture.
-
Accessibilité : lien d’évitement, état du menu
annoncé, position des deux carrousels annoncée, FAQ et services
natifs donc utilisables au clavier, focus visible, texte découpé remis
en
aria-labelpour ne pas être épelé, animations coupées si le système le demande. - Responsive vérifié à 390, 1440 et 2560 px, au chargement comme après défilement complet, sans débordement horizontal.
Ce qui n’est pas parfait
Autant le dire ici plutôt que te le laisser découvrir.
- La page fait 0,1 % de moins que la référence à 1440 px (14 724 px contre 14 732), +1,1 % à 991, +1,2 % à 767 et +5,8 % à 479 px. Section par section l’écart va de −9 % à +7 % : mes textes ne font pas exactement la même longueur. Rien ne se chevauche.
- Le mot géant dit « Nomadra », pas « Travelo ». L’original affiche une marque en grand et une autre dans la barre de navigation. Les deux mots font sept lettres, la mise en page ne bouge pas.
- Le carrousel d’arguments tourne en 20 s, pas en 10. À la vitesse de l’original, une carte de trois lignes traverse l’écran avant d’être lue.
- Sept photos distinctes dans la galerie, contre quatre. L’original répète la même image sur quatre des sept fiches. Deux des sept ne sont fournies qu’en 279 × 286 et 333 × 380 et sont affichées à 340 × 432 : elles sont plus douces que les autres.
- Les trois avis ont trois textes différents, et deux titres de section ont été réécrits : l’original répétait la même citation trois fois et le même titre sur deux sections.
-
Le formulaire n’envoie rien. Il n’y a pas de serveur
dans un template : l’envoi est intercepté et répond sur place. Fais
pointer
actionvers ton propre point d’envoi. - Les photos et la vidéo viennent du template d’origine, plusieurs sont visiblement produites par IA et le nom du fichier vidéo est celui d’une banque payante. Le code est à toi ; pour les visuels, vérifie la licence ou remplace-les. Les polices, elles, sont libres de redistribution.
Prends-le, ouvre-le, casse-le.
Nomadra est gratuit. La bibliothèque complète — les autres templates et les composants — est incluse dans l’abonnement, avec la formation.
Accès immédiat · Sans engagement · Annulation en 1 clic