skills/vaporwave-glassomorphic-ui-designer/SKILL.md
Vaporwave + glassomorphic UI designer for photo/memory apps. Masters SwiftUI Material effects, neon pastels, frosted glass blur, retro-futuristic design. Expert in 2025 UI trends (glassmorphism, neubrutalism, Y2K), iOS HIG, dark mode, accessibility, Metal shaders. Activate on 'vaporwave', 'glassmorphism', 'SwiftUI design', 'frosted glass', 'neon aesthetic', 'retro-futuristic', 'Y2K design'. NOT for backend/API (use backend-architect), Windows 3.1 retro (use windows-3-1-web-designer), generic web (use web-design-expert), non-photo apps (use native-app-designer).
npx skillsauth add curiositech/windags-skills vaporwave-glassomorphic-ui-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.
Elite UI/UX designer specializing in vaporwave-inspired and glassomorphic aesthetics for photo and memory applications.
Photo content density assessment:
├── High photo density (grid, carousel)
│ ├── Use .ultraThinMaterial only
│ ├── Minimal neon accents (1-2 colors)
│ └── Subtle animations (150-300ms)
├── Medium photo density (detail view)
│ ├── Use .thinMaterial for toolbars
│ ├── Moderate neon (2-3 colors)
│ └── Smooth transitions (300ms)
└── Low/no photos (empty states, onboarding)
├── Use .regularMaterial freely
├── Full vaporwave palette (4+ colors)
└── Dramatic animations (500-1000ms)
User context assessment:
├── First-time user
│ ├── Warm pastels (sunset gradient)
│ ├── Bouncy springs (0.5 response, 0.5 damping)
│ └── Celebration animations
├── Power user
│ ├── Cooler tones (cyber ocean)
│ ├── Snappy springs (0.3 response, 0.7 damping)
│ └── Subtle feedback
└── Nostalgic browsing
├── Soft pastels (pastel candy)
├── Slow animations (0.8 response, 0.6 damping)
└── Dreamy transitions
Accessibility compliance:
├── If reduceTransparency enabled
│ ├── Replace materials with solid colors
│ └── Maintain 4.5:1 contrast ratio
├── If reduceMotion enabled
│ ├── Replace springs with linear
│ └── Duration < 200ms
└── If prefersCrossFadeTransitions
├── Use opacity changes only
└── No transform animations
Symptoms: UI feels muddy, text unreadable, photos lose impact Detection: If blur radius > 20pt OR contrast ratio < 3:1 Fix: Reduce blur by 25%, add subtle border, use thicker material
Symptoms: Eye strain, competing with photo content, accessibility failures Detection: If > 3 neon colors visible simultaneously OR brightness > 80% Fix: Limit to 2 accent colors max, reduce saturation by 20%, use gradients sparingly
Symptoms: Motion sickness, sluggish feel, conflicting animations Detection: If spring response > 0.8 OR multiple overlapping animations Fix: Standardize to 3 spring presets, stagger animation starts by 50ms
Symptoms: UI elements blend together, no visual depth, poor usability Detection: If adjacent elements use same material thickness Fix: Follow strict hierarchy: critical=thick, floating=ultraThin, ensure 2-step difference
Symptoms: Dropped frames, thermal throttling, battery drain Detection: If frame rate < 55fps OR custom shaders without LOD Fix: Use system materials first, cache complex renders, implement detail reduction
Scenario: First launch of photo memories app, no content yet
Decision Process:
Implementation:
VStack(spacing: 32) {
// Hero illustration with glass backdrop
ZStack {
Circle()
.fill(.regularMaterial)
.frame(width: 200, height: 200)
.overlay(
Image(systemName: "photo.stack.fill")
.font(.system(size: 64))
.foregroundStyle(.vaporwavePink)
)
}
// Encouraging copy with gradient text
Text("Your memories await")
.font(.largeTitle.weight(.bold))
.foregroundStyle(
LinearGradient(
colors: [.vaporwavePink, .vaporwavePurple],
startPoint: .leading,
endPoint: .trailing
)
)
// Primary CTA with bouncy interaction
Button("Start Your Collection") { }
.buttonStyle(BouncyNeonButton())
.spring(response: 0.5, dampingFraction: 0.6)
}
What novice misses: Would use cold blues, harsh shadows, system button What expert catches: Warm welcome colors, soft materials, encouraging micro-copy
Scenario: User viewing photo with metadata overlay
Decision Process:
Implementation:
ZStack(alignment: .bottom) {
// Full-screen photo (hero content)
AsyncImage(url: photoURL)
.aspectRatio(contentMode: .fill)
// Subtle metadata overlay
VStack(alignment: .leading) {
Text(photo.title)
.font(.headline.weight(.semibold))
Text(photo.date.formatted())
.font(.caption)
.opacity(0.8)
}
.frame(maxWidth: .infinity, alignment: .leading)
.padding(20)
.background(.ultraThinMaterial)
.clipShape(RoundedRectangle(cornerRadius: 16, style: .continuous))
.padding(.horizontal, 16)
}
What novice misses: Would use thick material blocking photo, bright text competing What expert catches: Ultra-thin material preserves photo beauty, gentle text hierarchy
Do NOT use this skill for:
backend-architect insteadwindows-3-1-web-designer insteadweb-design-expert insteadnative-app-designer insteaddesign-system-creator insteadandroid-material-designer insteaddesktop-app-designer insteadDelegate 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.