vibe-designer-plugin/skills/vibe-designer/SKILL.md
Create stunning, modern web designs with aurora effects, glassmorphism, neon glows, and sophisticated aesthetics. Perfect for developer tools, dashboards, and apps targeting vibe coders who appreciate refined, atmospheric UI.
npx skillsauth add tmdgusya/sprinter vibe-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.
This skill creates sophisticated, atmospheric web interfaces that resonate with modern developers and "vibe coders." Focus on creating memorable, polished designs with depth, glow effects, and intentional aesthetics.
The user provides design requirements: a component, page, dashboard, or full application. They may specify mood, colors, or technical constraints.
Before coding, establish a clear aesthetic direction:
Choose a primary mood that drives all decisions:
Build depth with layered backgrounds:
:root {
/* Background layers - darkest to lightest */
--bg-void: #05020a; /* Deepest black with color tint */
--bg-deep: #0a0812; /* Base layer */
--bg-primary: #0f0c18; /* Main content background */
--bg-secondary: #161224; /* Cards, elevated surfaces */
--bg-tertiary: #1e1830; /* Hover states, highlights */
--bg-elevated: #261e40; /* Highest elevation */
}
Purple/Violet (Linear, Raycast style)
--accent-primary: #a855f7;
--accent-secondary: #8b5cf6;
--accent-glow: rgba(168, 85, 247, 0.5);
Cyan/Teal (Terminal, tech style)
--accent-primary: #06b6d4;
--accent-secondary: #22d3ee;
--accent-glow: rgba(6, 182, 212, 0.5);
Emerald/Green (Nature, success style)
--accent-primary: #10b981;
--accent-secondary: #34d399;
--accent-glow: rgba(16, 185, 129, 0.5);
Rose/Pink (Creative, playful style)
--accent-primary: #f43f5e;
--accent-secondary: #fb7185;
--accent-glow: rgba(244, 63, 94, 0.5);
Amber/Gold (Warm, premium style)
--accent-primary: #f59e0b;
--accent-secondary: #fbbf24;
--accent-glow: rgba(245, 158, 11, 0.5);
Always tint text colors to match the accent:
--text-primary: #f0eef5; /* Main text - warm white */
--text-secondary: #a8a3b5; /* Secondary - muted */
--text-tertiary: #6b6578; /* Subtle labels */
--text-muted: #443d52; /* Disabled, hints */
Create atmospheric depth with layered animated gradients:
/* Multi-point mesh gradient */
--mesh-gradient:
radial-gradient(at 40% 20%, rgba(168, 85, 247, 0.3) 0px, transparent 50%),
radial-gradient(at 80% 0%, rgba(139, 92, 246, 0.2) 0px, transparent 50%),
radial-gradient(at 0% 50%, rgba(217, 70, 239, 0.15) 0px, transparent 50%),
radial-gradient(at 80% 50%, rgba(6, 182, 212, 0.08) 0px, transparent 50%),
radial-gradient(at 0% 100%, rgba(168, 85, 247, 0.2) 0px, transparent 50%);
body::before {
content: '';
position: fixed;
inset: 0;
background: var(--mesh-gradient);
animation: aurora-drift 25s ease-in-out infinite;
pointer-events: none;
}
@keyframes aurora-drift {
0%, 100% { transform: translate(0, 0) scale(1); }
50% { transform: translate(-1%, 2%) scale(1.02); filter: hue-rotate(15deg); }
}
Add subtle grain for depth:
.app::before {
content: '';
position: fixed;
inset: 0;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
opacity: 0.025;
pointer-events: none;
mix-blend-mode: overlay;
}
.glass-panel {
background: rgba(15, 12, 24, 0.85);
backdrop-filter: blur(20px) saturate(180%);
-webkit-backdrop-filter: blur(20px) saturate(180%);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 16px;
}
.glass-glow {
position: relative;
}
.glass-glow::after {
content: '';
position: absolute;
top: 0;
left: 15%;
right: 15%;
height: 1px;
background: linear-gradient(90deg, transparent, rgba(168, 85, 247, 0.5), transparent);
box-shadow: 0 0 15px rgba(168, 85, 247, 0.4);
}
--glow-sm: 0 0 10px rgba(168, 85, 247, 0.3);
--glow-md: 0 0 20px rgba(168, 85, 247, 0.4);
--glow-lg: 0 0 40px rgba(168, 85, 247, 0.5);
/* Combined shadow + glow */
--shadow-glow: 0 4px 16px rgba(0, 0, 0, 0.5), 0 0 30px rgba(168, 85, 247, 0.2);
.card::before {
content: '';
position: absolute;
inset: 0;
border-radius: inherit;
padding: 1px;
background: linear-gradient(135deg, transparent, transparent);
-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
mask-composite: exclude;
transition: background 0.3s;
}
.card:hover::before {
background: linear-gradient(135deg, #a855f7, #8b5cf6, #d946ef);
}
.status-indicator {
width: 8px;
height: 8px;
background: #10b981;
border-radius: 50%;
box-shadow: 0 0 8px #10b981, 0 0 16px #10b981;
animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse {
0%, 100% { opacity: 1; box-shadow: 0 0 8px currentColor, 0 0 16px currentColor; }
50% { opacity: 0.6; box-shadow: 0 0 4px currentColor; }
}
Modern Tech (Linear style)
'Space Grotesk', 'Outfit', 'Sora''Inter' (sparingly), 'DM Sans''JetBrains Mono', 'Fira Code'Premium/Luxury
'Playfair Display', 'Cormorant''Source Sans Pro', 'Lato'Playful/Creative
'Archivo Black', 'Bebas Neue''Nunito', 'Quicksand'.gradient-text {
background: linear-gradient(135deg, #a855f7, #8b5cf6, #d946ef);
background-size: 200% auto;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
animation: gradient-shift 8s linear infinite;
}
@keyframes gradient-shift {
0% { background-position: 0% center; }
100% { background-position: 200% center; }
}
.interactive {
transition: transform 200ms cubic-bezier(0.34, 1.56, 0.64, 1),
box-shadow 300ms ease-out;
}
.interactive:hover {
transform: translateY(-3px);
box-shadow: var(--shadow-glow);
}
*:focus-visible {
outline: none;
box-shadow: 0 0 0 2px var(--bg-primary), 0 0 0 4px rgba(168, 85, 247, 0.5);
animation: focus-pulse 1.5s ease-in-out infinite;
}
@keyframes focus-pulse {
0%, 100% { box-shadow: 0 0 0 2px var(--bg-primary), 0 0 0 4px rgba(168, 85, 247, 0.5); }
50% { box-shadow: 0 0 0 2px var(--bg-primary), 0 0 0 4px rgba(168, 85, 247, 0.8); }
}
.item { animation: fade-up 300ms ease-out backwards; }
.item:nth-child(1) { animation-delay: 50ms; }
.item:nth-child(2) { animation-delay: 100ms; }
.item:nth-child(3) { animation-delay: 150ms; }
@keyframes fade-up {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
.btn-primary {
background: linear-gradient(135deg, #a855f7, #8b5cf6, #d946ef);
border: none;
color: white;
padding: 0.5rem 1rem;
border-radius: 8px;
font-weight: 500;
box-shadow: 0 2px 12px rgba(168, 85, 247, 0.4);
transition: all 150ms ease;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 4px 24px rgba(168, 85, 247, 0.5), 0 0 40px rgba(168, 85, 247, 0.3);
filter: brightness(1.1);
}
ALWAYS include reduced motion support:
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
}
}
When building:
Remember: The goal is to create interfaces that developers WANT to use and look at. Every design choice should contribute to an atmosphere that feels intentional, refined, and memorable.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.