An airbrushed 1980s city pop album cover comes to life: a pastel sunset sprays in over a white villa, a rippling turquoise pool and swaying palms, a mint convertible glides in, a chrome script title appears, then the record slides out of its sleeve and an obi strip wraps on.
Written and rendered by AI CSS Animations Oct 19, 2026
City pop is a loose label for the polished Japanese pop of the late 1970s and 1980s, which blended soft rock, funk and jazz into songs about city nights, cars and seaside weekends. Its album covers often used airbrushed or flat-color illustrations of pools, palms, convertibles and white resort buildings at sunset, an image of leisure from Japan's boom years. In the late 2010s the music found a large new audience online, and its cover art became shorthand for 1980s nostalgia. Record labels, fashion brands and illustrators still borrow the look.
Make a 10-second 1980s Japanese city pop album cover that comes to life: an airbrushed pastel sunset over a pool, palms and a parked convertible, a chrome script title, then the record slides out of its sleeve. <inputs> If I don't give you something, use the default and don't ask. - Artist: Hamabe Club (fictional), in Japanese 浜辺クラブ. - Album: "Weekend Horizon", in Japanese 週末の水平線. - Label and catalog number: Nagisa Lane Records (fictional) · PLR-1984 - Obi copy: 夏の終わりの10曲 (ten songs for the end of summer) · ¥2,800 - Record label text: HAMABE CLUB · Weekend Horizon · SIDE A · 33⅓ RPM - Length: 10 seconds. </inputs> <direction> - Look: an airbrushed 1980s album cover: smooth sprayed gradients held inside crisp masked edges, colored shadows instead of grey, a clean resort world (a white villa, a turquoise pool, palms and a convertible) at sunset, and a chrome script title. The artwork is a square; the piece starts inside it and pulls back to the sleeve. - Palette: sky ultramarine-violet #3C3A9E at the top through lavender #8E80D8, orchid #E59AC8 and peach #FFB89A to butter #FFE3A3 at the horizon; sun coral #FF7A63 in a #FFD0B0 halo; sea #2D5DA8 to #4C86C4 with pink glints #FFC7D9; villa walls #F7F2EA, sunlit planes #FFF8EE, shadows lilac #B8A8DA deepening to #8E7CC4; pool #34CCD6 to #9FF2EE with ripple lines #E9FFFF; terrace tiles #F4C6BE with grout #E3A9A2; palm trunks #6A3F6E, fronds #3E2A5E with a coral rim #FF9C86 on the sunset side; the car mint #A7E8CF; chrome cream #FFFFFF to lavender #9C9AC9; tail lights #FF4E6A; the stage behind the sleeve deep violet #2B2350; sleeve paper #F3EEE4; vinyl #141218 with groove sheen #6E6A8E; record label peach #FFB89A with plum type #3B2459. No grey, and no black outside the vinyl. - Airbrush, the core of the style: every shape is a mask with a crisp, frisket-cut edge holding a smooth sprayed gradient. Add three airbrush signatures: a soft overspray haze 6–10px outside a few edges at 10%; fine seeded spatter grain (1px, 3%) over the gradients; and a hand-sprayed soft white streak along every curved surface (palm trunks, the car's flanks, the pool coping, the stair tower). No outlines: shapes separate by value and hue, and shadows are lilac and violet. - The artwork, in cover pixels (a 1080 square, origin at the top left), painted into layered offscreen canvases at 2×: - sky and sun: the gradient above; the sun's disc (radius 110) centered at x 520, sinking from y 420 to 450 across the piece so its lower edge ends on the horizon at y 560 (the sea paints over whatever has sunk), with a soft halo 2.5× its size; - the sea from y 560 to 640, with long horizontal pink glints under the sun, each a soft dash whose opacity drifts on its own 2–4 s sine; - a low white wall from y 640 to 700 with lilac shadow on its face, and in front of it a pale drive along the terrace's back edge (y 690–725); - the villa at the right, x 640–1040, y 300–700: stacked white boxes with a cantilevered upper floor, a cylindrical stair tower with a vertical slot window, deep ribbon windows in lilac shadow carrying a peach reflection band, a thin rooftop railing, and soft lilac palm-frond shadows moving across its sunlit wall; - the terrace from y 700 to 770 in pink tiles in perspective; the pool from y 770 to the bottom, turquoise deepening toward the near edge, with a pale coping, a chrome ladder with two curved rails at x 220, a peach ring float drifting slowly, a caustic net of bright thin closed curves (from the zero crossings of two drifting seeded noise fields) wobbling over its floor, and the villa and sky reflected in soft, wavering bands; - three palms: a tall foreground palm rising from the pool's right edge at (1000, 1080) to a crown at (880, 150), crossing in front of the villa, and two behind the villa with crowns at (780, 250) and (1050, 200), all kept clear of the title. Each crown has nine long fronds as tapered arcs whose leaflets are cut as a comb, sprayed from plum at the midrib to the coral rim on the sunset side; - the convertible, parked on the drive at x 250–590 (wheels on y 720) under the sun, in front of the wall and the glinting sea: a 1980s two-door convertible in side view, 340px long, facing right: a low wedge body with a sharp beltline crease, closed pop-up headlights, a raked windscreen frame, the top folded into a soft bundle behind two seat backs, chrome bumpers and a thin chrome side stripe, a tail-light strip and five-spoke wheels. Its flanks are sprayed like airbrushed chrome: the sky's colors above a sharp horizon line along the crease and a deeper sea blue below it, with one white streak. - Title, sprayed chrome script: "Weekend" over "Horizon" at the upper left of the art (x 150–660, y 80–310, clear of the sun and of the obi that will wrap the left edge) in Yellowtail 400, 130px, rising 6° to the right. Each letter's fill is a vertical chrome gradient split by a hard horizon at 52% of the letter height: cream #FFFFFF to pale aqua #BFF4F2 to lavender #B7A9EE above, a hot pink #FF6FA8 line, then deep violet #4B3B9E to peach #FFB89A below; a 3px cream highlight inside the upper edges; a 6px plum #3B2459 outer edge (the only dark edge in the piece); a soft pink overspray at 10% behind. One four-point cream glint star (60px) slides along the top of "Weekend" once. Above the title, the artist in Jost 500, 30px, tracked 0.32em, cream, left-aligned at x 150 on y 56; beneath the title, 週末の水平線 in Zen Maru Gothic 500, 30px, cream, left-aligned at x 160 on y 350. - Sleeve and record: the cover sits on the deep violet stage as a sleeve 860px square with a 3px paper edge and a soft violet shadow (0 30px 60px at 35%). The record is 820px across, black with fine concentric grooves (a seeded ring texture of slightly varied tones), a dead-wax band and a 300px peach label carrying the record label text in Jost 500, 22px, and the artist in Zen Maru Gothic 700, 26px, in plum. Its sheen is two broad, opposite wedge highlights fixed to the light, so as the record turns the grooves glint but the highlights stay put. - The obi: a vertical paper band 100px wide (stage pixels) wrapped over the sleeve's left edge, covering only the art's left margin, cream #FFF6EC with a 140px coral block at its top; 浜辺クラブ and 週末の水平線 run vertically in Zen Maru Gothic 700, 30px, plum, the obi copy vertically in 24px, and the price and catalog number horizontally at its foot in Jost 500, 22px. - Motion: layers arrive as airbrush passes: each mask's gradient fills in behind a feathered, grainy spray front (an 80px soft edge) that sweeps across it in 0.5–0.9 s, while the mask's edge is crisp from the start. Palm crowns sway ±1.5° on slow sines (3–5 s) with their fronds lagging 0.3 s; the car glides in from the left on easeOutCubic over 1.4 s, its wheels turning by distance ÷ radius and stopping with it; camera moves run on cubic-bezier(0.45, 0, 0.15, 1). Nothing bounces. - Premium: masked edges with sprayed gradients inside them, lilac shadows, chrome that reflects a sunset horizon, a pool that ripples and reflects, an obi and a real record: a cover you'd buy. Cheap: a synthwave grid and a striped neon sun, flat vector shapes with outlines, grey shadows, a glitchy VHS overlay. Banned: synthwave grids and striped suns, neon glow, outlines other than the title's plum edge, vaporwave statues, glitch or VHS effects, real artists, albums, labels or car makers, photo textures, grey shadows, black outside the vinyl, people, anything flashing more than 3 times per second. </direction> <structure> - 0.0–1.4s: inside the art at 2.3× its sleeve size (the art fills the stage), centered on art point (540, 640): the sky sprays in from the top, the sun and its halo sink into place, the sea's glints begin. - 1.4–2.8s: the villa sprays in plane by plane (sunlit faces first, then the lilac shadows), then the terrace; the pool fills and starts rippling; palm shadows begin to move on the wall. - 2.8–4.4s: the palms spray in and sway; the convertible glides in from the left along the drive and stops under the sun at 4.2 s, its chrome line catching the sunset. - 4.4–5.8s: the camera pulls back to the whole sleeve, centered at (960, 540); the title sprays in letter by letter (edge first, then the chrome fill); the artist and the Japanese title rise in; the glint slides along "Weekend" at 5.6 s. - 5.8–6.4s: the 6.0 s frame: the complete cover, centered, still but for the pool, the palms and the glints. - 6.4–7.6s: the sleeve slides left to x 140–1000 as the record slides out from behind it to the right, ending centered at (1240, 540) and turning 40° as it comes; its label reads. - 7.6–8.6s: the obi slides down over the sleeve's left edge and settles. - 8.6–10.0s: hold; inside the art only the pool ripples, the palms sway and the glints drift. For other lengths, stretch the painting beats; keep the pull-back, the record and at least 1 s of hold. </structure> <build> - One self-contained index.html (inline CSS and JS), a 1920×1080 (16:9) stage scaled to fit the window, designed for 60fps. No image, video, texture or model files: every shape and texture is generated in code. - window.seek(t), t in seconds, computes every visual from t alone: no CSS transitions or CSS animations, no setTimeout/setInterval, no state carried between frames, randomness only from a seeded PRNG. Anything cumulative is solved analytically from t or precomputed once at load at a fixed step. Past the end, seek clamps to the last frame. - 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. - Google Fonts via <link> are fine; await document.fonts.load() for each face before defining window.seek. - Engine: Canvas 2D, repainting every frame from scratch, the backing store sized from CSS size × devicePixelRatio. Canvas won't fetch fonts itself, so the awaited loads matter. - Paint each artwork layer's mask and gradient once at load into offscreen canvases (with the spatter grain baked in); each frame composites them through their spray-front reveals and adds the caustics, reflections, palm and car transforms, the sun's height and the camera, all closed-form functions of t, with the caustics and glints from seeded noise evaluated at t. The record's grooves are one pre-rendered canvas rotated each frame under fixed highlight wedges. </build> <check> Before showing me, step through one frame per second (t = 0…10): screenshot each and look at it. Fix overlaps, clipped or cramped text, and anything off-style or Banned. Check the art reads at a glance as an airbrushed 1980s cover (crisp edges with sprayed gradients inside, lilac shadows, no outlines), the palms read as palms with comb-cut fronds, the car as a 1980s convertible with pop-up lights, the chrome title shows its pink horizon line and reads clearly, the record's highlights stay put while it turns, the Japanese text renders with no missing glyphs, and the 6.0 s and final frames are complete. Confirm seek(10) and seek(11) match, so the final frame holds. </check>
Ours, and free to use under CC0: copy it, change it, ship it. No credit needed.
A jazz-tempo film title sequence in flat vermilion, mustard, bone and black: hand-cut paper shards jab in on the beat,…
A Swiss-style event poster that builds itself on a visible 12-column grid: grotesque type rises out of baseline masks,…
A primary-colored circle, square and triangle roll, drop and turn into place on a black bar, assembling a constructed B…
A Constructivist poster in motion: red bars, a wedge piercing a black circle, halftone fields and condensed uppercase t…
More like this on the motion design inspiration board: Kinetic typography inspirationMotion graphics inspiration