← La bibliothèque

Tokora Studio

Landing page pour un outil SaaS, avec sections épinglées au scroll

Template complet Gratuit Ouvrir la démo
Aperçu du template Tokora Studio : titre « Build design systems, websites, and products. Fast. Free. » au centre, dix logos d’outils posés sur quatre anneaux concentriques, rail de navigation à gauche.

Ce que c’est

La page d’accueil d’un outil qui fabrique des design systems : échelle typographique, palettes, composants, puis export vers React, Vue, Figma et les agents IA. Douze blocs sur une seule page — accueil, six cartes produit, un parcours en six étapes, une bibliothèque de composants, un schéma de connexion, cinq cas d’usage, bénéfices, tarifs, FAQ, appel à l’action, pied de page.

C’est le template le plus « produit » de la bibliothèque, et le plus animé. Quatre sections restent épinglées à l’écran pendant qu’on défile : l’accueil, le parcours, la bibliothèque et le schéma de connexion. Une cinquième tire un carrousel horizontal avec le scroll vertical.

L’original est une application React d’un bundle de 14 Mo, plus 834 Ko de CSS. Tout ce code est parti. Ce qui reste, ce sont les images, la composition, les textes — et les réglages d’animation, qui ont été lus dans la feuille de style d’origine plutôt qu’estimés à l’œil.

Ce que tu changes en premier

Les couleurs — cinq lignes, mais trois bleus

Tout en haut de assets/css/style.css :

--blue:        #0a4fdf;  /* boutons pleins, liens, accents — 5,99:1 sur blanc */
--blue-hover:  #134cc8;  /* survol — 6,87:1 */
--blue-deep:   #0b3a9d;  /* texte bleu sur fond gris — 9,35:1 */
--blue-onblue: #ffffff;  /* texte du panneau bleu — 6,16:1 sur --blue */
--ink:         #151515;  /* titres */
--body:        #242424;  /* texte courant */

Il y a trois bleus, pas un. Le bleu plein passe le contraste sur le blanc, mais il disparaît dès qu’on le pose sur le grand panneau bleu de la section « composants » — d’où la quatrième nuance. Si tu changes --blue, change les quatre, et revérifie les quatre rapports.

Le mode sombre

C’est un deuxième jeu des mêmes jetons, trente lignes plus bas. Rien d’autre n’est à toucher : aucune règle de mise en page n’est dupliquée. La bascule est dans le rail, mémorisée, et prefers-color-scheme décide de la première visite.

Le rythme des sections épinglées

Une section épinglée, c’est une hauteur et rien d’autre : --progress va de 0 à 1 sur hauteur moins une fenêtre. L’accueil fait 175dvh, le parcours 600dvh, la bibliothèque 260dvh, le schéma 520dvh. Raccourcir accélère l’animation, allonger la ralentit.

Le nom

Cherche « Tokora » dans index.html. Aucune classe CSS ne contient la marque : un rechercher-remplacer ne peut rien casser.

Les dix-huit effets, et comment ils sont faits

Tous relevés dans la feuille de style d’origine — 834 Ko, dont 28 blocs @keyframes — puis mesurés au navigateur. La courbe signature d’Tokora est cubic-bezier(.22, 1, .36, 1), sa durée de référence 0,92 s.

