Vigo Zhao (@VigoCreativeAI) header
Vigo Zhao (@VigoCreativeAI) profile picture

Product designer. I treat AI as a studio, not a slot machine. Building VISUAL OS — an open system of 170+ visual styles ↓ [email protected]

Between design & AI
Joined August 2025
Photo by Vigo Zhao (@VigoCreativeAI)Photo by Vigo Zhao (@VigoCreativeAI)Photo by Vigo Zhao (@VigoCreativeAI)Photo by Vigo Zhao (@VigoCreativeAI)Photo by Vigo Zhao (@VigoCreativeAI)Photo by Vigo Zhao (@VigoCreativeAI)Photo by Vigo Zhao (@VigoCreativeAI)Photo by Vigo Zhao (@VigoCreativeAI)Photo by Vigo Zhao (@VigoCreativeAI)Photo by Vigo Zhao (@VigoCreativeAI)
Vigo Zhao retweeted
《999 个小技巧,让你 Vibe 的产品更有质感》 ✨ 002 少数人才知道的级联菜单小技巧:添加安全区域延时。 什么是三角区? 鼠标从父菜单斜着移向子菜单时,难免擦过下面几行。普通菜单一碰就切换,子菜单就“跑丢”了。 原理很简单:以鼠标上一刻的位置为顶点,连到子菜单靠近一侧的上下两个角,围成一个三角形。鼠标在三角形里,说明它正朝子菜单走,路过的行一律忽略;离开三角形,或者停留超过 1.2 秒,才切换到新的一行。 另外还有两个延时:悬停 220ms 后才打开子菜单;鼠标离开菜单 360ms 后才关闭。 Prompt 如下,可以直接抄 ⬇️ Define a cascading (nested) menu component that keeps its submenus steady: a safe zone plus three delays, so submenus open on purpose, survive diagonal moves toward them, and do not vanish on a brief slip out of the menu. If the project already has a menu or dropdown component, build this into its existing submenu logic and keep its API, keyboard support and accessibility as they are. Otherwise create one reusable CascadeMenu: Props: an anchor (the trigger button that opens it on click) and a tree of items, each { label, icon?, href?, children? }. An item with children is a folder row; one without is a plain row that navigates on click. Each level shows its folder's name as a small title above its rows. Keyboard: arrow keys move through rows, Right/Enter opens a folder, Left goes back a level, Escape closes everything and returns focus to the anchor. Use menu / menuitem roles and aria-expanded on folder rows. Behavior, with the values to use: Open delay: hovering a row schedules it to take effect after 220ms: a folder row opens its submenu, a plain row closes any deeper submenu. Leaving the row before then cancels it. Touch input acts at once. Safe zone: while a submenu is open, build a triangle from the pointer's previous position to the two corners of the submenu's near edge (the left edge's top and bottom for a submenu on the right). Track the last two pointermove positions and use the older one as the apex, so the triangle never collapses onto the current point. If the pointer is inside that triangle and within the parent's last min(90px, max(56px, 43% of the parent width)) toward the submenu, it is on its way there: rows it crosses must not highlight or open their own submenus. Safe window: a row hovered inside the safe zone does not switch the submenu right away. Recheck every 80ms; switch once the pointer leaves the zone, or when 1200ms have passed since the hover began, so a pointer that simply stops there still gets its new submenu. Close delay: when the pointer leaves the anchor, every open level and the safe zone, close the whole menu after 360ms. Coming back in time cancels the close. Clicking outside closes at once. Dragging an item over a folder row opens it after 420ms instead of 220ms. The pointer inside an open submenu ends all protection. Drive row highlight from component state (hovered, active, skipped), not from CSS :hover, or rows crossed inside the safe zone will still light up. Geometry and motion: Submenus open to the right, overlap their parent by 8px and align their first row with the parent row. Flip to the left when there is no room; the safe zone then uses the submenu's right edge. Levels: 210-260px wide, sized to content, max height min(420px, 100vh - 24px) with their own scroll, 6px padding, 12px radius, 1px border, backdrop-filter blur(18px) saturate(135%). Rows: 32px tall, 8px radius, 4px apart, 0 8px padding, 8px gap; 18px icon, 14px weight-500 label, a 16px chevron on folder rows. Level title: 11px, weight 600, quiet ink, padding 4px 8px 2px. A submenu opens from its parent's edge: from translateX(-8px) scale(0.88, 0.98) and opacity 0, with opacity over 170ms and transform over 360ms on cubic-bezier(0.2, 1.45, 0.35, 1). The root level opens the same way from its anchor: from translateY(-6px) scale(0.96, 0.86), top-left origin. Keep the overshoot curve: the slight spring is part of the feel. A folder row's icon turns from a closed folder into an open one while its submenu is open, and back when it closes, over 460ms on cubic-bezier(0.22, 1, 0.36, 1). Morph the paths if the two glyphs share their structure; otherwise cross-fade them with a slight lift of the front panel. Light and dark themes come from tokens, not separate components: Light: surface rgba(255,255,255,.96), border rgba(0,0,0,.14), row ink #263140, row hover rgba(15,23,42,.07), quiet ink #7A8491, chevron #94A3B8, shadow 0 18px 34px rgba(15,23,42,.12), 0 2px 4px rgba(15,23,42,.05), inset 0 1px 0 rgba(255,255,255,.74). Dark, neutral grays with no blue cast: surface rgba(34,34,34,.96), border rgba(255,255,255,.12), row ink #E4E4E4, row hover rgba(255,255,255,.08), quiet ink #9A9A9A, chevron #8A8A8A, shadow 0 18px 34px rgba(0,0,0,.42), 0 2px 4px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.06). Monochrome brand icons invert in dark. Switching themes cross-fades colors, borders and shadows over about 500ms. Keep every timing value as a named constant in one place, and keep the safe-zone math in a pure, unit-tested helper (point-in-triangle by the sign of the three edge cross products). Add an optional debug overlay that draws the zone (blue fill at 16%, dashed blue outline) and the running timer, off by default.
11
17
162
7,638
Vigo Zhao retweeted
VISUAL OS 076 20 parts of people holding giant things. In Part 21, the body becomes the place. A face is an island. A hand is a staircase. An eye has its own planet. A shadow learns to fly. Prompt below ↓
🤖 Made with AI
3
9
1
187
5,518
Vigo Zhao retweeted
VISUAL OS 075 Part 7 is the quiet one. Folding a crane. Listening with eyes closed. Paddling slow. And one crab that refuses to walk forward. Prompt below ↓
🤖 Made with AI
4
3
1
96
3,332
Vigo Zhao retweeted
VISUAL OS 074 The biggest beak in the series, holding the smallest thing. Part 6. Prompt below ↓
🤖 Made with AI
1
10
1
183
5,683
Vigo Zhao retweeted
VISUAL OS 073 Every poster here hangs on one line. A stream of tea. A thread through a needle. A spiral on a snail. Prompt below ↓
🤖 Made with AI
3
8
109
4,068
Vigo Zhao retweeted
VISUAL OS 071 Oversized shapes. Hot pink and cobalt. Fine ink grain. ROOM TO GROW — blue shears trimming a curling hedge. FOLLOW THE FLOW — a diver gliding down a blue ribbon. THINK AHEAD — one giant hand lifting the knight. CARRY THE DAY — three boxes, one peeking face. Prompt below ↓
🤖 Made with AI
5
13
1
233
7,537
Vigo Zhao retweeted
VISUAL OS 070 Oversized shapes. Hot pink and cobalt. Fine ink grain. MAKE IT RISE — giant hands stretching one dough ribbon. FIND YOUR PACE — a pink rider hunched over two wheels. GOOD COMPANY — a tiny walker, a huge dachshund. LOOK A LITTLE CLOSER — one eye above a giant lens. Prompt below ↓
16
100
25
1,705
193,546
Vigo Zhao retweeted
Introducing Claude Opus 5.5, the first model in our new Claude 5.5 family. It performs at the level of Claude Fable 5.1 for most tasks, and costs 40% less to run than Opus 5.
3,360
9,072
6,632
98,084
29,375,377
Vigo Zhao retweeted
VISUAL OS 036 — Letter Zoo The alphabet is a zoo. Nine creatures so far. S — snake: one letter, a blue eye, a forked tongue OO — owl: two letters, ears cut from the counters Z — zebra: one letter, stripes on the diagonal PP — lovebirds: two letters, beak to beak, claws on the stems Locked: – 2:3 portrait, violet paper, three inks: lime, ultramarine, one yellow date – a cage of thin vertical bars from the top edge to two-thirds down – one giant lime letter, or a pair, behind the bars — the animal IS the letterform – the only additions are blue and small: eye, tongue, ear, stripe, claw – a blue offset shadow under the lime — misregistration is the only depth – the menagerie row below: the other eight creatures in small blue glyphs, identical every time – whoever is in the cage is missing from the line-up – ZOO in giant extended blue caps – one footer line: the count, the dates, the hall, free entry – no photo, no gradient, no grain beyond the paper Swaps: hero creature / its letter or pair / the one blue detail that makes it an animal Twenty-six letters. Nine turned out to be animals. Seventeen still under observation. Prompt ↓
3
4
1
17
2,468
Vigo Zhao retweeted
VISUAL OS 024 — After Hours Portals Four crafts. One portal system. Same rules. Different night. BLOOM — After Midnight / Fresh Cuts PATCH — Spin Cycle Fix / Road Tested CLAY — Heat Makes Form / One of One ORBIT — Before Sunrise / Clear Skies Locked: – oversized condensed display type, cream on black, always cropped by the top edge – one circular reflective portal (fisheye distortion) as the sole frame – subject always mid-action, hands working, slightly dirty – distressed mint-green metal surface curving across the lower third – bold black secondary headline stacked against the green – single red rubber-stamp oval – small issue/volume number – cinematic night light + light film grain Swaps: craft / environment / secondary text / stamp / issue number Reusable portal system for editorial, poster, and campaign work. Prompt ↓
4
3
26
1,373
Vigo Zhao retweeted
CHROMATIC STATES. Color, tension, and form in motion. MJ + Typography. 🌀
3
2
1
32
2,552
Vigo Zhao retweeted
VISUAL OS 019 — Field Record Covers Four people keeping records nobody asked for. VESSEL — studio index / firing 04 / clay + cobalt RESONANCE — tape 031 / room tone / archive B SPECIMEN — altitude 1840 / survey 12 / east ridge AFTERGLOW — field notes / 23:40 / north deck Locked: – one muted grey-mauve field, desaturated, no second background color – one mint green. That is the entire palette. – ultra-condensed mint caps across the top, always eclipsed by the head – cinematic portrait: cool ambient, warm key, skin left glossy and real – the subject holds one object up near the face and studies it – a left stack of mint caps — a code, a place, a time, a file number – one small mint glyph beneath the stack: circle, square, plus, star – a log of micro-caps at the foot: location, format, date, notes Swaps: discipline / wordmark / four-line stack / glyph / logged object A bowl, a microphone, a fern, a star chart. All of it filed by 23:40. Prompt ↓
9
5
1
31
3,209
Vigo Zhao retweeted
VISUAL OS 011 — Kinetic Spec Sheets One poster engine. Four crafts, four wavelengths. PULSE / 808 — violet, tactile signal POUR / 92 — amber, precision brew SHAPE / C04 — coral, high-fire stoneware FRAME / 35 — electric blue, fast glass Locked: – near-black field, one accent hue as the only light source – a single white ultra-bold italic word on a rising diagonal, cropped by both edges – model number set large behind the subject, white or accent outline – hero object shot from below, extreme foreshortening, accent rim-glow ring – practitioner mid-action, backlit haze, face half-lost in shadow – bottom-left lockup: italic name + two lines of all-caps spec – one hairline glyph in a top corner (waveform / droplet / enso / aperture) Swaps: craft / one-word verb / accent hue / model code / hero object / glyph Change the wavelength, keep the grammar. Prompt ↓
3
4
28
1,674
Vigo Zhao retweeted
The CapCut Design Studio x Dribbble Product Drop Challenge — build a full brand launch inside one canvas. My entry: BLARE, an energy drink that doesn't do quiet. Started from one shape — a line erupting into a waveform — locked it as the system's anchor, then let it run through the logo sheet, identity board, packaging and launch KV. One structure, three neon flavours, zero templates. Why you should enter: $10,000 grand prize, MacBook Pro for 2nd, iPad Pro for 3rd, Community Choice MacBook Pro, CapCut Pro subs for Top 20 — plus winners get featured by CapCut × Dribbble. Runs through July 28. Go build something loud.
🤝 Paid partnership
🎉 The CapCut x Dribbble Product Drop Challenge is LIVE! Got a product idea? Build the whole brand around it: logo, packaging, and campaign visual, all on one Infinite Canvas in CapCut Design Studio. Show us what you've got and win big: 🏆 The Prizes: 🥇 Grand Prize: $10,000 cash + 1 year of CapCut Pro + 10,000 credits 🥈 2nd place: MacBook Pro + 6 months Pro + 5,000 credits 🥉 3rd place: iPad Pro + 6 months Pro + 2,000 credits ❤️ Most Liked in the Dribbble Community: MacBook Pro + 6 months Pro + 2,000 credits 👏 20 Next Most Liked Entries: 3 months Pro Plus, every winner gets featured on CapCut's channels and in a dedicated Dribbble collection. ⏰ Challenge Period: July 7 - August 4 RT+Comment in 4hr to get extra 200 credit in your DM
4
6
19
2,344
Vigo Zhao retweeted
大部分文案的做法是:直接告诉你「这个东西好在哪」。这 4 张反过来——先引一段听起来完全正确的陈词滥调,再用标题一句话把它打脸。 「they say: press once, stand still, let the building decide」——多标准的电梯礼仪。标题甩过来一句「HOLD THE FLOOR」:按住不放,别听它的。收音机那张更狠:「they say: tune it clean, cut the hiss, keep the room polite」,标题却说「STATIC HAS TASTE」——杂音才是有滋味的部分。贩卖机那张最冷:「they say: tap again, ask the machine, pretend hunger is math」,标题只回一句「EXACT CHANGE ONLY」——机器根本不跟你讲道理。 这个机制叫成规先设:先立一个所有人都会点头的「常识」,标题再一句话把它推翻。读者先被「说得对」绕进去,再被「但是」打醒——这个先后顺序,是钩子生效的全部原因,倒过来写就废了。 再看物件本身:电梯按钮、收音机刻度、贩卖机零食,每一个平淡到不能再平淡的日常瞬间,被切成钻石一样的低多边形几何面,套上靛蓝配绯红的对角电影光。物件越普通,反差感越强。 这就是「固定结构 × 可变元素」的成规先设应用—— 而这 4 张还是同一套模板:风格锁死(低多边形几何切面渲染+重颗粒质感、靛蓝主调+绯红对角光束切割、四角圆角黑色全画幅边框、顶部/底部对称信息条(左标签+中标签+右编号)、「they say:」陈词滥调文本块+分隔符号+黄色重体标题两行),换的只是「日常物件/场景 / 常规陈词内容 / 反转标题 / 编号标签」
🤖 Made with AI
前面几组都是一张图一个主题。 这组不一样——四张图里都是同一个粉色小人。 不是四张海报,是一个 IP 在四个场景里跑来跑去。 拆一下这种「角色驱动型」商业图怎么做👇🧵
2
10
55
4,315
Vigo Zhao retweeted
Obsidian 新人只需要看三个资源就可以从各方面超越全网 99%的 人 1.Obsidian 官方文档:obsidian.md/zh/help/ 自带中文,全面但平淡 2. ob CEO kepano 博客:stephango.com/vault 3. Andy 关于长青笔记的观点: notes.andymatuschak.org/z5E5… 然后,不要看任何教程,记录+实践
5
30
2
109
14,441
Vigo Zhao retweeted
Introducing Claude Fable 5: a Mythos-class model that we’ve made safe for general use. Its capabilities exceed those of any model we’ve ever made generally available.
4,913
14,101
9,949
103,388
57,698,857
Vigo Zhao retweeted
叠衣服、煮碗泡面、阳台上换棵盆栽——最普通不过的日常,凭什么让人想收藏、想转发? 因为它们被重新起了名字:Laundry Game、Noodle Club、Plant Swap Day,再配一句暖暖的小规矩(soft rules only / eat slow stay cozy)。普通的事一旦有了名字和仪式感,你卖的就不是「一张画」,是「一种你也想过的生活」——而正是这种生活感,才会被人收藏、转给朋友。 而这 4 张还是同一套模板:风格锁死(亮蓝底 + 黑色手写大标题 + 房屋剖面 + 暖色生活场景 + 手写小标签),换的只是「哪件日常 + 它叫什么名字」。模板抄走直接用—— { "style_name": "Sky Blue Home Life Doodle Poster Style", "style_slug": "sky-blue-home-life-doodle-poster-style", "style_version": "2.1", "style_summary": "A naive flat poster system with a full sky-blue field, a rough house-shaped white inset, giant uneven black hand-lettering, small badge labels, and simple thick-outlined cartoon home-life scenes drawn like marker doodles.", "environment_variables": { "SUBJECT": "main original cartoon subject or small group", "SUBJECT_ACTION": "simple domestic action, pause, ritual, workshop, exchange, game, or frozen gesture", "PRODUCT_OR_PROP": "large household prop, craft object, food item, plant, lamp, book, laundry basket, tool, speaker, cushion, or table object", "LOCATION": "home interior zone, balcony, kitchen corner, doorway, studio nook, laundry room, reading corner, or living-room floor", "BACKGROUND_ELEMENTS": "simple shelf objects, sofa blocks, rug grid, pendant lamp, potted plant, window, pet silhouette, wall marks, tiny labels, and house-outline details", "MAIN_TEXT": "short original hand-lettered headline", "SECONDARY_TEXT": "small supporting date, subtitle, or event-like label", "ACCENT_SYMBOL": "red capsule badge, slanted date mark, small arrow, hash mark, tiny sparkle, underline, or speech tick", "WARDROBE_STYLE": "flat casual home clothes, slippers, apron, loose shirt, pajama-like outfit, socks, or simple color-blocked clothing", "STYLE_FIDELITY_ANCHORS": "sky-blue outer field, irregular white house inset, thick black marker outlines, giant naive hand-lettering, red capsule accent, flat poster color, simplified domestic props, chunky pink cartoon anatomy, visible wobbly lines, playful home-event layout", "SOURCE_CONTENT_TO_AVOID": "do not recreate the original no-going-out life festival title, Fun at home text, 2023.12.1-12.3 date, red holiday badge, Xiaohongshu watermark, exact sofa lounging scene, black cat on couch, two original human characters, raised feet pose, phone-reading pose, shelf arrangement, house silhouette, or bottom hashtag wording", "ASPECT_RATIO": "9:16 or 16:9" }, 你想给哪件日常起个「club」?评论区说,我挑几个做成下一组。
上周我发了极简生鲜海报和稚拙蜡笔海报。 这周走另一个极端:声音拉满。 三色丝网印 + 漫画爆炸星 + 复古街机能量。一看就耳鸣的那种。 拆一下这种图怎么做👇🧵
12
10
2
61
7,806
北京时间 2026 年 5 月 30 日周六晚上 20:00,邀请了设计师、AIGC 视觉创作者 Vigo。 在这场分享会上 Vigo @VigoCreativeAI 将为大家分享 如何在 AI 时代建立审美和方法论, 深度探讨如何反推 Prompt 并建立自己的审美库, 尤其是在电商领域的 AI 设计实践, 以及从设计师的角度剖析做内容的共识与反共识。 一起来学习交流 AI 时代如何拥有更好的「品味」!
2
1
6
1,127