text-bubble-stack
Installation
SKILL.md
Text bubble stack
A stack of glossy chat bubbles behind the speaker, one per spoken phrase, over a white gradient wash. references/reference.jpg shows the finished look (violet theme, "No / Nope / Nooooope!") on a 9:16 talking-head clip. scripts/make_bubbles.py renders the bubble images and the wash.
1. Ask first
Read the transcript (get_transcript on the clip, word timings) to find the phrases that could be bubbles, then ask with one ask_form:
- Bubble colour: a choice such as Match the speaker / captions (look at a frame and the video's
captionStyle), Classic iMessage blue, Grey (received), Green (SMS), or a custom colour. Fill in your pick. - How many bubbles: a number (usually 2–4). Fill in the number of phrases you found.
- What they say: one text field, one bubble per line, separated by
/. Prefill it with the spoken words, written expressively when it suits the delivery (e.g. "No / Nope / Nooooope!"). Also confirm, in the same form, which spoken moment each bubble lands on when it isn't obvious.
2. Colour themes
Each theme is a vertical gradient (top light, mid, bottom) plus an outline, shadow and text colour:
- Classic iMessage blue: top #E3F0FD, mid #B4D5F8, bottom #8DBCF1, outline #55779F, shadow #1D3557, text #000000.
- Violet (matched to a lavender shirt and indigo-outlined captions): top #F3ECFF, mid #CDB8F4, bottom #A98AE8, outline #4A45A0, shadow #312E81, text #312E81.
- Any other colour: derive a pale top, mid and saturated bottom from it, a darker outline (slightly lighter than the darkest shade, not near-black), and dark text in the same hue.
Match a speaker or caption colour by sampling a frame and reading
get_videosettings.captionStyle.