‹ 首页

ss-review

@bitjaru · 收录于 1 周前 · 上游提交 昨天

Review UI code for design system compliance, accessibility, and best practices

适合你,如果你需要确保UI代码遵循设计系统并具备无障碍性

/ 下载安装
ss-review.skill双击,或拖进 Claude 桌面版 / Cowork,即完成安装↓ .skill↓ .zip
用别的 agent?下载 .zip 解压,把文件夹放进它的技能目录
Claude Code~/.claude/skills/(项目级 .claude/skills/)
Codex CLI~/.codex/skills/
Cursor自动读取上面两处目录
其他工具见其文档的「skills」目录;两个下载是同一份文件,只是名字不同
/ 通过 npx 安装 校验哈希
npx oh-my-skill add bitjaru/styleseed/ss-review
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- bitjaru/styleseed/ss-review
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify bitjaru/styleseed/ss-review
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
779GitHub stars
~1K上下文体积 · 单文件
镜像托管

怎么用

技能原文 SKILL.md作者撰写 · MIT · 7af957e

UI Design Review

When NOT to use
  • For accessibility-only issues → use /ss-a11y
  • For Nielsen UX heuristics → use /ss-audit
  • For a quick automated check → use /ss-lint
  • For non-UI code (data fetching, business rules)

Review the file: $ARGUMENTS

Checklist
1. Design Token Compliance
  • [ ] No hardcoded hex colors (use semantic tokens: text-foreground, bg-brand, etc.)
  • [ ] No hardcoded px spacing in Tailwind (use p-6 not p-[24px])
  • [ ] Shadows use CSS variables (shadow-[var(--shadow-card)])
  • [ ] Border radius follows the scale (rounded-md, rounded-lg, rounded-2xl)
2. Component Conventions
  • [ ] Uses data-slot attribute
  • [ ] Uses cn() for className merging
  • [ ] Props typed with React.ComponentProps<>
  • [ ] Supports className prop override
  • [ ] Named export (not default export for components)
  • [ ] No wrapper components that only add a className
3. Accessibility (a11y)
  • [ ] Touch targets >= 44x44px for interactive elements
  • [ ] focus-visible styles on all interactive elements
  • [ ] Proper aria-* attributes where needed
  • [ ] Color contrast meets WCAG AA (4.5:1 for text, 3:1 for large text)
  • [ ] Animations respect prefers-reduced-motion
  • [ ] Images have alt text
  • [ ] Form inputs have associated labels
4. Mobile Best Practices
  • [ ] No horizontal overflow
  • [ ] Touch-friendly spacing between interactive elements
  • [ ] Safe area insets handled for notched devices
  • [ ] Text sizes >= 12px for readability
  • [ ] Scrollable containers have -webkit-overflow-scrolling: touch
5. Performance
  • [ ] No unnecessary re-renders (stable references, memoization where needed)
  • [ ] Images are lazy-loaded
  • [ ] Heavy components are code-split
6. Typography
  • [ ] Uses the Pretendard/Inter font stack
  • [ ] Font sizes from the 14-step scale (10-48px, see CLAUDE.md)
  • [ ] Proper font weights (400, 500, 600, 700)
  • [ ] Display text (36-48px): leading-none + tracking-[-0.02em]
  • [ ] Heading text (18-24px): leading-snug + tracking-[-0.01em]
  • [ ] Body text (14-17px): leading-normal (no custom tracking)
  • [ ] Caption uppercase (10-13px): tracking-[0.05em] or tracking-wide
  • [ ] No line-height: 1.5 on display/heading text (too loose)
7. Spacing Consistency
  • [ ] All spacing values are multiples of 6px (p-1.5, p-3, p-6, etc.)
  • [ ] No arbitrary spacing (p-5=20px, gap-3.5=14px are violations)
  • [ ] Uses size-* shorthand instead of w-* h-*
  • [ ] Uses ms-*/me-* instead of ml-*/mr-* (logical properties)
  • [ ] Motion transitions use design tokens (duration-[var(--duration-fast)])
8. Coherence (VISUAL-CRAFT.md §C0 — the "one choice per axis" laws)
The biggest reason a UI reads as "AI-generated" isn't ugly parts — it's mixed parts. Check that each axis below uses ONE value system-wide; flag a mix as a real issue, not a nitpick.
  • [ ] One radius personality — sharp (0-4px) OR soft (8-12px) OR pill, applied to every card/button/input/modal. No mixing (e.g. a rounded-none panel with rounded-full buttons).
  • [ ] Colors from the locked palette mode (read STYLESEED.md first) — default: one accent for interactive emphasis (+ semantic red/green/amber only), not two+ competing accents; a locked brand-palette/+categorical mode is legal, hues in no mode are not. No lock = single-accent at full strictness.
  • [ ] No emoji as UI icons (🚗🧺⭐ as list/nav/status/category markers) — they inject many uncontrolled hues; use one line-icon set in currentColor.
  • [ ] Status color = severity, not decoration — a normal/OK/"보통" state is neutral grey (not colored); color marks only the minority of rows that need attention; same value → same color.
  • [ ] No decorative hues — favorite stars, category dots, avatars use the accent or grey, not a new color each.
  • [ ] One shadow language — same light direction, same scale/tint; not some black + some tinted, some up-lit + some down-lit.
  • [ ] One icon family / fill mode / stroke weight across the file.
  • [ ] Nested-radius law — an element inside a rounded container uses inner = outer − padding, not the same radius (which bulges).
  • [ ] Consistent control heights — buttons, inputs, selects share a height set (e.g. 40px).
  • [ ] Errors/states never rely on color alone (icon + text too).
Output Format

Provide:

  1. Score: Pass / Needs Improvement / Fail
  2. Issues: List each violation with file:line reference
  3. Fixes: Concrete code changes for each issue
按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。