Agent Skill
2/7/2026

frontend-design

Unified frontend design skill covering React 19 patterns, Tailwind CSS v4, Web Design Guidelines (A11y, Animation, Forms), and AI prototyping tools (Stitch, Nano Banana Pro). Use when designing components, layouts, or building aesthetic interfaces.

G
grupous
1GitHub Stars
1Views
npx skills add GrupoUS/gpus

SKILL.md

Namefrontend-design
DescriptionUnified frontend design skill covering React 19 patterns, Tailwind CSS v4, Web Design Guidelines (A11y, Animation, Forms), and AI prototyping tools (Stitch, Nano Banana Pro). Use when designing components, layouts, or building aesthetic interfaces.

name: frontend-design description: Unified frontend design skill covering React 19 patterns, Tailwind CSS v4, Web Design Guidelines (A11y, Animation, Forms), and AI prototyping tools (Stitch, Nano Banana Pro). Use when designing components, layouts, or building aesthetic interfaces.

Frontend Design Skill

Philosophy: Intentional Minimalism. Every element must earn its place.


Tech Stack

LayerTechnologyNotes
FrameworkReact 19 + ViteFunction components, ref as prop
StylingTailwind CSS v4@tailwindcss/vite plugin
Componentsshadcn/ui + RadixNever reinvent primitives
AnimationFramer Motion 12Micro-interactions
ChartsRecharts 2Performance visualizations

React Performance Patterns (Vercel)

Priority 1: Eliminating Waterfalls (CRITICAL)

RulePattern
async-defer-awaitMove await into branches where actually used
async-parallelUse Promise.all() for independent operations
async-suspenseUse <Suspense> to stream content progressively
// ❌ Sequential waterfalls
const user = await getUser();
const posts = await getPosts();

// ✅ Parallel fetching
const [user, posts] = await Promise.all([getUser(), getPosts()]);

Priority 2: Bundle Optimization (CRITICAL)

RulePattern
bundle-barrel-importsAvoid barrel files (index.ts re-exports)
bundle-namespace-importsUse specific imports, not import * as
bundle-dynamic-importsUse next/dynamic or React.lazy for heavy components
// ❌ Barrel import
import { Button, Card, Modal } from "@/components";

// ✅ Direct imports
import { Button } from "@/components/ui/button";
import { Card } from "@/components/ui/card";

Priority 3: Component Boundaries (HIGH)

RulePattern
client-boundaryKeep "use client" at leaf components
server-defaultDefault to Server Components, client only for interactivity
rerender-childrenPass children as props to avoid re-renders
// ❌ Client boundary too high
"use client"
export function Page() { ... } // Entire page is client

// ✅ Client boundary at leaf
export function Page() {
  return <Layout><InteractiveButton /></Layout> // Only button is client
}

Web Design Standards (Vercel)

Accessibility

RuleStandard
Contrast4.5:1 minimum for text
FocusVisible focus-visible:ring-*, never outline-none alone
SemanticsUse <button>, <a>, <nav> before ARIA
HeadingsHierarchical <h1><h6>, include skip links

Animation

RuleStandard
PerformanceOnly transform/opacity (compositor-friendly)
PreferenceHonor prefers-reduced-motion
SpecificityNever transition: all, list properties explicitly
InterruptibleAnimations respond to user input mid-animation

Forms

RuleStandard
AutocompleteAlways set autocomplete and meaningful name
Input TypesUse correct type (email, tel, url) and inputmode
LabelsClickable via htmlFor or wrapping
ErrorsInline next to fields, focus first error on submit
PasteNever block paste (onPaste + preventDefault)

Typography

RuleStandard
EllipsisUse not ...
QuotesCurly quotes " " not straight "
Numbersfont-variant-numeric: tabular-nums for columns
LoadingStates end with : "Loading…", "Saving…"

AI Prototyping Tools

Stitch (Google Gemini)

Generate UI prototypes from text prompts via MCP.

workflow:
  1. Create project: mcp_stitch_create_project
  2. Generate screen: mcp_stitch_generate_screen_from_text
     - Use GEMINI_3_PRO for high fidelity
     - Include design system colors in prompt
  3. Handle output_components (suggestions or code)
  4. Adapt to Tailwind v4 + shadcn/ui

prompt_template: |
  Create a [component type] for [purpose].
  Style: {from ui-ux-pro-max palette}
  Layout: [specific grid/flex requirements]
  Features: [interactive elements needed]

Nano Banana Pro (Image Generation)

Generate assets using Gemini 3.0 Pro via generate_image tool.

usage:
  - High-fidelity placeholders and mockups
  - UI illustrations and icons
  - Background patterns and gradients

best_practices:
  - Be specific about style, colors, dimensions
  - Reference design system palette
  - Request "clean, minimal, professional" for UI assets

Quick Reference

Component Checklist

  • Uses shadcn/ui primitives (not custom buttons/modals)
  • Client boundary at lowest possible level
  • Parallel data fetching where applicable
  • Visible focus states
  • Respects prefers-reduced-motion
  • Form inputs have autocomplete and name

Import Pattern

// UI Components
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";

// Hooks
import { useState, useEffect } from "react";
import { trpc } from "@/lib/trpc";
Skills Info
Original Name:frontend-designAuthor:grupous