Frontend Stack logo

Frontend Stack

Community
JaimeJunr
frontend-stack

Router for the frontend design stack. Use at the start of any frontend UI task (build a page or component, redesign or restyle an app, "it looks ugly / generic / AI-made", migrate to a component library or design system, pick a style or palette, polish, audit, animate, review UI) to decide which installed skills lead each phase of the work, which ones support, and which rule wins when the packs disagree. Also use when two design skills give contradicting advice. Points to the companion indie dev stack when the request is about the product or business rather than the UI.

Overview

PublisherJaimeJunr
Repositoryclaude-code-frontend-skills
Skill namefrontend-stack
Stars
3
Forks
1
Bundled files
5
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 5 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by JaimeJunr on GitHub. Read the source before you install it.

Installation

Install the Frontend Stack AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/JaimeJunr/claude-code-frontend-skills/tree/main/plugins/frontend-stack/skills/frontend-stack
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/JaimeJunr/claude-code-frontend-skills.git /tmp/claude-code-frontend-skills
mkdir -p .claude/skills
cp -r /tmp/claude-code-frontend-skills/plugins/frontend-stack/skills/frontend-stack .claude/skills/frontend-stack
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Frontend Stack in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Frontend Stack on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Frontend Stack is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Frontend Stack router

Several design packs are installed side by side. Each is good alone and each assumes it is the only one in the room. This skill decides who leads in each phase of the work, so the agent loads one lead and at most two supporting skills at a time instead of five competing rulebooks.

frontend-design:frontend-design is the base. Load it first on every frontend task, whoever leads, and keep it loaded. It sits outside the lead/support count in step 7. If it is not in the session's skill list, say so once and go on.

1. Read the project first

