baseline-ui — Claude Code skill: what it does, how to install
Cleans up AI-generated UI code by fixing layout issues, typography, spacing, and animations. Useful for a fast frontend polish pass before merging.
npx skills add ibelick/ui-skills --skill baseline-ui -a claude-codeWhat baseline-ui does
The skill enforces strict styling standards for Tailwind CSS and React projects. It disallows multicolor gradients and arbitrary z-index values. Instead of h-screen, the agent injects h-dvh. For square elements, it replaces combined width and height classes with size-*.
Running /baseline-ui <file> inspects a specific file. The agent quotes the exact line and provides ready-to-paste code. Calling /baseline-ui without arguments applies these constraints across the entire conversation.
When animations are required, the skill enforces motion/react. For keyboard interactions, it expects accessible primitives from Base UI, React Aria, or Radix. Mixing different primitive systems within the same interactive surface is forbidden.
What it helps with
- clean up AI-generated styling habits before merging code
- audit a UI file for forbidden CSS classes and layout animations
- replace arbitrary
z-indexandh-screenwith standard Tailwind classes - enforce accessible component primitives instead of hand-rolled keyboard handling
Example prompts for the agent
- /baseline-ui
- /baseline-ui src/components/Modal.tsx
- Audit this form layout with baseline-ui rules
How to install baseline-ui
1Skills CLI (Vercel)
npx skills add ibelick/ui-skills --skill baseline-ui -a claude-code2Manually: put the files in place
~/.claude/skills/baseline-ui/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/baseline-ui/
1Skills CLI (Vercel)
npx skills add ibelick/ui-skills --skill baseline-ui -a codex2Manually: put the files in place
.agents/skills/baseline-ui/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add ibelick/ui-skills --skill baseline-ui -a cursor2Manually: put the files in place
.cursor/skills/baseline-ui/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install ibelick/ui-skills baseline-ui2Manually: put the files in place
.github/skills/baseline-ui/SKILL.md1Skills CLI (Vercel)
npx skills add ibelick/ui-skills --skill baseline-ui -a gemini-cli2Platform CLI
gemini skills install https://github.com/ibelick/ui-skills --path skills/baseline-uiManually: put the files in place
.devin/skills/baseline-ui/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add ibelick/ui-skills --skill baseline-ui -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set5
The whole set →Similar
Questions about baseline-ui
How to install baseline-ui in Claude Code?
Run npx skills add ibelick/ui-skills --skill baseline-ui -a claude-code. The skill file will be created at ~/.claude/skills/baseline-ui/SKILL.md.
What does baseline-ui do?
The skill enforces consistent Tailwind CSS standards, blocks layout-heavy animations, and forbids multi-color gradients. It also improves typography, accessibility, and interactive states.
Which UI libraries does baseline-ui enforce?
It requires Tailwind CSS alongside the cn utility. It expects motion/react for JavaScript animations and accessible component primitives like Base UI, React Aria, or Radix.
Source text
SKILL.md · MIT
--- 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`](https://base-ui.com/react/components) 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
© ibelick · MIT · ibelick/ui-skills