Skip to content
Back to skills

Screen Ui Redesign

ASecurity

Recreate the screens of a recording as designed motion UI - the app's own screens, layout, colours and words, redrawn larger and cleaner for 9:16 and built only from what the recording shows. Use when screen footage will not read at the destination, or when the UI is only the means and a designed version tells the step better.

  • 6 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added November 5, 2026
ai-agentspythongo

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned November 5, 2026

npx -y skills add PicsArt/gen-ai-skills --skill screen-ui-redesign --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Screen Ui Redesign?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Screen Ui Redesign
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/picsart-screen-ui-redesign/badge)](https://www.skillsdirectory.com/skills/picsart-screen-ui-redesign)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: screen-ui-redesign
description: Recreate the screens of a recording as designed motion UI - the app's own screens, layout, colours and words, redrawn larger and cleaner for 9:16 and built only from what the recording shows. Use when screen footage will not read at the destination, or when the UI is only the means and a designed version tells the step better.
user-invocable: false
---

# Designed UI

A screen recording cropped into a vertical frame is tiny and dense: viewers swipe at the cut to
it. The same moment, redrawn as a few large elements, reads at a glance. The redraw is a claim
about the product, so it is the app's own screen made larger, never a different one.

## What stays true

- **Redraw the real app, never invent one.** Keep its layout, the kinds of its components, its
  colours, its words and the user's own typed text. Make them larger, cleaner and fit for 9:16,
  then add motion. A light chat stays a light chat; a magenta button stays magenta.
  Never draw a different UI or a component the app does not have: dark cards labelled WIDE and
  MEDIUM, where the app shows a light shot-list board with "Shot size Medium" chips, is an
  invented UI.
- **You may crop and add the picture.** Show only the one component that matters, and add the
  shot's picture (a still) as a visual inside it.
- **Every element is something on a still.** Its words, values and states are copied from the
  still sheets, letter for letter: the same labels, the same numbers, the same order of states.
  Never add a state, an option or a result the recording does not show.
- **Fewer, not other.** Leave out what the step does not need (menus, settings rows, other
  cards). Never merge two states into one the app never showed.
- **Each state names its recording second** (`seen`). The script refuses a state without one.
  It covers the look as well as the words: every element maps to something that still shows.
- **Your own words go in labels, not in the UI**: a `tag` on a card ("kept wide") points at a
  fact the states show; a chip or a bubble holds only the app's own text.
- **A thumbnail is a still of the recording**, through the privacy pass like every still.
- Where honesty needs proof (a result the product made, a claim a viewer would doubt), one frame of
  the real recording goes beside the redraw: the hook or the payoff, held.

## Mapping the recording to elements

| On the still | Element | Fields |
|---|---|---|
| A card, a tile, a row with a picture | `card` | `title`, `chip` (its key value), `image` (a still, cropped to the picture), `tag` |
| A message typed into a chat or a search box | `bubble` | `text` |
| A setting, a badge, a value on its own | `chip` | `text` |
| A menu, a list of options | `list` | `items`, at most the ones the step uses |
| The button pressed | `button` | `label` |

The thing that changes is one element across states, never two: the card whose chip goes from
"Shot size Medium" to "Shot size Close-up" is the same card in both states, with `set` on the second.

## Building a beat

From this skill's folder, run `python3 scripts/ui_beat.py <file>`. Never place or keyframe the
elements yourself. Its docstring lists every field. In short:

- `box`, `start` and `duration`: where and when the beat plays, in frame px and scene seconds;
- `style` and `font`: the app's own colours, read from the stills (`canvas`, `surface`, `ink`,
  and its primary button's colour as `accent`), and the scene's font;
- `elements`: each element by name, with its first values;
- `states`: each screen in order, with `at` (its beat second), `seen`, `show` (top to bottom),
  `set` (what changes from here), `tap` (the element pressed to cause it) and `source` (the still
  of the `seen` second). States sit at least 1.5 s apart, so each is read before the next moves.

It prints `{layers, assets, duration, states, diagnostics}`. Add the layers to the scene and the
assets (each thumbnail is a nested scene) to its `assets`. No layer uses a mask. Act on each
`warning`: `typing_cut` (a bubble sent before its text has typed out: move that state later),
`long_text` (shorten to what the still shows first), `never_shown`, `no_source` (a state with no
still to compare: name the still). Input it cannot build exits 1 with the field to fix.

## How it moves

The script fixes the motion so every beat reads alike. The craft behind it is the motion-design-craft
skill's: matched-element smart-animate, entrances by role staggered by hierarchy, a press before
the state it causes.

- **Matched elements are carried.** A card in two states moves to its new place on the house
  curve, `cubic-bezier(0.65, 0, 0.2, 1)`, over 0.5 s, and is never cut or faded.
- **New elements enter after the moves start**, sliding up 60 px and fading in over 0.5 s on
  `cubic-bezier(0.16, 1, 0.3, 1)`, 0.1 s apart, in the order shown. Rows of a list stagger behind
  the first. An element a state drops leaves upward in 0.3 s.
- **A tap comes before the change**: the pressed element dips to 0.92 and back in the 0.35 s
  before its state; for a bubble, its send button.
- **The change pops**, 0.5 s into its state: the old pill fades, the new one scales 0.6, 1.1, 1
  in the accent. A thumbnail with a new `zoom` pushes in over 0.9 s.
- **A bubble types** once it has risen, at about 0.045 s a character.

## Compare it with the recording

Check the beat on a contact sheet at each state's `at` plus 1 s, as the quality-review skill says: every
word large, nothing overlapping, the changed value plain. Then put each state's `source` still
next to its designed frame and compare them: the same layout, component kinds, colours and words.
Fix any element with no match on the still, or one that looks like another app, and build the
beat again. Do this before the video is rendered for review or export, never after.

Files in this skill

  • SKILL.md5.7 KB
  • scripts/ui_beat.py34.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.