retro-design – Design & UI skill for AI agents
Web and App implementation guide for Retro Design (60s-80s). Trigger when user wants vintage aesthetics, warm muted colors, and nostalgic layouts.
Install the retro-design skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/retro-design-cc509.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /retro-design – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/retro-design-cc509.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $retro-design – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/retro-design-cc509.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /retro-design – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/retro-design-cc509.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /retro-design – then describe the task you want done.
SKILL.md content
Retro Design
> "A warm, analog feeling. Nostalgia through muted tones, grain, and classic typography."
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. Warm, Analog Color Palettes: Colors look faded by the sun or printed on aged paper.
2. Texture and Noise: A slight grain overlay to simulate film or old print media.
3. Classic Typography Pairings: Heavy, groovy display fonts paired with typewriter or classic serif body copy.
Visual DNA
- Colors: Monochromatic Brown or warm, faded palettes (mustard yellow, burnt orange, sage green, off-white).
- Typography: Display fonts like
Cooper Black,Garamond, orCourier. - Styling: Badges, stamps, wavy borders, and halftone patterns.
Web Implementation
- Use CSS filters and background noise images to create texture.
- CSS Example:
body {
background-color: #F4E8D1; /* Aged paper */
color: #3E2723; /* Deep brown ink */
font-family: 'Georgia', serif;
/* Apply a subtle noise overlay using a pseudo-element or background image */
background-image: url('noise-texture.png');
background-blend-mode: multiply;
}
.retro-header {
font-family: 'Cooper Black', serif;
font-size: 4rem;
color: #D35400; /* Burnt orange */
text-shadow: 2px 2px 0px #F1C40F; /* Mustard yellow drop shadow */
letter-spacing: -1px;
}
.retro-card {
background-color: #FFF3E0;
border: 2px solid #3E2723;
border-radius: 12px;
padding: 24px;
/* Vintage offset shadow */
box-shadow: 8px 8px 0px #795548;
}
.retro-badge {
display: inline-block;
background-color: #E74C3C;
color: #F4E8D1;
font-family: monospace;
font-weight: bold;
padding: 8px 16px;
border-radius: 50%; /* Make it look like a sticker */
transform: rotate(-10deg);
}App Implementation
SwiftUI
struct RetroCard: View {
let paperColor = Color(red: 0.96, green: 0.91, blue: 0.82) // #F4E8D1
let inkColor = Color(red: 0.24, green: 0.15, blue: 0.14) // #3E2723
var body: some View {
ZStack {
paperColor.ignoresSafeArea()
// Optional: Noise texture
Image("film_grain")
.resizable()
.blendMode(.multiply)
.opacity(0.3)
.ignoresSafeArea()
VStack(alignment: .leading, spacing: 24) {
Text("RETRO DESIGN")
.font(.custom("Cooper Black", size: 36))
.foregroundColor(Color(red: 0.83, green: 0.33, blue: 0.0)) // #D35400
.shadow(color: Color(red: 0.95, green: 0.77, blue: 0.06), radius: 0, x: 2, y: 2)
Text("Analog warmth and classic typography.")
.font(.custom("Georgia", size: 18))
.foregroundColor(inkColor)
}
.padding(32)
.background(Color(red: 1.0, green: 0.95, blue: 0.88))
.cornerRadius(12)
.overlay(
RoundedRectangle(cornerRadius: 12)
.stroke(inkColor, lineWidth: 2)
)
// Vintage solid offset shadow
.shadow(color: Color(red: 0.47, green: 0.33, blue: 0.28), radius: 0, x: 8, y: 8)
}
}
}- A grain texture image can be overlaid using
.blendMode(.multiply). Be aware of memory usage with full-screen textures. - Use
.shadow(radius: 0)to create the hard offset shadows typical of 70s print media. - Custom fonts are optional; use licensed and registered fonts with system fallbacks.
Flutter
class RetroCard extends StatelessWidget {
final Color paperColor = const Color(0xFFF4E8D1);
final Color inkColor = const Color(0xFF3E2723);
@override
Widget build(BuildContext context) {
return Container(
color: paperColor,
child: Stack(
fit: StackFit.expand,
children: [
// Noise texture
Opacity(
opacity: 0.3,
child: Image.asset('assets/film_grain.png',
fit: BoxFit.cover,
color: paperColor, // colorBlendMode requires a color to blend with this image
colorBlendMode: BlendMode.multiply),
),
Center(
child: Container(
padding: const EdgeInsets.all(32),
decoration: BoxDecoration(
color: const Color(0xFFFFF3E0),
borderRadius: BorderRadius.circular(12),
border: Border.all(color: inkColor, width: 2),
boxShadow: const [
BoxShadow(
color: Color(0xFF795548),
blurRadius: 0, // Hard offset shadow
offset: Offset(8, 8),
),
],
),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text('RETRO DESIGN',
style: TextStyle(
fontFamily: 'Cooper',
fontSize: 36,
color: Color(0xFFD35400),
shadows: [Shadow(color: Color(0xFFF1C40F), offset: Offset(2, 2))],
)),
const SizedBox(height: 24),
Text('Analog warmth and classic typography.',
style: TextStyle(fontFamily: 'Georgia', fontSize: 18, color: inkColor)),
],
),
),
),
],
),
);
}
}- Wrap backgrounds in a
Stackto place a semi-transparent film grain asset over the solid color. - Drop shadows for text and containers must have
blurRadius: 0to emulate offset misregistered ink prints.
React Native
const RetroCard = () => {
return (
<ImageBackground
source={require('./film_grain.png')}
style={{ flex: 1, backgroundColor: '#F4E8D1', padding: 24, justifyContent: 'center' }}
imageStyle={{ opacity: 0.3, tintColor: '#3E2723' }}
>
<View style={{
backgroundColor: '#FFF3E0',
padding: 32,
borderRadius: 12,
borderWidth: 2,
borderColor: '#3E2723',
// Hard drop shadow
shadowColor: '#795548',
shadowOffset: { width: 8, height: 8 },
shadowOpacity: 1,
shadowRadius: 0,
elevation: 8, // Fallback for Android, though it blurs
}}>
<Text style={{
fontFamily: 'CooperBlack',
fontSize: 36,
color: '#D35400',
textShadowColor: '#F1C40F',
textShadowOffset: { width: 2, height: 2 },
textShadowRadius: 0,
marginBottom: 24
}}>
RETRO DESIGN
</Text>
<Text style={{ fontFamily: 'Georgia', fontSize: 18, color: '#3E2723' }}>
Analog warmth and classic typography.
</Text>
</View>
</ImageBackground>
);
};- Use
ImageBackgroundon the root view for the grain. - Android's
elevationcannot do unblurred offset shadows natively. Usereact-native-drop-shadowfor perfect retro shadows on Android.
Jetpack Compose
@Composable
fun RetroCard() {
val inkColor = Color(0xFF3E2723)
Box(modifier = Modifier.fillMaxSize().background(Color(0xFFF4E8D1))) {
// Noise Texture Overlay
Image(
painter = painterResource(id = R.drawable.film_grain),
contentDescription = null,
contentScale = ContentScale.Crop,
modifier = Modifier.matchParentSize().alpha(0.3f),
colorFilter = ColorFilter.tint(Color.Black, BlendMode.Multiply)
)
Box(
modifier = Modifier
.align(Alignment.Center)
.padding(24.dp)
// Fake hard shadow in compose by drawing behind
.drawBehind {
drawRoundRect(
color = Color(0xFF795548),
topLeft = Offset(8.dp.toPx(), 8.dp.toPx()),
size = size,
cornerRadius = CornerRadius(12.dp.toPx())
)
}
.background(Color(0xFFFFF3E0), RoundedCornerShape(12.dp))
.border(2.dp, inkColor, RoundedCornerShape(12.dp))
.padding(32.dp)
) {
Column {
Text("RETRO DESIGN",
fontFamily = FontFamily(Font(R.font.cooper_black)),
fontSize = 36.sp,
color = Color(0xFFD35400),
style = TextStyle(shadow = Shadow(Color(0xFFF1C40F), Offset(4f, 4f), 0f))
)
Spacer(Modifier.height(24.dp))
Text("Analog warmth and classic typography.",
… (full content is in the download package)
Related skills
- retro-futurism – Web and App implementation guide for Retro Futurism. Trigger when user wants vintage…
- reverse-image-search – Reverse Image Search. Use when working with image or public image URL.
- robius-state-management – CRITICAL: Use for Robius state management patterns. Triggers on: AppState, persistence…
- robius-widget-patterns – CRITICAL: Use for Robius widget patterns. Triggers on: apply_over, TextOrImage, modal…
- saas-multi-tenant – Design and implement multi-tenant SaaS architectures with row-level security…
- scarcity-urgency-psychologist – Design honest scarcity and urgency messaging when verified inventory, capacity, or…
- schema-markup – Design, validate, and optimize schema.org structured data for eligibility, correctness…
- sci-fi-interface – Web and App implementation guide for Sci-Fi Interface Design. Trigger when user wants…