skills/windows-95-web-designer/SKILL.md
Modern web applications with authentic Windows 95 aesthetic. Gradient title bars, Start menu paradigm, taskbar patterns, 3D beveled chrome. Extrapolates Win95 to AI chatbots, mobile UIs, responsive layouts. Activate on 'windows 95', 'win95', 'start menu', 'taskbar', 'retro desktop', '95 aesthetic', 'clippy'. NOT for Windows 3.1 (use windows-3-1-web-designer), vaporwave/synthwave, macOS, flat design.
npx skillsauth add curiositech/windags-skills windows-95-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 Windows 95 aesthetic. Not recreating 1995—extrapolating Win95 to modern contexts: AI assistants as Clippy descendants, mobile as pocket PCs, responsive as multi-monitor.
What's the primary interaction model?
├── Chatbot/AI Assistant?
│ ├── Single conversation? → Clippy Dialog (modal over desktop)
│ ├── Multiple conversations? → MDI with chat windows
│ └── Proactive assistant? → System tray balloon + wizard dialog
│
├── Dashboard/Admin Panel?
│ ├── Multiple data views? → MDI with docked panels
│ ├── Single workflow? → Tabbed dialog
│ └── Real-time monitoring? → Desktop with updating icons
│
├── Mobile App?
│ ├── < 640px width? → Pocket PC (single window, taskbar nav)
│ ├── 640-1024px? → Laptop (cascading windows)
│ └── > 1024px? → Full desktop (multiple windows, desktop icons)
│
└── Website/Marketing?
├── Landing page? → Single maximized window
├── Multi-section? → Start menu navigation
└── Documentation? → Help system with tree navigation
Is this element interactive?
├── YES: Button, Input, or Menu?
│ ├── Primary action? → Raised 3D button (default)
│ ├── Secondary action? → Flat button
│ ├── Data entry? → Inset input field
│ └── Navigation? → Menu bar or context menu
│
└── NO: Container or Content?
├── Groups content? → Group box with etched border
├── Displays data? → List view or tree view
├── Shows progress? → Progress bar
└── Pure content? → White background, no chrome
Screen width detected:
├── < 640px (Mobile)
│ ├── Touch interface? → Pocket PC paradigm
│ │ ├── Start button: bottom-left (44px min)
│ │ ├── Navigation: taskbar with app buttons
│ │ └── Content: single modal window
│ └── Stylus interface? → Windows CE paradigm
│
├── 640-1024px (Tablet)
│ ├── Portrait? → Laptop simulation (cascading)
│ └── Landscape? → Desktop with limited windows
│
└── > 1024px (Desktop)
├── Single monitor feel? → 1024×768 window
├── Multi-monitor? → Multiple app windows
└── Kiosk mode? → Fullscreen with taskbar
box-shadow: inset -1px -1px 0 var(--win95-dark-shadow), inset 1px 1px 0 var(--win95-highlight), inset -2px -2px 0 var(--win95-shadow), inset 2px 2px 0 var(--win95-button-face);0deg or 180deg instead of 90deglinear-gradient(90deg, #000080 0%, #1084d0 100%) for horizontal flowbox-shadow: 2px 2px 0 var(--win95-dark-shadow) (no blur radius)font-family: 'Tahoma', 'Segoe UI', 'Arial', sans-serif;Novice approach: Create chat bubbles with modern messaging UI Expert approach: Apply Clippy paradigm with proactive wizard dialog
<!-- WRONG: Modern chat -->
<div class="chat-container">
<div class="message user">Hello AI</div>
<div class="message assistant">How can I help?</div>
</div>
<!-- RIGHT: Win95 AI Assistant -->
<div class="win95-dialog" id="assistant-dialog">
<div class="win95-titlebar">
<span>Office Assistant</span>
<div class="win95-controls">
<button class="win95-control-btn">−</button>
<button class="win95-control-btn">×</button>
</div>
</div>
<div class="win95-dialog-content">
<div class="assistant-character">
<img src="clippy-animation.gif" alt="Assistant" width="48" height="48">
</div>
<div class="assistant-message">
<p>It looks like you're writing a document. Would you like help?</p>
<div class="assistant-choices">
<label><input type="radio" name="help" value="writing"> Get help with writing</label>
<label><input type="radio" name="help" value="formatting"> Get help with formatting</label>
<label><input type="radio" name="help" value="none"> Just write without help</label>
</div>
</div>
</div>
<div class="win95-dialog-buttons">
<button class="win95-button win95-button-primary">OK</button>
<button class="win95-button">Cancel</button>
</div>
</div>
Key decisions navigated:
Do NOT use for:
windows-3-1-web-designer (flatter, Program Manager, no gradients)vaporwave-glassomorphic-ui-designer (neon colors, different era)native-app-designer (different design language)web-design-expert (Material, minimalist approaches)modern-windows-designer (different visual systems)game-ui-designer (different interaction paradigms)Delegate to other skills when:
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.