AI CSS Animations

Tarot Card Reveal

An original tarot card, The Star, engraves itself on plum velvet: border rules, a great star, a pool, a pouring jug and a tree draw in fine line, hatching builds the tone, then gold foil stamps in and catches the light as the card tilts.

Written and rendered by AI CSS Animations Oct 16, 2026

Type
prompt
Made with
Claude Opus 5.5 in Claude Code
Built in
SVG
Topics
Line art
What Claude made from the prompt below in Claude Code: one HTML file rendered frame by frame to video. Silent preview.

About this style

Tarot cards were first made in 15th-century northern Italy for a trick-taking card game, and their use for divination grew in France from the late 18th century. The 22 trump cards of the major arcana each carry a number and an emblem; The Star is XVII, following The Tower, and is traditionally read as hope and renewal, often pictured as a great star over water. Early decks were printed from woodcuts or engraved plates, and fine line art with metallic foil is now a common look for decks, book covers and packaging.

The prompt

Make a 10-second reveal of an original tarot card, The Star: it engraves itself in fine line art, then gold foil catches the light as the card tilts.

<inputs>
Deck: The Sablewood Tarot. Card: XVII · THE STAR. Keywords: Hope · Renewal · Calm. Reading: "After the storm, a clear sky." Duration: 10s. If I don't give you something, use the default and don't ask.
</inputs>

<direction>
Stage: deep plum-black velvet #1A1220 with fine seeded cloth noise (2%) and a warm pool of light #3A2630 behind the card, as from a lamp off-frame.
Card: 520×892, corner radius 22px, centered at (760, 540): ivory stock #F1E8D5 with faint fiber texture and a soft shadow (0 24px 50px rgba(0,0,0,0.55)). Ink #1B1C2E: hatching 0.4–1.2px, key outlines 2.2px.
Design, original and without a figure: a great eight-pointed star high in the sky (radius 120), seven small eight-pointed stars around it (radius 18–28), a horizon of low hills, a still pool in the foreground, a stone jug resting tilted on a rock at the pool's edge pouring a stream into the water with ripple rings, and a slender tree at right with a small bird on a branch. Frame: double rules inset 18px and 26px, a top cartouche with XVII, a bottom cartouche with THE STAR.
Engraving: shade with lines only, never fills. The sky is ruled with horizontal lines at 5px pitch that thin toward the star (1.2 → 0.4px), so it darkens toward the edges; hills take contour hatching that follows their curve; the pool takes wavy horizontal lines broken by the ripples; the jug takes curved hatching along its form, cross-hatched on its shadow side; the great star gets fine rays from its center.
Foil: the great star, the seven small stars, the inner border rule, both cartouche frames, the numeral and the title. Foil is an SVG linear gradient (#6A4C1B → #B88E3E → #F5E2A0 → #C39845 → #74561F) whose offsets shift with the card's tilt, so one bright band sweeps across as the card turns; a 1px dark edge on the upper side of each foil shape suggests a pressed stamp. Foil covers the ink beneath it.
Type: IM Fell English SC for THE STAR (44px, tracking 0.18em) and XVII (36px). Text column at x 1180–1780: the deck in IM Fell English SC, 30px, tracking 0.16em, #D9C8A3; the card name in IM Fell English italic, 64px, #F1E8D5; keywords in IM Fell English SC, 28px; the reading in IM Fell English italic, 30px.
Motion is slow and ceremonial. Lines draw by stroke-dashoffset in engraving order: outlines first (0.6–1.0s each, cubic-bezier(0.45, 0, 0.25, 1)), then hatching in sweeps of 150–300 lines, 4ms apart along the sweep. The card tilts through a CSS 3D transform on its wrapper (perspective 1800px) set from seek: rotateY 0 → 9° and rotateX 0 → −4°, then back to a 3° rest, on cubic-bezier(0.45, 0, 0.55, 1).
The real thing is an engraver's hierarchy of line, tone built from spacing and weight, with foil used sparingly; the cheap version is a glowing clip-art star on a purple gradient.
Banned: human figures or faces, real decks' artwork or names, fills standing in for hatching (foil aside), glow, lens flares, glitter or sparkle particles, a saturated gradient backdrop, more than one foil sweep, anything flashing more than 3 times per second.
</direction>

<structure>
0.0–0.8s: velvet and lamplight; a blank card rises 40px into place as its shadow tightens.
0.8–1.6s: the border rules draw from top center down both sides; the cartouche outlines follow.
1.6–3.4s: outlines engrave: the great star from its center outward, the small stars, the hills, the pool, rock and jug, the tree, then the bird.
3.4–5.6s: hatching: sky rules sweep top to bottom, then the hills, the water lines left to right, the jug's hatching and cross-hatching, the stream and ripples.
5.6–6.2s: the numeral and title engrave letter by letter.
6.2–6.8s: foil stamps in: each foil area floods from its center outward in 0.3s, 40ms apart.
6.8–8.2s: the card tilts and the foil's bright band sweeps once across all the gold, then the card eases to rest.
7.2–8.4s: at right, deck, card name, keywords and reading rise 12px and fade in, 0.2s apart.
8.4–10.0s: hold, perfectly still.
For other durations, scale every timestamp proportionally; keep the foil sweep at 1.2s or longer.
</structure>

<build>
One self-contained index.html, CSS and JS inline. Google Fonts via <link> are fine; await document.fonts.load() for each face before defining window.seek. No other libraries (no three.js: this style is flat). Draw the card in inline SVG inside a wrapper whose CSS 3D transform is set from seek (a computed transform, not a transition); text is HTML beside it. The stage is 1920×1080 (16:9), scaled to fit the window. Design for 60fps. window.seek(t), t in seconds, must compute every visual from t alone, clamping past the end to the last frame: no CSS transitions or animations, no setTimeout or setInterval, no state carried between frames, and randomness only from a seeded PRNG. Without ?render in the URL, drive seek from requestAnimationFrame so it plays in a browser (loop after a 1s end hold); with ?render, don't start that loop.
</build>

<check>
Before showing me, step through one frame per second: screenshot each and look at it. Fix overlaps, clipped or cramped text, accidental edge collisions, and anything off-style or Banned. Check hatching reads as tone at 1280×720 without moiré, the jug, tree and bird read clearly, nothing could be taken for a figure, the foil sweep crosses every foil area once, and the text column stays clear of the card. Confirm seek(duration) and seek(duration + 1) match, so the final frame holds.
</check>

Ours, and free to use under CC0: copy it, change it, ship it. No credit needed.

Similar prompts

More like this on the motion design inspiration board: Line art animation inspiration