Best For
synthwave / retrowave / outrun
合成波
80s retro-futuristic music aesthetic with neon pink-purple palette, grid horizon, sunset gradients, and vintage tech feel -- brimming with nostalgic visions of the future.
Best For
synthwave / retrowave / outrun
Primary Move
Use pink-purple-cyan neon palette
Watch Out
Do not use bright white backgrounds
AI Implementation
Use the Hard Prompt by default to generate UI. Use the Design Spec to understand, modify, and review the style. Use the Creative Brief for early exploration.
Use this by default: copy it, append the concrete requirement, and let AI generate consistent production UI.
When to use
How to use
STYLEKIT_STYLE_REFERENCE
style_name: Synthwave
style_slug: synthwave
style_source: /styles/synthwave
# Hard Prompt
## When To Use
Use this when you want AI to generate code with strict style consistency. It is the safest default for production UI.
## How To Use
- Copy the full prompt into ChatGPT, Claude, Cursor, or another coding assistant.
- Append the concrete product/page requirement after the prompt.
- After generation, check the forbidden rules and interaction states before accepting the output.
Strictly follow the style rules below and maintain consistency. No style drift allowed.
## Requirements
- Prioritize style consistency first, then creative extension.
- When conflicts arise, treat prohibitions as the highest priority.
- Self-check before output: verify colors, typography, spacing, and interactions still match this style.
## Style Rules
You are a Synthwave design style frontend development expert. All generated code must strictly follow these constraints:
## Absolutely Forbidden
- Bright white backgrounds
- Modern minimalist design
- Omitting neon glow effects
- Formal fonts
## Must Follow
- Pink-purple-cyan palette from-pink-500, from-purple-500, from-cyan-500
- Dark backgrounds bg-purple-900, bg-black
- Neon glow shadow-[0_0_20px_rgba(255,0,255,0.5)]
- Grid background decorations
- Sunset gradient from-orange-500 via-pink-500 to-purple-500
## Color Palette
Primary:
- Pink: #ff00ff, from-pink-500
- Cyan: #00ffff, from-cyan-500
- Purple: #7b68ee, from-purple-500
- Orange: #ff6ec7
## Special Elements
- Perspective grid floor
- Sunset sun
- Mountain silhouettes
- Scanline effects
## Animation & Interaction Rules
- Arcade Pulse: Neon border elements use `hover:animate-pulse` -- the arcade machine's CRT screen flickers to life when touched. Only trigger on hover, never on load.
- Multidimensional Neon: Button uses simultaneous inset cyan + outer pink: `shadow-[0_0_15px_rgba(255,0,255,0.4),inset_0_0_10px_rgba(0,255,255,0.2)]` at rest. On hover BOTH intensify together: `hover:shadow-[0_0_30px_rgba(0,255,255,0.8),inset_0_0_20px_rgba(255,0,255,0.6)]`. Never single-direction neon -- two tubes always glow from opposite directions.
- Virtual Grid Shift: Background pixel grid uses `group-hover:opacity-30 group-hover:scale-110 transition-all duration-500` -- the virtual space expands as the player approaches, creating depth through the monitor glass.
- Overvoltage Press: Active state causes a power surge: `active:scale-90 active:bg-white active:text-black active:shadow-[0_0_50px_#ffffff]` -- all neon color drains to white as the circuit overloads at the moment of contact. The entire color system collapses to pure electricity.
## Absolute Bans (Match and Refuse)
If any of the following patterns appear, it is a style violation — rewrite without exception.
- use bright white backgrounds
- use modern minimalist design
- omit neon glow effects
- use overly formal fonts
- use single-direction neon (Multidimensional Neon requires inset + outer dual-direction simultaneous glow)
- change only one shadow value on hover (must intensify both inset cyan and outer pink tracks simultaneously)
- retain color in active state (Overvoltage Press requires `active:bg-white active:text-black` -- overload resets everything)
- animate Virtual Grid outside of group-hover (grid only activates when the player approaches)
## Self-Check (Verify Before Shipping)
If any item fails, the style has drifted — fix before shipping.
- [ ] No purple-to-blue gradients
- [ ] No overused fonts (Inter, Roboto, Geist, Fraunces, Plus Jakarta Sans)
- [ ] No nested cards (cards inside cards)
- [ ] No gray text on colored backgrounds
- [ ] Body text contrast meets WCAG AA (>= 4.5:1)
- [ ] No bounce or elastic easing curves
- [ ] Animations have a prefers-reduced-motion fallback
- [ ] Body text line length capped at 65-75 characters
- [ ] No side-stripe accent borders (border-left/right > 1px)
- [ ] No gradient text (background-clip: text)
- [ ] No glassmorphism used as the default surface treatment
- [ ] No tiny uppercase tracked eyebrow labels above every section heading
- [ ] do not use bright white backgrounds
- [ ] do not use modern minimalist design
- [ ] do not omit neon glow effects
- [ ] do not use overly formal fonts
- [ ] do not use single-direction neon (Multidimensional Neon requires inset + outer dual-direction simultaneous glow)Component Templates
合成波风格按钮,Multidimensional Neon 双向霓虹 + Overvoltage Press `active:scale-90 active:bg-white` 过载归零 + `duration-200 ease-out`
Frontend Readiness
This layer tracks whether the style is ready for real websites: theme modes, state feedback, keyboard access, and performance constraints.
Overall
51%
Fallback
Dark Mode
0%
MissingUI States
79%
PartialMotion
70%
PartialA11y
70%
PartialPerformance
35%
FallbackButton
Default / Hover / Focus Visible / Active / Disabled
Input
Default / Hover / Focus Visible / Disabled / Error
Card
Default / Hover / Focus Visible / Loading / Skeleton
Form
Default / Focus Visible / Disabled / Loading / Error
FAQ
/* Synthwave 全局样式 */
:root {
--synth-pink: #ff00ff;
--synth-cyan: #00ffff;
--synth-purple: #7b68ee;
--synth-orange: #ff6ec7;
}
/* 霓虹发光 */
.synth-glow {
text-shadow:
0 0 10px var(--synth-pink),
0 0 20px var(--synth-pink),
0 0 40px var(--synth-pink);
}
/* 网格地板 */
.synth-grid {
background-image:
linear-gradient(90deg, rgba(255, 0, 255, 0.3) 1px, transparent 1px),
linear-gradient(rgba(255, 0, 255, 0.3) 1px, transparent 1px);
background-size: 60px 30px;
transform: perspective(500px) rotateX(60deg);
transform-origin: bottom;
}
/* 日落渐变 */
.synth-sunset {
background: linear-gradient(
to bottom,
#1a0533 0%,
#4a1942 30%,
#ff6b6b 60%,
#feca57 100%
);
}
/* 扫描线 */
.synth-scanlines::after {
content: "";
position: absolute;
inset: 0;
background: repeating-linear-gradient(
0deg,
rgba(0, 0, 0, 0.15) 0px,
rgba(0, 0, 0, 0.15) 1px,
transparent 1px,
transparent 2px
);
pointer-events: none;
}
@keyframes synthwave-fade-in {
from { opacity: 0; transform: translateY(8px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes synthwave-pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.7; }
}
.synthwave-frosted {
backdrop-filter: blur(12px) saturate(180%);
-webkit-backdrop-filter: blur(12px) saturate(180%);
background: rgba(255, 0, 255, 0.08);
}
.synthwave-accent-corner {
clip-path: polygon(0 0, 100% 0, 100% calc(100% - 2rem), calc(100% - 2rem) 100%, 0 100%);
}
.synthwave-animate-in {
animation: synthwave-fade-in 0.5s ease-out both;
}IDE Integration
Download configuration files for AI coding assistants to generate code in this style.
Style Pack
Get complete machine-readable style assets including design tokens, Tailwind presets, CSS variables, and shadcn/ui themes.
Metadata
Style metadata including version information
Design Tokens
Compatible with Figma / Style Dictionary / Tokens Studio
Tailwind Preset
Tailwind CSS theme preset, import directly in config
Global CSS
CSS variables and base styles
shadcn Theme
shadcn/ui theme configuration
CSS Variables
Pure CSS variables, works with any project
SKILL.md
Loadable skill pack for Cursor / Claude Code / VS Code
Synthwave is an electronic music genre and visual aesthetic originating in the mid-2000s, paying homage to 80s sci-fi films, video games, and synthesizer music.
WCAG 2.1 compliance analysis based on color contrast and typography readability.
Overall Score
Grade: D - Poor
Contrast Ratios
| Context | Colors | Ratio | AA | AAA |
|---|---|---|---|---|
| Text on background | /#ff00ff / #0a0a1a | 6.25:1 | ||
| Secondary text on background | /#00ffff / #0a0a1a | 15.63:1 | ||
| Muted text on background | /#a020f0 / #0a0a1a | 3.7:1 | ||
| Text on secondary background | /#ff00ff / #1a0a2e | 5.94:1 | ||
| Secondary text on secondary | /#00ffff / #1a0a2e | 14.86:1 | ||
| Text on accent 1 | /#ff00ff / #ff00ff | 1:1 | ||
| Alt text on accent 1 | /#00ffff / #ff00ff | 2.5:1 | ||
| Text on accent 2 | /#ff00ff / #00ffff | 2.5:1 | ||
| Alt text on accent 2 | /#00ffff / #00ffff | 1:1 | ||
| Text on accent 3 | /#ff00ff / #a020f0 | 1.69:1 | ||
| Alt text on accent 3 | /#00ffff / #a020f0 | 4.23:1 | ||
| Text on accent 4 | /#ff00ff / #ff1493 | 1.16:1 | ||
| Alt text on accent 4 | /#00ffff / #ff1493 | 2.9:1 |
Readability
Score
87/100
Font Size
text-sm md:text-base
Font Weight
font-bold tracking-widest uppercase
Line Height
default
Scoring is based on WCAG 2.1 standards. AA requires 4.5:1 contrast for normal text, 3:1 for large text; AAA requires 7:1 for normal text, 4.5:1 for large text.