Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/lingxling-baseline-ui/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 54% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 18% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 60% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 37% | 0% |
Enforces an opinionated UI baseline to prevent AI-generated interface slop.
/baseline-uiApply these constraints to any UI work in this conversation.
/baseline-ui <file>Review the file against all constraints below and output:
motion/react (formerly framer-motion) when JavaScript animation is requiredtw-animate-css for entrance and micro-animations in Tailwind CSScn utility (clsx + tailwind-merge) for class logicBase UI, React Aria, Radix)Base UI for new primitives if compatible with the stackaria-label to icon-only buttonsAlertDialog for destructive or irreversible actionsh-screen, use h-dvhsafe-area-inset for fixed elementsinput or textarea elementstransform, opacity)width, height, top, left, margin, padding)background, color) except for small, local UI (text, icons)ease-out on entrance200ms for interaction feedbackprefers-reduced-motiontext-balance for headings and text-pretty for body/paragraphstabular-nums for datatruncate or line-clamp for dense UIletter-spacing (tracking-*) unless explicitly requestedz-index scale (no arbitrary z-*)size-* for square elements instead of w-* + h-*blur() or backdrop-filter surfaceswill-change outside an active animationuseEffect for anything that can be expressed as render logic| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→pass | 9,877 | 24,005 | +143% | 1 | 1 | 0% | 1,652 | 1,902 | +15% | 0 | 0 | — |
case-02 | fail→fail | 3,938 | 6,613 | +68% | 1 | 1 | 0% | 608 | 1,949 | +221% | 0 | 0 | — |
case-03 | fail→pass | 10,823 | 15,902 | +47% | 1 | 1 | 0% | 2,000 | 3,089 | +54% | 0 | 0 | — |
case-04 | fail→fail | 19,016 | 53,689 | +182% | 1 | 1 | 0% | 2,912 | 9,094 | +212% | 0 | 0 | — |
case-05 | pass→pass | 21,958 | 20,838 | -5% | 1 | 1 | 0% | 3,682 | 5,545 | +51% | 0 | 0 | — |
case-06 | fail→pass | 19,239 | 18,724 | -3% | 1 | 1 | 0% | 4,022 | 4,733 | +18% | 0 | 0 | — |
case-07 | fail→pass | 27,222 | 15,088 | -45% | 1 | 1 | 0% | 3,963 | 3,912 | -1% | 0 | 0 | — |
case-08 | fail→pass | 8,909 | 7,855 | -12% | 1 | 1 | 0% | 1,319 | 2,115 | +60% | 0 | 0 | — |
case-09 | pass→pass | 12,855 | 10,654 | -17% | 1 | 1 | 0% | 1,537 | 2,879 | +87% | 0 | 0 | — |
case-10 | pass→pass | 18,076 | 26,485 | +47% | 1 | 1 | 0% | 3,024 | 4,636 | +53% | 0 | 0 | — |
case-11 | fail→pass | 13,088 | 16,568 | +27% | 1 | 1 | 0% | 1,959 | 2,682 | +37% | 0 | 0 | — |
case-12 | pass→pass | 20,718 | 19,944 | -4% | 1 | 1 | 0% | 3,364 | 4,860 | +44% | 0 | 0 | — |
case-13 | fail→pass | 16,287 | 10,769 | -34% | 1 | 1 | 0% | 3,227 | 2,597 | -20% | 0 | 0 | — |
case-14 | fail→pass | 28,623 | 36,819 | +29% | 1 | 1 | 0% | 6,076 | 5,797 | -5% | 0 | 0 | — |
case-15 | pass→pass | 25,693 | 11,654 | -55% | 1 | 1 | 0% | 3,224 | 2,807 | -13% | 0 | 0 | — |
case-16 | pass→pass | 23,037 | 26,936 | +17% | 1 | 1 | 0% | 3,152 | 5,104 | +62% | 0 | 0 | — |
case-17 | fail→fail | 21,304 | 133,322 | +526% | 1 | 1 | 0% | 3,029 | 4,135 | +37% | 0 | 0 | — |
case-18 | pass→pass | 29,051 | 14,130 | -51% | 1 | 1 | 0% | 5,814 | 3,454 | -41% | 0 | 0 | — |
case-19 | fail→fail | 28,925 | 34,668 | +20% | 1 | 1 | 0% | 6,014 | 6,586 | +10% | 0 | 0 | — |
case-20 | fail→pass | 23,613 | 26,846 | +14% | 1 | 1 | 0% | 3,614 | 5,000 | +38% | 0 | 0 | — |
case-21 | pass→pass | 13,529 | 12,594 | -7% | 1 | 1 | 0% | 2,400 | 2,990 | +25% | 0 | 0 | — |
case-22 | pass→pass | 20,040 | 16,320 | -19% | 1 | 1 | 0% | 2,952 | 4,014 | +36% | 0 | 0 | — |
case-23 | pass→pass | 8,232 | 12,932 | +57% | 1 | 1 | 0% | 1,521 | 2,811 | +85% | 0 | 0 | — |
case-24 | pass→pass | 15,224 | 15,216 | -0% | 1 | 1 | 0% | 3,052 | 3,140 | +3% | 0 | 0 | — |
case-25 | fail→pass | 12,797 | 5,598 | -56% | 1 | 1 | 0% | 1,776 | 1,947 | +10% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted. The headline lift of +36 percentage points is the difference between those two pass rates over the 25 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.