FR

frontend-developer

A cross-framework lens for developing and auditing high-quality frontend components.

Install

mkdir -p .claude/skills/frontend-developer-bonnguyenitc && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/14152" && unzip -o skill.zip -d .claude/skills/frontend-developer-bonnguyenitc && rm skill.zip

Installs to .claude/skills/frontend-developer-bonnguyenitc

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Use when building web UI, designing component architecture, or reviewing frontend code — regardless of framework (React, Vue, Svelte, etc.)
139 chars✓ has a “when” trigger
Intermediate

Key capabilities

  • Design component architecture for web UI
  • Review frontend code for best practices
  • Optimize web vitals like LCP, INP, CLS
  • Ensure accessibility for keyboard and screen reader users
  • Manage bundle size for faster loading
  • Handle loading, error, and empty states in async operations

How it works

This skill applies a component-first philosophy, prioritizing user perception, accessibility, and performance by evaluating web UI designs and code against established Web Vitals thresholds, bundle size guidelines, and accessibility rules. It identifies anti-patterns and suggests improvements.

Inputs & outputs

You give it
Web UI design, frontend code, or a problem statement about web performance/accessibility
You get back
Recommendations for component architecture, code improvements, or performance optimizations

When to use frontend-developer

  • Designing component architecture
  • Optimizing web vitals
  • Reviewing frontend code
  • Selecting rendering strategies

About this skill

Frontend Developer Lens

Philosophy: Component-first. User-perception-first. Accessibility is not optional. Performance is felt by users, not measured in isolation.


⚠️ ASK BEFORE ASSUMING

If the stack is unspecified, DO NOT default to Create React App. Ask:

WhatWhy it matters
Framework? React / Vue / Svelte / vanillaDetermines patterns, tooling, idioms
Rendering? CSR / SSR / SSG / ISRSEO and performance strategy
Design system? Custom / Tailwind / MUI / shadcnStyling approach and constraints
Target browsers? Modern / IE support?Determines APIs and CSS you can use

When stack is unspecified, assume React + TypeScript + Next.js (App Router).


Core Instincts

  • User perception is reality — loading states, micro-animations, and feedback loops matter as much as the happy path
  • Accessibility is load-bearing — keyboard nav, screen readers, and contrast ratios affect real users
  • Render cost is real — unnecessary re-renders degrade UX; measure before optimizing
  • Web Vitals are felt — LCP, CLS, INP directly impact user satisfaction and SEO
  • Mobile is primary — design mobile-first; test at real viewport sizes on real devices

Web Vitals Thresholds (Google Standard)

MetricGoodNeeds ImprovementPoor
LCP (Largest Contentful Paint)< 2.5s2.5–4s> 4s
INP (Interaction to Next Paint)< 200ms200–500ms> 500ms
CLS (Cumulative Layout Shift)< 0.10.1–0.25> 0.25
FCP (First Contentful Paint)< 1.8s1.8–3s> 3s
TTFB (Time to First Byte)< 800ms800ms–1.8s> 1.8s

Bundle Size Guidelines

BundleTargetAction needed
Main JS (gzipped)< 200KB> 400KB: audit imports, code-split
Per-route chunk< 50KB> 100KB: lazy load heavy deps
CSS (gzipped)< 50KB> 100KB: purge unused styles
Images (hero)< 200KBUse next/image or WebP + lazy load

❌ Anti-Patterns to Avoid

❌ NEVER DOWhy✅ DO INSTEAD
Skip loading/error/empty statesUser thinks the app is brokenAlways handle all 3 async states
onClick only (no keyboard handler)Keyboard users excludedUse <button>; it's free keyboard support
Index as list key in dynamic listsReorder causes state and animation bugsUnique stable ID from data
Images without alt or explicit dimensionsScreen reader fail + CLS score hitalt always; width/height or aspect-ratio always
<div> for interactive elementsNot focusable, not semantic, no ARIAUse <button>, <a>, or explicit role + tabIndex
Sequential await for independent fetchesEach waits on the previous (waterfall)Promise.all([fetchA(), fetchB()])
Barrel exports in app code (index.ts)Defeats tree-shaking, slow cold startImport directly from the source file
Import entire library for one functionBundle bloat (e.g., import _ from 'lodash')Named import or specific entry (lodash/debounce)
Client fetch where SSR/SSG would workSlower FCP, worse SEOServer-render or static-generate whenever possible

Accessibility Quick Rules

RuleDetail
Color contrast (normal text)≥ 4.5:1 against background (WCAG AA)
Color contrast (large text, ≥18pt)≥ 3:1 against background
Touch / click target size≥ 44×44px (WCAG 2.5.5, Level AAA)
Focus indicatorMust be visible; outline: none without replacement is a violation
Form inputsMust have <label> (associated via for/id or wrapping)
ImagesDecorative → alt="", informative → descriptive alt
Interactive elements orderDOM order must match visual order for keyboard users

Questions You Always Ask

