
The wrecking-ball logo
Intro, Physics, SVG, Text
NewFree
A minimal-style text animation with real physics: the letters of a word, each in a hairline box, tumble down a thin staircase edge over edge, fly a little, land on a corner and carry on; on the floor each one stops in its place, and inside every box the letter swings like a pendulum and rights itself, so the word can be read.
A folder that runs on its own: index.html, style.css, script.js and the libraries from a CDN. The React and Vue tabs hold the same demo as a ready component, which switches its animations off when it leaves the page.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>The word that tumbles down the stairs</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/archivo@5.3.0/wdth.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<main class="stage" data-stage>
<header class="top">
<span class="brand">Landing</span>
<span class="meta">Design studio</span>
</header>
<!-- the stairs, the floor and the impact marks: one SVG drawn by the script -->
<svg class="scene" data-scene aria-hidden="true">
<path class="stairs" data-stairs d="" />
<g data-ticks></g>
<g data-marks></g>
</svg>
<!-- the boxes: each one a hairline square with its letter hanging inside -->
<div class="boxes" data-boxes aria-hidden="true"></div>
<h1 class="sr-only" data-word>Landing</h1>
<div class="foot">
<p class="line" data-line>We take things one step at a time.</p>
<button class="replay" type="button" data-replay data-autoclic>Replay</button>
</div>
</main>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.15.0/dist/gsap.min.js"></script>
<script src="script.js"></script>
</body>
</html>Change values, colours and text with the controls and watch the animation respond live. Or write in the code yourself. Then download the folder with your changes.
19 values to change
With the Animorio connector, Claude Code takes it from here, guide included, and fits it into your project. Paste this request:
Take “The word that tumbles down the stairs” from Animorio and fit it into my siteEverything is worked out in units of one box (a box is 1 wide): the staircase is steps 1 wide and RISER tall, and the floor starts after the last step. Gravity is in units per second squared, so the motion is the same on every screen and is drawn by multiplying by the box size in pixels. One function says how high the ground is under any x, another where the surface at a given height ends (the edge of a step; the floor never ends).
A moving box always turns on a point of the ground: one of its corners, or the edge of the step under its side. The equation is that of a pivoted rigid body: angular acceleration equals gravity times the distance from the pivot times the sine of the angle, over the moment of inertia about the pivot (1/6 for the square plus the distance squared). The centre comes from the pivot with sine and cosine, and the box turns along with it.
On every step the corners moving down are checked: if one touches the ground at the same level as the pivot, the box is flat and its angle is rounded to the quarter turn; if it touches lower, on a step below, that corner becomes the new pivot. Every impact eats part of the spin (BOUNCE). A box that lands with more than half of it over the edge tips straight off.
Before starting, one box is run down on its own, out of sight, to find where it first touches the floor: that point is the place of the first letter, and every somersault on the floor moves it by exactly one box. On the floor the spin never drops below what it takes to get over the corner until the box has arrived; there it is given a little less on purpose: it tries one more somersault and rocks back. The last letter, which goes farthest, leaves first.
The letter in each box has its own angle in the world and its own speed: a gravity spring brings it upright, a friction drags it along with the box’s turn and an air term damps it. It is drawn rotated by the difference between its angle and the box’s. Weight and width are axes of the variable font: light and narrow while it tumbles, full and wide in its place; hard knocks squeeze it for a moment.
| Name | File | Default | What it changes |
|---|---|---|---|
WORD | script.js | 'Landing' | The word: one box per letter (up to 9 letters). |
STEPS | script.js | 4 | How many steps the staircase has (2 to 6; on a narrow screen it uses fewer). |
RISER | script.js | 0.55 | How tall a step is, as a fraction of a box (0.3 low steps, 0.9 tall ones). |
GRAVITY | script.js | 1 | How heavy the world is: 0.6 slow and floaty, 1.8 quick and heavy. |
BOUNCE | script.js | 0.55 | How much of the spin a box keeps after every impact (0.3 dead, 0.75 lively). |
SWING | script.js | 1 | How freely the letters swing inside their boxes (0.4 stiff, 2 loose). |
LIGHT | script.js | 280 | The weight of the letters while they tumble (100 to 900). |
HEAVY | script.js | 700 | The weight they reach once in place (100 to 900). |
HOLD | script.js | 3 | Seconds the finished word stays before it all starts again. |
For the opening of a design studio, an architecture practice or an agency that wants a headline with a little play: the name coming down the stairs and lining up, with the strapline under it. It also works as a brand intro or for an about page that talks about taking things one step at a time.
The same physics with the sizes adapted: the boxes are sized on both the width and the height of the screen, and on a narrow screen the staircase has fewer steps, so the letters stay readable. A tap on a letter at rest makes it rock.
Nothing tumbles: the letters fade in already lined up on the floor, one after another, then the strapline.
GSAP 3.15.0, Archivo (font variabile) 5.3.0.
Compressed with gzip, the three demo files weigh 8.1 KB; the libraries: GSAP 28 KB.
Tested on 23 October 2026
Use it in your own projects and in your clients’ projects. Do not resell it or redistribute it as is. GSAP stays under its own Standard license. Full license.
With your account’s email and password.
or with your email
You’re signed in as .
With your account, you can download the zip of every animation and every pack, for free.