视觉画布设计
canvas-design
基于设计原则创作静态视觉作品,用于海报与品牌图形。
suede-design【文档与办公】Suede AI design skill for making an interface feel intentional instead of templated: design tokens, color strategy, OKLCH ramps, type scale, fluid type, visual hierarchy, dark mode, spacing, component laws, motion, and source-to-implementation visual QA. Use when asked to design, restyle, polish, or audit a screen; pick colors or fonts; define, fix, …
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this skill to make Suede interfaces feel intentional, premium, legible, and alive without drifting into generic AI output. It covers product UI, brand surfaces, landing pages, dashboards, component systems, responsive polish, and visual QA.
Core principle: strip the logo and the surface must still be unmistakably this product, and render the result before claiming it works.
docs/assets/suede-ai-logo-transparent.png from JasonColapietro/suede-creator-skills (SHA-256 83a7ee0317e4debe2e7b076c20ba067feb76a587f9e829dc6310ae4be4b44dfa). Never redraw, trace, approximate, typeset, recolor, distort, or generate a replacement Suede S. suede-skill-icon.png is a Passport icon, not the Suede brand mark. If the approved file is unavailable or its checksum differs, stop and request it; omit the mark rather than improvise.npx playwright screenshot <url> --viewport-size=1280,900 desktop.png (swap the viewport for mobile/App Store dimensions above; one-time setup: npx playwright install chromium), or your environment's built-in preview/screenshot tool if one is available.Before any design work, read the surface context:
PRODUCT.md: users, brand, tone, anti-references, strategic principlesDESIGN.md: color tokens, type scale, component inventory, spacingAGENTS.md, AI_HANDOFF.md, or README.md: agent guidance and surface contextIf PRODUCT.md or DESIGN.md is missing on a major surface, note it and proceed with available context. Offer to create them after completing the task.
Then state this preflight in the working update:
SUEDE_DESIGN_PREFLIGHT: target=<repo-or-folder> surface=<route-or-url> register=<brand|product> context=<pass|partial|none> design_system=<loaded|not_found> git=<pass|skipped:reason> render=<pass|pending|skipped:reason>
Also apply the shared no-missed quality gates owned by suede-workflow-skills (its no-missed-quality-gates reference) when the work touches copy, design-system, visual QA, Suedify, visibility, or public launch quality. (Requires suede-workflow-skills installed from this pack. If not installed, run the Copy Gate, Visual QA Gate, SEO/AEO/AI EO Gate, Design System Gate, and Launch Gate checklists using the criteria in the Implementation Workflow, Ship Gate, and Visual QA Report sections of this skill.)
Choose the smallest path that fits the request.
visual-qa-report.md in the project root.Before major or important Suede design work, write a compact delivery contract:
Do not call work done because the code changed. Call it done only when the done signal has been checked or the remaining gap is named.
Use suede-agent-teams for major design work when several lanes must move at
once, such as copy plus layout plus asset plus implementation plus QA. Use
suede-code-review before the ship gate when design work changes shared
components, routing, auth, payments, analytics, release config, or published-statement
truth. Skip both for a small visual or copy fix that can be inspected, patched,
rendered, and verified directly.
Before a new surface, significant redesign, reusable component family, or design-system pass, lock the design contract before implementation:
Review the result against copy quality, visuals, color, typography, spacing, and experience states. If the work is purely backend or a narrow one-element fix, document only the relevant contract items instead of forcing a full spec.
AGENTS.md, CLAUDE.md, AI_HANDOFF.md, README.md,
PRODUCT.md, DESIGN.md, or task docs when present.The numeric rules (spacing, type scale, color, contrast, density, motion, state)
are in references/design-laws.md. Read it whenever you are writing or reviewing
actual styles. You do not need it to route a request or scope the work.
When a build needs a piece the local system lacks, a base primitive, an
animated set-piece, or an AI-chat surface: pull it from the vetted registries
in references/ui-component-sources.md and run that file's adoption checklist
(local first, retokenize, motion law, license tier, render proof) before the
import lands. Read it when importing a component; auditing or restyling
existing UI does not need it.
For any major Suede surface, reusable app shell, launch system, or important component family, produce these artifacts at the smallest useful fidelity:
DESIGN.md or design-tokens.json.Extract a design-system issue when a token, component, spacing pattern, color, type treatment, or state pattern repeats at least three times or controls a high-visibility surface. Classify drift root cause as token missing, token ignored, component gap, content pressure, platform convention, or legacy debt.
For broad design-system audits, score:
Color consistency: /10
Typography hierarchy: /10
Spacing rhythm: /10
Component consistency: /10
Responsive behavior: /10
Dark/light behavior: /10
Motion restraint: /10
Accessibility: /10
Information density: /10
Polish: /10
Total: /100
Below 70/100 the system is failing: fix the two lowest dimensions before styling new features on that surface. Any dimension at 4/10 or lower is a P1 finding in the audit report.
The heads below are the non-negotiables, and this list is the authoritative one.
Cite this section rather than restating a ban somewhere else. The full
gallery (every banned pattern, the scope each ban applies to, the BEFORE/AFTER
replacement, and the narrow allowed exceptions) is in
references/scoped-bans.md. Read it when a design choice looks like it needs an
exception, or when reviewing whether one was legitimately taken.
-webkit-background-clip: text rainbow or metallic headlines. Replace with one high-contrast headline at full weight and an accent word in a solid color.backdrop-filter: blur() cards floating over a gradient. Replace with an opaque surface at the correct elevation token plus a 1px border for definition.[NEEDS REAL DATA] flag, or (c) a structural element that does not depend on a number.The first five allow scoped exceptions for source fidelity, platform convention, accessibility, a confirmed brand system, or a direct user request. Name why the exception is earned. The last one allows none.
For any new surface or significant redesign, commit to a clear aesthetic direction before writing code. Name it explicitly.
Tonal spectrum. Choose one and execute it with precision:
Bold maximalism and refined minimalism both work. The failure mode is neither: a design with no committed direction reads as generic. Pick one tone and execute it fully.
Unforgettable factor: every major surface should have one move that earns memory. For Suede that might be a rights ledger, a waveform proof panel, or a chain-of-title timeline. For other companies, it should be one subject-native device: something that only makes sense for THEIR product. Name it before implementation.
AI slop check: before committing to an aesthetic, run two reflex tests:
Theme sentence: name the physical scene concretely enough that it forces the design answer. "A studio engineer reviewing a rights dispute at 2am on a secondary monitor" forces different choices than "a user looking at data." If the sentence doesn't force the answer, it's not concrete enough. Add detail until it does. Dark vs. light is never a default. Not dark because tools look cool dark, not light to be safe.
Background and atmosphere: gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, grain overlays, and decorative borders are all legitimate tools when they serve the aesthetic. The line between one of these as a tool and one of these as a substitute for art direction is drawn in Scoped Bans And Exceptions.
npx playwright screenshot <url> --viewport-size=1280,900 desktop.png and --viewport-size=390,844 mobile.png, or your environment's built-in preview/screenshot tool if one
is available.git diff --check when files changed. Verify live URLs or APIs before
claiming public behavior.If any of these thoughts appear, stop and run the check you were about to skip:
For launch pages, app shells, public marketing surfaces, App Store assets, or high-visibility dashboard work, end with a short ship gate:
Surface:
Done signal:
Evidence:
Blockers:
Accepted caveats:
Next action:
Status: ship | ship-with-caveats | hold
Use hold when a core path is broken, claims are false, screenshots do not
match implementation, accessibility blocks a primary action, or the live route
cannot be verified. Use ship-with-caveats only when the caveat is explicit,
non-critical, and acceptable for the launch stage.
hold halts the work. Do not route around it, do not downgrade it to
ship-with-caveats, and do not keep patching. Emit this and wait:
HALT: <the single blocker, named with file, route, or missing evidence>
Options:
1. <option>
2. <option>
3. <option, if a third is real>
Awaiting: which option to take
Give 2-4 real options, not every option. The same applies to a frozen polish loop: when the same failure repeats a third time, halt in this format rather than opening a fourth attempt.
When comparing a source visual target against an implementation, save
visual-qa-report.md with:
final result: passed or final result: blockedCompare source and implementation in the same visual pass, not from memory.
Render the implementation with npx playwright screenshot <url> --viewport-size=1280,900 impl.png (matching viewport to the source target), or
your environment's built-in preview/screenshot tool if one is available. Check
typography, spacing/layout, colors/tokens, image and asset fidelity,
logos/icons, copy/content, loading/empty/error/hover/focus/active states,
responsiveness, accessibility, and motion where relevant.
Use final result: blocked when the source or rendered artifact is missing for
a required comparison, or when actionable P0/P1/P2 layout, typography, color,
asset, copy, accessibility, responsive, interaction-state, or source-fidelity
issues remain. Use passed only when no actionable P0/P1/P2 findings remain.
Findings lead, rationale follows. Name the file and line. For builds, state what changed and show the render evidence. Never name internal process steps (preflight, task router) in user-visible output.
Do not validate the existing design, and do not summarize back what is already there. Report the lowest-scoring dimensions and the specific failing element, or state that no actionable finding exists. A score does not soften because the user made the thing, and "it already looks good" is not a finding.