FRAME

비디오 프롬프트 · Claude Opus 5.5

UI 모핑 모션 디자인 템플릿

요소가 음악과 동기화되어 다양한 상태로 변형되는 루프형 UI 모션 디자인을 만들기 위한 종합 프롬프트 템플릿입니다.

프롬프트 (한국어)

<inputs>
다음을 나에게 물어볼 것: 도형이 변신하기를 원하는 UI 상태 8~12개(예: 버튼, 로더, 플레이어, 슬라이더, 토글, 탭, 차트, 커맨드 팔레트, 토스트), 순수 흑백 또는 강조색 하나, 그리고 약 120 BPM의 로열티 프리 곡(예: Mixkit, 상업적 사용 무료).
</inputs>

<direction>
Dribbble 수준의 UI 모션. 도형 하나, 절대 컷하지 않음: 모든 상태는 같은 요소가 크기, 둥글기, 색을 바꾸고 그 안의 콘텐츠는 짧은 블러와 함께 교체되는 것이다. 커서가 실제 클릭과 드래그로 모든 변화를 이끈다. 밝고 따뜻한 회색 캔버스, 흑백 컴포넌트, 깔끔한 UI 글꼴 하나(Geist). 어디서나 스프링, 오버슈트는 기껏해야 아주 조금. 카메라가 줌하여 각 상태가 프레임을 채운다. 마지막 프레임이 첫 프레임이라 루프가 된다.
Banned: 통통 튀는 이징, 파티클 폭발, 글로우, UI 크롬 위의 그라디언트, 어긋난 아이콘 선 굵기, 죽은 시간, 템플릿처럼 보이는 모든 것.
</direction>

<structure>
120 BPM, 7마디, 모든 박자마다 무언가 일어난다.
버튼 → 로더 → 체크 → 다이내믹 아일랜드 → 재생/일시정지 모프가 있는 음악 플레이어 → 진행 바 스크럽 → 최대를 넘어 드래그하면 늘어나는 볼륨 슬라이더가 된다 → 토글이 박자에 맞춰 켜진다 → 노브가 액체 탭 인디케이터가 된다 → 탭이 스스로 그려지는 차트로 열리고 호버 시 툴팁이 뜬다 → ⌘K로 접힌다 → 입력해서 필터링 → 엔터 → 토스트 → 다시 버튼으로.
</structure>

<build>
1. HTML 파일 하나, 정사각형 1440x1440. 모든 스타일은 seek(t) 안에서 시간으로부터 계산한다: CSS 트랜지션 없음, 타이머 없음, 프레임 사이에 이어지는 상태 없음.
2. 스프링은 닫힌 형식의 스텝 응답이다. 목표가 여러 번 바뀌는 값은 변화마다 하나씩의 스프링을 합한 것이므로 시간의 순수 함수로 유지된다.
3. 탭 인디케이터의 두 모서리는 서로 다른 스프링을 타서 앞쪽 모서리가 뒤쪽 모서리보다 먼저 늘어난다. 토글 노브에도 같은 기법을 쓴다.
4. 드래그는 직접 조작이다: 커서를 누르고 있는 동안 값은 커서 위치로부터 계산된다. 놓으면 그 위치에서부터 스프링으로 되돌아간다.
5. numpy로 곡을 분석해 비트 그리드를 얻고 다운비트에서 시작한다. 모든 UI 사운드는 측정된 피크에 맞춰 배치한다.
6. Playwright로 렌더링한다: 프레임당 4개 서브프레임을 ffmpeg tmix로 블렌딩해 60fps 모션 블러를 만든다.
7. 전체 렌더링 전에 박자마다 한 프레임씩 렌더링한다. 그리드를 벗어나거나, 답답하거나, 읽기 어려운 것은 고친다.
</build>

<gotchas>
카메라가 스케일하는 어떤 요소에도 will-change를 쓰지 말 것, 아니면 텍스트가 흐리게 렌더링된다. 모프하는 컨테이너 안에서 교체되는 텍스트는 자체 등장·퇴장 타이밍이 필요하며 그렇지 않으면 겹친다. 마지막 프레임을 커서 위치와 속도까지 포함해 첫 프레임과 동일하게 만들 것, 그렇지 않으면 루프가 끊겨 보인다.
</gotchas>

<start>
입력 항목을 나에게 물어본 다음, 코드를 쓰기 전에 비트 그리드 위에 올린 상태 목록을 보여 줄 것.
</start>

원문 프롬프트

<inputs>
Ask me for: 8 to 12 UI states I want the shape to become (e.g. button, loader, player, slider, toggle, tabs, chart, command palette, toast), pure black and white or one accent color, and a royalty-free song around 120 BPM (e.g. Mixkit, free for commercial use).
</inputs>

<direction>
Dribbble-level UI motion. One shape, never cut: every state is the same element morphing its size, radius and color while its content swaps with a short blur. A cursor drives every change with real clicks and drags. Light warm-gray canvas, black and white components, one clean UI font (Geist). Springs everywhere, a tiny overshoot at most. The camera zooms so each state fills the frame. The last frame is the first frame, so it loops.
Banned: bouncy easing, particle bursts, glows, gradients on UI chrome, mismatched icon strokes, dead time, anything that looks like a template.
</direction>

<structure>
120 BPM, 7 bars, something happens on every beat.
Button → loader → check → dynamic island → music player with a play/pause morph → scrub the progress bar → it becomes a volume slider that stretches when dragged past max → a toggle flips on the beat → the knob becomes a liquid tab indicator → the tabs open into a chart that draws itself, with a tooltip on hover → it collapses into ⌘K → type to filter → enter → toast → back to the button.
</structure>

<build>
1. One HTML file, square 1440x1440. Every style is computed from time inside seek(t): no CSS transitions, no timers, no state carried between frames.
2. Springs are closed-form step responses. A value that changes target many times is the sum of one spring per change, so it stays a pure function of time.
3. The tab indicator's two edges ride different springs, so the leading edge stretches ahead of the trailing one. Same trick for the toggle knob.
4. Drags are direct manipulation: while the cursor is held, the value is computed from its position. On release it springs back from wherever it was.
5. Analyze the song with numpy for the beat grid and start on a downbeat. Place every UI sound by its measured peak.
6. Render with Playwright: 4 subframes per frame, blended with ffmpeg tmix for motion blur at 60fps.
7. Render one frame per beat before the full render. Fix anything off the grid, cramped or hard to read.
</build>

<gotchas>
Never put will-change on anything the camera scales or the text renders blurry. Text that swaps inside a morphing container needs its own enter and exit timing or it overlaps. Make the last frame identical to the first, cursor position and speed included, or the loop stutters.
</gotchas>

<start>
Ask me for the inputs, then show me the state list on the beat grid before you write any code.
</start>

작성자 zero · 원문 보기

수집 자료의 원작성자와 출처를 표시합니다. 개별 자료의 이용 조건은 원문에서 확인하세요.

갤러리에서 열어 복사·저장하기 →

이 프롬프트 쓰는 법

  1. 원문 프롬프트를 복사해 Claude Opus 5.5에 붙여 넣습니다.
  2. 주인공과 장소처럼 내 것으로 바꿀 부분만 고칩니다. 카메라 움직임과 장면 순서를 적은 부분은 그대로 둡니다.
  3. 같은 프롬프트로 두세 번 만들어 보고 고릅니다. 매번 조금씩 다르게 나옵니다.

한국어로 적어서 내 것으로 바꾸기 →

비슷한 프롬프트