prom-design
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseProm Design
Prom Design
This style shipped real client work. The examples in this skill use two
fictional stand-in brands, AURA Heights (a beachfront condominium) and
The Assembly (a members' events web app), so the rules are shown at full
specificity without exposing any client. The rules are the transferable part.
Two public skills are referenced as optional companions: (design
review) and (screenshot to tokens). Everything here works without
them. The Blender 360 tour mentioned in places is a separate toolchain and is
not part of this skill.
impeccabledesign-dna该风格已应用于真实客户项目。本技能中的示例使用两个虚构替代品牌——AURA Heights(海滨公寓)和The Assembly(会员活动Web应用),因此可以完整展示规则细节,同时不会泄露任何客户信息。这些规则是可迁移复用的核心内容。
本技能可选搭配两个公开技能:(设计评审)和(截图转Token)。即使不使用它们,本技能的所有功能也能正常运行。文中提及的Blender 360全景漫游属于独立工具链,不属于本技能范畴。
impeccabledesign-dnaStart every job with the sixty-second intake
每项工作从60秒需求采集开始
Do not build first and ask forgiveness later. When this skill is invoked, and
the user has not already answered these, ask BEFORE writing any code, in one
short message, plain words, no design jargon:
- What is this page for, and who lands on it? (one line is enough)
- Should it sell or should it work? Offer the registers as a plain choice: "a page that makes people want it (cinematic) or a page that gets things done (instrument)?" If they hesitate, recommend one and say why in one sentence.
- Anything that must stay? Brand colors, a logo, existing copy.
Then do thirty seconds of thinking about the subject's WORLD before answering
(what materials, weather, rooms, and objects live in this business), and
present two or three named directions, each in one line: a name, the
ground tint and accent as real hex values, the face pairing, and why it fits
this subject. Recommend one and say why in one sentence. Example shape:
- Rain jar (recommended): cool green-grey ground
, moss ink, fired-clay accent#EDF1EC, Fraunces + Archivo. Fits a flower shop in a rainy hill town: the palette is the shop's own window on a wet morning.#A65A33- Night market: charcoal ground, paper-lantern amber accent, Newsreader + Archivo. Moodier, better if evenings are the business.
End with "pick one, mix them, or say just build it." One round of questions,
maximum. The intake exists to make newcomers feel steered, never
interrogated, and the options exist so they choose by recognition instead of
having to describe taste they do not have words for.
不要先开发再寻求谅解。当触发本技能且用户尚未回答以下问题时,请在编写任何代码前,用简洁直白的语言(无设计术语)一次性询问:
- 该页面的用途是什么?目标受众是谁?(一句话即可)
- **它是侧重转化还是功能?**提供清晰选项:“是打造让人产生欲望的页面(电影感风格),还是高效完成任务的页面(工具感风格)?”若用户犹豫,推荐一种风格并给出一句话理由。
- **有哪些必须保留的元素?**品牌色、Logo、现有文案等。
之后花30秒思考业务所处的场景(该业务涉及的材质、环境、空间、物品),然后提出2-3个命名方向,每个方向用一句话说明:名称、真实十六进制值的底色和强调色、字体组合,以及适配该业务的理由。推荐其中一个并给出一句话理由。示例格式:
- 雨罐(推荐):冷灰绿底色
、墨绿正文、陶土色强调色#EDF1EC,搭配Fraunces + Archivo字体。适合多雨山城的花店:调色板如同雨天早晨花店橱窗的色调。#A65A33- 夜市:炭黑色底色、纸灯笼琥珀色强调色,搭配Newsreader + Archivo字体。氛围更浓郁,适合主打夜间业务的场景。
最后以“选择其一、混搭风格,或直接开始开发”收尾。最多仅进行一轮提问。需求采集的目的是引导新手,而非盘问他们;提供选项是为了让他们通过直观认知做出选择,无需用语言描述自己不擅长表达的审美偏好。
Mobile is the default, not the afterthought
移动端是默认优先,而非事后补充
Assume most viewers are on phones. These defaults apply to EVERY build unless
the user says otherwise, and they come from the webapp playbook
(), which is not just for web apps:
references/webapp.md- Scroll budget. A page should land its argument within about 3.5 phone screens (the density budget). When content wants to sprawl, compact it: facets, tabs, or a horizontal shadow gallery instead of another stacked section.
- Side-scroll galleries carry an affordance. Any horizontal scroller shows a peeking next card, a subtle edge fade, and on first view a brief swipe cue. Never a naked overflow that looks like the content just got cut.
- Real tap targets. Buttons and cards at thumb size (44px minimum), the primary action reachable in the bottom half of the screen, and a bottom tab bar the moment a product has three or more destinations.
- Coach marks, once. If a surface has a gesture the user cannot guess (swipe, long-press, drag), a one-time overlay teaches it, then never appears again.
- The viewport meta is not optional, and every page must measure
at 390px. Internal scrollers scroll themselves, the page never scrolls sideways.
scrollWidth == viewport width
The cinematic register on a phone is a smaller cinema: fewer sections, larger
type, the same argument. The instrument register on a phone should feel like
a native app, not a shrunk website.
假设大多数用户使用手机浏览。以下默认规则适用于所有开发,除非用户另有说明,这些规则来自Web应用指南(),并非仅适用于Web应用:
references/webapp.md- 滚动预算。页面应在约3.5个手机屏幕高度内传递核心信息(密度预算)。当内容过多时,进行压缩:使用分面组件、标签页或横向阴影画廊,而非新增堆叠区块。
- 横向滚动画廊需提供交互提示。任何横向滚动组件需显示下一张卡片的边缘、细微的边缘渐变效果,首次加载时显示短暂的滑动提示。绝对不能出现看起来像是内容被截断的裸溢出效果。
- 真实可点击区域。按钮和卡片需达到拇指操作尺寸(最小44px),主要操作按钮需位于屏幕下半部分可触及区域;当产品有三个及以上页面时,需添加底部标签栏。
- 引导提示仅显示一次。若页面存在用户无法直觉发现的手势操作(滑动、长按、拖拽),显示一次性覆盖层进行引导,之后不再出现。
- viewport元标签是必填项,所有页面在390px宽度下必须满足。内部滚动组件自行滚动,页面整体不得横向滚动。
scrollWidth == viewport width
移动端的电影感风格是缩小版的影院体验:区块更少、字体更大,核心信息不变。移动端的工具感风格应具备原生应用的质感,而非缩小版的网页。
Why this skill exists at all
本技能的存在意义
Most design skills, and included, are
built to invent a fresh point of view for every brief. That is correct for
agency work, and even warns itself against converging: if the last
surface was restrained-on-cream, the next one must not be.
impeccablehigh-end-visual-designimpeccableThis skill does the opposite on purpose. It carries one aesthetic that has
already been paid for, so a newcomer can produce work in that idiom without
having taste yet. Taste is the slow part. A proven system is the shortcut.
Use both. owns the universal laws (OKLCH colour handling, motion
curves, the six absolute bans, the AI-slop test). This skill owns the specific
house answer and the client workflow around it. Where they disagree, note it out
loud rather than silently picking, and see for the one
place they genuinely conflict (the serif choice).
impeccablereferences/taste.md大多数设计技能(包括和)都是为每个需求创建全新的视觉方向。这在代理机构工作中是正确的,甚至会提醒自己避免风格趋同:如果上一个项目是米色极简风格,下一个项目就不能再用。
impeccablehigh-end-visual-designimpeccable本技能则刻意反其道而行之。它承载一种已被验证并付费的美学风格,让新手无需具备审美能力就能产出该风格的作品。审美能力需要长期培养,而已验证的系统是捷径。
可以结合使用两种技能。负责通用规则(OKLCH色彩处理、动效曲线、六大绝对禁令、AI劣质内容检测)。本技能负责具体的专属风格和客户工作流程。若两者存在分歧,需明确指出而非默默选择,可参考中唯一真正冲突的部分(衬线字体选择)。
impeccablereferences/taste.mdFirst decision: which register
第一个决策:选择哪种风格类型
Everything downstream depends on this. The two builds look nothing alike because
they answer different questions.
| Cinematic (AURA Heights) | Instrument (The Assembly) | |
|---|---|---|
| The user is | deciding whether to care | trying to get something done |
| Success is | a feeling, then an enquiry | a completed task, fast |
| Layout | full-bleed sections, scroll narrative | dense cards, facets, lists |
| Type | display serif + letterspaced sans | one sans, many sizes |
| Motion | ambitious, first-load allowed | functional only |
| Mobile | a smaller cinema | a native-feeling app with a tab bar |
| Verdict | marketing site, launch, brand | booking, dashboard, catalogue, account |
If the answer is genuinely both (a marketing front door plus a logged-in app),
build them as two registers under one token system rather than compromising into
a mush. The Assembly does exactly that: a cinematic home surface sitting on top of an
instrument.
Write the register down before touching a file. It decides the type stack, the
density, and what counts as a defect later.
后续所有工作都取决于此。两种风格的成品截然不同,因为它们解决的问题不同。
| 电影感风格(AURA Heights) | 工具感风格(The Assembly) | |
|---|---|---|
| 用户状态 | 正在决定是否感兴趣 | 正在完成某项任务 |
| 成功标准 | 先产生情感共鸣,再引发咨询 | 快速完成任务 |
| 布局 | 全屏通栏区块,滚动叙事 | 高密度卡片、分面组件、列表 |
| 字体 | 展示型衬线字体 + 字间距加宽的无衬线字体 | 单一无衬线字体,多种字号 |
| 动效 | 富有表现力,允许首屏加载动效 | 仅保留功能性动效 |
| 移动端表现 | 小型化的电影感体验 | 类原生应用,带底部标签栏 |
| 适用场景 | 营销网站、新品发布、品牌展示 | 预订系统、仪表盘、商品目录、账户中心 |
若确实需要兼顾两者(营销首页+登录后应用),应在同一Token系统下构建两种风格,而非妥协混合成四不像。The Assembly就是如此:电影感的首页搭配工具感的内部功能。
在开始开发前明确记录所选风格类型,它将决定字体栈、内容密度以及后续的缺陷判定标准。
Second decision: the brand's own tokens
第二个决策:品牌专属Token
The register decides the architecture. The SUBJECT decides the palette and
the faces, and this is where most one-style skills go wrong: they ship one
palette and every client comes out beige. The law is the STRUCTURE of the
tokens, never one fixed set of values:
- A tinted ground, any temperature. Never pure or
#FFFFFF. The tint comes from the subject's material world: a florist in the rain is cool green-grey, a fintech ledger is cool paper-blue, a supper club is linen and smoke, a beachfront tower is warm ivory. Derive it, do not default to it.#000000 - Ink, not black. A dark that carries the ground's temperature.
- One accent, from an object the business actually owns. Ember red from the oven, clay from the pots, ledger green from the money, gold from the brass. Name the object when you present the direction.
- Faces carry the voice, so vary them. A short vetted menu, all on Google Fonts, each with a voice: Cormorant Garamond (candlelit, classical), Fraunces (warm, contemporary, slightly soft), Newsreader (editorial, dry), Spectral (precise, technical warmth), Libre Caslon Text (bookish). Pair with one working sans: Archivo, Public Sans, or IBM Plex Sans. For Thai, Trirong (serif) and Sarabun (sans) carry both scripts honestly.
- Banned regardless of brief: the AI-slop pairings (Playfair Display over Montserrat, Inter for everything), purple-to-blue gradients, and reusing a previous client's palette because it worked there. Every demo brand in this repo runs a different direction derived this way; that variation is the proof the method works.
风格类型决定架构,业务主题决定调色板和字体,这也是大多数单一风格技能出错的地方:它们只提供一套调色板,导致所有客户项目都千篇一律。核心原则是Token的结构,而非固定的数值集合:
- 带色调的底色,冷暖均可。绝对不能使用纯或
#FFFFFF。色调来自业务的实际场景:多雨地区的花店用冷灰绿,金融机构用冷纸蓝,晚餐俱乐部用亚麻烟灰色,海滨塔楼用暖象牙色。需推导底色,而非使用默认值。#000000 - 带色调的正文色,而非纯黑。深色需匹配底色的色调。
- 一种强调色,来自业务实际拥有的物品。烤箱的炭红色、陶罐的陶土色、账本的绿色、黄铜制品的金色。在展示方向时需说明对应的物品。
- 字体传递品牌调性,需灵活选择。经过筛选的字体列表均来自Google Fonts,每种字体都有独特调性:Cormorant Garamond(烛光感、古典)、Fraunces(温暖、现代、略带柔和)、Newsreader(刊物感、干练)、Spectral(精准、技术感温暖)、Libre Caslon Text(书卷气)。搭配一种功能性无衬线字体:Archivo、Public Sans或IBM Plex Sans。泰语场景下,Trirong(衬线)和Sarabun(无衬线)能同时适配两种文字体系。
- 无论需求如何均禁止使用:AI劣质字体组合(Playfair Display搭配Montserrat、Inter通用于所有场景)、紫蓝渐变、复用其他客户的调色板(即使之前效果很好)。本技能中的每个演示品牌都采用了不同的推导方向,这种多样性证明了方法的有效性。
The five laws
五大核心法则
These are the load-bearing ideas. Everything else is detail. Each is drawn from
what actually shipped, and each has a reason, because a rule you understand
survives contact with a new situation and a rule you memorize does not.
这些是支撑整个风格的核心理念,其他内容均为细节。每条法则都来自已交付的真实项目,且有明确理由——理解背后逻辑的规则能适应新场景,而死记硬背的规则则不能。
1. Specificity is the luxury signal
1. 精准性是高端的信号
Real numbers, real names, real distances. AURA Heights says "217.40 sqm", "38m above
the bay", "ninety seconds from the pier". The Assembly says "3 of 12 places", "09:20 to
14:05", "8 min from Harbor Station, north exit".
Vagueness reads as either hiding something or not knowing. Precision is
expensive to fake, so it signals the real thing. This is also the cheapest
upgrade available on any page: replace every "spacious residences" with the
square metres and the page gets more premium without a single CSS change.
Corollary: placeholder content is a design defect, not a content to-do.
Lorem ipsum and "Feature One" hide exactly the quality this style depends on.
真实数字、真实名称、真实距离。AURA Heights会标注“217.40平方米”“距海湾38米”“步行90秒到码头”。The Assembly会标注“12个名额剩余3个”“09:20至14:05”“距港北站北口8分钟路程”。
模糊表述会让人觉得要么有所隐瞒,要么不够专业。精准性很难伪造,因此是真实品质的信号。这也是提升页面质感最廉价的方法:将所有“宽敞住宅”替换为具体面积,无需修改任何CSS就能让页面更显高端。
推论:占位符内容是设计缺陷,而非待填充内容。Lorem ipsum和“功能一”会完全掩盖本风格依赖的品质感。
2. Proof over promise
2. 用事实说话而非空口承诺
Every claim carries the evidence next to it. AURA Heights does not say the views are
beautiful; it flew a drone to the exact position of nearly every residence and
says "Not an artist's impression. Your view, on file." It does not say the
materials are good; it says every material in the renders exists today in the
sales gallery, go and touch it. It shows the render and the photograph side by
side and invites the comparison.
The Assembly applies the same move to onboarding: "The dates and the places left are
counted out of the database as the page is built, not written by hand. When a
table fills, this number drops."
When you write a claim, ask what would make a sceptic believe it, then put that
thing in the layout. This is what separates the style from ordinary luxury
pastiche, which asserts and hopes.
每个主张旁边都需附带证据。AURA Heights不会说“景观优美”,而是用无人机拍摄了几乎每套住宅的真实视角,并标注“非艺术家渲染图。您的专属景观已存档”。不会说“材质优良”,而是标注“渲染图中的所有材质均已在销售展厅展示,欢迎触摸体验”。同时展示渲染图和实景照片,邀请用户对比。
The Assembly将同样的原则应用于引导流程:“页面加载时,剩余日期和名额会从数据库实时计算,而非手动编写。当名额满员时,数字会自动更新。”
撰写主张时,思考什么能让怀疑者信服,然后将其加入布局。这正是本风格与普通高端仿制品的区别——后者只是断言并寄希望于用户相信。
3. The ground is never white and the ink is never black
3. 底色永远不是纯白,正文永远不是纯黑
AURA Heights sits on warm ivory with brown ink. The Assembly uses white
paper but a green-tinted ink and an secondary surface.
#F7F2E9#40301D#141A18#F3EEE3Pure on pure is the default of something unconsidered, and the eye
reads the tint as intent even when it cannot name it. Tint every neutral a
little toward the brand hue. says the same thing in OKLCH terms and
its reasoning is worth reading.
#FFF#000impeccableAURA Heights使用暖象牙色底色搭配棕色正文。The Assembly使用白纸底色,但正文是带绿色调的,次要区域使用。
#F7F2E9#40301D#141A18#F3EEE3纯搭配纯是未经思考的默认选择,即使用户无法说出原因,眼睛也能感知到色调背后的设计意图。将所有中性色向品牌色调微调。用OKLCH色彩模型阐述了同样的观点,其背后的逻辑值得一读。
#FFF#000impeccable4. Anything interactive must announce itself
4. 任何交互元素必须明确提示
This is the most-repeated correction in the entire project history, so treat it
as the house's sorest point. AURA Heights labels its carousel "SWIPE, DRAG, OR USE
THE ARROWS" and its comparison slider "Drag the line to move the sun". The 360
viewer got a side-arrow scroll cue specifically because a user could not tell it
was scrubbable.
A control that only reveals itself on hover does not exist on a phone. If a
thing can be dragged, swiped, scrubbed, or expanded, say so in words, show an
affordance, or animate a hint on first view. Discoverability is not decoration.
这是整个项目历史中最常被修正的问题,因此需视为工作室的重点关注项。AURA Heights为轮播组件标注“滑动、拖拽或使用箭头”,为对比滑块标注“拖动线条调整太阳位置”。360度查看器专门添加了侧边箭头滚动提示,因为用户无法直觉发现它可以拖动。
仅在 hover 时显示的控件在手机上等同于不存在。若元素可拖动、滑动、 scrub 或展开,需用文字说明、提供交互提示,或在首次加载时显示动画引导。可发现性不是装饰。
5. On mobile, density is respect
5. 在移动端,密度是对用户的尊重
The instrument register exists because of a specific correction: too much
negative space and too much scrolling, most people are on a phone, and they
should not have to wade through sections. Build for the thumb: a bottom tab bar,
content above the fold, facets instead of endless scroll, and real information
on every card.
Airy full-viewport sections are a cinematic-register privilege. Spending them on
an instrument is a defect.
工具感风格的诞生源于一个具体的修正需求:负空间过多、滚动内容过长,而大多数用户使用手机,他们不应被迫浏览大量无关区块。为拇指操作优化:底部标签栏、首屏核心内容、分面组件替代无限滚动、每张卡片都包含真实信息。
通透的全屏区块是电影感风格的特权。在工具感风格中使用这种设计是缺陷。
The anti-slop clause
反劣质内容条款
The sharpest critique this house gives is that a page reads as generic AI
slop, fonts included. The instruction that followed matters as much: look at
classpass.com, airbnb, agoda, then create our own style.
So the method is benchmark, then diverge:
- Name three real products that solve a similar interaction problem well.
- Say in one sentence each what they actually get right, mechanically.
- Take the mechanism, never the skin.
- State what this project will do differently, and why the brand demands it.
If the palette and type are guessable from the category name, it is the
training-data reflex and it has to be reworked. 's category-reflex
check covers this well.
impeccable工作室最尖锐的批评是页面看起来像通用AI生成的劣质内容(包括字体)。随之而来的指令同样重要:参考classpass.com、airbnb、agoda,然后创建我们自己的风格。
方法是:先对标,再差异化:
- 列出三个解决类似交互问题的优秀真实产品。
- 用一句话分别说明它们在机制上的优点。
- 借鉴机制,而非外观。
- 说明本项目将做出哪些不同调整,以及品牌为何需要这些调整。
如果仅从品类名称就能猜到调色板和字体,那就是AI训练数据的惯性思维,必须重新设计。的品类惯性检查很好地覆盖了这一点。
impeccableThe loop
工作流程
This is the sequence the good work actually followed. The gates are the point;
skipping them is how projects go wrong.
这是优质项目实际遵循的流程。关卡是关键;跳过关卡是项目出错的根源。
1. Brief, out loud, before any file
1. 口头确认需求简报,再开始任何工作
State the register, who the user is, what the one action is, and what the brand
already owns (logo, photography, a document, an existing site). Client assets
often arrive as a or a folder of photos, so extract the real brand from
them rather than inventing one. is the right tool when a screenshot
or reference image is the input.
.docxdesign-dnaGate: say the plan before building it. The standing instruction in this
house is to explain how you will do it first. This is not ceremony; it is the
cheapest possible place to catch a wrong direction.
明确风格类型、目标用户、核心操作,以及品牌已有的资产(Logo、照片、文档、现有网站)。客户资产通常以或照片文件夹形式提供,需从中提取真实品牌信息,而非凭空创造。当输入为截图或参考图片时,是合适的工具。
.docxdesign-dna关卡:开始开发前说明计划。工作室的常规要求是先解释将如何执行。这不是形式主义;这是发现错误方向成本最低的环节。
2. Design contract
2. 设计合同
Lock the decisions before components exist, because retrofitting a type scale
across forty files is how a week disappears. Write tokens down, then treat them
as the only source of truth: no raw hex or px in components.
Both proven token systems are in , including the semantic
patterns worth stealing wholesale (radius by role, colour by state, named
z-index, app-chrome heights). Read it before inventing your own scale.
references/tokens.md在组件开发前锁定决策,因为在四十个文件中重新适配字体比例会浪费一周时间。记录Token,然后将其视为唯一的事实来源:组件中不得使用原始十六进制值或像素值。
两套经过验证的Token系统位于中,包括值得直接借鉴的语义模式(按角色定义圆角、按状态定义颜色、命名z-index、应用栏高度)。在创建自己的比例前请先阅读该文件。
references/tokens.md3. Build
3. 开发
Component patterns with real markup are in : the
section-header triple, the stat counter row, the affordance-labelled carousel,
the comparison slider, the proof pair, the event card, the bottom tab bar, and
the first-run coach overlay.
references/patterns.mdIf the register is instrument, read before building
anything. It carries the density budget (a real number you measure), the
footer tab bar spec, eleven compaction moves, and the delight components worth
their weight: the shadow coach overlay, the spotlight cutout, the shadow
gallery, tickers, skeletons and the sticky commit bar. It also covers borrowing
21st.dev components without inheriting their skin.
references/webapp.mdPhotography is not optional. Zero images is a bug, not a restraint, and the
usual failure is a pretty image with the wrong context (a tropical beach on a
Chiang Mai page). covers choosing for context, the free
sources and their licences, the Unsplash URL shape, how many and which, and the
labelling rules that keep stock imagery inside the honesty system.
references/imagery.mdCopy is part of the design, not a later pass. carries the
voice, which is the least copyable and most valuable part of the whole thing.
references/copy.mdIf the project uses the house engineering spine (Cloudflare Workers, Drizzle,
Wrangler, Vitest, a generated asset manifest), describes
it and the photo-derivative pipeline.
references/stack.md带真实标记的组件模式位于中:区块标题三联组、统计计数器行、带交互提示的轮播、对比滑块、事实对比对、活动卡片、底部标签栏,以及首次运行引导覆盖层。
references/patterns.md若选择工具感风格,开发前请阅读。该文件包含密度预算(可测量的真实数值)、底部导航栏规范、十一种内容压缩方法,以及值得投入的愉悦组件:阴影引导覆盖层、聚光灯镂空、阴影画廊、滚动提示条、骨架屏和粘性提交栏。还涵盖了如何借鉴21st.dev组件而不继承其外观。
references/webapp.md摄影是必填项。零图片是Bug,而非克制。常见错误是使用漂亮但不符合场景的图片(清迈的页面用热带海滩图)。涵盖了场景适配的图片选择、免费资源及许可证、Unsplash URL格式、图片数量与类型,以及保持库存图片真实性的标注规则。
references/imagery.md文案是设计的一部分,而非后续环节。包含品牌调性,这是整个体系中最难以复制但最有价值的部分。
references/copy.md若项目使用工作室的技术栈(Cloudflare Workers、Drizzle、Wrangler、Vitest、生成式资源清单),描述了该技术栈及照片衍生处理流程。
references/stack.md4. The localhost review gate
4. 本地评审关卡
Never push to show work. The standing rule is to put it on localhost and
hand over the link first. Then verify it yourself before claiming it works, at
375px, 768px, and 1280px, because "I thought you checked everything" is what
gets said when a hero video silently fails on mobile.
scripts/shots.mjs绝对不要直接推送代码展示工作成果。常规规则是先部署到localhost,再提供链接。然后在375px、768px和1280px尺寸下自行验证,因为“我以为你已经检查过所有内容”是当英雄视频在移动端无声失败时会听到的话。
scripts/shots.mjs5. Critique, in the house vocabulary
5. 用工作室术语进行评审
Work is reviewed with a small, consistent set of words. Treat each as a named
defect class and check for it before presenting, since finding your own faults
is much cheaper than being handed them:
cluttered · chopped off · out of place · odd · over complicated · too generic ·
ai slop · negative empty space · too much scrolling · irrelevant · not seamless
references/taste.md使用一套简洁一致的词汇评审工作。将每个词汇视为命名缺陷类别,并在展示前自行检查,因为发现自己的问题比被指出问题成本低得多:
杂乱 · 内容截断 · 位置不当 · 不协调 · 过于复杂 · 太通用 · AI劣质内容 · 无效负空间 · 滚动内容过多 · 无关内容 · 不流畅
references/taste.md6. Multi-lens audit before any customer sees it
6. 客户预览前的多维度审核
Before a client preview the question asked is always some version of "check and
verify, no loose ends". One reviewer misses things a panel catches, so fan out
across independent lenses and then verify each finding against the source before
keeping it, because unverified findings waste more time than they save.
references/audit.mdscripts/design-audit.mjs客户预览前的核心问题始终是“检查并验证,确保没有遗漏”。单个评审者会遗漏问题,而多个独立视角能覆盖更多内容,之后需验证每个发现是否符合原始需求,因为未经验证的发现会浪费更多时间。
references/audit.mdscripts/design-audit.mjs7. Ship, then check the live URL
7. 上线,然后检查真实URL
Deployed is not done. Load the real domain on a real phone viewport and confirm
the thing you fixed is actually fixed in production.
部署完成不代表工作结束。在真实手机视口下加载真实域名,确认修复的问题在生产环境中确实已解决。
Cost gate for paid generation
付费生成的成本关卡
If a step spends money (image or video generation, paid APIs), print the plan
and the expected cost and get a yes first. A costly render that came back wrong
after a long planning phase is a specific, remembered failure in this house. The
skill enforces budget caps and is the right front door.
generate若某个步骤需要付费(图片或视频生成、付费API),需打印计划和预期成本并获得批准后再执行。在长时间规划阶段后生成的昂贵渲染图不符合需求,是工作室记忆深刻的失败案例。技能负责执行预算限制,是合适的入口。
generateHouse hard rules
工作室硬性规则
- No em dashes or en dashes anywhere, in code, copy, comments, or commit messages. Use commas, colons, periods, or parentheses.
- Mobile navigation is consistent on every page, and stale pages get deleted rather than left to rot.
- Self-host fonts as and preload the two that matter. Both live sites do this; it is why they feel instant.
woff2 - Thai and Latin should share one face where possible. The Assembly uses
, which carries both and saves a whole fallback problem.
LINE Seed Sans TH - Accessibility is not optional polish: real contrast, real focus states, real alt text. Sample rendered pixels rather than trusting the token values.
- 任何地方都不得使用破折号或短破折号,包括代码、文案、注释或提交信息。使用逗号、冒号、句号或括号替代。
- 移动端导航在所有页面保持一致,过时页面需删除而非保留。
- 以格式自托管字体,并预加载最重要的两种字体。两个示例网站均采用此做法,这也是它们加载迅速的原因。
woff2 - 泰语和拉丁语应尽可能共用一种字体。The Assembly使用,它同时支持两种文字体系,避免了回退字体问题。
LINE Seed Sans TH - 无障碍不是可选的优化:需保证真实对比度、真实焦点状态、真实替代文本。需采样渲染像素,而非仅依赖Token值。
What this skill bundles
本技能包含的工具
bash
undefinedbash
undefinedThe review gate: every route, three widths, with the numbers that matter.
评审关卡:检查所有路由、三种尺寸,以及关键指标。
node ~/.claude/skills/prom-design/scripts/shots.mjs
--base http://127.0.0.1:8788 --routes / /gallery /contact --out ./shots
--base http://127.0.0.1:8788 --routes / /gallery /contact --out ./shots
node ~/.claude/skills/prom-design/scripts/shots.mjs
--base http://127.0.0.1:8788 --routes / /gallery /contact --out ./shots
--base http://127.0.0.1:8788 --routes / /gallery /contact --out ./shots
reports HTTP status, scroll height in screens, horizontal overflow, broken
报告HTTP状态、屏幕高度的滚动长度、横向溢出、图片损坏、渲染的破折号、控制台错误。然后查看生成的PNG截图。
images, rendered em/en dashes, console errors. Then LOOK at the PNGs.
生成六Agent审核流程,填入你的路径和预设信息。
Generate the six-agent audit, with your paths and priors filled in.
—
node ~/.claude/skills/prom-design/scripts/design-audit.mjs
--repo /path/to/source --base http://127.0.0.1:8788
--routes / /events --tests 271 --out ./audit-workflow.js
--repo /path/to/source --base http://127.0.0.1:8788
--routes / /events --tests 271 --out ./audit-workflow.js
node ~/.claude/skills/prom-design/scripts/design-audit.mjs
--repo /path/to/source --base http://127.0.0.1:8788
--routes / /events --tests 271 --out ./audit-workflow.js
--repo /path/to/source --base http://127.0.0.1:8788
--routes / /events --tests 271 --out ./audit-workflow.js
then run it with your agent's workflow orchestrator if it has one, or hand
若你的Agent有工作流编排器,可直接运行;否则依次将生成的提示交给子Agent执行,两种方式都可行。
each generated prompt to a subagent in sequence; both work.
可复制的设计合同模板。
A copyable design contract to start from.
—
cp ~/.claude/skills/prom-design/assets/tokens-starter.css ./src/tokens.css
cp ~/.claude/skills/prom-design/assets/tokens-starter.css ./src/tokens.css
Installed as a plugin instead of a plain skill? The files live in the plugin
若作为插件而非普通技能安装?文件存放在插件缓存中;可通过以下命令定位:
cache; locate them once with:
find ~/.claude/plugins -path 'prom-design' -name shots.mjs
find ~/.claude/plugins -path 'prom-design' -name shots.mjs
—
`shots.mjs` finds `playwright-core` in the npx cache on its own, so there is
usually nothing to install. If it cannot, it tells you the one command to run.
`shots.mjs`会自动在npx缓存中查找`playwright-core`,通常无需额外安装。若找不到,它会提示你需要运行的命令。Where to go next
下一步指南
Read the reference that matches the step you are on. They are written to be read
one at a time, not all at once.
| File | Read it when |
|---|---|
| Deciding what "good" means here, or self-checking before a review |
| Writing the design contract or starting a new project |
| The register is instrument. Density budget, footer nav, compaction, the delight components, 21st.dev |
| Building a specific component |
| Any page with photographs. Choosing images with the right context, free sources, labelling, performance |
| Writing any user-facing words |
| Standing up the app skeleton or the asset pipeline |
| Preparing for a customer preview |
The Blender 360 virtual tour is a different toolchain entirely and is not
part of this skill.
阅读与当前步骤匹配的参考文件。这些文件设计为逐个阅读,而非一次性全部读完。
| 文件 | 阅读时机 |
|---|---|
| 决定本风格的“优质”标准,或评审前自我检查 |
| 撰写设计合同或启动新项目 |
| 选择工具感风格时。密度预算、底部导航、内容压缩、愉悦组件、21st.dev |
| 开发特定组件时 |
| 任何包含照片的页面。选择场景适配的图片、免费资源、标注规则、性能优化 |
| 撰写任何面向用户的文案时 |
| 搭建应用骨架或资源处理流程时 |
| 准备客户预览时 |
Blender 360虚拟全景漫游属于完全独立的工具链,不属于本技能范畴。