vaporwave – skill Thiết kế & UI cho agent AI
Hướng dẫn triển khai phong cách Vaporwave cho Web và App. Kích hoạt khi người dùng muốn màu neon, thẩm mỹ kỹ thuật số retro, các yếu tố hệ điều hành thập niên 90 và tượng La Mã.
Cài skill vaporwave bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/vaporwave-615dd.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /vaporwave – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/vaporwave-615dd.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $vaporwave – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/vaporwave-615dd.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /vaporwave – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/vaporwave-615dd.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /vaporwave – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
Vaporwave
> "A surreal, nostalgic dream of 90s computing and pastel neon."
When to Use
Use this sub-style when the user's request matches the aesthetic described above. This is a child reference of the design-it skill and is not meant to be triggered directly.
Core Principles
1. Windows 95 / Mac OS 9 Motifs: UI elements designed to look explicitly like 1990s operating systems (grey boxes, hard bevels, blue title bars).
2. Surreal Pastels & Neons: A mix of soft pinks, cyans, and harsh neon overlays.
3. Collage Aesthetic: Mixing classical art (Roman busts), early 3D renders (checkerboard floors), and Japanese text (Kanji/Katakana).
Visual DNA
- Colors: Cyan (
#00FFFF), Magenta (#FF00FF), Lavender (#E6E6FA), and classic Windows Grey (#C0C0C0). - Typography:
MS Sans Serif,Tahoma, or pixel fonts. Fullwidth characters (AESTHETIC) are highly encouraged for headers. - Styling: Hard, 1px outsets and insets to simulate 90s 3D buttons.
Web Implementation
- Use standard CSS borders to create the classic 90s button look.
- CSS Example:
body {
background: linear-gradient(180deg, #ff99cc 0%, #99ccff 100%);
color: #000;
font-family: 'Tahoma', sans-serif;
min-height: 100vh;
}
/* Windows 95 Style Window */
.vapor-window {
background-color: #C0C0C0;
border: 2px outset #fff;
border-right-color: #808080;
border-bottom-color: #808080;
width: min(400px, 100%);
box-sizing: border-box;
padding: 2px;
}
.vapor-titlebar {
background: linear-gradient(90deg, #000080, #1084d0);
color: white;
font-weight: bold;
padding: 4px 8px;
display: flex;
justify-content: space-between;
}
.vapor-button {
background-color: #C0C0C0;
border: 2px outset #fff;
border-right-color: #808080;
border-bottom-color: #808080;
padding: 4px 12px;
}
.vapor-button:active {
border-style: inset;
}
/* The iconic vaporwave sun/grid */
.vapor-sun {
width: 200px; height: 200px;
background: linear-gradient(to bottom, #ff00ff, #ffff00);
border-radius: 50%;
box-shadow: 0 0 20px #ff00ff;
}App Implementation
SwiftUI
struct VaporwaveView: View {
var body: some View {
ZStack {
// Neon Gradient Background
LinearGradient(colors: [Color(hex: "ff99cc"), Color(hex: "99ccff")], startPoint: .top, endPoint: .bottom)
.ignoresSafeArea()
// Win95 Window
VStack(spacing: 0) {
// Title Bar
HStack {
Text("AESTHETIC.exe")
.font(.system(size: 14, weight: .bold, design: .monospaced))
.foregroundColor(.white)
Spacer()
Text("X")
.font(.system(size: 12, weight: .bold))
.padding(.horizontal, 6)
.background(Color(hex: "C0C0C0"))
.border(.white, width: 1) // Faux 3D
}
.padding(4)
.background(LinearGradient(colors: [Color(hex: "000080"), Color(hex: "1084d0")], startPoint: .leading, endPoint: .trailing))
// Content
VStack {
Text("It's all in your head.")
.font(.custom("Tahoma", size: 16))
.padding()
// Win95 Button
Button(action: {}) {
Text("OK")
.foregroundColor(.black)
.padding(.horizontal, 24)
.padding(.vertical, 8)
}
.background(Color(hex: "C0C0C0"))
// Complex borders to simulate Outset
.overlay(
Rectangle().stroke(Color.black, lineWidth: 1) // Outer bottom/right
)
.overlay(
Rectangle().stroke(Color.white, lineWidth: 1).padding(1) // Inner top/left
)
}
.frame(maxWidth: .infinity)
.padding(16)
.background(Color(hex: "C0C0C0"))
}
.frame(width: 300)
// Outset border for window
.border(Color(hex: "808080"), width: 2)
.padding()
}
}
}- You cannot use
.cornerRadius()anywhere in Vaporwave design. - The Win95 3D bevel is achieved by stacking
.border()and.overlay(Rectangle().stroke())with different colors (white for top/left, dark gray for bottom/right).
Flutter
class VaporwaveScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
decoration: const BoxDecoration(
gradient: LinearGradient(begin: Alignment.topCenter, end: Alignment.bottomCenter, colors: [Color(0xFFFF99CC), Color(0xFF99CCFF)]),
),
child: Center(
child: Container(
width: 300,
decoration: const BoxDecoration(
color: Color(0xFFC0C0C0),
// Classic Win95 Outset Border
border: Border(
top: BorderSide(color: Colors.white, width: 2),
left: BorderSide(color: Colors.white, width: 2),
bottom: BorderSide(color: Color(0xFF808080), width: 2),
right: BorderSide(color: Color(0xFF808080), width: 2),
),
),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
// Title Bar
Container(
padding: const EdgeInsets.symmetric(horizontal: 4, vertical: 2),
margin: const EdgeInsets.all(2),
decoration: const BoxDecoration(gradient: LinearGradient(colors: [Color(0xFF000080), Color(0xFF1084D0)])),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
const Text('AESTHETIC.exe', style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold)),
Container(color: const Color(0xFFC0C0C0), padding: const EdgeInsets.symmetric(horizontal: 4), child: const Text('X', style: TextStyle(fontWeight: FontWeight.bold))),
],
),
),
// Content
Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: [
const Text('nostalgia.sys loaded.', style: TextStyle(fontFamily: 'Tahoma')),
const SizedBox(height: 16),
// Outset Button
Container(
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 8),
decoration: const BoxDecoration(
color: Color(0xFFC0C0C0),
border: Border(
top: BorderSide(color: Colors.white, width: 2), left: BorderSide(color: Colors.white, width: 2),
bottom: BorderSide(color: Color(0xFF808080), width: 2), right: BorderSide(color: Color(0xFF808080), width: 2),
),
),
child: const Text('OK'),
)
],
),
)
],
),
),
),
),
);
}
}- Flutter's
BoxDecorationsupports complexBorderdefinitions where you can setBorderSidecolors independently. This perfectly recreates CSSoutset/inset.
React Native
const VaporwaveScreen = () => {
return (
<LinearGradient colors={['#ff99cc', '#99ccff']} style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
{/* Window */}
<View style={{
backgroundColor: '#C0C0C0', width: 300,
borderTopWidth: 2, borderLeftWidth: 2, borderTopColor: '#FFF', borderLeftColor: '#FFF',
borderBottomWidth: 2, borderRightWidth: 2, borderBottomColor: '#808080', borderRightColor: '#808080',
padding: 2
}}>
{/* Title Bar */}
<LinearGradient colors={['#000080', '#1084d0']} start={{x: 0, y: 0}} end={{x: 1, y: 0}} style={{ flexDirection: 'row', justifyContent: 'space-between', padding: 4 }}>
<Text style={{ color: '#FFF', fontWeight: 'bold' }}>AESTHETIC.exe</Text>
<View style={{ backgroundColor: '#C0C0C0', paddingHorizontal: 4 }}><Text style={{ fontWeight: 'bold' }}>X</Text></View>
</LinearGradient>
<View style={{ padding: 16, alignItems: 'center' }}>
<Text style={{ fontFamily: 'monospace', marginBottom: 16 }}>nostalgia.sys</Text>
{/* Outset Button */}
<Toucha… (nội dung đầy đủ có trong gói tải về)
Skill liên quan
- vibecode-production-qa-validator – Kiểm tra QA production 13 giai đoạn cho ứng dụng fullstack Next.js: xác minh build, thẻ…
- vibrant-maximalism – Hướng dẫn triển khai Web và App theo phong cách Vibrant Maximalism. Kích hoạt khi người…
- videodb – Nhận diện, lập chỉ mục và chỉnh sửa video và âm thanh. Nhập file/URL/luồng trực tiếp…
- visual-emotion-engineer – Tạo brief định hướng thị giác về màu sắc, typography, hình ảnh và thứ bậc khi thiết kế…
- vizcom – Công cụ thiết kế sản phẩm dùng AI, biến phác thảo thành render 3D đầy đủ chi tiết.
- watch-igaming – Xem xét liên kết video hoặc bản ghi màn hình cục bộ dựa trên bản chép lời và các khung…
- web-artifacts-builder – Tạo artifact frontend bằng React và đóng gói dự án đã rà soát thành một tệp HTML có thể…
- web-design-guidelines – Rà soát tệp để kiểm tra mức tuân thủ Web Interface Guidelines.