
Frontend Ui Engineering
Implement or refine user-facing components and layouts that meet accessibility, performance, and production polish—not generic AI-styled UI.
Overview
frontend-ui-engineering is an agent skill for the Build phase that implements production-quality, accessible user interfaces with composable components and design-system discipline.
Install
npx skills add https://github.com/addyosmani/agent-skills --skill frontend-ui-engineeringWhat is this skill?
- Colocated component folders with tests and optional Storybook stories
- Composition-over-configuration patterns for flexible UI primitives
- Explicit bar for accessible, performant, design-system-aligned interfaces
- Guards against generic AI aesthetic in favor of production-quality interaction design
Adoption & trust: 4.8k installs on skills.sh; 49.1k GitHub stars; 3/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
What problem does it solve?
You need new or updated UI fast but agent output looks generic, breaks accessibility, or ignores how your design system and component tree are organized.
Who is it for?
Indie SaaS and product builders iterating on dashboards, marketing surfaces, or embedded widgets inside an existing frontend stack.
Skip if: Pure API backend work, infrastructure-only changes, or teams that only need wireframes with no implementation intent.
When should I use this skill?
Building or modifying user-facing interfaces, creating components, implementing layouts, managing state, or when output must look and feel production-quality rather than AI-generated.
What do I get? / Deliverables
You get colocated, composable components and layouts that match production standards for structure, interaction, and visual polish ready for test and review.
- Production-oriented UI components and pages
- Colocated tests and structured component files
- Responsive and accessible interaction patterns
Recommended Skills
Journey fit
Frontend on Build is the primary home for component work, responsive layouts, and interaction patterns in shipped products. The skill targets UI engineering—file structure, composition, state, and visual quality—rather than APIs, DevOps, or distribution.
How it compares
Implementation workflow for real UI code—not a Figma-to-code one-shot generator or a design critique-only checker.
Common Questions / FAQ
Who is frontend-ui-engineering for?
Solo builders and small teams using coding agents to ship customer-facing React-style (or similar) interfaces with production expectations.
When should I use frontend-ui-engineering?
During Build frontend when creating components, changing layouts, adding interactivity, or fixing UX and visual issues before ship testing and launch.
Is frontend-ui-engineering safe to install?
It guides code changes in your repo; review the Security Audits panel on this Prism page and run your usual tests before merging agent-edited UI.
SKILL.md
READMESKILL.md - Frontend Ui Engineering
# Frontend UI Engineering ## Overview Build production-quality user interfaces that are accessible, performant, and visually polished. The goal is UI that looks like it was built by a design-aware engineer at a top company — not like it was generated by an AI. This means real design system adherence, proper accessibility, thoughtful interaction patterns, and no generic "AI aesthetic." ## When to Use - Building new UI components or pages - Modifying existing user-facing interfaces - Implementing responsive layouts - Adding interactivity or state management - Fixing visual or UX issues ## Component Architecture ### File Structure Colocate everything related to a component: ``` src/components/ TaskList/ TaskList.tsx # Component implementation TaskList.test.tsx # Tests TaskList.stories.tsx # Storybook stories (if using) use-task-list.ts # Custom hook (if complex state) types.ts # Component-specific types (if needed) ``` ### Component Patterns **Prefer composition over configuration:** ```tsx // Good: Composable <Card> <CardHeader> <CardTitle>Tasks</CardTitle> </CardHeader> <CardBody> <TaskList tasks={tasks} /> </CardBody> </Card> // Avoid: Over-configured <Card title="Tasks" headerVariant="large" bodyPadding="md" content={<TaskList tasks={tasks} />} /> ``` **Keep components focused:** ```tsx // Good: Does one thing export function TaskItem({ task, onToggle, onDelete }: TaskItemProps) { return ( <li className="flex items-center gap-3 p-3"> <Checkbox checked={task.done} onChange={() => onToggle(task.id)} /> <span className={task.done ? 'line-through text-muted' : ''}>{task.title}</span> <Button variant="ghost" size="sm" onClick={() => onDelete(task.id)}> <TrashIcon /> </Button> </li> ); } ``` **Separate data fetching from presentation:** ```tsx // Container: handles data export function TaskListContainer() { const { tasks, isLoading, error } = useTasks(); if (isLoading) return <TaskListSkeleton />; if (error) return <ErrorState message="Failed to load tasks" retry={refetch} />; if (tasks.length === 0) return <EmptyState message="No tasks yet" />; return <TaskList tasks={tasks} />; } // Presentation: handles rendering export function TaskList({ tasks }: { tasks: Task[] }) { return ( <ul role="list" className="divide-y"> {tasks.map(task => <TaskItem key={task.id} task={task} />)} </ul> ); } ``` ## State Management **Choose the simplest approach that works:** ``` Local state (useState) → Component-specific UI state Lifted state → Shared between 2-3 sibling components Context → Theme, auth, locale (read-heavy, write-rare) URL state (searchParams) → Filters, pagination, shareable UI state Server state (React Query, SWR) → Remote data with caching Global store (Zustand, Redux) → Complex client state shared app-wide ``` **Avoid prop drilling deeper than 3 levels.** If you're passing props through components that don't use them, introduce context or restructure the component tree. ## Design System Adherence ### Avoid the AI Aesthetic AI-generated UI has recognizable patterns. Avoid all of them: | AI Default | Why It Is a Problem | Production Quality | |---|---|---| | Purple/indigo everything | Models default to visually "safe" palettes, making every app look identical | Use the project's actual color palette | | Excessive gradients | Gradients add visual noise and clash with most design systems | Flat or subtle gradients matching the design system | | Rounded everything (rounded-2xl) | Maximum rounding signals "fr