
The dinosaur-bitten logo
Intro, SVG, Text
NewFree
A three-letter acronym in the minimal style: one after the other the capitals open, the rest of the word slides out of a red slit on their right and shoves the next word, which follows on a spring. Once the full name has been read, the words slide back in and the acronym returns.
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 acronym that spells itself out</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/anybody@5.3.0/wdth.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<main class="stage" data-stage>
<!-- one line on a hairline: the script builds a word for every name in WORDS, the initial in front and the rest
of the word folded away behind it, in a slot that opens to its right -->
<div class="line" data-line aria-hidden="true">
<i class="rule" data-rule></i>
</div>
<h1 class="sr-only" data-name>Half Open Window</h1>
</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.
15 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 acronym that spells itself out” from Animorio and fit it into my siteFor every word in WORDS the script builds a block of three pieces on top of each other: the capital, a slit (a span with overflow: hidden, zero wide at rest) and inside the slit the rest of the word, pinned to its right edge. When the slit widens, the word comes out from behind the capital like a tape measure from its case: the last letters show first. The red slit is a two-pixel line on the edge, which rises when the word moves and drops when it is still.
The typeface is Anybody, variable on the wdth axis (50 to 150) and the wght axis (100 to 900). Every letter has a number k from 0 to 1: at 0 it is SQUEEZE wide and thin, at 1 it is 100 wide and weighs WORD_WEIGHT. The letters reach 1 from the last to the first, on a damped spring written as an easing function (SPRING sets the damping, and the spring ends exactly on 1), so they pass their size by a whisker and come back. The capital moves on the wdth axis too: it squeezes by 18 when the word sets off and widens by 12 when it shuts.
In a function on the GSAP ticker the script first writes the axes of every letter, then reads the real widths of the capital and of the rest of the word (getBoundingClientRect), then writes the positions: so the page lays out once per frame. The widths read have to be divided by the zoom of the line and, if the word is leaning, reduced by tan(angle) times the height of the letter.
The positions are worked out from the start of the line: the first word stands still, every other one follows the end of the one before plus a space (tight between capitals, normal between whole words) on a real spring, simulated in four steps per frame. If it gets closer than 0.06 em it is shoved and takes the speed of the word pushing it, then the spring brings it to its place one pixel too far. How far it lags also sets how much it leans (skewX from the baseline). Only at the end is the whole line moved to stay in the middle, and the zoom makes it smaller if it does not fit.
A GSAP timeline with repeat: -1 moves only numbers: the line, the ticks, the capitals rising (cut at the baseline by a clip-path), every word opening STAGGER seconds after the one before, HOLD seconds with the full name, the closing from the right, the capitals sinking. SPEED is the timeline's timeScale and also multiplies the spring's time, so everything speeds up together.
| Name | File | Default | What it changes |
|---|---|---|---|
WORDS | script.js | ['Half', 'Open', 'Window'] | The name, word by word: the first letters make the acronym. Two to four words. |
INITIAL_WEIGHT | script.js | 800 | The weight of the capitals, from 100 (a hairline) to 900 (black). |
WORD_WEIGHT | script.js | 330 | The weight the rest of every word settles at. The further it is from the capitals’ weight, the more the acronym shows inside the name. |
SQUEEZE | script.js | 50 | How narrow the letters are as they come out of the slit, on the wdth axis: 50 is the narrowest the typeface goes, 100 its normal width. |
SPRING | script.js | 0.5 | How springy it all is: 0 slides and stops dead, 1 shoves hard and wobbles before it settles. |
STAGGER | script.js | 0.55 | How many seconds pass between one word opening and the next. |
HOLD | script.js | 2.2 | How many seconds the full name stays before it folds back into the acronym. |
SPEED | script.js | 1 | The speed of the whole animation, springs included: 2 is twice as fast, 0.5 half as fast. |
For the brand of anyone who goes by an acronym: an agency, an architecture or design studio, a law firm, a festival, a foundation. It works as the logo intro when the site opens, at the top of an «about» page or at the bottom, next to the contacts, where it explains in a few seconds what the letters stand for.
The same animation: the acronym is bigger compared with the screen and the line pulls back further to fit the full name on one line, edge to edge minus the margins.
Nothing slides out, widens or pushes: the acronym fades in already in place, fades out, the full name appears in its place already set, then the acronym again. The line and the ticks are already there.
GSAP 3.15.0, Anybody (font variabile, assi wdth e wght) 5.3.0.
Compressed with gzip, the three demo files weigh 7.2 KB; the libraries: GSAP 28 KB.
Tested on 15 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.