skills/neobrutalist-web-designer/SKILL.md
Modern web applications with authentic neobrutalist aesthetic. Bold typography, hard shadows (no blur), thick black borders, high-contrast primary colors, raw visual tension. Extrapolates neobrutalism to SaaS dashboards, e-commerce, landing pages, startup MVPs. Activate on 'neobrutalism', 'neubrutalism', 'brutalist', 'bold borders', 'hard shadows', 'raw aesthetic', 'anti-minimalism', 'gumroad style', 'figma style'. NOT for glassmorphism (use vaporwave-glassomorphic-ui-designer), Windows retro (use windows-3-1-web-designer or windows-95-web-designer), soft shadows, gradients, neumorphism.
npx skillsauth add curiositech/windags-skills neobrutalist-web-designerInstall 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.
Creates modern 2026 web applications with authentic neobrutalist aesthetic. Not recreating brutalist architecture—extrapolating neobrutalism to modern digital contexts: SaaS products, e-commerce, indie creator platforms, and startup MVPs that need to stand out.
Button States:
├── Primary CTA → Yellow bg + 3px black border + 4px hard shadow
├── Secondary → White bg + 3px black border + 4px hard shadow
├── Danger → Red bg + 3px black border + 4px hard shadow
└── Ghost → Transparent bg + 3px black border + no shadow
Card Hierarchy:
├── Hero card → Bold accent color bg + 4px border + 8px shadow
├── Content card → White bg + 3px border + 6px shadow
├── Data card → Cream bg + 3px border + 4px shadow
└── Inline card → White bg + 2px border + 3px shadow
Input Focus States:
├── Default → White bg + 3px black border + no shadow
├── Focus → White bg + 3px black border + 4px shadow
├── Error → White bg + 3px red border + 4px red shadow
└── Success → White bg + 3px green border + 4px green shadow
Layout Container Choices:
├── Page hero → Full-width solid color + no border
├── Content section → Max-width + 4px bottom border
├── Sidebar → Solid bg + 4px right border
└── Modal → White bg + 4px border + 12px shadow
Text Purpose:
├── Hero headline → Archivo Black + 4-8rem + uppercase + -2% letter-spacing
├── Section header → Archivo Black + 2-3rem + uppercase
├── Body text → Space Grotesk + 1.125rem + normal case
├── Button text → Archivo Black + 1rem + uppercase
├── Form labels → Space Grotesk + 0.875rem + bold + uppercase
└── Code/data → JetBrains Mono + 0.875rem + normal case
Context Modifiers:
├── SaaS dashboard → More readable fonts, less extreme sizing
├── Landing page → Maximum impact fonts, oversized headlines
├── E-commerce → Product names bold, prices in display font
└── Blog/content → Prioritize readability with geometric sans
Screen Size:
├── Mobile (<640px) → 2px borders + 3px shadows
├── Tablet (640-1024px) → 3px borders + 4px shadows
├── Desktop (1024-1440px) → 4px borders + 6px shadows
└── Large (>1440px) → 4px borders + 8px shadows
Element Importance:
├── Hero elements → +2px to standard shadow
├── Interactive elements → Standard shadow + hover growth
├── Background cards → -1px from standard shadow
└── Decorative elements → Half standard shadow
Symptom: Using box-shadow: 0 4px 6px rgba(0,0,0,0.1) with blur
Detection rule: If you see ANY blur value > 0 in shadows
Diagnosis: Applying generic web design instead of neobrutalism
Fix: Replace with box-shadow: 4px 4px 0 #000000 (offset, no blur)
Symptom: Adding linear-gradient() or radial-gradient() backgrounds
Detection rule: If you see ANY gradient in CSS
Diagnosis: Trying to "soften" the aesthetic with blending
Fix: Pick ONE solid color per element. Embrace the flatness completely.
Symptom: Using border: 1px solid #ddd or similar thin borders
Detection rule: If border width < 2px or color is not high-contrast
Diagnosis: Fear of visual weight, defaulting to subtle design
Fix: Use border: 3px solid #000000 minimum. Bold borders define neobrutalism.
Symptom: Every element has different shadow directions/sizes randomly Detection rule: If >3 different shadow patterns exist on same screen Diagnosis: Inconsistent design system application Fix: Standardize to 2-3 shadow sizes maximum. Same direction (4px 4px) everywhere.
Symptom: Using muted pastels (#F0F0F0, #E8E8E8) instead of bold colors
Detection rule: If background colors have <7:1 contrast ratio with text
Diagnosis: Avoiding visual tension that defines the aesthetic
Fix: Use true primaries (#FF5252, #FFEB3B) with black/white text for maximum contrast.
Before (Generic Card):
.product-card {
background: #fff;
border: 1px solid #e1e5e9;
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
padding: 16px;
}
Decision Process:
After (Neobrutalist Card):
.neo-product-card {
background: #FFFFFF;
border: 3px solid #000000;
border-radius: 4px; /* Minimal softening */
box-shadow: 6px 6px 0 #000000; /* Hard shadow */
padding: 1rem;
transition: all 0.1s ease;
}
.neo-product-card:hover {
box-shadow: 8px 8px 0 #000000;
transform: translate(-2px, -2px); /* Physical movement */
}
What novice misses: The hover state needs physical feedback (transform) + shadow growth, not just color changes.
Problem: Designer used 6 different shadow patterns across dashboard components.
Failure symptoms detected:
box-shadow: 2px 4px 0 #000box-shadow: 4px 4px 0 #000box-shadow: 8px 12px 0 #000box-shadow: 3px 3px 0 #000box-shadow: 6px 6px 0 #000box-shadow: 1px 2px 0 #000Decision process:
Solution:
/* Standardized shadow system */
:root {
--shadow-hero: 8px 8px 0 #000000; /* Modals, hero cards */
--shadow-standard: 6px 6px 0 #000000; /* Regular cards, buttons */
--shadow-subtle: 3px 3px 0 #000000; /* Small elements, tooltips */
}
Result: Visual hierarchy became clear, design felt cohesive instead of chaotic.
Challenge: Show error/success states without soft styling.
Novice approach: Red text color change only Expert approach: Color + border + shadow coordination
/* Base input */
.neo-input {
background: #FFFFFF;
border: 3px solid #000000;
padding: 0.75rem 1rem;
box-shadow: none;
}
/* Focus state */
.neo-input:focus {
box-shadow: 4px 4px 0 #000000;
outline: none;
}
/* Error state - coordinated red theme */
.neo-input--error {
border-color: #FF5252;
box-shadow: 4px 4px 0 #FF5252;
}
/* Success state - coordinated green theme */
.neo-input--success {
border-color: #4CAF50;
box-shadow: 4px 4px 0 #4CAF50;
}
What expert catches: Error states need FULL visual coordination (border + shadow color match), not just text color changes.
Do NOT use neobrutalist-web-designer for:
vaporwave-glassomorphic-ui-designer insteadwindows-3-1-web-designer or windows-95-web-designernative-app-designer insteadweb-design-expert insteadaccessibility-first-designer insteaddata-visualization-expert insteadDelegate to other skills when user asks for:
web-design-expertaccessibility-first-designervaporwave-glassomorphic-ui-designerwindows-95-web-designerdata-visualization-experttools
Building resilient distributed systems with circuit breakers, retries with full-jitter exponential backoff, retry budgets (per-request 3-attempt + per-client 10% ratio per Google SRE), deadline propagation, and the cascading-failure math (4 layers × 3 retries = 64x amplification). Grounded in Resilience4j, Microsoft Cloud Patterns, AWS Architecture Blog (Marc Brooker), and Google SRE Book.
testing
Designing HTTP cache headers that work correctly across browsers, CDNs, and shared proxies — `Cache-Control` directives per RFC 9111, `stale-while-revalidate` and `stale-if-error` per RFC 5861, the Vary header for varying responses, and surrogate keys for tag-based purging. Grounded in IETF RFCs and Cloudflare/Fastly docs.
development
Use when designing or fixing a Content Security Policy on a real site, choosing between nonce-based and hash-based CSP, adding strict-dynamic, debugging "Refused to execute inline script" errors, deploying CSP in report-only mode first, configuring report-to / report-uri, or auditing an existing policy for unsafe-inline / unsafe-eval / wildcards. Triggers: "CSP blocks legitimate inline script", strict-dynamic, nonce-{RANDOM}, sha256-{HASH}, object-src none, base-uri none, frame-ancestors, Trusted Types, X-Content-Security-Policy obsolete, report-only vs enforced. NOT for general HTTP security headers (HSTS, COOP/COEP), Trusted Types deep dive, CORS configuration, or building a WAF.
tools
Choosing and operating an HTTP API versioning strategy that doesn't break clients — Stripe's date-based pinned versions, the Deprecation/Sunset header pair (RFC 9745 + RFC 8594), URI vs header vs media-type approaches, and the version-transformer pattern. Grounded in Stripe's published architecture and IETF RFCs.