An agent skill · websites · web apps · iOS · Android

/frontend

frontend implements production client code for websites (including art-directed and creative marketing sites), web apps, dense product UI, and native iOS and Android. Component and state architecture, full state sets, forms, accessibility, performance, client security, and the tests that guard the work — as a faceted router over 27 dense references that load only the job, platform, and stack each request needs.

# natural language is enough /frontend pixel-perfect art-directed marketing site from this design handoff /frontend dual-codec transparent hero video that works on Safari and Chrome /frontend fix LCP + CLS on this product page and verify the CWV thresholds /frontend wire single-flight 401 refresh and multi-tab logout for our SPA

runs onClaude CodeCodexCursorAntigravityopencodeGrok BuildHermes

The idea

A faceted router, not a dump of generic frontend tips. Name the engineering job, pick the surface (web, iOS, Android, Expo/RN), optionally name the stack — then read only those files completely before writing code. The same skill covers creative websites and product UI; unrelated craft never enters the context.

Native overrides web. A SwiftUI screen never loads web-platform CSS rules. An uncovered stack (Vue, Svelte, Astro, …) still gets the core job + platform substrate; project conventions win.

1 · Primary job

Exactly one core task: state-and-data, forms, performance, client-security, client-app-wiring, …

2 · Platform

Web by default (web-platform-css + runtime). Or SwiftUI / Compose / Expo RN — mandatory when the target is native. Expo is the default RN path.

3 · Stack overlay

React, Next, Tailwind, shadcn — only when the project actually uses them. Skip for uncovered stacks.

What this skill is actually dense at

Cookie-cutter “component library tips” are not the point. These are the hard-earned client domains the pack carries at production depth — for sites and apps, not UI kits alone:

Web runtime craft

web-platform-runtime
Transparent / dual-codec video (bowser SSR-null Pattern A, HEVC/WebM, bake vs mix-blend matrix), Safari / iOS chrome (svh, Liquid Glass strips, fixed-modal clip), scroll-scrub media traps, View Transitions silent failures, Popover/Anchor floors.

Performance

performance
CWV thresholds + fix ladders, responsive imagesrcset preload + fetchpriority, Early Hints limits, compositor paint traps (blur / will-change / shadow), content-visibility + retained size, idle prefetch composition.

State completeness

state-completeness · forms
Eight interaction states and data-region states in code — not a happy-path mock. Validation timing, optimistic update + rollback, undo-vs-confirm rules.

Client security & SPA wiring

client-security · client-app-wiring
HttpOnly cookies vs localStorage JWT, CSRF/credentials ladders, XSS sinks. Production shell: single-flight 401 refresh, multi-tab session fanout, flags, error boundaries.

CSS & DOM craft

css-craft · js-dom-craft
Safari filter/blur GPU promote, backdrop-filter roots, frosted-glass near-edge masks, stacking/z-index scale, observers for media + abort-on-leave, ResizeObserver loop reality.

Architecture & stacks

client-architecture · next/react · expo
Feature folders, import zones, content-driven section registries. React/RSC boundaries, Next cache primitives, Expo-first RN (Router, prebuild, EAS) with optional expo/skills + docs.expo.dev for deep dives.

One skill · whole client register

Creative websites, product web apps, dense UI, and pure native — same completion laws. Platform overlays swap the substrate so web advice never leaks into native — and native never pretends to be a browser.

Websites & web apps

  • Marketing / art-directed sites and product apps
  • CSS + runtime substrate always on
  • Optional React / Next / Tailwind / shadcn
  • Safari, video, CWV, SPA session craft

iOS / iPadOS

  • SwiftUI (+ concurrency when async)
  • HIG conformance in code
  • Overrides the web substrate entirely

Android · Expo

  • Compose + Kotlin state / Flow (pure Android)
  • or Expo / RN — greenfield default (like Next on web)
  • Router · EAS · lists/gestures · docs.expo.dev

Where it sits in the family

frontend is the Build stage of the Digital Product Skills family — the capability that turns an approved design or engineering request into shipped client code. It consumes a design handoff as the source of truth and hands off to quality and operate downstream. It also runs standalone with no upstream handoff, and never invokes another skill silently.

architecture (system decisions, API/event contracts) and backend (server behavior, databases, server APIs) sit alongside Build and feed it — but SSR/RSC runtime inside the client framework and the client build config stay inside frontend.

# design emits → frontend consumes handoff.yaml skill: design status: complete DESIGN.md tokens: primitive → semantic → component states: loading · empty · error · success per-screen: intent + a11y floors
source of truth
consumed
/frontend implements it