Before picking anything, look for what the project already decided:

  • PRODUCT.md / DESIGN.md at the repo root (Impeccable's context files)
  • design-system/*/MASTER.md (UI UX Pro Max --persist output)
  • docs/brand-guidelines.md, assets/design-tokens.* (UI UX Pro Max brand and design-system)
  • an existing design system: tokens, tailwind.config.*, components/ui/, a component library in package.json
  • a brand guide the user pointed at

If any of these exist, follow them by default (rules 1 and 2 of the precedence ladder). A personality, identity or "looks AI-made" complaint authorizes a replacement visual world within the complaint's scope, even with DESIGN.md.

Keep one source of truth. If two of these files exist and disagree (palette, fonts, spacing), ask the user which one wins before writing code. When the project has none, use the identity flow below for a new brand, or Impeccable document to capture an established world. DESIGN.md is the source of truth; do not also run --persist or generate docs/brand-guidelines.md unless the user asks, and if they do, keep the values identical to DESIGN.md.

2. Classify the request

Answer three questions before picking skills:

  1. Job. Build something new; change something that exists (redesign, restyle, migrate to a library); review only (critique, audit, polish); one craft (motion, copy, color, type, layout, tokens); or assets (brand, logo, banners, slides).
  2. Surface. Marketing (landing, portfolio, site); product (dashboard, chat, forms, settings, tables, flows); a single component; mobile web; native app.
  3. Stack signals from step 1: a component library in package.json, shadcn (components.json, components/ui/), Tailwind, React Native/Expo, Swift.

Complaints about looks ("ugly", "generic", "looks AI-made", "slop", "cluttered") mean the job is change, not review: the user wants a new direction, not only a list of problems. An explicit review-only request stays read-only, even when it names an identity failure.

3. Work in phases

Bigger tasks run in phases, in this order. Load each phase's skills when the phase starts, not all up front. Skip a phase that the task does not need.

PhaseWhenLeadSupport
Diagnosethe job is changeimpeccable:impeccable (critique)impeccable:impeccable (audit) for a11y/perf debt
Directionnew work, or any complaint about looksidentity flow below when the product has no brand or its identity is being replaced; otherwise product: frontend-design:frontend-design, marketing: taste:design-taste-frontendreference research before directions; ui-ux-pro-max:ui-ux-pro-max lookup only after the concept
Buildalwaysthe project's component library (its docs, components, tokens, MCP server if any)new marketing pages: impeccable:impeccable via reference/new-work.md; ui-ux-pro-max:ui-styling when shadcn/Tailwind
Motionthe change movesemil-design-eng:animateemil-design-eng:animation-vocabulary
Reviewanything user-facingsee step 8-

At the start, tell the user the phase plan with the skills of each phase, so they see the whole route even though only the first phase is loaded.

For a new landing with no brand, or a complaint about personality, identity, generic output or "looks AI-made", use the identity flow below first.

For any other complaint about looks, Diagnose and Direction run together: load impeccable:impeccable (critique), the Direction lead and ui-ux-pro-max:ui-ux-pro-max at the start, always, even when the request names no stack or style. A critique alone is a list of problems, not the new direction the user asked for. Research references before proposing directions (see identity-flow.md, step 2); reference-gallery.md seeds the board with inspected modern sites, grouped by the problem each one solves. UI UX Pro Max supplies UX and stack rules; category styles and presets are finishing material after the concept, never its source. When the project has a design system, use UI UX Pro Max for UX and stack rules only, not to replace the palette or fonts (rule 2 of the ladder).

Write what Diagnose and Direction decided (in DESIGN.md or the plan) before Build, so later phases do not need the earlier skills loaded.

When the product has no identity

Read references/identity-flow.md. It owns the full route: product context and naming/positioning → reference board → concept devices and Impeccable concept seed → 2-3 directions → prototype and user pick → brand → DESIGN.md and tokens → landing → screenshot finish gate.

The user picks the direction. Preserve their approved concept and praised or fixed visual choices. Presets finish a direction; they never generate it.

4. Pick the skills for the task

The task is...LeadSupport
New landing for a product with no brandthe identity flow in step 3, before the landingreferences/identity-flow.md; brand → system → Build
Landing page for a developer tool / API / AI producttaste:design-taste-frontend, or the identity flow first when there is no branddevtool-landing.md + landing-anatomy.md; impeccable:impeccable new-work in Build
New landing page, portfolio, marketing site with a brandtaste:design-taste-frontendfrontend-design:frontend-design for direction; landing-anatomy.md; impeccable:impeccable new-work in Build
New marketing page where the user names Hallmark, one of its themes, or asks for a themed or custom pagehallmark:hallmark (leads instead of Taste, never with it)with a brand or DESIGN.md it reads that as the locked system and deals no theme; landing-anatomy.md
New product UI: dashboard, settings, tables, multi-step flowsfrontend-design:frontend-designui-ux-pro-max:ui-ux-pro-max (stack + UX guidelines), impeccable:impeccable for harden at the end
Redesign or restyle an existing product appphases: Diagnose → Direction (frontend-design:frontend-design) → Build → Reviewui-ux-pro-max:ui-styling in Build when shadcn/Tailwind
Redesign an existing marketing sitetaste:design-taste-frontend (it audits the live page before changing it), or hallmark:hallmark (redesign <path>) when the user names Hallmarkimpeccable:impeccable (critique) first
No personality, no product identity, "looks rushed"the identity flow in step 3-
"Looks generic / AI-made / slop"the identity flow in step 3frontend-design:frontend-design anti-template checks during Review
Adopt or migrate to a component library or design system ("use our kit", "move to shadcn")the library itself: its docs, components, tokensui-ux-pro-max:ui-styling for Tailwind/shadcn mapping, impeccable:impeccable (extract) to pull tokens
Chat or AI assistant UIfrontend-design:frontend-design + the library's chat components if it has themimpeccable:impeccable (harden) for empty, error, loading and streaming states; emil-design-eng:animate for streaming motion
Forms, onboarding, first-runimpeccable:impeccable (onboard, harden)frontend-design:frontend-design
Empty, error, loading states, edge casesimpeccable:impeccable (harden)-
Only critique or audit, no rebuild askedimpeccable:impeccable (critique then audit); hallmark:hallmark (audit <path>) when the user names Hallmarknone: the user asked for a report, not a new direction
"Plan it before coding", discovery, UX flowimpeccable:impeccable (shape)-
Vague brief, no direction yetfrontend-stack:design-director agent, then route its result here-
Review a page, component or PR difffrontend-stack:ui-reviewer agent-
Set up design context for a repoimpeccable:impeccable (init, then document)-
Polish before shippingimpeccable:impeccable (polish)emil-design-eng:review-animations for interaction details
Accessibility, performance, responsive checksimpeccable:impeccable (audit, optimize, adapt)-
Too loud, or too blandimpeccable:impeccable (quieter / bolder)-
Only typography / only color / only layoutimpeccable:impeccable (typeset / colorize / layout)ui-ux-pro-max:ui-ux-pro-max for font pairings or palettes
Choose a style, palette, font pairing, chart typeui-ux-pro-max:ui-ux-pro-max-
Charts and data visualizationui-ux-pro-max:ui-ux-pro-max (chart guidance)emil-design-eng:pick-ui-library for the chart library
Dark mode, themingui-ux-pro-max:design-systemimpeccable:impeccable (colorize)
Design tokens / design system architectureui-ux-pro-max:design-systemimpeccable:impeccable (extract)
shadcn/ui + Tailwind component workui-ux-pro-max:ui-stylingemil-design-eng:pick-ui-library
Screenshot or mockup image to codetaste-imagegen:image-to-code (optional plugin)frontend-design:frontend-design
Build an animationemil-design-eng:animateemil-design-eng:animation-vocabulary when the user describes motion vaguely
Review or fix existing motionemil-design-eng:review-animations / improve-animations-
"Where should this animate?"emil-design-eng:find-animation-opportunities-
Gesture, spring, Apple-feel UIemil-design-eng:apple-design-
Web app should feel native on phonesemil-design-eng:mobile-nativeimpeccable:impeccable (adapt)
Try several versions of a componentemil-design-eng:prototype-
Which library for X (charts, OTP, virtual lists...)emil-design-eng:pick-ui-library-
Toasts with Sonneremil-design-eng:ask-sonner-
UX copy, errors, microcopy, empty-state textux-research:ux-copyui-ux-pro-max:brand voice when the project has one; impeccable:impeccable (clarify) to fix copy in an existing screen
User research plan, interview guide, usability testux-research:user-research-
Interviews, usability notes, NPS or tickets turned into UX decisionsux-research:research-synthesis-
Brand voice, visual identity, brand guidelinesui-ux-pro-max:brandui-ux-pro-max:design-system for tokens
Logo, icons, corporate identity (CIP), social photosui-ux-pro-max:design-
Banners, ads, social images, website hero artui-ux-pro-max:banner-design-
Slides, pitch deckui-ux-pro-max:slides-
Brand-kit board as a generated imagetaste-imagegen:brandkit (optional plugin, needs image generation)-
Explicit look: minimalist, brutalist, "expensive agency"taste-classics:minimalist-ui / industrial-brutalist-ui / high-end-visual-design (optional plugin)taste:design-taste-frontend for the inspector and fix loop
Google Stitch DESIGN.mdtaste-classics:stitch-design-taste (optional plugin)-
React Native / Expo motion, Swiftemil-native:animate-expo / write-swift (optional plugin)-
Mobile app screens designed with Sleek, then built in React Native or HTMLdesign-mobile-apps:design-mobile-apps (optional plugin; needs SLEEK_API_KEY, sends the brief to sleek.design, paid beyond a trial) only when the user asks for Sleekemil-native:animate-expo for motion after the build
Video that goes with a UI: product demo, hero or explainer clip, changelog, captions, animated overlayhyperframes:hyperframes (optional plugin; needs Node 22 and the hyperframes CLI)hyperframes:media-use for music, voice and images; emil-design-eng:animate stays the owner of in-page UI motion
Mockup image first, then codetaste-imagegen:imagegen-frontend-web / imagegen-frontend-mobile (optional plugin, needs image generation)-
Video written as React components (Remotion)remotion-best-practices when it is in the session's skill list (Remotion's own skills, not vendored: npx skills add remotion-dev/skills; Remotion needs a paid company license for for-profit organizations above 3 people)hyperframes:hyperframes if the user prefers plain HTML

A request that mixes jobs ("redesign it and add animations") is several rows: run them as phases in the order of step 3.

5. Cases the table does not cover

New skills arrive with every upstream sync, and requests will not always match a row.

  • No row fits: use the job and surface from step 2, give the lead to the domain owner (rule 5 of the ladder), then check the session's skill list for a skill whose description fits better.
  • A named skill is not in the session's skill list: skip it and use the next row's lead or frontend-design:frontend-design. Never guess a name.
  • Not a UI question: product strategy, positioning, what to build, specs, roadmap, metrics, backend architecture or running the business belong to the companion stack. If indie-dev-stack:indie-dev-stack is in the session's skill list, hand the request to it. Otherwise do what you can and tell the user once per session that the companion marketplace covers it: /plugin marketplace add JaimeJunr/claude-code-indie-dev-stack.
  • A skill not listed here fits better: a row still wins unless the user names the other skill. Use it as support and tell the user this router has no row for it yet.

6. Precedence ladder

When two loaded skills disagree, the higher rule wins:

  1. The user's explicit request and brand. "Use Inter", "purple is our brand", "keep it like Linear" beat every skill ban.
  2. The project's existing system. DESIGN.md, tokens, the component library already in use. Extend it; do not swap libraries or mix systems. A complaint about personality, identity or "looks AI-made" authorizes replacing the visual world for what the complaint covers, even if DESIGN.md exists. Keep only the visual choices the user explicitly praised or fixed in that scope. Preserve product truth, working behavior, accessibility and the framework/library; leave unrelated surfaces alone.
  3. Accessibility and correctness. Contrast, focus states, reduced motion, keyboard access, no layout shift. Impeccable audit is the referee.
  4. Scope of the lead skill. A skill's own "not for X" line is binding. design-taste-frontend now also covers app screens, but the stack still leads product UI with frontend-design unless the user asks for Taste.
  5. Domain owner. Motion questions go to Emil's skills, style/palette data to UI UX Pro Max, critique/audit/polish to Impeccable, aesthetic direction to frontend-design or taste.
  6. The lead skill's taste defaults. frontend-design's anti-template rules outrank any other lead's taste defaults.

The rules that actually collide between packs, and how each is settled, are in references/conflicts.md. Read it when a supporting skill contradicts the lead.

7. Load budget

  • Per phase: the base frontend-design, one lead and at most two supporting skills. Big skills (design-taste-frontend, ui-ux-pro-max, impeccable) are long; loading all of them at once burns context and produces averaged, generic output.
  • Say in one line which skills each phase loaded, so the user can correct the routing early.
  • Aesthetic presets (taste-classics: minimalist-ui, industrial-brutalist-ui, high-end-visual-design) never stack: at most one, as finishing material after the concept, or as the user's explicit choice.
  • One marketing-page lead per task: taste:design-taste-frontend or hallmark:hallmark, never both. Hallmark's Floor binds only pages it leads.
  • The brand, logo, banner and slides skills above overlap (ui-ux-pro-max:design and design-system also cover slides and branding). Load only the row's lead.
  • Prefer the specific Emil skill over emil-design-eng:emil-design-eng as support: without a direct question the umbrella replies with a stock greeting.

8. Finish the same way every time

For anything user-facing, end with a review pass before calling it done:

  1. Capture and open desktop + mobile screenshots with the session's available browser/screenshot tool. Compare the render with the reference board and chosen concept devices. Without tooling, report the missing visual evidence; do not claim the screenshot gate passed.
  2. impeccable:impeccable audit (or delegate to the ui-reviewer agent). For new marketing pages, Build follows Impeccable's reference/new-work.md and hands captures + direction contract to impeccable-finish-reviewer (plugins/impeccable/agents/impeccable-finish-reviewer.md in this repo). Follow its recapture / rebuild / fix / ship disposition; use its documented fallback only when agents are unavailable. A page hallmark:hallmark or taste:design-taste-frontend led ends with that skill's own inspector and fix loop in place of that screenshot gate; still run audit for a11y.
  3. If the change has motion, emil-design-eng:review-animations.
  4. Fix the findings and recapture affected views. For personality/identity/ AI-look requests, a missing signature or a render interchangeable with a named competitor can block completion. Report evidence, verdict and gaps.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Frontend Stack AI skill do?

Router for the frontend design stack. Use at the start of any frontend UI task (build a page or component, redesign or restyle an app, "it looks ugly / generic / AI-made", migrate to a component library or design system, pick a style or palette, polish, audit, animate, review UI) to decide which installed skills lead each phase of the work, which ones support, and which rule wins when the packs disagree. Also use when two design skills give contradicting advice. Points to the companion indie dev stack when the request is about the product or business rather than the UI.

Why use Frontend Stack on TypingMind?

Because you install it once and use it with any model. Frontend Stack is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Frontend Stack in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/JaimeJunr/claude-code-frontend-skills/tree/main/plugins/frontend-stack/skills/frontend-stack. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Frontend Stack?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Frontend Stack?

As many as you like. As long as a model supports skills, you can use Frontend Stack with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Frontend Stack AI skill free?

It is published on GitHub by JaimeJunr. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