Skip to content
Development
Command

/extract

Refactoring pass — extracts repeated Tailwind class combos and markup into components, and lifts magic values into design tokens. Use when the codebase has obvious duplication, hardcoded hex values or pixel sizes, or when the user says "clean this up" / "extract components" /

From plugin
ui-craft
44525 skills2 agents25 commands1 hook
+1
> /plugin marketplace add educlopez/ui-craft
> /plugin install ui-craft@ui-craft

Command definition

extract.md
description: Refactoring pass — extracts repeated Tailwind class combos and markup into components, and lifts magic values into design tokens. Use when the codebase has obvious duplication, hardcoded hex values or pixel sizes, or when the user says "clean this up" / "extract components" / "tokenize styles".
argument-hint: "[file or component path]"

Extract reusable pieces from `$ARGUMENTS`. Load the `ui-craft` skill.

**Step 1 — Scan the target for extraction candidates:**

  • **Repeated Tailwind class combos** — any class string that appears ≥3 times becomes a component (or a `cva`/`tv` variant if the project uses one — check first).
  • **Magic values** — hex colors, pixel sizes, shadow definitions, font sizes, z-index values appearing in literal form. Lift into CSS variables or `theme.extend`.
  • **Repeated markup** — blocks that differ only by text/props collapse into a single component with props.

**Step 2 — Match the project's conventions, don't impose new ones:**

  • **Naming** — look at neighboring components. PascalCase file? kebab-case file? Named export vs default export? Match exactly.
  • **Location** — check `components/ui/`, `ui/`, `primitives/`, `src/components/` before creating a new directory. Reuse.
  • **Tokens** — respect existing CSS variable naming (`--color-*`, `--space-*`, `--font-*`, `--radius-*`). Don't introduce a parallel system.

**Step 3 — Anti-Slop Test on every new component** (from SKILL.md):

  • Component name must be domain-specific, not generic. `MetricCard` / `PricingTier` / `InviteRow` beats `Card` / `Box` / `Item`.
  • If the component is generic ("a card with a title and description"), ask yourself whether it should instead be an inline composition — premature abstraction is worse than repetition.

**Step 4 — Update every call-site.** No half-migrations.

**Knob-agnostic** — DRY is not tunable.

**References to read**: `references/layout.md` (composition patterns), `references/typography.md` and `references/color.md` (token naming), plus the project's existing component library (scan before writing).

**Output**: 1. The new component file(s) + any token additions. 2. A table showing every call-site update:

| File | Before | After | | --- | --- | --- |

3. A one-line delta: "Extracted N components, M tokens. Call-sites updated: X."

**Next step:** `/tokens` — lift the values you just centralized into the token spine (rung 2).

Read more
@educlopez
Ships withui-craft

Ship designer-grade UI by default. A design engineering system for AI coding agents — install it as a skill or as the ui-craft CLI, and your agent starts designing like it has taste. Ask for a dashboard, get one you'd put in production.

44530 skills2 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
445
Star history of educlopez/ui-craft on GitHub, a chart by star-history.com

Other commands on ui-craft.

adapt

adapt

Command

Responsive layout pass covering breakpoints, touch targets, safe areas, and fluid type. Use when the UI has layout or touch…

@educlopez@educlopezInstall Command
animate

animate

Command

Motion design pass — adds purposeful animations or removes excessive ones, respecting MOTION_INTENSITY and the project's…

@educlopez@educlopezInstall Command
audit

audit

Command

Technical UI audit — a11y, performance, responsive. Produces a prioritized findings table.

@educlopez@educlopezInstall Command
bolder

bolder

Command

Amplify personality — raises layout variance and motion, strengthens typography and one signature detail, without slop. Use when…

@educlopez@educlopezInstall Command
brief

brief

Command

Write or update the project's durable design brief at .ui-craft/brief.md.

@educlopez@educlopezInstall Command
clarify

clarify

Command

UX copy review across buttons, errors, empty states, and form hints — critiques by default, applies only on request. Use when…

@educlopez@educlopezInstall Command

More commands from other plugins.

build
Auto-invoked

build

Command

Implement tasks incrementally — build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.

@addyosmani@addyosmaniInstall Command