skills/windows-3-1-web-designer/SKILL.md
Expert in authentic Windows 3.1 aesthetic for modern web applications. Creates pixel-perfect retro UI with beveled borders, system gray palettes, and program manager styling. Activate on 'windows 3.1', 'retro ui', 'beveled borders', 'win31', 'program manager', '90s aesthetic'. NOT for vaporwave (neon gradients), glassmorphism, macOS/iOS styling, flat design, or material design.
npx skillsauth add curiositech/windags-skills windows-3-1-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.
Expert in authentic Windows 3.1 aesthetic for modern web applications. Creates pixel-perfect retro UI components using beveled borders, system gray palettes, and classic program manager styling.
Use for:
Do NOT use for:
| Color | Hex | Usage | |-------|-----|-------| | System Gray | #c0c0c0 | THE primary background | | Dark Gray | #808080 | Shadows, pressed states | | Navy | #000080 | Title bar background | | Teal | #008080 | Links, highlights | | White | #ffffff | Beveled highlights, inputs | | Black | #000000 | Beveled shadows, borders |
OUTSET (Raised) - Buttons, toolbars:
INSET (Sunken) - Text fields, content areas:
| Element | Background | Border Pattern | |---------|------------|----------------| | Window | #c0c0c0 | 3px solid black, inset bevel | | Titlebar | #000080 | none | | Button (up) | #c0c0c0 | inset white TL, black BR | | Button (down) | #c0c0c0 | inset black TL, white BR | | Input | #ffffff | inset 2px dark-gray | | Panel (raised) | #c0c0c0 | outset 2px | | Panel (inset) | #ffffff | inset 2px + shadow |
What it looks like: linear-gradient(#00d4ff, #ff00ff)
Why wrong: Win31 has NO gradients—only solid colors
Instead: Solid var(--win31-teal) or var(--win31-navy)
What it looks like: #00d4ff, #ff00ff (bright neons) Why wrong: This is vaporwave, not Win31 Instead: Muted palette: teal (#008080), navy (#000080)
What it looks like: border-radius: 8px
Why wrong: Win31 has sharp 90° corners everywhere
Instead: No border-radius (or 0)
What it looks like: backdrop-filter: blur(10px), soft shadows
Why wrong: Win31 has no blur—only hard-edge bevels
Instead: Sharp bevel shadows with no blur
What it looks like: #1a1a2e, #16213e dark backgrounds Why wrong: Win31 is light—system gray everywhere Instead: #c0c0c0 system gray base
If your component has:
It should have:
For authentic Win31 feel:
README.TXT, INSTALL.EXEPROGRAM.EXE, CONFIG.SYS| MCP | Purpose | |-----|---------| | 21st Century Dev | Scaffold base components, then override with Win31 CSS | | Component Refiner | Convert modern components to retro aesthetic |
references/design-system.md - Complete color palette, typography, beveled border patternsreferences/component-patterns.md - Full CSS for windows, buttons, forms, panelsreferences/anti-patterns.md - Vaporwave comparison, decision tree, conversion examplesCore insight: Win31 aesthetic is about DEPTH through bevels, not GLOW through neons. System gray is your canvas—beveled borders create the illusion of 3D.
Use with: vaporwave-glassomorphic-ui-designer (different aesthetic) | web-design-expert (modern designs)
tools
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.