← marketplace
creatorstoolCommunitysha:9dc11cbd6585ca1cmanual

apple-ui-shape-morph-video

Use when building short Apple-style UI motion videos where one rounded panel morphs size, position, radius, color, and content across beats.

Install confidence
curl --create-dirs -fsSL https://skillmake.xyz/i/apple-ui-shape-morph-video -o ~/.claude/skills/apple-ui-shape-morph-video/SKILL.md
Pinned content
sha:9dc11cbd6585ca1c
Generated with
manual
Source
github.com

The file served at /api/marketplace/apple-ui-shape-morph-video-9dc11cbd/raw matches this hash. Inspect before install, then copy the command.

4,641 chars · ~1,160 tokens
---
name: apple-ui-shape-morph-video
description: Use when building short Apple-style UI motion videos where one rounded panel morphs size, position, radius, color, and content across beats.
source: https://github.com/iharnoor/skillit/blob/main/scripts/seeds/apple-ui-shape-morph-video.json
generated: 2026-07-02T18:41:21.183Z
category: tool
audience: creators
---

## When to use

- Creating Apple-style UI-driven motion videos in HyperFrames, Remotion, After Effects, or HTML/GSAP
- Turning a short script into 3-5 visual states carried by one morphing rounded rectangle, pill, or panel
- Animating a main UI surface through size, position, corner radius, fill color, and contained content changes
- Debugging morph videos where radius distortion, clipped text, weak first frames, or static-looking states make the motion feel less premium

## Key concepts

### Visual states

Convert the script into 3-5 states with one dominant concept per state, such as TIME, 1000x, WORK, pressure, or final action. Supporting copy stays short and subordinate.

### Main morphing surface

Use one rounded rectangle, pill, card, or panel as the object that carries the story. Its own geometry changes across beats, rather than swapping unrelated panels.

### Geometry morph

Animate width, height, position, border radius, and fill color or their equivalent shape-layer properties. Avoid non-uniform layer scale for the primary morph because it distorts corner radius.

### Element roles

Map every element to a role: morph for the main panel, swap for labels inside it, move/scale for grouped supporting UI, fade for state-only elements, and meter for progress or competitive pressure.

### First beat morph

The first visible beat should morph too. Start from a small tile, dot, or pill, then morph into the first readable state before revealing large text.

### Frame-verified artifact

After rendering, extract representative frames near transitions and the final hold to check for blank frames, clipped text, low contrast, weak first frames, and static-looking states.

## API reference

```
Read references/morphing-rules.md for full implementations
```

Load the reference when building a full video, translating the pattern to After Effects or Remotion, or debugging radius and text clipping problems.

```
.morph-card geometry tween
```

In HyperFrames or HTML/GSAP, animate one absolute-positioned morph card with property tweens for geometry and radius.

```
gsap.set(".morph-card", {
  left: 432,
  top: 604,
  width: 216,
  height: 216,
  borderRadius: 108
});

tl.to(".morph-card", {
  left: 162,
  top: 422,
  width: 756,
  height: 756,
  borderRadius: 168,
  duration: 0.48,
  ease: "expo.inOut"
}, 0.08);
```

```
window.__timelines["main"]
```

Register a paused GSAP timeline so HyperFrames renders the morph sequence deterministically.

```
window.__timelines = window.__timelines || {};
window.__timelines["main"] = gsap.timeline({ paused: true });
```

```
Rectangle Path: Size, Position, Roundness, Fill Color
```

In After Effects, build the morph with a shape layer and keyframe the rectangle path properties rather than scaling a layer.

```
Opening morph timing
```

Use a fast opening morph before large text appears so the first sampled frames show real motion instead of a completed static card.

```
0.0-0.7s: dot/tile/pill morphs into state 1
0.7-2.8s: first text lands
3.0-4.2s: morph to pressure state
6.8-7.8s: morph to final action state
8.6-10.2s: final statement lands
11.4-12.0s: fade out
```

```
npm run check && npm run render
```

Run the local project checker and render command, then inspect 3-5 representative frames before delivery.

## Gotchas

- Do not fake the primary morph with non-uniform scale; it stretches the corner radius and reads as resizing instead of UI morphing.
- Use overflow: hidden on the morph card for contained UI content.
- Delay inner text until the panel is large enough to contain it without clipping.
- Keep every state focused on one dominant read; supporting labels should not compete with the morphing surface.
- Use expo.inOut for geometry morphs and expo.out or power3.out for text reveals.
- Check contrast on visible text, not only validator output for hidden or offscreen layers.
- If validation samples hidden text during a morph, shorten the opening morph or delay text animation.
- Confirm the first frame is not just a completed static card before final delivery.

---
Generated by SkillMake from https://github.com/iharnoor/skillit/blob/main/scripts/seeds/apple-ui-shape-morph-video.json on 2026-07-02T18:41:21.183Z.
Verify against source before relying on details.

File: ~/.claude/skills/apple-ui-shape-morph-video/SKILL.md