Agent skill

Better UI

by iurysza in iurysza/module-graph

Design engineering principles for making interfaces feel polished.

MITAuto-check passedFrontend & Design

Install Better UI

skills CLI
$ npx skills add iurysza/module-graph --skill better-ui -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install iurysza/module-graph better-ui --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/iurysza/module-graph.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/better-ui .claude/skills/better-ui && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
better-ui
GitHub stars
420
Used in
1 other repo
Token cost
~2.1k tokens
SKILL.md length
1,035 words
Files
8
Skills in repo
16
Repo updated
First seen
Licence
MIT

At a glance

Design engineering principles for making interfaces feel polished.

  • Works in 12 steps: Concentric Border Radius → Optical Over Geometric Alignment → Shadows for Elevation, Borders for… → …
  • Building UI components
  • SKILL.md covers Quick Reference, Core Principles, Common Mistakes and Reporting
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Better UI is an agent skill from iurysza/module-graph. Design engineering principles for making interfaces feel polished. Use when building UI components, reviewing frontend code, implementing animations, hover states, shadows, borders, micro-interactions, enter/exit animations, choosing or reviewing icons, or any visual detail work. Triggers on UI polish, design details, "make it feel better", "feels off", stagger animations, theme switch transitions, border radius, optical alignment, image outlines, box shadows, icons, icon stroke weight, icon states, motion…

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files (for example `animations.md`, `enter-exit.md` and `icon-transitions.md`).

It sits in Frontend & Design, covering Web animation and motion and UI design. The repository describes itself as: A Gradle Plugin for visualizing your project's structure, powered by mermaidjs. The licence is MIT.

When your agent uses it

  • Building UI components
  • Reviewing frontend code
  • Implementing animations
  • Micro-interactions

Example prompts

  • “make it feel better”
  • “feels off”
  • “/better-ui”

Workflow steps

12 steps, taken from the step headings in SKILL.md.

  1. Concentric Border Radius
  2. Optical Over Geometric Alignment
  3. Shadows for Elevation, Borders for Structure
  4. Interruptible Animations
  5. Split and Stagger Enter Animations
  6. Subtle Exit Animations
  7. Contextual Icon Animations
  8. Image Outlines
  9. Scale on Press
  10. Skip Animation on Page Load
  11. Suppress Transitions on Theme Switch
  12. Transition Only What Changes

What it can do on your machine

Read from SKILL.md and the folder at commit 15b0135. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Better UI loads about 2.1k tokens when it runs. Until then it costs about 133 tokens; SKILL.md has 1,035 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~133
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from iurysza/module-graph at commit 15b0135, republished under its MIT licence (© iurysza). 1,035 words, ~2,076 tokens.

Download SKILL.mdSave it as .claude/skills/better-ui/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
better-ui
description
Design engineering principles for making interfaces feel polished. Use when building UI components, reviewing frontend code, implementing animations, hover states, shadows, borders, micro-interactions, enter/exit animations, choosing or reviewing icons, or any visual detail work. Triggers on UI polish, design details, "make it feel better", "feels off", stagger animations, theme switch transitions, border radius, optical alignment, image outlines, box shadows, icons, icon stroke weight, icon states, motion restraint.
metadata.category
visual-media

Details that make interfaces feel better

Great interfaces rarely come from a single thing. It's usually a collection of small details that compound into a great experience. Apply these principles when building or reviewing UI code.

When reviewing, slow the interface down: replay motion at 10% speed in the browser's Animations panel and walk every state: hover, focus, active, loading, empty. What feels off at 10% speed is what's subtly wrong at full speed.

Preserve the project's component library, tokens, and density. Match its established motion language except where a principle below prescribes an exact interaction pattern.

Typography (text wrapping, font rendering, tabular numbers, spacing) is covered by the better-typography skill; use that for anything text-related. Accessibility (hit areas, focus states, keyboard support, ARIA, reduced motion) is covered by the better-accessibility skill. Layout structure (grouping, spacing between sections, breakpoints, spatial RTL) is covered by the better-layout skill.

Quick Reference

CategoryWhen to Use
SurfacesBorder radius, optical alignment, shadows, image outlines
AnimationsInterruptible transitions, scale on press, skipping animation on page load, theme switching, motion restraint
Enter & ExitStaged entrances, stagger timing, exit transitions
Icon TransitionsCross-fading an icon on state change, with and without a motion library
IconsIcon stroke weight, states via currentColor, outline vs fill, sizing, RTL flipping
PerformanceTransition specificity, will-change usage
Review Output FormatSeverity scale, findings table, verification, verdict

Core Principles

1. Concentric Border Radius

Outer radius = inner radius + padding. Mismatched radii on nested elements is the most common thing that makes interfaces feel off.

2. Optical Over Geometric Alignment

When geometric centering looks off, align optically. Buttons with icons, play triangles, and asymmetric icons all need manual adjustment.

3. Shadows for Elevation, Borders for Structure

For buttons, cards, and containers whose border exists only to create depth, prefer layered transparent box-shadow values. Keep borders that communicate structure or state: dividers, layout separators, and selected or focus states.

