skills/frontend-design/SKILL.md
Create distinctive, production-grade frontend interfaces with high design quality. Use when building web components, pages, HTML tools, or applications. Generates creative, polished code that avoids generic AI aesthetics.
npx skillsauth add RonanCodes/ronan-skills frontend-designInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill guides creation of distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices.
House defaults (unless the brief says otherwise): default to light mode, with dark as an optional toggle (respect prefers-color-scheme, manual override, persisted). Intuitive UX is the priority, a first-timer should know what to do without a tooltip; design the empty/loading/error/first-run states with the same care as the happy path. And make it a bit fun and cheeky, personality in the microcopy, the mascot, a small delightful touch, charming not gimmicky and never at the cost of clarity. Distinctive does not mean dark-and-edgy by default.
The user provides frontend requirements: a component, page, application, or interface to build. They may include context about the purpose, audience, or technical constraints.
Before coding, understand the context and commit to a BOLD aesthetic direction:
CRITICAL: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work - the key is intentionality, not intensity.
Then implement working code (HTML/CSS/JS, React, Vue, etc.) that is:
For greenfield UI mockups, Claude Design is the primary surface for direction-setting. Pencil (pencil.dev) is the second-opinion source when a layout needs cross-checking. Once a direction is locked, bring the Claude Design link (or Pencil export) into this skill as a reference pin and build from it inside the repo with shadcn/ui + Tailwind. For marketing imagery (OG cards, hero illustrations, social), use /ro:generate-image (Gemini Nano Banana 2), not GPT image gen.
/styleguide firstBefore designing anything new in an existing app, check whether src/routes/styleguide.tsx (or app/styleguide/page.tsx for Next) exists. If it does, load it in the dev server and audit the current tokens + primitives there first — the answer to "what colour for the danger button" usually already lives in the showcase. If the route is missing, offer to run /ro:design-system-create --showcase-only to add it (one command, ~30s, no overwrite risk). The styleguide is the first audit subject and the cheapest way to keep the design system honest as new components land.
Apps scaffolded with /ro:new-tanstack-app ship with /styleguide by default, role-gated to superadmin + staff when Clerk is wired.
Focus on:
NEVER use generic AI-generated aesthetics like overused font families (Inter, Roboto, Arial, system fonts), cliched color schemes (particularly purple gradients on white backgrounds), predictable layouts and component patterns, and cookie-cutter design that lacks context-specific character.
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices (Space Grotesk, for example) across generations.
IMPORTANT: Match implementation complexity to the aesthetic vision. Maximalist designs need elaborate code with extensive animations and effects. Minimalist or refined designs need restraint, precision, and careful attention to spacing, typography, and subtle details. Elegance comes from executing the vision well.
When building pages for this project, maintain consistency with the Observatory theme established in docs/getting-started.html:
--void: #06060e, --amber: #e0af40, --cyan: #5bbcd6, --green: #7dcea0, --rose: #d4726aThis is a starting point, not a constraint. Evolve the design system as the project grows.
development
Close the loop on a Linear ticket when its work ships - move the status and post a deploy comment with the PR link, what shipped, and a try-it link, mentioning the collaborator. Used as the tail of /ro:linear-nightshift for every merged mirror, or manually after an ad-hoc build. Triggers on "linear update", "update the linear ticket", "mark NUT-x done", "tell eoin it shipped", "/ro:linear-update".
devops
Run a night-shift against a collaborator's Linear board. Pulls the team's Grilled tickets (/ro:linear-grill moves a ticket to Grilled once its questions are answered), VERIFIES the questions were actually answered (unanswered → bounce the ticket to the "Question for <name>" state), mirrors verified tickets to ephemeral GitHub issues with ready-for-agent, then runs the standard /ro:night-shift machinery on GitHub. Tail-calls /ro:linear-update for everything that merged + deployed. Triggers on "linear nightshift", "nightshift linear", "drain the linear board", "run the shift off linear", "/ro:linear-nightshift".
development
Grill a collaborator's Linear tickets and move every processed ticket to where it belongs. Resolves the board from the repo's .ro-linear.json, reads the collaborator's Backlog / Ready-for-agent issues, then per ticket either posts 3-5 decision-extracting questions (state moves to "Question for <name>") or confirms it build-ready (state moves to "Grilled", the gate /ro:linear-nightshift consumes); shipped-and-confirmed tickets close as Done. The async-collaborator counterpart of /ro:day-shift for people who never touch GitHub. Triggers on "grill linear", "grill eoin's tickets", "linear grill", "add questions to the linear tickets", "/ro:linear-grill".
development
--- name: about-page description: Add a standard About page to any web app, what it is, the tech stack, and an FAQ, wired into a footer link with a sticky footer. Built with Spartan + Tailwind (the canonical component layer) and falls back to semantic HTML so it ships reliably. Use whenever building, polishing, or shipping an app, every app should have one. Triggers on "add an about page", "about page", "footer about link", or as a standard step in app build/polish. category: frontend argument-h