PluginBench
Skill
Pass
Audit score 90

baseline-ui

ibelick/ui-skills

Enforce UI baseline constraints to prevent AI-generated interface slop.

What is baseline-ui?

Baseline UI applies an opinionated set of constraints for spacing, hierarchy, typography, and layout to clean up and polish UI code. Use it when your interface needs a fast consistency pass or to prevent common AI generation mistakes.

  • Review files against 40+ UI constraints and report violations with fixes
  • Enforce Tailwind CSS defaults, accessible component primitives, and safe animation practices
  • Validate typography (text-balance, text-pretty, tabular-nums), layout (z-index scale, size utilities), and interaction patterns
  • Prevent common mistakes: animating layout properties, blocking paste, using h-screen, mixing component systems
  • Ensure destructive actions use AlertDialog and errors appear contextually
  • Check performance: no large blur animations, no misused will-change, render logic over useEffect

How to install baseline-ui

npx skills add https://github.com/ibelick/ui-skills --skill baseline-ui
Prerequisites
  • Tailwind CSS configured in your project
  • Optional: motion/react (framer-motion) for animations
  • Optional: Base UI, React Aria, or Radix for accessible primitives
  • Optional: clsx + tailwind-merge for cn utility
Claude Code
Cursor
Windsurf
Cline

How to use baseline-ui

  1. 1.Run `/baseline-ui` to apply constraints to all UI work in the conversation
  2. 2.Run `/baseline-ui <file>` to review a specific file and get violation reports with fixes
  3. 3.Read the violations output: exact line/snippet, why it matters, and concrete code suggestion
  4. 4.Apply the suggested fixes to your UI code
  5. 5.Reference the constraints in future prompts to maintain consistency

Use cases

Good for
  • Polish AI-generated UI code before shipping to catch spacing and hierarchy issues
  • Enforce consistent component and animation patterns across a codebase
  • Review a specific file for constraint violations and get concrete code fixes
  • Establish baseline UI standards in a conversation to guide all subsequent interface work
  • Audit existing interfaces for accessibility and performance anti-patterns
Who it's for
  • Frontend developers using AI coding assistants (Claude Code, Cursor)
  • Design systems teams enforcing UI consistency rules
  • Teams building with Tailwind CSS and accessible component libraries
  • Developers who want to prevent common AI-generated UI mistakes

baseline-ui FAQ

What happens if my project already uses custom values or a different component system?

The skill respects existing project patterns—constraints say SHOULD or NEVER based on best practices, but custom values and explicitly requested deviations override defaults.

Does this replace design review or accessibility testing?

No. Baseline UI catches common mistakes and enforces consistency rules, but it doesn't replace manual accessibility audits, user testing, or design review.

Can I use this with component libraries other than Base UI, React Aria, or Radix?

Yes, but the skill prefers those three for new primitives. It will validate that you don't mix primitive systems within the same interaction surface.

What if I need animation that violates these rules?

Explicitly request the exception in your prompt (e.g., 'animate background color on hover'). The skill will note the override and apply it.

Does this work with non-Tailwind CSS projects?

The skill is optimized for Tailwind CSS. Some constraints (like z-index scale, size utilities, text-balance) are Tailwind-specific, but the component and interaction rules apply broadly.

Full instructions (SKILL.md)

Source of truth, from ibelick/ui-skills.


name: baseline-ui description: Quickly deslop UI code by fixing spacing, hierarchy, typography, and small layout issues. Use when the interface needs a fast cleanup or polish pass.

Baseline UI

Enforces an opinionated UI baseline to prevent AI-generated interface slop.

How to use

  • /baseline-ui Apply these constraints to any UI work in this conversation.

  • /baseline-ui <file> Review the file against all constraints below and output:

    • violations (quote the exact line/snippet)
    • why it matters (1 short sentence)
    • a concrete fix (code-level suggestion)

Stack

  • MUST use Tailwind CSS defaults unless custom values already exist or are explicitly requested
  • MUST use motion/react (formerly framer-motion) when JavaScript animation is required
  • SHOULD use tw-animate-css for entrance and micro-animations in Tailwind CSS
  • MUST use cn utility (clsx + tailwind-merge) for class logic

Components

  • MUST use accessible component primitives for anything with keyboard or focus behavior (Base UI, React Aria, Radix)
  • MUST use the project’s existing component primitives first
  • NEVER mix primitive systems within the same interaction surface
  • SHOULD prefer Base UI for new primitives if compatible with the stack
  • MUST add an aria-label to icon-only buttons
  • NEVER rebuild keyboard or focus behavior by hand unless explicitly requested

Interaction

  • MUST use an AlertDialog for destructive or irreversible actions
  • SHOULD use structural skeletons for loading states
  • NEVER use h-screen, use h-dvh
  • MUST respect safe-area-inset for fixed elements
  • MUST show errors next to where the action happens
  • NEVER block paste in input or textarea elements

Animation

  • NEVER add animation unless it is explicitly requested
  • MUST animate only compositor props (transform, opacity)
  • NEVER animate layout properties (width, height, top, left, margin, padding)
  • SHOULD avoid animating paint properties (background, color) except for small, local UI (text, icons)
  • SHOULD use ease-out on entrance
  • NEVER exceed 200ms for interaction feedback
  • MUST pause looping animations when off-screen
  • SHOULD respect prefers-reduced-motion
  • NEVER introduce custom easing curves unless explicitly requested
  • SHOULD avoid animating large images or full-screen surfaces

Typography

  • MUST use text-balance for headings and text-pretty for body/paragraphs
  • MUST use tabular-nums for data
  • SHOULD use truncate or line-clamp for dense UI
  • NEVER modify letter-spacing (tracking-*) unless explicitly requested

Layout

  • MUST use a fixed z-index scale (no arbitrary z-*)
  • SHOULD use size-* for square elements instead of w-* + h-*

Performance

  • NEVER animate large blur() or backdrop-filter surfaces
  • NEVER apply will-change outside an active animation
  • NEVER use useEffect for anything that can be expressed as render logic

Design

  • NEVER use gradients unless explicitly requested
  • NEVER use purple or multicolor gradients
  • NEVER use glow effects as primary affordances
  • SHOULD use Tailwind CSS default shadow scale unless explicitly requested
  • MUST give empty states one clear next action
  • SHOULD limit accent color usage to one per view
  • SHOULD use existing theme or Tailwind CSS color tokens before introducing new ones