Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

shadcn-component-reviewshadcn/ui component 审查

Agent Skill

shadcn-component-review 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

3,195

周安装

128

GitHub Stars

4

下载量

1,034
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:shadcn-component-review(shadcn/ui component 审查)
来源仓库:https://github.com/mattbx/shadcn-skills
仓库路径:skills/shadcn-component-review
安装命令:
npx skills add https://github.com/mattbx/shadcn-skills --skill shadcn-component-review
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/mattbx/shadcn-skills --skill shadcn-component-review

简介

shadcn-component-review 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。

  • 适用于 shadcn/ui 组件的功能性或安全性审查,支持项目质量控制。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装,需结合原始 README 确认具体用法。
  • 安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写操作。
  • 可结合来源仓库和 SKILL.md 继续核验功能细节,确保与项目需求匹配。

SKILL.md

shadcn Component Review

Systematic audit process for ensuring custom components align with shadcn design patterns, the project's chosen visual style, and modern composition conventions.

How This Complements the Official shadcn Skill

The official shadcn skill (shipped with CLI v4) enforces rules at *generation time* — telling agents "use gap-* not space-y-*, use semantic colors, use size-* for equal width/height," and so on. That's correct behavior when writing new code.

This skill is for *post-hoc audit* — reviewing components that already exist (written by Claude, by a teammate, by a previous iteration) against those same rules *plus* the visual-style-specific patterns that vary by theme (Vega spacing differs from Maia differs from Mira). When the two skills both apply, the official handles forward-generation and this one handles retrospective review. They don't conflict — they check the same rules from different directions.

Core Principle

Reviews catch drift. Even with the official skill enforcing rules during generation, components drift over time: someone copies from an older project, an LLM suggests space-y-4 and nobody catches it, a component was built before the project standardized on Maia, or a contributor uses Tailwind's color scale instead of semantic tokens. This skill finds those issues systematically.

When to Trigger

Proactive triggers (activate after components are written):

  • Claude just finished writing or modifying a custom component
  • User says "I built this" and pastes a component
  • User asks to add styling to an existing element
  • User is iterating on a layout

Explicit triggers (user directly requests review):

  • "Review this component"
  • "Check my spacing"
  • "Is this shadcn-idiomatic?"
  • "Does this follow the patterns?"
  • "Audit this layout"

Before Reviewing: Project Context

Before applying theme-specific patterns, understand the project. If the shadcn CLI is available, run:

npx shadcn@latest info --json

This returns: framework (Next.js / Vite / etc.), Tailwind version, base library (radix or base), installed components, icon library, resolved file paths, and the current style. Use this output to:

  • Match spacing/shape expectations to the project's visual style
  • Apply the correct composition pattern for the primitive base (Radix vs Base UI — APIs differ)
  • Know which components are already installed vs suggesting installs

If the CLI isn't available, infer from components.json directly, or ask the user: "Which visual style is this project using — Vega, Nova, Maia, Lyra, or Mira?"

Review Workflow

Step 1: Structure & Composition

Check the component is structured using shadcn conventions.

data-slot attributes. Every semantic element within a component should carry a data-slot attribute naming its role. This enables styling hooks, testing selectors, and consistent theming. Confirmed current pattern in shadcn source (e.g. <button data-slot="button" data-variant={variant} data-size={size}>).

