stageshow
Build faux product UI that looks like a real product, as a still illustration or an animated demo with a cursor. Browser and app windows, dashboards, phones, notifications, terminals, bento grids and cursor walkthroughs, framed, masked and cropped the way a marketing page, feature card or docs hero needs them. Use whenever someone wants a fake or mocked UI, a product demo or walkthrough animation, a hero or feature-card illustration of an app, a product shot in the style of a polished marketing site, or an animated cursor doing things in an interface, even if they never say "faux UI". React and plain CSS.
Install
npx skills add https://github.com/benjitaylor/skills --skill stageshowVerify
The last pass. Every answer comes from a frame you looked at, never from the code. Fix the largest visible failure first, re-shoot, return to the top, iterate until every answer is yes. The rules are in framing.md, craft.md and motion.md.
Gate
film.mjs <url> --gateon the wide loop endsrehearsal passed? (For a still,--still --gate.)- The same at
--width 390, and at the brief's own width when it names one? --states --gate: one sheet of the opening, every mark settled and the end, with nothing you would send back?
Framing (first, because nothing else matters if this is wrong)
- One gutter, and the window or phone bleeds off at least one edge, or sits whole because the brief wants it?
- Is anything cut by the crop that has words on it, or that the eye needs whole?
- Is the ground the page the brief named, no plate behind the device on a white or dark page?
- Is any corner of the stage empty for no reason?
- Panes full: no void under a list (
empty pane:), rows at their own pitch (loose list:)? - Phone: nothing under the island, a sheet below the status bar, a cropped phone losing status bar and nav together?
Hierarchy and density
- The closest gold's still beside yours: say the one difference. Is yours the sparser, flatter or smaller one, and why?
- Still: is the subject real words and values, with bars only beside it and on what the crop cuts?
- Label and value both words or both bars?
- Named avatars colored, gray discs only for filler?
- At realistic fidelity, does a list of six or more rows have at most as many placeholders as real rows?
- The heaviest mark sits on what the story is about?
- A date range: air between weeks, fading where the range continues, capped only on real start and end days?
- Bento: every tile a specific moment with its words on it; no tile that is a title over bars; stat and unit on one line?
Motion (animated scenes)
- Each beat filmed at 40 to 80ms with
--atand looked at: presses, morphs, hand-offs, exits, the seam? - Nothing appears without an entrance or leaves without an exit, except
BubbleandFlywith a visible hand-off? - A swipe lands, presses, flicks a third of the screen, lifts still moving, and the page carries on as one motion?
- A reaction grows from the bubble's corner with the room opening on the same clock?
- A terminal's marks are glyphs in the grid, each line owning its own, swapped in place?
- Rolling numbers roll in the right direction and settle once?
- The loop ends where it began, or resets with a visible cause?
Polish (last)
- Zoom every hand-drawn thing at 4x: would a stranger know what it is, and is any stroke clipped by its box?
- No translucent icon, no onion skin, no hand-drawn mark where the kit has one?
- Spacing even: words 12px from edges, stacks 4 to 6px of ink apart, dots 6px clear?
- Type: nothing under 10px on the phone, nothing wrapping that shouldn't?
What you see, what you do
Hand over
REHEARSAL.mdwritten beside the component? A template:
- Did you say what you did not watch?