Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/503496348-ops-frontend-ui-engineering
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, frontend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions: not checked yet.
What's inside
- Skill name
frontend-ui-engineering- Description
- Builds production-quality UIs. Use when building or modifying user-facing interfaces. Use when creating components, implementing layouts, managing state, or when the output needs to look and feel production-quality rather than AI-generated.
- License
- MIT
- Instructions
- 325 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- name: "frontend-ui-engineering" does not match folder "as-frontend-ui-engineering"
- files: referenced but missing: references/accessibility-checklist.md
Files (1)
- SKILL.md
SKILL.md (first lines)
# 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 |From 503496348-ops/mischief-production, MIT.
Signals
- Stars
- 2
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Jun 30, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
- 0.543score
frontend-ui-engineering
kevinnft
Builds production-quality UIs.
SkillCFreshness: C★ 14Claude Code +9 - 0.333score
frontend-ui-engineering
tano2026
Builds production-quality UIs.
SkillAFreshness: AClaude Code +9 - 0.319score
frontend-ui-engineering
Undermybelt
Builds production-quality UIs.
SkillCFreshness: C★ 10Claude Code +9 - 0.315score
frontend-ui-engineering
Partners-in-Biz
Builds production-quality UIs.
SkillBFreshness: BClaude Code +9 - 0.309score
frontend-ui-engineering
publieople
Builds production-quality UIs.
SkillBFreshness: BClaude Code +9 - 0.279score
frontend-ui-engineering
anshul-dying
Builds production-quality UIs.
SkillCFreshness: CClaude Code +9 - 0.279score
frontend-ui-engineering
CodeCrafterAdi2006
Builds production-quality UIs.
SkillCFreshness: CClaude Code +9 - 0.240score
frontend-ui-engineering
gitUserKHS
Builds production-quality UIs.
SkillDFreshness: DClaude Code +9
More from 503496348-ops
Cite this page
frontend-ui-engineering skill. Agent Mart. https://agentmart.dev/skills/503496348-ops-frontend-ui-engineering (last updated 2026-10-24)