visual-language
Use when choosing or reviewing colors, typography, spacing, component styling, or motion/animation for a user surface — establishing consistent visual semantics, bootstrapping a project design system (tokens, scales, recorded meanings), judging whether an animation is justified, or auditing a UI for visual drift and inconsistency.
- License 许可
- MIT
- 最近更新
- 2026-11-10
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- visual-language
- metadata
- { "owner": "tze", "status": "active", "authors": [ "tze", "Claude Fable 5" ], "last_reviewed": "2026-07-19" }
- description
- Use when choosing or reviewing colors, typography, spacing, component styling, or motion/animation for a user surface — establishing consistent visual semantics, bootstrapping a project design system (tokens, scales, recorded meanings), judging whether an animation is justified, or auditing a UI for visual drift and inconsistency.
02 资源文件 2
- 参考文档evo-skill-manifest.yaml12 B
- 参考文档workflow.md2.2 KB
03 SKILL.md 正文
Visual Language
Color, type, spacing, and motion. The bar: clean and consistent — color is welcome, but every visual choice carries one meaning everywhere, and motion exists only to communicate.
Use This Skill When
- Picking a palette or assigning colors to states, categories, or actions
- Auditing a UI for visual drift: same concept styled differently, or same style meaning different things
- Judging whether an animation or transition should exist
- Setting typography, spacing, radius, or elevation conventions
- Bootstrapping a design system for a project that has none
Example trigger phrasings: "pick colors for this", "is this consistent", "is this animation necessary", "this UI looks messy", "set up design tokens", "set up a design system".
Do Not Use This Skill For
- What content appears and at what density — information-design
- Contrast ratios and non-color signaling as compliance concerns — accessibility (this skill still forbids inaccessible choices)
- Chart/series palette construction —
/dataviz, under these semantics; a chart hue that contradicts the app's color meanings is this skill's finding
Reviewable Expectations
Color
- One hue, one meaning, everywhere: red = destructive/error, green = success/healthy, yellow/orange = caution, one accent hue = interactive. A hue reused with a second meaning is a defect.
- Adding a color = adding a meaning. Name it and record it (tokens, style guide, or a comment block if that's all the project has). Unnamed one-off hex values are drift.
- Color is welcome and encouraged where it encodes information (status, category, severity) — but never as the only channel; pair with icon, label, or position (accessibility).
- Neutrals carry structure and layout; saturated hues appear only on interactive affordances and status/severity/category marks. A saturated hue on a decorative or non-semantic background is a finding.
- Use tokens/variables, not literals, so light/dark themes stay one mapping away.
Consistency
- One spacing scale, one type scale (≤2 families, few sizes), one radius/shadow vocabulary per product. New values join the scale or don't ship.
- The same control looks and behaves identically everywhere: a primary button on one screen is a primary button on all screens. Same for empty states, errors, and loading treatments.
- Novelty needs a reason: a deviation from the established pattern is either justified in review or reverted.
Motion
- Animation exists only to communicate: where something came from or went (spatial continuity), that state changed (a toggle, a completed async action), or where attention is needed. Decoration, delight-loops, parallax, and animated page furniture are defects.
- Budget: transitions ~100–200ms, ease-out; never longer on a path the user hits repeatedly. An animation the user waits through twice a minute is a latency bug (interaction-speed).
- Motion never blocks input. Reduced-motion compliance is owned by accessibility; design every animation so its instant-state fallback loses no information.
- When in doubt, no animation. The absence of an animation is never a defect; an unjustified one always is.
Establishing a Design System
When design-bar's locate step finds no design system, don't apply defaults silently forever — establish the minimum viable system so the next change has something to cite. In order, stopping where the project's maturity stops:
- Token file — palette as named variables with semantic names
(
--color-danger, not a bare hex), one spacing scale, one type scale, radius/shadow vocabulary. Place it where the stack already looks (tokens.css,theme.ts, Tailwind config). Seed from the de facto values in use, not from scratch — record reality first, then correct drift. - Meanings — each color's single meaning recorded next to its token; a token without a stated meaning is future drift.
- Doctrine, if the project keeps docs — settled decisions (theme
commitment, accessibility floor, motion policy) in a DESIGN.md or
about/doc. - Spec form, if the project is spec-governed — capture the language as a
normative design-language spec through the project's spec workflow
(
/th-projectsfeature-request); tokens then implement the spec, and later changes to the language go through spec gates, not ad-hoc edits.
Keep it small: a system nobody exceeds is better than a complete one nobody reads. Every expectation in this skill applies to the system being authored.
Review Method
- Inventory: list every color, font size, spacing value, and animation in scope (grep styles/tokens where possible — cite file:line).
- For each color: state its meaning; flag hues with two meanings or meanings with two hues.
- For each animation: state what it communicates; no answer → remove.
- Diff same-concept components across screens; flag divergence.
No built UI yet? Apply the same expectations to the spec's described styling; evidence cites the spec section or screen region.
Findings cite the element and expectation violated; conflicts with density or accessibility resolve via design-bar biases.
04 同仓库更多 Skills
user-run
Use when a step needs privileges this session lacks (docker, sudo, another user's checkout or secrets, host access) and the owner must run it as tze. Writes a reviewable /home/orca/.tmp/<slug>/run.sh that impersonates tze (USER_TO_IMPERSONATE overrides), tees timestamped logs plus latest.log and collects artifacts there; Claude presents it with a risk and time brief, then continues from the logs. Triggers: "I'll run it for you", "permission denied on docker.sock", "needs sudo", "sudo: a password is required", "run as tze", "/user-run".
requesting-code-review
Use when completing tasks, implementing major features, or before merging to verify work meets requirements
receiving-code-review
Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation
finishing-a-development-branch
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup
executing-plans
Use when you have a written implementation plan to execute in a separate session with review checkpoints
dispatching-parallel-agents
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies