返回 AiToEarn
delight.md
1 > **Additional context needed**: what's appropriate for the domain (playful vs professional vs quirky vs elegant).
2
3 Find the moments where personality and unexpected polish would turn a functional interface into one users remember and tell other people about. Add only where the moment earns it; delight everywhere reads as noise.
4
5 ---
6
7 ## Register
8
9 Brand: delight can be distributed across copy voice, section transitions, discovery rewards, seasonal touches, personality across the whole surface.
10
11 Product: delight at specific moments, not pages. Completion, first-time actions, error recovery, milestone crossings. Reliability and consistency carry the rest of the experience; delight pushed everywhere reads as noise.
12
13 ---
14
15 ## Assess Delight Opportunities
16
17 Identify where delight would enhance (not distract from) the experience:
18
19 1. **Find natural delight moments**:
20 - **Success states**: Completed actions (save, send, publish)
21 - **Empty states**: First-time experiences, onboarding
22 - **Loading states**: Waiting periods that could be entertaining
23 - **Achievements**: Milestones, streaks, completions
24 - **Interactions**: Hover states, clicks, drags
25 - **Errors**: Softening frustrating moments
26 - **Easter eggs**: Hidden discoveries for curious users
27
28 2. **Understand the context**:
29 - What's the brand personality? (Playful? Professional? Quirky? Elegant?)
30 - Who's the audience? (Tech-savvy? Creative? Corporate?)
31 - What's the emotional context? (Accomplishment? Exploration? Frustration?)
32 - What's appropriate? (Banking app ≠ gaming app)
33
34 3. **Define delight strategy**:
35 - **Subtle sophistication**: Refined micro-interactions (luxury brands)
36 - **Playful personality**: Whimsical illustrations and copy (consumer apps)
37 - **Helpful surprises**: Anticipating needs before users ask (productivity tools)
38 - **Sensory richness**: Satisfying sounds, smooth animations (creative tools)
39
40 If any of these are unclear from the codebase, STOP and use Codex's structured user-input/question tool when available; if unavailable, ask directly in chat to clarify what you cannot infer.
41
42 **CRITICAL**: Delight should enhance usability, never obscure it. If users notice the delight more than accomplishing their goal, you've gone too far.
43
44 ## Delight Principles
45
46 Follow these guidelines:
47
48 ### Delight Amplifies, Never Blocks
49 - Delight moments should be quick (< 1 second)
50 - Never delay core functionality for delight
51 - Make delight skippable or subtle
52 - Respect user's time and task focus
53
54 ### Surprise and Discovery
55 - Hide delightful details for users to discover
56 - Reward exploration and curiosity
57 - Don't announce every delight moment
58 - Let users share discoveries with others
59
60 ### Appropriate to Context
61 - Match delight to emotional moment (celebrate success, empathize with errors)
62 - Respect the user's state (don't be playful during critical errors)
63 - Match brand personality and audience expectations
64 - Cultural sensitivity (what's delightful varies by culture)
65
66 ### Compound Over Time
67 - Delight should remain fresh with repeated use
68 - Vary responses (not same animation every time)
69 - Reveal deeper layers with continued use
70 - Build anticipation through patterns
71
72 ## Delight Techniques
73
74 Add personality and joy through these methods:
75
76 ### Micro-interactions & Animation
77
78 **Button delight**:
79 ```css
80 /* Satisfying button press */
81 .button {
82 transition: transform 0.1s, box-shadow 0.1s;
83 }
84 .button:active {
85 transform: translateY(2px);
86 box-shadow: 0 2px 4px rgba(0,0,0,0.2);
87 }
88
89 /* Ripple effect on click */
90 /* Smooth lift on hover */
91 .button:hover {
92 transform: translateY(-2px);
93 transition: transform 0.2s cubic-bezier(0.25, 1, 0.5, 1); /* ease-out-quart */
94 }
95 ```
96
97 **Loading delight**:
98 - Playful loading animations (not just spinners)
99 - Personality in loading messages (write product-specific ones, not generic AI filler)
100 - Progress indication with encouraging messages
101 - Skeleton screens with subtle animations
102
103 **Success animations**:
104 - Checkmark draw animation
105 - Confetti burst for major achievements
106 - Gentle scale + fade for confirmation
107 - Satisfying sound effects (subtle)
108
109 **Hover surprises**:
110 - Icons that animate on hover
111 - Color shifts or glow effects
112 - Tooltip reveals with personality
113 - Cursor changes (custom cursors for branded experiences)
114
115 ### Personality in Copy
116
117 **Playful error messages**:
118 ```
119 "Error 404"
120 "This page is playing hide and seek. (And winning)"
121
122 "Connection failed"
123 "Looks like the internet took a coffee break. Want to retry?"
124 ```
125
126 **Encouraging empty states**:
127 ```
128 "No projects"
129 "Your canvas awaits. Create something amazing."
130
131 "No messages"
132 "Inbox zero! You're crushing it today."
133 ```
134
135 **Playful labels & tooltips**:
136 ```
137 "Delete"
138 "Send to void" (for playful brand)
139
140 "Help"
141 "Rescue me" (tooltip)
142 ```
143
144 **IMPORTANT**: Match copy personality to brand. Banks shouldn't be wacky, but they can be warm.
145
146 ### Illustrations & Visual Personality
147
148 **Custom illustrations**:
149 - Empty state illustrations (not stock icons)
150 - Error state illustrations (friendly monsters, quirky characters)
151 - Loading state illustrations (animated characters)
152 - Success state illustrations (celebrations)
153
154 **Icon personality**:
155 - Custom icon set matching brand personality
156 - Animated icons (subtle motion on hover/click)
157 - Illustrative icons (more detailed than generic)
158 - Consistent style across all icons
159
160 **Background effects**:
161 - Subtle particle effects
162 - Gradient mesh backgrounds
163 - Geometric patterns
164 - Parallax depth
165 - Time-of-day themes (morning vs night)
166
167 ### Satisfying Interactions
168
169 **Drag and drop delight**:
170 - Lift effect on drag (shadow, scale)
171 - Snap animation when dropped
172 - Satisfying placement sound
173 - Undo toast ("Dropped in wrong place? [Undo]")
174
175 **Toggle switches**:
176 - Smooth slide with spring physics
177 - Color transition
178 - Haptic feedback on mobile
179 - Optional sound effect
180
181 **Progress & achievements**:
182 - Streak counters with celebratory milestones
183 - Progress bars that "celebrate" at 100%
184 - Badge unlocks with animation
185 - Playful stats ("You're on fire! 5 days in a row")
186
187 **Form interactions**:
188 - Input fields that animate on focus
189 - Checkboxes with a satisfying scale pulse when checked
190 - Success state that celebrates valid input
191 - Auto-grow textareas
192
193 ### Sound Design
194
195 **Subtle audio cues** (when appropriate):
196 - Notification sounds (distinctive but not annoying)
197 - Success sounds (satisfying "ding")
198 - Error sounds (empathetic, not harsh)
199 - Typing sounds for chat/messaging
200 - Ambient background audio (very subtle)
201
202 **IMPORTANT**:
203 - Respect system sound settings
204 - Provide mute option
205 - Keep volumes quiet (subtle cues, not alarms)
206 - Don't play on every interaction (sound fatigue is real)
207
208 ### Easter Eggs & Hidden Delights
209
210 **Discovery rewards**:
211 - Konami code unlocks special theme
212 - Hidden keyboard shortcuts (Cmd+K for special features)
213 - Hover reveals on logos or illustrations
214 - Alt text jokes on images (for screen reader users too!)
215 - Console messages for developers ("Like what you see? We're hiring!")
216
217 **Seasonal touches**:
218 - Holiday themes (subtle, tasteful)
219 - Seasonal color shifts
220 - Weather-based variations
221 - Time-based changes (dark at night, light during day)
222
223 **Contextual personality**:
224 - Different messages based on time of day
225 - Responses to specific user actions
226 - Randomized variations (not same every time)
227 - Progressive reveals with continued use
228
229 ### Loading & Waiting States
230
231 **Make waiting engaging**:
232 - Interesting loading messages that rotate
233 - Progress bars with personality
234 - Mini-games during long loads
235 - Fun facts or tips while waiting
236 - Countdown with encouraging messages
237
238 ```
239 Loading messages: write ones specific to your product, not generic AI filler:
240 - "Crunching your latest numbers..."
241 - "Syncing with your team's changes..."
242 - "Preparing your dashboard..."
243 - "Checking for updates since yesterday..."
244 ```
245
246 **WARNING**: Avoid cliched loading messages like "Herding pixels", "Teaching robots to dance", "Consulting the magic 8-ball", "Counting backwards from infinity". These are AI-slop copy, instantly recognizable as machine-generated. Write messages that are specific to what your product actually does.
247
248 ### Celebration Moments
249
250 **Success celebrations**:
251 - Confetti for major milestones
252 - Animated checkmarks for completions
253 - Progress bar celebrations at 100%
254 - "Achievement unlocked" style notifications
255 - Personalized messages ("You published your 10th article!")
256
257 **Milestone recognition**:
258 - First-time actions get special treatment
259 - Streak tracking and celebration
260 - Progress toward goals
261 - Anniversary celebrations
262
263 ## Implementation Patterns
264
265 **Animation libraries**:
266 - Framer Motion (React)
267 - GSAP (universal)
268 - Lottie (After Effects animations)
269 - Canvas confetti (party effects)
270
271 **Sound libraries**:
272 - Howler.js (audio management)
273 - Use-sound (React hook)
274
275 **Physics libraries**:
276 - React Spring (spring physics)
277 - Popmotion (animation primitives)
278
279 **IMPORTANT**: File size matters. Compress images, optimize animations, lazy load delight features.
280
281 **NEVER**:
282 - Delay core functionality for delight
283 - Force users through delightful moments (make skippable)
284 - Use delight to hide poor UX
285 - Overdo it (less is more)
286 - Ignore accessibility (animate responsibly, provide alternatives)
287 - Make every interaction delightful (special moments should be special)
288 - Sacrifice performance for delight
289 - Be inappropriate for context (read the room)
290
291 ## Verify Delight Quality
292
293 Test that delight actually delights:
294
295 - **User reactions**: Do users smile? Share screenshots?
296 - **Doesn't annoy**: Still pleasant after 100th time?
297 - **Doesn't block**: Can users opt out or skip?
298 - **Performant**: No jank, no slowdown
299 - **Appropriate**: Matches brand and context
300 - **Accessible**: Works with reduced motion, screen readers
301
302 When the moments feel earned, hand off to `$impeccable polish` for the final pass.
303
303 lines MARKDOWN