Composition, not modification. Custom components should compose primitives from @/components/ui/*, not fork and modify them. If a primitive needs different behavior, wrap it; don't edit the source.

Primitive base awareness. If the project uses Radix (--base radix), expect asChild and Slot patterns, Radix data-state attributes. If Base UI (--base base), expect different composition APIs. Reference the current docs for the installed primitive: npx shadcn@latest docs <component>.

Step 2: Spacing Audit

Spacing is where most drift happens. Check against the project's visual style — see references/theme-styles.md for per-style patterns.

Universal rules (apply to all themes):

  • Use gap-* in flex/grid containers, never space-y-* / space-x-* or margins
  • Use Tailwind's standard spacing scale (multiples of 4px: 1, 1.5, 2, 4, 6, 8 — avoid 3, 5, 7)
  • Use size-* when width and height are equal (size-10 not w-10 h-10)
  • Responsive spacing uses gap-X md:gap-Y pattern

Style-specific rules: density and radius expectations differ by style. Reference references/theme-styles.md for the specifics.

Step 3: Design Tokens

Verify semantic tokens only — no hardcoded Tailwind color scale values.

CategoryUseAvoid
Text colortext-foreground, text-muted-foreground, text-primarytext-neutral-500, text-gray-900, text-slate-700
Backgroundbg-background, bg-card, bg-muted, bg-accentbg-gray-100, bg-white, bg-neutral-50
Borderborder-border, border-inputborder-gray-200, border-neutral-300
Border radiusrounded-md, rounded-lg (uses --radius)rounded-[20px], rounded-[8px]

Quick grep to flag hardcoded colors:

grep -rE '\b(neutral|gray|slate|zinc|stone)-[0-9]{2,3}\b' <path>

Step 4: Composability

Check the component can be reused without modification.

  • Takes a className prop merged via cn()
  • Exposes variants via CVA where variation is likely
  • Doesn't hardcode content; accepts children or content-shaped props
  • Isn't tightly coupled to a specific data model or route

Step 5: Responsive & Accessibility

  • Mobile-first baseline (< 768px design), progressive enhancement via md:, lg:
  • Touch targets minimum ~44px on interactive elements
  • min-w-0 on flex children to prevent overflow
  • Semantic HTML (buttons are <button>, not styled <div>)
  • Focus-visible states present (focus-visible:ring-*, focus-visible:border-*)
  • Motion respects motion-safe: / prefers-reduced-motion

See references/review-checklist.md for the expanded checklist.

Foundational Patterns

CVA (Class Variance Authority)

Variants are declared via cva(), typed via VariantProps:

import { cva, type VariantProps } from "class-variance-authority"

const buttonVariants = cva(
  "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-all",
  {
    variants: {
      variant: {
        default: "bg-primary text-primary-foreground hover:bg-primary/90",
        outline: "border bg-background hover:bg-accent",
      },
      size: {
        default: "h-9 px-4 py-2",
        sm: "h-8 px-3 text-xs",
      },
    },
    defaultVariants: { variant: "default", size: "default" },
  }
)

type ButtonProps = React.ComponentProps<"button"> & VariantProps<typeof buttonVariants>

Extend with new variants; don't modify the base layer.

cn() Utility

Combines clsx (conditionals) + tailwind-merge (conflict resolution). Always use for className composition:

import { cn } from "@/lib/utils"

<div className={cn(
  "base-classes",
  isActive && "active-classes",
  className // consumer overrides win
)} />

Theme-Aware Styling

shadcn themes use CSS variables (OKLCH-based since 2025). Key variables: --radius, --background, --foreground, --primary, --secondary, --accent, --muted, --card, --popover, --destructive, --border, --input, --ring.

Use Tailwind's semantic class names that map to these (rounded-md--radius, bg-primary--primary) rather than hardcoded values.

Animation

Brief conventions:

  • Hover/focus/active: Tailwind transitions, 150ms
  • Color/state transitions: 200ms
  • Enter/exit of DOM elements: Tailwind animate-in/animate-out with Radix data-state, or Motion's AnimatePresence
  • Always respect motion-safe: for transform-based animations

See references/animation-patterns.md for the full guide.

Visual Styles Reference

shadcn ships five official visual styles, configurable via npx shadcn create or via preset codes (CLI v4):

StyleDensityShapeCanonical use
VegaStandardClassicDefault shadcn look
NovaCompactStandardDense UIs, data-heavy apps
MaiaGenerousSoft/rounded (often pill)Consumer apps, friendly interfaces
LyraStandardBoxy/sharpDeveloper tools, mono fonts
MiraDenseCompactAdmin dashboards, power users

Each style affects spacing scale, border radius, and component dimensions. See references/theme-styles.md for per-style spacing patterns and common mistakes.

Presets (new in CLI v4) pack style + theme + fonts + icons + radius into a single short code applied via npx shadcn@latest apply --preset <code>. When reviewing, check the project's preset if configured — it's the source of truth for many of these conventions.

Scope: What This Skill Does NOT Enforce

Be explicit about the difference between shadcn canon and project-specific conventions. This skill reviews against shadcn canon. Project-specific conventions (e.g. "our team always uses gap-4 between form fields") belong in the project's own style guide or a project-specific skill, not this one.

When in doubt, cite the source: "shadcn components use data-slot — see the button source at ui.shadcn.com/docs/components/button" vs "your project consistently uses gap-4 between form fields."

Output Format

A good review:

  1. Summarizes what was reviewed in one line
  2. Flags issues grouped by category (structure, spacing, tokens, composability, responsive/a11y)
  3. Severity-marks each issue: ✅ passes, ⚠️ suggestion, ❌ blocking
  4. Shows the fix inline where the fix is short and obvious; references the relevant pattern file where the fix is nuanced
  5. Offers to apply fixes if the user wants

Keep it scannable. Don't belabor passing items — a single ✅ summary line for what's good is enough.

Example Review Output

## Review: `<PageHeader />`

**Structure** ✅ `data-slot` present, composition clean
**Spacing** ⚠️ Uses `space-y-4` in flex container — swap to `gap-4`
**Tokens** ❌ `text-neutral-500` on line 12 — use `text-muted-foreground`
**Composability** ✅ Accepts className, variant props via CVA
**Responsive/a11y** ⚠️ Missing `min-w-0` on flex child (may overflow on narrow screens)

Fixes:
- Line 8: `space-y-4` → `gap-4`
- Line 12: `text-neutral-500` → `text-muted-foreground`
- Line 18: Add `min-w-0` to wrapping `<div>`

Want me to apply these?

Reference Files

Resources

  • Official shadcn docs: ui.shadcn.com
  • Component reference (live): npx shadcn@latest docs <component> — returns current doc and example URLs
  • Project context: npx shadcn@latest info --json
  • Theme creator: ui.shadcn.com/create
  • TweakCN (interactive theme editor): tweakcn.com

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

38.4%
按下载量换算397

Claude

29.47%
按下载量换算305

Cursor

17.24%
按下载量换算178

Gemini CLI

10.4%
按下载量换算108

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills