02 · The steps
In the order we did them.
Each step says what we did and why. Open Details under a step for the tools and the numbers behind it.
Read the studio's own facts first
Before any design, read everything the studio has published itself, signed out, so every fact on the page is theirs.
Details
The studio had no website and took bookings only by private message. Its account gave us the address, the hours, the night sessions, the artists, the styles, a price list for piercing and the owner's own videos. Anything we could not find was marked as missing, never guessed.
Show references, build only what was picked
Watch premium tattoo-studio sites in full, show them, and build only what was picked: a video playing from the first second, then simple sections where every photo arrives in its own way.
Details
Twelve premium tattoo sites were watched from start to finish, plus one design studio's site for a scroll effect. The picks: a full video hero, rounded portfolio cards that appear as you scroll, and one "wow" section in the middle. One site was dropped because it looked machine-made. We took one element from each source and combined them, never one site copied.
Write the plan, section by section
Write every section down before any code: what it shows, how its photo or video arrives, and a sample line. No two neighbouring sections use the same entrance.
Details
Fifteen instructions were locked when the plan was approved, and three more after the first review (they are printed below). Each one was closed later with proof: a file, a measured number or a screenshot. One could not be finished by a machine and is marked as blocked, not quietly replaced.
Cut the hero film from the shop's own reels
Pick the reel that shows the studio, its sign and a needle at work, cut three of its moments into a 4-second loop that never jumps, and paint a still of it first so the page shows something at once.
Details
From a 12-second reel: 1.0 to 2.5 s, 5.5 to 8.0 s and 8.5 to 9.5 s, joined with 0.3-second crossfades, and the end crossfaded back into the start so the loop has no seam. The first half-second (a light flare) and the last seconds (a customer's bare back) were left out. The film is never enlarged past its own pixels. After the first review the hero became full screen at every width.
Let the needle draw the logo as you scroll
Trace the studio's logo into lines, then let a needle draw it stroke by stroke as the visitor scrolls; the round badge closes last, and the logo is whole only at the end.
Details
The wordmark was traced from the studio's own poster into a vector shape and checked against it (overlap 0.965 out of 1). Nineteen hand-placed strokes, in writing order, uncover it over the first 70% of a pinned hero; the needle sits at the tip of the line being drawn. The badge closes with a ring wipe from 70 to 100%. While it paints, the wordmark fades in and zooms from 112% to 100% with a shadow that settles. At rest the needle works the first stroke back and forth, so the screen moves before anyone touches it. With motion turned off, the whole logo simply shows.
Ink transitions between pieces
Use a real clip of ink spreading in water as a mask: one tattoo photo dissolves into black ink, and the next one forms out of it. The photos themselves are never changed.
Details
Twenty frames of a free stock ink-in-water clip were saved as small grey images; the page turns each one into a see-through mask (bright = ink). The same frames drive three things: the full-screen portfolio viewer (1.3 s per change, swipe or arrow keys), the night-session photo that appears through a spreading ink blot (0.9 s), and a black-and-gold ink swirl in the wow section.
The wow section: the tattoo lifts off the phone
A phone shows one of the studio's posts; as you scroll, the tattoo's lines lift off the screen in 3D, land on a photo of the stencil on skin and settle into the finished piece, with one giant word behind.
Details
Built with layered CSS 3D (perspective and rotation), no 3D library. The giant word behind it thickens from thin to heavy as you scroll. When the swirl has passed, the big letters fill in solid and the hand drops to 40% so both read. With motion off, the finished piece shows beside the phone, still.
Team cards that stack
One card per artist; as you scroll, each card slides over the one before, which shrinks back slightly and dims. Photos arrive soft and settle sharp.
Details
The stacking idea comes from an open-source component by Daniel Petho (MIT licence), rewritten in plain JavaScript. The blur-to-sharp entrance is our own. The owner's short video sits in the first card.
A portfolio you can filter
Rounded cards that grow into place as they reach the screen, four style buttons on top, and a tap that opens the piece full screen.
Details
Each card starts at 88% size with a tight rounded crop and opens to full. The style buttons show or hide cards by their tags. Video cards play only while they are on screen, and only load when first seen.
The steps of a session
Four steps, from sending the idea to the session itself. Each lights up as you reach it, and the picture beside it changes with it.
Details
The picture beside the steps is pinned and changes for each step; the step number counts up as it arrives. Where no photo of a moment exists (a private message, a deposit), a simple type card stands in rather than a stock photo.
The price list, exactly as published
Copy the studio's own published price list line by line, spelling included, and say "on quote" where they give no price.
Details
Every line came from the studio's own price list for piercing, read from their post. Tattoos are priced on quote, so the page says so instead of inventing a number.
The owner's own video, with captions
Cut a short piece of the owner's own video, play it muted when it is on screen, and add a button to hear it. Captions stay readable on a phone.
Details
The source video was watched in full first. A 12.9-second piece plays muted while in view, with its own Pause. The owner's own burned-in captions stay; an English line sits in a band underneath. Browsers only allow sound after a tap, so the sound button unmutes and restarts the clip from the start.
A booking request, one question at a time
One question per screen: placement, size, style, budget, photo, then first name and how to reply. The last screen shows the finished message and opens the studio's private messages.
Details
The answers become one pre-written message, copied for the visitor, and the studio's message inbox opens. Tapping "book with this artist" or "night session" elsewhere on the page adds that line to the message. In the private demo the confirmation is labelled as a demo.
Type that moves
Pick four open-source fonts, one per job, and make each one move: titles that swing and bounce when you scroll back up, and paragraphs whose words light up as you read.
Details
A blackletter for display, small capitals for labels, a plain sans-serif for reading and a mono for details, all free under the Open Font License and served from the site itself. The swinging titles are our own. The word-by-word light-up comes from an open-source component by Dillion Verma (MIT licence), rewritten in plain JavaScript; unlit words still pass contrast.
Legal pages and two audits
Write the legal pages in the studio's language, then test every page on phones and desktops with motion on, motion off and video refused, and fix what breaks.
Details
Four legal pages in French; no cookies and no outside requests, measured. Tested in WebKit at 375 and 390 px phone widths and on desktop, with autoplay refused (as in Low Power Mode), no 3D and returning to the tab five times: 0 errors. Lighthouse on a phone: speed 96, accessibility 100, layout shift 0. Every line passed copy_check.