Validates animation durations, enforces typography scale, checks component accessibility, and prevents layout anti-patterns in Tailwind CSS projects. Use when building UI components, reviewing CSS utilities, styling React views, or enforcing design consistency.
Add this skill
npx mdskills install ibelick/baseline-uiComprehensive, opinionated UI constraints with clear review workflow and stack-specific rules.
1---2name: baseline-ui3description: Validates animation durations, enforces typography scale, checks component accessibility, and prevents layout anti-patterns in Tailwind CSS projects. Use when building UI components, reviewing CSS utilities, styling React views, or enforcing design consistency.4---56# Baseline UI78Enforces an opinionated UI baseline to prevent AI-generated interface slop.910## How to use1112- `/baseline-ui`13 Apply these constraints to any UI work in this conversation.1415- `/baseline-ui <file>`16 Review the file against all constraints below and output:17 - violations (quote the exact line/snippet)18 - why it matters (1 short sentence)19 - a concrete fix (code-level suggestion)2021## Stack2223- MUST use Tailwind CSS defaults unless custom values already exist or are explicitly requested24- MUST use `motion/react` (formerly `framer-motion`) when JavaScript animation is required25- SHOULD use `tw-animate-css` for entrance and micro-animations in Tailwind CSS26- MUST use `cn` utility (`clsx` + `tailwind-merge`) for class logic2728## Components2930- MUST use accessible component primitives for anything with keyboard or focus behavior (`Base UI`, `React Aria`, `Radix`)31- MUST use the project’s existing component primitives first32- NEVER mix primitive systems within the same interaction surface33- SHOULD prefer [`Base UI`](https://base-ui.com/react/components) for new primitives if compatible with the stack34- MUST add an `aria-label` to icon-only buttons35- NEVER rebuild keyboard or focus behavior by hand unless explicitly requested3637## Interaction3839- MUST use an `AlertDialog` for destructive or irreversible actions40- SHOULD use structural skeletons for loading states41- NEVER use `h-screen`, use `h-dvh`42- MUST respect `safe-area-inset` for fixed elements43- MUST show errors next to where the action happens44- NEVER block paste in `input` or `textarea` elements4546## Animation4748- NEVER add animation unless it is explicitly requested49- MUST animate only compositor props (`transform`, `opacity`)50- NEVER animate layout properties (`width`, `height`, `top`, `left`, `margin`, `padding`)51- SHOULD avoid animating paint properties (`background`, `color`) except for small, local UI (text, icons)52- SHOULD use `ease-out` on entrance53- NEVER exceed `200ms` for interaction feedback54- MUST pause looping animations when off-screen55- SHOULD respect `prefers-reduced-motion`56- NEVER introduce custom easing curves unless explicitly requested57- SHOULD avoid animating large images or full-screen surfaces5859## Typography6061- MUST use `text-balance` for headings and `text-pretty` for body/paragraphs62- MUST use `tabular-nums` for data63- SHOULD use `truncate` or `line-clamp` for dense UI64- NEVER modify `letter-spacing` (`tracking-*`) unless explicitly requested6566## Layout6768- MUST use a fixed `z-index` scale (no arbitrary `z-*`)69- SHOULD use `size-*` for square elements instead of `w-*` + `h-*`7071## Performance7273- NEVER animate large `blur()` or `backdrop-filter` surfaces74- NEVER apply `will-change` outside an active animation75- NEVER use `useEffect` for anything that can be expressed as render logic7677## Design7879- NEVER use gradients unless explicitly requested80- NEVER use purple or multicolor gradients81- NEVER use glow effects as primary affordances82- SHOULD use Tailwind CSS default shadow scale unless explicitly requested83- MUST give empty states one clear next action84- SHOULD limit accent color usage to one per view85- SHOULD use existing theme or Tailwind CSS color tokens before introducing new ones86
Full transparency — inspect the skill content before installing.