Create distinctive, production-grade frontend interfaces with high design quality. Covers aesthetics, mobile-first patterns, modern CSS, performance (Core Web Vitals), dark mode/theming, AI-era patterns, interaction design, data visualization, fluid typography, responsive images, component architecture, forms, internationalization, cognitive accessibility, design tokens, and cascade layers. Use this as your single frontend design skill.
This skill guides creation of distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics while ensuring proper mobile responsiveness and cross-element consistency.
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:
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.
These specific patterns have become telltale signs of AI-generated design. Avoid them:
Colors:
#f8f6f3, #fdfcfb, #faf8f5 type colors)#c45c48, #e07860, #d4715f, #bf4a37)Layout & Components:
Visual Effects:
Overall Aesthetic:
Instead, make distinctive choices: cooler color temperatures, sharper geometry, unexpected color combinations, higher contrast, or commit fully to a specific design tradition (Swiss, Japanese, Brutalist, Editorial, etc.) rather than the generic "modern SaaS" look.
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.
Problem: 2-column grid layouts leave empty space when one column is hidden on mobile.
/* Desktop: 2-column grid */
.hero {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 64px;
align-items: center;
}
/* Mobile: Switch to centered flex */
@media (max-width: 768px) {
.hero {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
padding: 40px 20px;
gap: 24px;
}
.hero-content {
align-items: center;
}
.hero-badge {
align-self: center;
}
.hero-title {
font-size: 32px;
text-align: center;
}
.hero-subtitle {
font-size: 14px;
text-align: center;
}
.hero-cta {
flex-direction: column;
align-items: center;
width: 100%;
}
.hero-cta .btn {
width: 100%;
max-width: 280px;
}
.hero-visual {
display: none;
}
}
Key Rule: When hiding grid columns on mobile, switch from display: grid to display: flex to eliminate reserved empty space.
Problem: Horizontal scroll for many items (20+) is unusable on mobile - text gets cut off.
Solution: Use collapsible accordion with category headers.
function StyleSelector({ items, categories }) {
const [expandedCategory, setExpandedCategory] = useState(null);
return (
<div className="selector">
{categories.map(category => (
<div key={category.name} className={`category ${expandedCategory === category.name ? 'expanded' : ''}`}>
<button
className="category-header"
onClick={() => setExpandedCategory(
expandedCategory === category.name ? null : category.name
)}
>
<span>{category.name}</span>
<ChevronIcon />
</button>
<div className="category-items">
{category.items.map(item => (
<button key={item.id} className="item">{item.name}</button>
))}
</div>
</div>
))}
</div>
);
}
@media (max-width: 768px) {
.category-items {
display: none;
}
.category.expanded .category-items {
display: flex;
flex-direction: column;
}
.chevron-icon {
transition: transform 0.2s ease;
}
.category.expanded .chevron-icon {
transform: rotate(180deg);
}
}
Problem: Multi-column form layouts get cut off on mobile.
.form-row {
display: flex;
gap: 16px;
}
@media (max-width: 768px) {
.form-row {
flex-direction: column;
}
.form-group {
width: 100%;
}
}
Problem: Inconsistent text alignment when stacking horizontally-laid elements vertically.
.alert {
display: flex;
align-items: flex-start;
gap: 12px;
}
@media (max-width: 768px) {
.alert {
flex-direction: column;
align-items: center; /* Center the flex items */
text-align: center; /* Center the text within items */
gap: 8px;
}
.alert strong {
text-align: center; /* Explicit for block elements */
}
}
Key Rule: Stacked flex items need BOTH align-items: center AND text-align: center for proper centering.
@media (max-width: 768px) {
.pricing-grid,
.feature-grid,
.team-grid,
.stats-grid {
grid-template-columns: 1fr;
}
}
/* Tablet - Stack sidebars, maintain content width */
@media (max-width: 1200px) { }
/* Mobile - Full single-column, centered hero */
@media (max-width: 768px) { }
/* Small Mobile - Compact spacing, reduced font sizes */
@media (max-width: 480px) { }
@media (max-width: 768px) {
.hero-title {
font-size: 32px; /* Down from ~48px */
}
.section-title {
font-size: 24px; /* Down from ~32px */
}
.section-subtitle {
font-size: 14px; /* Down from ~16px */
}
}
Modern Alternative: Container queries (Part 18) can replace many media queries by making components responsive to their container width rather than the viewport. For fluid font sizing without breakpoints, see Part 24.
Problem: Styling only .input leaves .select and .textarea unstyled.
/* WRONG - Only targets input */
.style-brutalist .input {
border: 2px solid var(--border);
border-radius: 0;
}
/* CORRECT - Targets all form fields */
.style-brutalist .input,
.style-brutalist .select,
.style-brutalist .textarea {
border: 2px solid var(--border);
border-radius: 0;
}
Pill-shaped inputs (border-radius: 100px) look wrong on textareas:
.style-kawaii .input,
.style-kawaii .select {
border-radius: 100px;
}
/* Textarea needs smaller radius */
.style-kawaii .textarea {
border-radius: 20px;
}
<option> elements can't inherit backdrop-filter or complex backgrounds:
.style-glassmorphism .select {
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
color: white;
}
/* Options need solid backgrounds */
.style-glassmorphism .select option {
background: #1a1a2e;
color: white;
}
Problem: Styles with border: transparent make form controls invisible.
/* These styles use transparent borders */
.style-neomorphism .radio-mark,
.style-claymorphism .radio-mark {
border: 2px solid #B8BEC7; /* Add visible border */
background: var(--bg-primary);
box-shadow: inset 2px 2px 4px rgba(163,177,198,0.3),
inset -2px -2px 4px rgba(255,255,255,0.8);
}
Always verify badge text contrasts with its background:
/* WRONG - May be invisible on light backgrounds */
.badge {
color: white;
}
/* CORRECT - Uses semantic variable */
.badge {
color: var(--bg-primary); /* Inverts with background */
}
Swatches showing colors need visible borders regardless of swatch color:
.color-swatch {
border: 2px solid rgba(255, 255, 255, 0.15);
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3);
}
Problem: Assuming labels should be white/light on dark themes.
/* WRONG - Hardcoded color */
.label {
color: white;
}
/* CORRECT - Uses semantic variable */
.label {
color: var(--text-primary);
}
Before finalizing any frontend design, verify:
| Issue | Cause | Fix |
|---|---|---|
| Hero left-aligned with empty space | Grid reserves hidden column | Switch to flex on mobile |
| Form fields cut off | Fixed-width grid | Stack vertically with flex |
| Inconsistent alert alignment | Missing align-items | Add align-items: center + text-align: center |
| Invisible form controls | Transparent borders | Add explicit borders or shadows |
| White text on light background | Hardcoded colors | Use semantic CSS variables |
| Horizontal scroll on selections | Too many items | Use accordion pattern |
| Textarea looks wrong | Pill border-radius | Use smaller radius for textarea |
| Design looks "AI-generated" | AI slop patterns | Follow aesthetic guidelines, be bold |
| Layout shift on load | Images without dimensions | Add width/height or aspect-ratio (Part 19) |
| Dark mode looks washed out | Colors not desaturated | Reduce saturation ~20% for dark mode (Part 20) |
| AI responses feel broken | No streaming indicator | Add typewriter cursor and phase-based loading (Part 21) |
| Specificity wars in CSS | No cascade management | Use @layer for explicit ordering (Part 31) |
| Content unreadable in translation | Fixed-width containers | Use logical properties and flexible layouts (Part 28) |
| Flash of wrong theme | Theme loads after paint | Run theme script in <head> (Part 20) |
Remember: Claude is capable of extraordinary creative work. Don't hold back, show what can truly be created when thinking outside the box and committing fully to a distinctive vision - while ensuring it works beautifully on every screen size.
Use these curated resources during the research phase to gather authentic inspiration, study proven patterns, and avoid generic design decisions.
Are.na - https://www.are.na Visual research tool for building mood boards and connecting ideas. Use for assembling contextual reference libraries, tracking design influences, and creating shareable channels documenting design processes. Think of it as "playlists for ideas" - following genuine curiosity leads to deeper creative engagement than algorithmic suggestions.
Mobbin - https://mobbin.com UI pattern library with 1,150+ apps, 586,700+ screens, and 312,000+ user flows. Search by screens, UI elements, flows, or text within screenshots. Features apps from Airbnb, Uber, ChatGPT, Dropbox, Nike. Includes Figma plugin for direct download. Use to study how leading apps handle specific design challenges and explore complete user journeys.
Logggos - https://www.logggos.club Curated logo gallery organized by business sectors (Tech, DTC, Agencies) and filterable by typography styles (sans-serif, script, serif), colors, and geometric shapes. Use when designing logo-adjacent elements or studying brand identity patterns.
The Noun Project - https://thenounproject.com 10M+ human-curated icons and photos in SVG/PNG formats. Emphasizes "Made by Humans" curation over algorithmic content. Use for quick icon discovery during design workflows, but consider creating custom icons for distinctive projects.
Artvee - https://artvee.com High-resolution public domain paintings, posters, and illustrations. Categories include Abstract, Figurative, Landscape, Still Life, Religion, Mythology. All files freely usable for personal and commercial projects. Use for incorporating classical artwork, creating derivative works, or adding historical visual elements.
Mockupworld - https://www.mockupworld.co Free photo-realistic PSD mockups for devices (iPhone, iPad, MacBook), packaging, print materials, and vehicles. Use to present designs in realistic contexts for client presentations or portfolio pieces.
Cargo - https://cargo.site Site builder for designers and artists with strong creative focus. Study Cargo sites for clean portfolio presentations and community-curated examples of quality design.
Readymag - https://readymag.com Specialized for creating cool animations and extravagant transitions. Study Readymag projects for motion design inspiration and experimental layout approaches.
Godly.website - https://godly.website "Astronomically good web design inspiration" - 1,000+ curated exceptional websites spanning diverse industries. Features work from recognized design leaders (Metalab, Lusion, Notion, Stripe) and emerging talent. Use for studying cutting-edge design approaches.
Minimal Gallery - https://minimal.gallery Hand-picked minimalist web design since 2013. Rigorous human curation (most submissions rejected). Organized by industry and design approach. Use for studying purposeful, clean design that prioritizes both visual elegance and usability.
Brutalist Websites - https://brutalistwebsites.com Curated collection of brutalist web design with interviews. Key principles: technical honesty over polish, anti-commercial stance, content-first approach, bare-bones functionality. Features magazine sites, portfolios, and experimental platforms. Use to understand deliberate aesthetic rejection and information-first design.
Landingfolio - https://landingfolio.com Landing page inspiration and templates organized by design approach and industry. Use for studying effective conversion-focused layouts and call-to-action patterns.
Degreeless.design - https://degreeless.design Comprehensive self-directed design education resource. Organized in progressive stages: Basics (typography, color theory, design history), UX Essentials (process, research, design systems), Advanced (industry content from Airbnb, Google). Key philosophy: "Process is the value you bring. Tools change & trends die."
Google Fonts Knowledge - https://fonts.google.com/knowledge Typography guidance and principles from Google. Covers type design, font selection, pairing strategies, and web font implementation best practices.
Brand New - https://www.underconsideration.com/brandnew/ Daily updates on logo, identity, and branding projects. Features before-and-after rebrand analysis with critical commentary. Categories: Reviewed (in-depth analysis), Noted (professional observations), Spotted (discovery-focused). Use to study branding decisions and understand what makes identity work succeed or fail.
Constraint Systems - https://constraint.systems Collection of experimental creative tools for unique layouts and constraint-based design exploration. Use for breaking out of conventional layout patterns.
Whisk by Google Labs - https://labs.google/whisk Experimental image generation tool powered by Imagen 4. Enables "prompting with pictures" - upload reference images as creative prompts and mix ideas in new ways. Use for rapid visual exploration and concept iteration during early design phases.
IBM Carbon - https://carbondesignsystem.com Enterprise design system emphasizing accessibility and consistency. Study for: responsive layout systems (breakpoints xs through 2xl), density options (condensed/normal), data visualization patterns, modular component architecture. Excellent reference for data-heavy applications.
GitHub Primer - https://primer.style Comprehensive open-source design system with strong accessibility focus. Study for: detailed accessibility patterns and checklists, Octicons SVG icon system, design tokens (color, spacing, typography), component libraries for React/Rails.
Material Design 3 - https://m3.material.io Google's latest design system. Study for: typography scale (display, headline, title, label, body styles), cohesive color palette with semantic tokens, elevation system for visual hierarchy, CSS custom properties for dynamic theming.
Learn from production design systems to create more cohesive, maintainable interfaces.
Use semantic design tokens instead of hardcoded values:
/* Define tokens at root level */
:root {
/* Primitive tokens */
--color-blue-500: #3b82f6;
--color-gray-900: #111827;
--spacing-4: 1rem;
/* Semantic tokens (reference primitives) */
--color-primary: var(--color-blue-500);
--color-text-primary: var(--color-gray-900);
--spacing-component-padding: var(--spacing-4);
}
/* Apply semantically */
.button {
background: var(--color-primary);
color: var(--color-text-on-primary);
padding: var(--spacing-component-padding);
}
Establish a clear type hierarchy (inspired by Material 3):
:root {
/* Display - Hero headlines */
--type-display-large: 57px/64px;
--type-display-medium: 45px/52px;
/* Headline - Section headers */
--type-headline-large: 32px/40px;
--type-headline-medium: 28px/36px;
/* Title - Card titles, dialogs */
--type-title-large: 22px/28px;
--type-title-medium: 16px/24px;
/* Body - Paragraph text */
--type-body-large: 16px/24px;
--type-body-medium: 14px/20px;
/* Label - Buttons, form labels */
--type-label-large: 14px/20px;
--type-label-medium: 12px/16px;
}
Create visual hierarchy through consistent elevation (from Carbon/Material):
:root {
--elevation-1: 0 1px 2px rgba(0, 0, 0, 0.05);
--elevation-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
--elevation-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
--elevation-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
}
/* Apply based on component importance */
.card { box-shadow: var(--elevation-1); }
.dropdown { box-shadow: var(--elevation-2); }
.modal { box-shadow: var(--elevation-4); }
Support different density contexts (from Carbon):
.component {
--component-padding: var(--spacing-4);
}
.component--condensed {
--component-padding: var(--spacing-2);
}
/* Data tables often need condensed density */
.data-table--condensed .table-cell {
padding: var(--spacing-1) var(--spacing-2);
}
/* Visually hidden but accessible to screen readers */
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
/* Focus visible for keyboard navigation */
.interactive:focus-visible {
outline: 2px solid var(--color-focus);
outline-offset: 2px;
}
/* Reduced motion preference */
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
}
}
For a full three-tier token architecture (constant → semantic → contextual) with multi-theme mapping, see Part 30. For cascade management of token layers, see Part 31.
For projects requiring anti-conventional aesthetics, study these brutalist principles:
Brutalism in web design is "a reaction by a younger generation to the lightness, optimism, and frivolity of today's web design." Key principles:
/* Brutalist typography */
body {
font-family: monospace;
font-size: 16px;
line-height: 1.4;
}
/* Raw layout - no decorative margins */
.container {
max-width: none;
padding: 20px;
}
/* Harsh contrast */
body {
background: #fff;
color: #000;
}
/* Or inverted */
body.dark {
background: #000;
color: #fff;
}
/* Utilitarian navigation */
nav a {
text-decoration: underline;
color: inherit;
}
/* No hover effects or transitions */