4. Interruptible Animations

Use CSS transitions for interactive state changes: they can be interrupted mid-animation. Reserve keyframes for staged sequences that run once.

5. Split and Stagger Enter Animations

For an infrequent staged entrance where sequence helps communicate hierarchy, break content into semantic chunks and stagger them by ~100ms instead of animating one container. Do not stagger routine, high-frequency interactions. Stagger and exit recipes.

6. Subtle Exit Animations

Use a small fixed translateY instead of full height. Exits should be softer than enters. Use ease-out for both enter and exit transitions.

7. Contextual Icon Animations

Animate icons with opacity, scale, and blur instead of toggling visibility. Use exactly these values: scale from 0.25 to 1, opacity from 0 to 1, blur from 4px to 0px. If the project has motion or framer-motion in package.json, match that package's import path (or the established nearby imports when both exist) and use transition: { type: "spring", duration: 0.3, bounce: 0 }; bounce must always be 0. If no motion library is installed, keep both icons in the DOM (one absolute-positioned) and cross-fade with CSS transitions using cubic-bezier(0.2, 0, 0, 1); this gives both enter and exit animations without any dependency. Both recipes.

8. Image Outlines

Add a subtle 1px outline with low opacity to images for consistent depth. The color must be pure black in light mode (oklch(0 0 0 / 0.1)) and pure white in dark mode (oklch(1 0 0 / 0.1)), never a near-black like slate, zinc, or any tinted neutral. A tinted outline picks up the surface color underneath it and reads as dirt on the image edge.

9. Scale on Press

A subtle scale(0.96) on click gives buttons tactile feedback. Always use 0.96; anything below 0.95 feels exaggerated. Add a static prop to disable it when motion would be distracting. Recipes for CSS, Tailwind, and Motion.

Show full SKILL.md (418 more words)Show less
10. Skip Animation on Page Load

Use initial={false} on AnimatePresence to prevent enter animations on first render. Verify it doesn't break intentional entrance animations.

11. Suppress Transitions on Theme Switch

A theme flip changes color, background, border, and shadow on nearly every element at once, so every transition on those properties fires together and the switch smears instead of snapping. Inject *,*::before,*::after{transition:none !important}, force a reflow, then remove it on the next frame. Recipe.

12. Transition Only What Changes

Always specify exact properties: transition-property: scale, opacity. Tailwind's transition-transform covers transform, translate, scale, rotate.

13. Use will-change Sparingly

Only for transform, opacity, filter, the properties the GPU can composite. Never use will-change: all. Only add when you notice first-frame stutter.

14. Match Icon Stroke to Text Weight

An icon next to text carries the text's optical weight: 1.5px stroke beside regular (400) text, 2px beside semibold (600). One stroke weight per icon set; never mix libraries on one surface.

15. One SVG, Recolored per State

Icons use currentColor and get their states (hover, selected, disabled) from CSS color and opacity, never from separate assets. Outline variant is the default; fill variant marks the active state.

16. Motion Restraint

No custom animation on high-frequency interactions: the attention cost repeats on every trigger. Motion is never the only feedback channel; every animated state change also needs a static cue (color, icon, label).

Common Mistakes

MistakeFix
Same border radius on closely nested parent and childCalculate outerRadius = innerRadius + padding
Icons look off-centerAdjust optically with padding or fix SVG directly
Border used only to fake elevationUse layered box-shadow with transparency; keep structural and state borders
Jarring staged entrance or contextual exitStagger infrequent entrances and keep context-preserving exits subtle
Stateful icon or toggle animates its default state on page loadAdd initial={false} to that AnimatePresence; preserve intentional page entrances
Theme toggle crossfades the whole pageDisable transitions for the swap, force a reflow, restore on the next frame
transition: all on elementsSpecify exact properties
First-frame animation stutterAdd will-change: transform (sparingly)
Hairline icon beside bold textMatch the stroke width to the text weight
Separate icon assets per stateOne currentColor SVG, states via CSS
Filled icons everywhereOutline as default, fill only for the active state
Entrance animation on every hover or keystrokeInstant feedback or ≤150ms opacity/color transition

Reporting

A standalone UI-polish review is finished when every confirmed finding is reported in the format in review-output.md, with verification and a verdict. Under better-interface, its format governs instead.

© iurysza, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 7 other files in .agents/skills/better-ui of iurysza/module-graph.

  • SKILL.md
  • animations.md
  • enter-exit.md
  • icon-transitions.md
  • icons.md
  • performance.md
  • review-output.md
  • surfaces.md

Open the folder on GitHubat commit 15b0135

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in iurysza/module-graph, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Better UI next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Better UI compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Better UI this skilliurysza/module-graph4201 repos~2.1kAutomated safety check: PassMIT
Make Interfaces Feel Bettersamuelclay/NewsBlur7.6k10 repos~1.5kAutomated safety check: PassMIT
Baseline UIibelick/ui-skills9.5k8 repos~855Automated safety check: PassMIT
Apple Liquid Glass Designnaplesblue/apple-design-skill268—~2.3kAutomated safety check: PassMIT
Better UItrycompai/crm11k—~2.4kAutomated safety check: PassMIT
UI UX Pro MaxOhh-889/skyroc7956 repos~14kAutomated safety check: PassMIT