EffetComment
Apparition au scroll14 blocsIntersectionObserver, déclenchement à 15 % du bas de l’écran, filet en fin de page
Dérive de dix logosaccueilplacement polaire (rayon, angle), l’angle avance de 8° pendant que la page reste épinglée
Logo qui devient jetonaccueildeux opacités en clamp(), un point de bascule différent par logo
Bulle explicativeaccueilsurvol, focus — et une visite guidée qui en ouvre une toutes les 2,6 s
Entrée des six scènescartes produit0,92 s, montée de 80 px avec un dépassement de 1,5 % à 70 %
Curseur qui clique2 scènestrajet de 3,6 s en boucle, anneau de clic qui grandit et s’efface
Liste de policesscène typosteps(1) sur 9 s, quatre paliers
Curseur de saisiescène IA0,84 s step-end, plus trois points d’attente décalés de 0,15 s
Tuiles qui se retournentscène composants24 cercles, rotateY 0 → 90 → −90 → 0 en 0,56 s, décalés de 60 ms
Logos qui flottentscène stacks3,2 s en aller-retour, décalage index × 90 ms
Parcours en six étapessection épingléeun sixième du scroll par étape, barre d’outils fixe, panneau qui change en 0,28 s
Mot qui se retournetitre bibliothèquerotateX(±90°), perspective 600 px, quatre mots, 2,4 s
Trois bandeaux défilantsbibliothèquebande dupliquée par le script, vitesse en pixels par seconde — pas en durée fixe
Dossier qui se remplitschémasix pastilles, une coche, un fil pointillé et un éventail, tous pilotés par --progress
Piste horizontalecas d’usage5 255 px de translation commandés par le scroll vertical
AccordéonFAQ<details name> natif : un seul ouvert, et l’animation relancée à la main
Méga-menubarre du hautdeux délais — 90 ms à l’ouverture, 280 ms à la fermeture, le temps de traverser le vide
Vidéo au cliccas d’usagel’affiche est un bouton ; les 276 Ko ne partent que si on le presse

Ce qu’il faut savoir

  • Aucune requête externe. Vérifié aux trois largeurs : 0 requête hors du dossier. L’original en charge 15,2 Mo depuis deux domaines avant d’afficher son premier titre.
  • 426 Ko à la première visite. Les deux vidéos (0,5 Mo) ne partent qu’au clic, les quatre captures du méga-menu qu’à son ouverture.
  • Sans JavaScript, rien n’est caché. L’état masqué n’existe que sous html.js. Retire les deux balises <script> : les 32 titres restent visibles, les panneaux du parcours s’empilent, le carrousel se balaie, la FAQ s’ouvre.
  • Zéro style en ligne. Les dix positions polaires des logos de l’accueil, qui seraient naturellement des attributs style, sont dans la feuille de style — une règle par outil. C’est la politique de sécurité stricte du site qui l’impose, et c’est plus lisible.
  • IntersectionObserver, jamais animation-timeline. L’original utilise les deux ; le second n’existe que sur Chrome.
  • Accessibilité : lien d’évitement, états du méga-menu et du tiroir annoncés, position du carrousel en role="status", focus visible, décorations masquées aux lecteurs d’écran, et un prefers-reduced-motion qui remet aussi les délais à zéro.
  • 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 police n’est pas celle du site. L’original déclare Satoshi mais ne charge jamais le fichier : chaque visiteur voit sa police système. Le template sert Inter, la seule police que le site charge réellement, auto-hébergée. C’est la cause principale des écarts de hauteur.
  • Le défilement est celui du document. L’original fait défiler un conteneur interne sous une barre et un rail fixes. Ici la page défile normalement — même rendu, deux fois moins de code, et IntersectionObserver n’a plus besoin d’un conteneur racine.
  • Les six scènes animées sont des reconstructions. Le sélecteur de couleur, la liste de polices, le routeur d’IA sont redessinés en CSS : même composition, mêmes couleurs, même rythme, mais ce ne sont pas les composants React d’origine.
  • Les 24 pastilles de la bibliothèque partagent six pictogrammes au lieu d’en avoir 24 distincts. Ça se voit à la loupe, pas au défilement, et ça économise une vingtaine de fichiers.
  • Le site est multi-pages, le template ne l’est pas. Le rail, le méga-menu et le pied pointent vers des ancres de la page unique plutôt que vers des 404. « Sign in » mène aux tarifs.
  • L’adresse e-mail de la FAQ a été remplacée par info@example.com : un template recopié ne doit pas envoyer de courrier à quelqu’un de réel.
  • Les images, les vidéos et les logos viennent du site d’origine. Le code est à toi ; pour les visuels — et surtout pour les marques React, Vue, Figma, Claude, Codex, Cursor et Gemini — remplace-les par les tiens. La police, elle, est libre de redistribution.

Prends-le, ouvre-le, casse-le.

Tokora Studio 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