Frontend Builder
Build accessible, production-grade UI components that match your design system.
Installation
- Make sure Claude is on your device and in your terminal.
Skills load from
~/.claude/skills/when Claude Code starts up β so you need it on your machine first. If you don't have it yet, install it once with the command below, then runclaudein any terminal to verify.One-time setupnpm i -g @anthropic-ai/claude-codeAlready have it? Skip ahead.
- Paste into Claude Code or into your terminal.
This copies the whole skill folder into
~/.claude/skills/frontend-oyadotai/β the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.Faster alternative (instruction-only skills)
Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates β they won't be downloaded and the skill will fail when it tries to load them.
Quick install (SKILL.md only)Sign up to copy - Restart Claude Code.
Quit and reopen Claude Code (or any other agent that loads from
~/.claude/skills/). New skills are picked up on startup. - Just ask Claude.
Skills auto-activate when your request matches the skill's description β no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the βWhat this skill doesβ section above.
Prefer to read the source first? Open on GitHub.
When Claude uses it
Use when building or changing anything in the frontend: a page, a component, a layout, styling, copy on screen. Produces distinctive, production-grade UI that fits this project's existing design, covers every state, is accessible, and is checked in a browser before it is called done.
What this skill does
Frontend
Build interfaces that look designed for this product, work in every state, and are verified by looking at them.
1. Read before drawing
- Find the project's design system before inventing one: tokens (CSS variables, Tailwind config, theme file), the component library, how an existing page of the same kind is built. Grep for the pattern you are about to write; reuse it. Two ways to draw a button is one too many.
- Read the repository instructions (
CLAUDE.mdorAGENTS.md) for who the users are. A dashboard for engineers wants density; a landing page wants one idea per screen.
2. Commit to a direction
When there is no system yet, or the ask is a new surface, choose a clear aesthetic direction and execute it with precision β refined minimalism and bold maximalism both work; intentionality is the point. Never the generic AI look:
- choose typography for the product; preserve established app fonts and use native system fonts where appropriate; introduce a display face only when the content benefits from one
- no purple-to-blue gradient on white, no evenly spread timid palette: one dominant colour, sharp accents, and colour reserved for meaning
- no card grid because it is the default; compose for the content β asymmetry, overlap, generous space or deliberate density
- colours, spacing, radii and type sizes are tokens (CSS variables), never literals scattered through components
3. Every state, not the happy one
For each surface, design and build: empty, loading, partial, error (with what to do next), permission denied, offline or stale, and far more data than expected (long names, 10,000 rows). A blank area with no reason is a bug. Skeletons match the final layout so nothing jumps.
4. Accessible by default
Semantic elements first (button, a, label, nav, headings in order). Everything works from
the keyboard with visible focus. Text contrast at least 4.5:1 in light and dark. Images have alt
text; icon-only buttons have labels. Honour prefers-reduced-motion and prefers-color-scheme.
5. Motion and performance
Motion carries information β an arrival, a change, a relationship β or it goes. Prefer CSS
transitions; animate transform and opacity only. Nothing animates between a person and the
thing they are waiting for. Images are sized and lazy below the fold; fonts are subset and
font-display: swap; no layout shift when data lands.
6. Responsive
Check the supported minimum width and a comfortable desktop width with no accidental horizontal scroll. For responsive websites, check 375, 768 and 1440px. Use at least 44px touch targets on touch interfaces; keep desktop controls consistent with the existing application.
7. Look at it
Read the oya-browser skill and use Oya Browser exclusively. If Oya is unavailable,
report the blocker without substituting another browser or harness. Run the dev server and open
the page in an owned Oya tab. Take a screenshot at each width and in each theme and look
at it; read the console for errors and warnings. Check the empty and error states by forcing
them. A UI change is not done until you have seen it render β the type checker cannot see a
button that is white on white.
Report
Say which direction you chose and why, the states you built, what you verified by looking (with the widths and themes), and anything you could not check.
Related skills
Logo Creator
SamurAIGPT
Generate minimalist, scalable vector logos using geometric shapes and negative space.
Design Audit
thedotmack
Score a design against Dieter Rams' principles and create a plan to improve it.
De-Vibe
ucsandman
Remove AI-generated patterns and add handcrafted polish before shipping.
Design Critique
plugin87
Review and argue against current design work to catch flaws and weaknesses.