Frontend Design Ultimate

Create distinctive, production-grade static sites from text requirements alone. No mockups, no Figma β€” just describe what you want and get bold, memorable designs.

Stack: React 18 + TypeScript + Tailwind CSS + shadcn/ui + Framer Motion
Output: Vite (static HTML) or Next.js (Vercel-ready)

Quick Start

"Build a SaaS landing page for an AI writing tool. Dark theme, 
editorial typography, subtle grain texture. Pages: hero with 
animated demo, features grid, pricing table, FAQ accordion, footer."

Design Thinking (Do This First)

Before writing any code, commit to a BOLD aesthetic direction:

1. Understand Context

  • Purpose: What problem does this interface solve? Who uses it?
  • Audience: Developer tools? Consumer app? Enterprise? Creative agency?
  • Constraints: Performance requirements, accessibility needs, brand guidelines?

2. Choose an Extreme Tone

Pick ONE and commit fully β€” timid designs fail:

ToneCharacteristics
Brutally MinimalSparse, monochrome, massive typography, raw edges
Maximalist ChaosLayered, dense, overlapping elements, controlled disorder
Retro-FuturisticNeon accents, geometric shapes, CRT aesthetics
Organic/NaturalSoft curves, earth tones, hand-drawn elements
Luxury/RefinedSubtle animations, premium typography, restrained palette
Editorial/MagazineStrong grid, dramatic headlines, whitespace as feature
Brutalist/RawExposed structure, harsh contrasts, anti-design
Art Deco/GeometricGold accents, symmetry, ornate patterns
Soft/PastelRounded corners, gentle gradients, friendly
Industrial/UtilitarianFunctional, monospace, data-dense

3. Define the Unforgettable Element

What’s the ONE thing someone will remember? A hero animation? Typography treatment? Color combination? Unusual layout?


Aesthetics Guidelines

Typography β€” NEVER Generic

BANNED: Inter, Roboto, Arial, system fonts, Open Sans

DO: Distinctive, characterful choices that elevate the design.

Use CaseApproach
Display/HeadlinesBold personality β€” Clash, Cabinet Grotesk, Satoshi, Space Grotesk (sparingly), Playfair Display
Body TextRefined readability β€” Instrument Sans, General Sans, Plus Jakarta Sans
Monospace/CodeDM Mono, JetBrains Mono, IBM Plex Mono
Pairing StrategyContrast weights (thin display + bold body), contrast styles (serif + geometric sans)

Size Progression: Use 3x+ jumps, not timid 1.5x increments.

Color & Theme

BANNED: Purple gradients on white, evenly-distributed 5-color palettes

DO:

  • Dominant + Sharp Accent: 70-20-10 rule (primary-secondary-accent)
  • CSS Variables: --primary, --accent, --surface, --text
  • Commit to dark OR light: Don’t hedge with gray middle-grounds
  • High contrast CTAs: Buttons should pop dramatically
:root {
  --bg-primary: #0a0a0a;
  --bg-secondary: #141414;
  --text-primary: #fafafa;
  --text-secondary: #a1a1a1;
  --accent: #ff6b35;
  --accent-hover: #ff8555;
}

Motion & Animation

Priority: One orchestrated page load > scattered micro-interactions

High-Impact Moments:

  • Staggered hero reveals (animation-delay)
  • Scroll-triggered section entrances
  • Hover states that surprise (scale, color shift, shadow depth)
  • Smooth page transitions

Implementation:

  • CSS-only for simple animations
  • Framer Motion for React (pre-installed via init scripts)
  • Keep durations 200-400ms (snappy, not sluggish)

Spatial Composition

BANNED: Centered, symmetrical, predictable layouts

DO:

  • Asymmetry with purpose
  • Overlapping elements
  • Diagonal flow / grid-breaking
  • Generous negative space OR controlled density (pick one)
  • Off-grid hero sections

Backgrounds & Atmosphere

BANNED: Solid white/gray backgrounds

DO:

  • Gradient meshes (subtle, not garish)
  • Noise/grain textures (SVG filter or CSS)
  • Geometric patterns (dots, lines, shapes)
  • Layered transparencies
  • Dramatic shadows for depth
  • Blur effects for glassmorphism
/* Subtle grain overlay */
.grain::before {
  content: '';
  position: fixed;
  inset: 0;
  background: url("data:image/svg+xml,...") repeat;
  opacity: 0.03;
  pointer-events: none;
}

Mobile-First Patterns

See mobile-patterns.md for detailed CSS.

Critical Rules

PatternDesktopMobile Fix
Hero with hidden visual2-column gridSwitch to display: flex (not grid)
Large selection listsHorizontal scrollAccordion with category headers
Multi-column formsSide-by-sideStack vertically
Status/alert cardsInlinealign-items: center + text-align: center
Feature grids3-4 columnsSingle column

Breakpoints

/* Tablet - stack sidebars */
@media (max-width: 1200px) { }
 