Wires the tokens into a two-mode system, builds every state and meets the accessibility floors as specified, and holds design intent as a constraint — implementing faithfully and reporting conflicts rather than silently re-deciding. The design-handoff-and-tokens.md reference owns accepting this contract.

Sharp boundaries with the neighbors — what each owns, plus the two things people expect to live elsewhere but stay in frontend:

designExperience intent, visual direction, and look-and-feel critique. frontend implements it, never re-decides it.
architectureSystem decisions, stack-selection rationale, and API/event contracts.
backendServer behavior, databases, server APIs — but SSR/RSC runtime is IN frontend.
qualityIndependent verification, WCAG audits, and release-gate sign-off.
operateDeploy, CI/CD, monitoring, store delivery — but client build config is IN frontend.
animation · seoMotion beyond reduced-motion, and search beyond semantic markup — future family skills.

The non-negotiable laws

Universal invariants — they apply even when the owning reference is not open.

Pick by job

The router’s primary-job table — load one of these, then add platform/stack only if needed.

I need to…Read
State machines, fetch/cache, optimistic updates, client auth-flow shapestate-and-data.md
Every UI/data state — loading, empty, error, recovery, undostate-completeness.md
Forms — validation timing, submit, input types, errorsforms.md
ARIA, focus, keyboard, contrast/target floorsaccessibility.md
CWV, images/fonts, preload, compositor cost, virtualizationperformance.md
Token storage, XSS, CSP, CSRF, credentialed fetchclient-security.md
SPA shell — API client, 401 single-flight, multi-tab session, flagsclient-app-wiring.md
Tests + screenshot dev-loop self-checktesting.md
i18n — logical props, Intl, RTL, expansioni18n.md
Consume handoff.yaml / DESIGN.md tokensdesign-handoff-and-tokens.md
Feature folders, import zones, section registriesclient-architecture.md

Platform + stack overlays and declared bundles: SKILL.md.

Boundary: experience intent and visual direction live in design; system APIs in architecture/backend; release audits in quality; deploy in operate. This skill owns the production client — implementing websites, web apps, and native surfaces from an approved design or engineering request — and hands off cleanly to the Digital Product Skills family.

Reference map

27 references, grouped by facet. The router loads the smallest set — never all of them.

primary job11
state-and-data.md state-completeness.md forms.md accessibility.md performance.md client-security.md client-app-wiring.md testing.md i18n.md design-handoff-and-tokens.md client-architecture.md
platform · web4
web-platform-css.md web-platform-runtime.md css-craft.md js-dom-craft.md
platform · native5
swiftui.md swift-concurrency-and-testing.md compose.md kotlin-and-compose-state.md react-native.md— Expo-first
web stack6
react-components-and-state.md react-rendering-and-rsc.md nextjs.md data-fetching-libraries.md tailwind.md shadcn.md
sources1
SOURCES.md— provenance for every mined technique

Browse references on GitHub →

Start here

Install once. No flags or config — it activates on engineering phrasing or explicit /frontend / $frontend.

# skills.sh npx skills add gabros20/frontend-skill # clone + installer git clone https://github.com/gabros20/frontend-skill && cd frontend-skill ./install.sh codex # claude | agents | cursor | antigravity | opencode | grok | hermes | all # examples — websites, web apps, product UI, native /frontend pixel-perfect art-directed marketing site from this design handoff /frontend transparent dual-codec hero video for Safari + Chrome /frontend iOS Safari chrome tint + svh app shell for this dark site /frontend Expo Router profile screen + expo-image + SecureStore /frontend accessible Next.js signup form — every state + tests /frontend production SPA 401 refresh mutex and multi-tab logout
install targets by host
hostinstall targetcommand
Claude Code~/.claude/skills./install.sh claude
Codex${CODEX_HOME:-$HOME/.codex}/skills./install.sh codex
Cross-agent~/.agents/skills./install.sh agents
Cursor~/.cursor/skills./install.sh cursor
Antigravity~/.gemini/…/skills./install.sh antigravity
opencode~/.config/opencode/skills./install.sh opencode
Grok Build~/.grok/skills./install.sh grok
Hermes~/.hermes/skills./install.sh hermes
what's in the repo
skills/frontend/ SKILL.md router + references/ (27 files) docs/ installation · usage · recipes site/ this page — frontendengskill.vercel.app evals/ activation · traversal · output fixtures install.sh · scripts/ · README.md · CHANGELOG.md · LICENSE

installation · usage · recipes · digital-product-skill family