Broken Glass
Le cadre se fissure en 20 éclats SVG disposés autour du périmètre, avec quelques lignes de fracture qui filent vers le centre.
Neuf animations d'entrée de section, chacune vivant dans section-anim.js sous la même interface — play, reset, resize, destroy — et n'utilisant que gsap déjà booté par portfolio/motion.js. La dixième, Orbite, est différente : c'est le carrefour du site (voir /), isolé ici sous la même mécanique d'écran unique.
Le cadre se fissure en 20 éclats SVG disposés autour du périmètre, avec quelques lignes de fracture qui filent vers le centre.
Un cadre technique se dessine — bords tiretés, coins en équerre, rampe de graduations — puis un balayage lumineux traverse le bloc de haut en bas.
Une tache d'encre organique grandit depuis un coin et dévoile le contenu derrière elle, contour flou plutôt que net.
Le cadre se découpe en 7 tranches horizontales qui rentrent en place indépendamment, pendant que deux doublures colorées se désalignent puis se rejoignent.
Un volume filaire (12 arêtes, perspective CSS) s'aplatit progressivement jusqu'à se confondre avec le plan du cadre.
Des particules dispersées convergent vers des points échantillonnés sur le contenu et le recomposent, comme un nuage qui se condense en texte.
Le contenu est cloné en 8 bandes découpées en dents de scie, dispersées puis réalignées jusqu'à ne plus faire qu'un bloc net.
Une bande de verre dépoli (backdrop-filter) balaye le cadre en biais pendant que le contenu se révèle derrière elle par un clip-path progressif.
Une maille de triangles en chevrons se dévoile depuis le centre vers les bords, chaque triangle rejoignant sa place avec un délai qui dépend de sa distance à l'axe.
Le carrefour du site (voir '/'), isolé ici pour l'étudier seul : deux nœuds tournent sur une ellipse en perspective, celui que le pointeur approche passe devant et ouvre sa fiche.
Le contour se recolle depuis des fragments dispersés, puis deux fissures se propagent vers l'intérieur.
Vingt fragments SVG posés le long du périmètre, ramenés à leur place avec un décalage pseudo-aléatoire déterministe : le même ordre à chaque lecture.
Le cadre se déclare arête par arête, se mesure, puis autorise le texte à s'afficher.
Arêtes tiretées, équerres d'angle, graduations et un balayage qui remonte : le relevé s'écrit avant le contenu.
Une nappe d'encre couvre la scène et s'ouvre depuis un point bas, bord irrégulier et liseré vivant.
Le canvas est gommé en destination-out ; le bord est flouté par ctx.filter — sans lui, sur Safari ancien, l'ouverture reste nette.
Sept tranches décalées, un dédoublement chromatique très bref, puis un réalignement sec.
Le plus court de la série : deux salves de décalage, deux calques fantômes teintés, retour à zéro.
Un volume filaire se construit en perspective, puis s'aplatit sur le cadre de la section.
Douze arêtes en CSS 3D, aucune bibliothèque de rendu : la perspective retombe à plat sur le contour.
Les particules convergent sur deux cibles : le contour, et les glyphes du titre échantillonnés.
Le titre est rasterisé hors écran puis relu pixel par pixel : changer le texte change le nuage, et un titre très long fait beaucoup de particules.
La section entre déjà fragmentée : huit bandes obliques se réalignent sur leur propre contenu.
Huit clones du contenu, chacun clippé en bande ; une fois alignés, le vrai contenu reprend la main.
Une dalle de verre traverse le cadre ; tout ce qu'elle dépasse est révélé derrière elle.
backdrop-filter pour la matière, clip-path pour la révélation : la bande ne masque rien, elle ouvre.
Une maille de triangles suspendue au bord haut : nulle à l'apex central, elle descend vers le milieu de l'écran sur les deux flancs.
Tuilage triangulaire posé en SVG, découpé par un masque en chevron dont la profondeur suit la distance au centre. La densité tombe le long de la diagonale : les triangles se raréfient au lieu de s'arrêter net.