whimsy-design
$
npx mdskill add elophanto/EloPhanto/whimsy-designInjects joyful personality into brand experiences through strategic playful design.
- Enhances user engagement by adding delight to mundane interfaces and error states.
- Depends on no external tools, APIs, or services for its creative execution.
- Decides whimsy intensity based on context taxonomy from subtle to discovery.
- Delivers results through micro-interactions, hidden easter eggs, and contextual humor.
SKILL.md
.github/skills/whimsy-designView on GitHub ↗
---
name: whimsy-design
description: Expert creative specialist focused on adding personality, delight, and playful elements to brand experiences through memorable, joyful interactions. Adapted from msitarzewski/agency-agents.
---
## Triggers
- whimsy
- delight
- playful design
- micro-interactions
- easter egg
- gamification
- fun ux
- personality design
- error messages
- empty states
- loading animation
- microcopy
- brand personality
- engagement design
- delightful interactions
- achievement system
- surprise and delight
- humor in design
## Instructions
### Strategic Whimsy Design
Every playful element must serve a functional or emotional purpose. Design delight that enhances user experience rather than creating distraction.
### Whimsy Taxonomy
Apply the right level of whimsy for each context:
1. **Subtle Whimsy**: Small touches that add personality without distraction
- Hover effects, loading animations, button feedback, cursor changes
- Apply everywhere as baseline personality
2. **Interactive Whimsy**: User-triggered delightful interactions
- Click animations, form validation celebrations, progress rewards
- Apply at task completion points and positive feedback moments
3. **Discovery Whimsy**: Hidden elements rewarding user exploration
- Easter eggs, keyboard shortcuts (Konami code), secret features
- Apply sparingly to reward power users and curious explorers
4. **Contextual Whimsy**: Situation-appropriate humor and playfulness
- 404 pages, empty states, seasonal theming, error recovery
- Apply at frustration points to reduce negative emotions
### Brand Personality Spectrum
Define how brand shows personality across contexts:
- **Professional Context**: Subtle, sophisticated personality touches
- **Casual Context**: Full playful expression
- **Error Context**: Empathetic humor that reduces frustration
- **Success Context**: Celebratory moments that reward users
### Playful Microcopy
Write copy that maintains helpfulness while adding personality:
- **Error Messages**: Empathetic + helpful (e.g., "Your email looks a bit shy -- mind adding the @ symbol?")
- **Loading States**: Engaging + informative (e.g., "Crunching numbers with extra enthusiasm...")
- **Success Messages**: Celebratory + clear (e.g., "High five! Your message is on its way.")
- **Empty States**: Encouraging + actionable (e.g., "This space is waiting for something amazing")
- **Button Labels**: Descriptive + personality (e.g., "Lock it in!" instead of "Save")
### Micro-Interaction Design
Design animations with purpose:
- Button hover: translateY(-2px) + scale(1.02) + shadow elevation
- Form validation success: sparkle animation on valid fields
- Loading: bouncing dots with staggered delay
- Progress completion: celebration animation (confetti, bounce, sparkle)
- Shine/sweep effect on hover for premium elements
### Gamification Systems
Design achievement and reward patterns:
- Achievement unlocks with celebration overlays
- Progress tracking with milestone celebrations
- Easter egg discovery systems (click sequences, keyboard codes)
- Social sharing triggers for whimsical moments
### Inclusive Delight Rules
- Design playful elements that work for users with disabilities
- Ensure whimsy does not interfere with screen readers or assistive tech
- Provide `prefers-reduced-motion` alternatives for all animations
- Create humor that is culturally sensitive and appropriate across audiences
- Never let personality hinder task completion
### Performance Guidelines
- All animations should use CSS transforms and opacity (GPU-accelerated)
- Keep animation durations under 500ms for interactions, under 3s for celebrations
- Auto-remove celebration elements after display
- Test performance impact on low-end devices
### EloPhanto Tool Integration
- Use `browser_navigate` to audit existing interfaces for whimsy opportunities
- Use `web_search` to research engagement patterns and delight design trends
- Use `knowledge_write` to maintain microcopy libraries and animation specifications
## Deliverables
### Micro-Interaction CSS
```css
.btn-whimsy {
position: relative;
overflow: hidden;
transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
&::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: left 0.5s;
}
&:hover {
transform: translateY(-2px) scale(1.02);
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
&::before { left: 100%; }
}
&:active {
transform: translateY(-1px) scale(1.01);
}
}
.form-field-success::after {
content: '';
position: absolute;
right: 12px;
top: 50%;
transform: translateY(-50%);
animation: sparkle 0.6s ease-in-out;
}
@keyframes sparkle {
0%, 100% { transform: translateY(-50%) scale(1); opacity: 0; }
50% { transform: translateY(-50%) scale(1.3); opacity: 1; }
}
.loading-whimsy {
display: inline-flex;
gap: 4px;
.dot {
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--primary-color);
animation: bounce 1.4s infinite both;
&:nth-child(2) { animation-delay: 0.16s; }
&:nth-child(3) { animation-delay: 0.32s; }
}
}
@keyframes bounce {
0%, 80%, 100% { transform: scale(0.8); opacity: 0.5; }
40% { transform: scale(1.2); opacity: 1; }
}
```
### Microcopy Library
```markdown
## Error Messages
- 404: "Oops! This page went on vacation without telling us. Let's get you back on track!"
- Form validation: "Your email looks a bit shy -- mind adding the @ symbol?"
- Network: "Seems like the internet hiccupped. Give it another try?"
- Upload: "That file's being a bit stubborn. Mind trying a different format?"
## Loading States
- General: "Sprinkling some digital magic..."
- Image upload: "Teaching your photo some new tricks..."
- Data processing: "Crunching numbers with extra enthusiasm..."
- Search: "Hunting down the perfect matches..."
## Success Messages
- Form submission: "High five! Your message is on its way."
- Account creation: "Welcome to the party!"
- Task completion: "Boom! You're officially awesome."
- Achievement: "Level up! You've mastered [feature name]."
## Empty States
- No results: "No matches found, but your search skills are impeccable!"
- Empty cart: "Your cart is feeling a bit lonely. Want to add something nice?"
- No notifications: "All caught up! Time for a victory dance."
- No data: "This space is waiting for something amazing (hint: that's where you come in!)."
```
### Gamification JavaScript
```javascript
class WhimsyAchievements {
constructor() {
this.achievements = {
'first-click': { title: 'Welcome Explorer!', description: 'You clicked your first button.', celebration: 'bounce' },
'easter-egg-finder': { title: 'Secret Agent', description: 'You found a hidden feature!', celebration: 'confetti' },
'task-master': { title: 'Productivity Ninja', description: 'Completed 10 tasks.', celebration: 'sparkle' }
};
}
unlock(id) {
const a = this.achievements[id];
if (a && !this.isUnlocked(id)) {
this.showCelebration(a);
this.saveProgress(id);
}
}
showCelebration(achievement) {
const el = document.createElement('div');
el.className = `achievement-celebration ${achievement.celebration}`;
el.innerHTML = `<div class="achievement-card"><h3>${achievement.title}</h3><p>${achievement.description}</p></div>`;
document.body.appendChild(el);
setTimeout(() => el.remove(), 3000);
}
}
class EasterEggManager {
constructor() {
this.konami = '38,38,40,40,37,39,37,39,66,65';
this.sequence = [];
document.addEventListener('keydown', (e) => {
this.sequence.push(e.keyCode);
this.sequence = this.sequence.slice(-10);
if (this.sequence.join(',') === this.konami) this.triggerKonamiEgg();
});
}
triggerKonamiEgg() {
document.body.classList.add('rainbow-mode');
setTimeout(() => document.body.classList.remove('rainbow-mode'), 10000);
}
}
```
## Success Metrics
- User engagement with playful elements shows 40%+ interaction rate improvement
- Brand memorability increases measurably through distinctive personality elements
- User satisfaction scores improve due to delightful experience enhancements
- Social sharing increases as users share whimsical brand experiences
- Task completion rates maintain or improve despite added personality elements
## Verify
- The change was rendered in a browser/simulator and a screenshot or DOM snapshot was captured, not just code-reviewed
- Layout was checked at the breakpoints the whimsy-design guide calls out (mobile + desktop minimum); evidence of each is attached
- Color, typography, and spacing values used come from the project's design tokens / theme, not hard-coded ad-hoc values
- Keyboard navigation and focus order were exercised on every interactive element introduced
- Reduced-motion / dark-mode (when supported) variants were verified, not assumed to inherit
- No console errors or hydration warnings were emitted during the verification render
More from elophanto/EloPhanto
- 12-principles-of-animationAudit animation code against Disney's 12 principles adapted for web. Use when reviewing motion, implementing animations, or checking animation quality. Outputs file:line findings.
- accessibility-auditingAudit interfaces against WCAG 2.2 standards, test with assistive technologies, and ensure inclusive design beyond what automated tools catch. Adapted from msitarzewski/agency-agents.
- agency-phase-0-discoveryIntelligence and discovery phase — validate opportunity before committing resources. Adapted from msitarzewski/agency-agents.
- agency-phase-1-strategyStrategy and architecture phase — define what to build, how to structure it, and what success looks like. Adapted from msitarzewski/agency-agents.
- agency-phase-2-foundationFoundation and scaffolding phase — build technical and operational foundation before feature development. Adapted from msitarzewski/agency-agents.
- agency-phase-3-buildBuild and iterate phase — implement all features through continuous Dev-QA loops with orchestrated multi-agent sprints. Adapted from msitarzewski/agency-agents.
- agency-phase-4-hardeningQuality and hardening phase — the final quality gauntlet proving production readiness with evidence. Adapted from msitarzewski/agency-agents.
- agency-phase-5-launchLaunch and growth phase — coordinate go-to-market execution across all channels for maximum impact. Adapted from msitarzewski/agency-agents.
- agency-phase-6-operateOperate and evolve phase — sustained operations with continuous improvement for live products. Adapted from msitarzewski/agency-agents.
- agency-strategyNEXUS multi-agent orchestration strategy — the complete operational playbook for coordinating specialized AI agents across project phases. Adapted from msitarzewski/agency-agents.