When planning UI:

  • What's the loading state? The error state? The empty state?
  • Is this accessible to keyboard and screen reader users?
  • What does this look like at 375px? At 1440px?
  • Is this content crawlable by search engines (SSR or SSG)?

When reviewing components:

  • Does this cause layout shift (CLS)? Are image dimensions declared?
  • Can a user complete this entire flow using only the keyboard?
  • Is every form input associated with a visible <label>?
  • What's the bundle size delta from this new dependency?

Red Flags in Code Review

Must fix:

  • No loading/error/empty states for async data
  • Interactive elements unreachable by keyboard
  • Images without alt text or explicit dimensions (CLS risk)
  • Form inputs without associated <label> elements
  • Color contrast below 4.5:1 for body text

Should fix:

  • Missing unique identifiers for list items
  • Large dependencies added without bundle size justification
  • Client-side fetch where server-rendering would work
  • outline: none without visible focus replacement

Performance Debugging Checklist

Slow initial load  → Check bundle size, server render, remove unused deps
Layout shift (CLS) → Set image dimensions, avoid injecting content above fold
Janky interaction  → Use CSS transforms, avoid forced layout (getBoundingClientRect in loops)
Too many re-renders → React DevTools Profiler → memo, useMemo, useCallback
Slow data fetch    → Parallel with Promise.all(), SWR/React Query for cache
Large images       → WebP format, srcset for responsive, lazy loading

Platform References

When this skill is invoked, detect the project's framework and read the matching reference file(s) from references/ before proceeding:

Stack indicatorReference file
next.config.js/ts or react in depsreferences/react-nextjs.md
nuxt.config.ts or vue in depsreferences/vue-nuxt.md
svelte.config.js or svelte in depsreferences/svelte-sveltekit.md
No framework deps / plain HTMLreferences/vanilla.md

If the stack is unclear, ask the user which framework they're using.

Granular Rules (React)

For React/Next.js projects, references/react-rules/ contains 66 individual rule files from Vercel's agent-skills. Each rule covers one specific pattern with incorrect/correct code examples.

Read references/react-rules/_sections.md for the full index organized by priority (CRITICAL → LOW). Reference individual rules when working on specific areas (waterfalls, bundle size, re-renders, SSR, etc.).

Granular Rules (Vue)

For Vue/Nuxt projects, references/vue-rules/ contains 44 individual rule files from antfu/skills (sourced from vuejs-ai/skills), organized into three sub-directories:

  • best-practices/ — Components, reactivity, composables, performance (22 files)
  • router/ — Vue Router guards, navigation, lifecycle gotchas (8 files)
  • testing/ — Vitest, composable testing, Pinia setup, async patterns (11 files)

Read the _index.md in each sub-directory for an overview.

When not to use it

  • When the task is backend development
  • When the task is database management
  • When the task is infrastructure setup

Limitations

  • The skill's scope is limited to building web UI, designing component architecture, or reviewing frontend code.
  • The skill relies on explicit framework information if the stack is unspecified.

How it compares

This skill provides specific guidance for frontend development, focusing on user experience metrics and accessibility standards, which differs from general software development advice that may not cover UI-specific concerns.

Compared to similar skills

frontend-developer side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
frontend-developer (this skill)04moNo flagsIntermediate
roier-seo46moReviewIntermediate
moai-domain-frontend13moNo flagsAdvanced
perf-web-optimization15moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

roier-seo

davila7

Technical SEO auditor and fixer. Runs Lighthouse/PageSpeed audits on websites or local dev servers, analyzes SEO/performance/accessibility scores, and automatically implements fixes for meta tags, structured data, Core Web Vitals, and accessibility issues.

424

moai-domain-frontend

modu-ai

Frontend development specialist covering React 19, Next.js 16, Vue 3.5, and modern UI/UX patterns with component architecture. Use when building web UIs, implementing components, optimizing frontend performance, or integrating state management.

13

perf-web-optimization

tech-leads-club

Optimize web performance: Core Web Vitals (LCP, CLS, INP), bundle size, images, caching. Use when site is slow, optimizing for Lighthouse scores, reducing bundle size, fixing layout shifts, or improving Time to Interactive. Triggers on: web performance, Core Web Vitals, LCP, CLS, INP, FID, bundle size, page speed, slow site.

10

astro

Anhvu1107

ALWAYS use this when the request matches Astro: Build content-focused websites with Astro — zero JS by default, islands architecture, multi-framework components, and Markdown/MDX support.

00

a11y-audit

jarbitechture

Accessibility audit skill for scanning, fixing, and verifying WCAG 2.2 Level A and AA compliance across React, Next.js, Vue, Angular, Svelte, and plain HTML codebases. Use when auditing accessibility, fixing a11y violations, checking color contrast, generating compliance reports, or integrating acce

00

optimize

aladicf

Diagnose and fix UI performance across loading speed, rendering, animations, images, and bundle size. Use when the user mentions slow, laggy, janky, performance, bundle size, load time, or wants a faster, smoother experience.

00

Search skills

Search the agent skills registry