/* Mobile - full single column */
@media (max-width: 768px) { }
 
/* Small mobile - compact spacing */
@media (max-width: 480px) { }

Font Scaling

@media (max-width: 768px) {
  .hero-title { font-size: 32px; }      /* from ~48px */
  .section-title { font-size: 24px; }   /* from ~32px */
  .section-subtitle { font-size: 14px; } /* from ~16px */
}

Build Workflow

Option A: Vite (Pure Static)

# 1. Initialize
bash scripts/init-vite.sh my-site
cd my-site
 
# 2. Develop
npm run dev
 
# 3. Build static files
npm run build
# Output: dist/
 
# 4. Bundle to single HTML (optional)
bash scripts/bundle-artifact.sh
# Output: bundle.html

Option B: Next.js (Vercel Deploy)

# 1. Initialize
bash scripts/init-nextjs.sh my-site
cd my-site
 
# 2. Develop
npm run dev
 
# 3. Deploy to Vercel
vercel

Project Structure

Vite Static

my-site/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/     # React components
β”‚   β”œβ”€β”€ lib/           # Utilities, cn()
β”‚   β”œβ”€β”€ styles/        # Global CSS
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── site.ts    # Editable content config
β”‚   β”œβ”€β”€ App.tsx
β”‚   └── main.tsx
β”œβ”€β”€ index.html
β”œβ”€β”€ tailwind.config.ts
└── package.json

Next.js

my-site/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ layout.tsx
β”‚   β”œβ”€β”€ page.tsx
β”‚   └── privacy/page.tsx
β”œβ”€β”€ components/
β”œβ”€β”€ lib/
β”œβ”€β”€ config/
β”‚   └── site.ts
└── tailwind.config.ts

Site Config Pattern

Keep all editable content in one file:

// config/site.ts
export const siteConfig = {
  name: "Acme AI",
  tagline: "Write better, faster",
  description: "AI-powered writing assistant",
  
  hero: {
    badge: "Now in beta",
    title: "Your words,\nsupercharged",
    subtitle: "Write 10x faster with AI that understands your style",
    cta: { text: "Get Started", href: "/signup" },
    secondaryCta: { text: "Watch Demo", href: "#demo" },
  },
  
  features: [
    { icon: "Zap", title: "Lightning Fast", description: "..." },
    // ...
  ],
  
  pricing: [
    { name: "Free", price: 0, features: [...] },
    { name: "Pro", price: 19, features: [...], popular: true },
  ],
  
  faq: [
    { q: "How does it work?", a: "..." },
  ],
  
  footer: {
    links: [...],
    social: [...],
  }
}

Pre-Implementation Checklist

Run this before finalizing any design:

Design Quality

  • Typography is distinctive (no Inter/Roboto/Arial)
  • Color palette has clear dominant + accent (not evenly distributed)
  • Background has atmosphere (not solid white/gray)
  • At least one memorable/unforgettable element
  • Animations are orchestrated (not scattered)

Mobile Responsiveness

  • Hero centers on mobile (no empty grid space)
  • All grids collapse to single column
  • Forms stack vertically
  • Large lists use accordion (not horizontal scroll)
  • Font sizes scale down appropriately

Form Consistency

  • Input, select, textarea all styled consistently
  • Radio/checkbox visible (check transparent-border styles)
  • Dropdown options have readable backgrounds
  • Labels use CSS variables (not hardcoded colors)

Accessibility

  • Color contrast meets WCAG AA (4.5:1 text, 3:1 UI)
  • Focus states visible
  • Semantic HTML (nav, main, section, article)
  • Alt text for images
  • Keyboard navigation works

shadcn/ui Components

10 common components pre-installed (button, badge, card, accordion, dialog, navigation-menu, tabs, sheet, separator, avatar, alert). Add more with npx shadcn@latest add [name] or install all with npx shadcn@latest add --all.

See shadcn-components.md for full component reference.

Most used for landing pages:

  • Button, Badge β€” CTAs and labels
  • Card β€” Feature cards, pricing tiers
  • Accordion β€” FAQ sections
  • Dialog β€” Modals, video players
  • NavigationMenu β€” Header nav
  • Tabs β€” Feature showcases
  • Carousel β€” Testimonials

References


Examples

Prompt β†’ Output

Input:

β€œPortfolio site for a photographer. Minimal, editorial feel. Grid gallery with lightbox, about section, contact form.”

Design Decisions:

  • Tone: Editorial/Magazine
  • Typography: Cormorant Garamond (display) + Inter… wait, banned. Plus Jakarta Sans (body)
  • Color: Near-black bg (#0c0c0c), warm white text (#f5f5f0), copper accent (#b87333)
  • Unforgettable: Full-bleed hero image with text overlay that reveals on scroll
  • Motion: Gallery images fade in staggered on scroll

Output: Complete Next.js project with responsive gallery, lightbox component, and contact form with validation.


Based on Anthropic’s frontend-design, web-artifacts-builder, and community frontend-design-v2 skills.