Similar skills

  • Make Interfaces Feel Better

    samuelclay/NewsBlur

    Design engineering principles for making interfaces feel polished.

    7.6k GitHub starsUsed in 10 repos~1.5k tokens
    Frontend & DesignAuto-check passed
  • Baseline UI

    ibelick/ui-skills

    Applies a fixed set of UI rules for stack, components, interaction, animation, typography and layout, or reviews a file against them with concrete fixes.

    9.5k GitHub starsUsed in 8 repos~855 tokens
    Frontend & DesignAuto-check passed
  • Apple Liquid Glass Design

    naplesblue/apple-design-skill

    Sets design rules for web interfaces that should feel like current Apple design: unified surfaces, restrained type and glass only where layers overlap.

    268 GitHub stars~2.3k tokensUpdated 2 mo ago
    Frontend & DesignAuto-check passed
  • Better UI

    trycompai/crm

    Design engineering principles for making interfaces feel polished.

    11k GitHub stars~2.4k tokensUpdated 28 days ago
    Frontend & DesignAuto-check passed
  • UI UX Pro Max

    Ohh-889/skyroc

    UI/UX design intelligence for web, mobile, and desktop. An agent skill from Ohh-889/skyroc.

    795 GitHub starsUsed in 6 repos~14k tokens
    Frontend & DesignAuto-check passed
  • Antigravity Design Expert

    sickn33/agentic-awesome-skills

    Core UI/UX engineering skill for building highly interactive, spatial, weightless, and glassmorphism-based web interfaces using GSAP and 3D CSS.

    47k GitHub starsUsed in 2 repos~868 tokens
    Frontend & DesignAuto-check passed

More from iurysza/module-graph

All 16 skills in this repo
  • Audio Transcribe

    iurysza/module-graph

    Transcribes local audio into Markdown with Gemini 3.5 Transcribe, including speaker labels and provider timestamps.

    420 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Chatgpt Imagegen

    iurysza/module-graph

    Generates or edits raster images through OpenAI's Image API.

    420 GitHub stars~726 tokensUpdated today
    Auto-check passed
  • Gemini Tts

    iurysza/module-graph

    Generates spoken MP3 audio from text or Markdown with Gemini TTS.

    420 GitHub stars~968 tokensUpdated today
    Auto-check passed
  • Skill Cleaner

    iurysza/module-graph

    Audits installed Agent Skills for duplicates, unused candidates, loaded roots, oversized descriptions, and prompt cost.

    420 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Brainstorming

    iurysza/module-graph

    Explores and validates a feature, component, workflow, or behavior change before implementation.

    420 GitHub stars~723 tokensUpdated today
    Auto-check passed
  • Domain Modeling

    iurysza/module-graph

    Maintains project domain language, context maps, diagrams, and architectural decisions under ai-artifacts.

    420 GitHub stars~1.2k tokensUpdated today
    Auto-check passed

Questions about Better UI

What does Better UI do?

Design engineering principles for making interfaces feel polished. Better UI is an agent skill from iurysza/module-graph. Design engineering principles for making interfaces feel polished.

When should I use Better UI?

Better UI fits situations like: building UI components; reviewing frontend code; implementing animations; micro-interactions.

How do I install Better UI in Claude Code?

Run `npx skills add iurysza/module-graph --skill better-ui -a claude-code`. Or copy the skill folder (.agents/skills/better-ui in iurysza/module-graph) into .claude/skills/better-ui in your project. Claude Code loads it when a task matches its description.

How do I install Better UI in Codex?

Run `npx skills add iurysza/module-graph --skill better-ui -a codex`. Or copy the skill folder (.agents/skills/better-ui in iurysza/module-graph) into .agents/skills/better-ui in your project. Codex loads it when a task matches its description.

Can I use Better UI in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add iurysza/module-graph --skill better-ui -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/better-ui, .gemini/skills/better-ui, .github/skills/better-ui and .opencode/skills/better-ui in your project.

What does Better UI need to run?

SKILL.md names no scripts, command-line tools or credentials: Better UI is instructions for the agent only.

Does Better UI access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Better UI safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Better UI use?

Better UI is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Better UI use?

About 2.1k tokens (SKILL.md is roughly 8.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Better UI?

Skills that share tags, products or a category with Better UI: Make Interfaces Feel Better (samuelclay/NewsBlur, 7.6k stars), Baseline UI (ibelick/ui-skills, 9.5k stars), Apple Liquid Glass Design (naplesblue/apple-design-skill, 268 stars) and Better UI (trycompai/crm, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Better UI?

iurysza (a GitHub user) maintains it in iurysza/module-graph, which has 420 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on October 8, 2026.

Source: iurysza/module-graph on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.