Files
pbakaus_impeccable/skill/reference/delight.md
T
Paul BakausandClaude Fable 5 2c62f0f4f9 de-SaaS the skill: mode-aware rules, neutral runtime injections, diversified examples
Fix batch from the visitor-mode bias audit. The skill's four modes
(Persuade / Operate / Read / Experience) now reach the places that were
still hard-coded to a SaaS-marketing default:

- palette.mjs: rewrote 45 seed blurbs in material/world terms. The 29
  tech-tool-world moods (13 Linear-indigo variants, 6 Figma-era, 5
  climate-tech, 3 fintech, 2 Glossier DTC, incl. seed-201's docs-page
  CTA red) lose all company names and product-category words; Aesop
  trimmed from 17 blurbs to 4 and Klim from 7 to 4, excess rewritten
  as unnamed material terms. Also carries the earlier bg-block rewrite
  (brand refs out of the composition doc).
- init.md: register explainer now names the four modes and the family
  each belongs to (stored value stays brand/product for compatibility);
  Conversion & proof interview + PRODUCT.md section gated to Persuade
  surfaces only (Experience/Read get no CTA/belief-ladder/proof).
- critique.md: Nielsen heuristics 7 and 10 may score n/a on Persuade
  and Experience surfaces, total renormalized to the applicable max,
  snapshot records which were n/a; working-memory examples diversified
  beyond dashboard/pricing anatomy.
- Register headers in bolder/delight/quieter/colorize/layout/animate/
  typeset renamed from Brand:/Product: to Persuade + Experience: /
  Operate + Read:; typeset and layout gain one Read-specific sentence
  (steady reading measure; navigable linearity).
- animate.md: plan checklist and implementation order lead with
  feedback and transitions; the single entrance moment comes after,
  scoped to modes that invite it.
- codex.md: mock inventory says "primary-action treatment (when the
  surface has one)" instead of assuming a CTA.
- delight.md: loading/empty-state/console-egg examples diversified
  beyond SaaS; streaks/badges scoped to Operate surfaces with
  recurring tasks.
- distill.md: step-removal and next-action lines neutralized away
  from signup/checkout/CTA vocabulary.
- document.md: canonical button label GET STARTED -> SAVE CHANGES;
  signature components gain a non-marketing example.
- antipatterns registry: single-font rule renamed to "Single font
  without hierarchy" with a description that permits one family when
  weight/size contrast carries hierarchy.

Staged provider copies regenerated via build:skills:release for the
touched files only.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 18:35:53 -07:00

9.7 KiB

Additional context needed: what's appropriate for the domain (playful vs professional vs quirky vs elegant).

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.


Register

Persuade + Experience: delight can be distributed across copy voice, section transitions, discovery rewards, seasonal touches, personality across the whole surface.

Operate + Read: 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.


Assess Delight Opportunities

Identify where delight would enhance (not distract from) the experience:

  1. Find natural delight moments:

    • Success states: Completed actions (save, send, publish)
    • Empty states: First-time experiences, onboarding
    • Loading states: Waiting periods that could be entertaining
    • Achievements: Milestones, streaks, completions
    • Interactions: Hover states, clicks, drags
    • Errors: Softening frustrating moments
    • Easter eggs: Hidden discoveries for curious users
  2. Understand the context:

    • What's the brand personality? (Playful? Professional? Quirky? Elegant?)
    • Who's the audience? (Tech-savvy? Creative? Corporate?)
    • What's the emotional context? (Accomplishment? Exploration? Frustration?)
    • What's appropriate? (Banking app ≠ gaming app)
  3. Define delight strategy:

    • Subtle sophistication: Refined micro-interactions (luxury brands)
    • Playful personality: Whimsical illustrations and copy (consumer apps)
    • Helpful surprises: Anticipating needs before users ask (productivity tools)
    • Sensory richness: Satisfying sounds, smooth animations (creative tools)

If any of these are unclear from the codebase, {{ask_instruction}}

CRITICAL: Delight should enhance usability, never obscure it. If users notice the delight more than accomplishing their goal, you've gone too far.

Delight Principles

Follow these guidelines:

Delight Amplifies, Never Blocks

  • Delight moments should be quick (< 1 second)
  • Never delay core functionality for delight
  • Make delight skippable or subtle
  • Respect user's time and task focus

Surprise and Discovery

  • Hide delightful details for users to discover
  • Reward exploration and curiosity
  • Don't announce every delight moment
  • Let users share discoveries with others

Appropriate to Context

  • Match delight to emotional moment (celebrate success, empathize with errors)
  • Respect the user's state (don't be playful during critical errors)
  • Match brand personality and audience expectations
  • Cultural sensitivity (what's delightful varies by culture)

Compound Over Time

  • Delight should remain fresh with repeated use
  • Vary responses (not same animation every time)
  • Reveal deeper layers with continued use
  • Build anticipation through patterns

Delight Techniques

Add personality and joy through these methods:

Micro-interactions & Animation

Button delight:

/* Satisfying button press */
.button {
  transition: transform 0.1s, box-shadow 0.1s;
}
.button:active {
  transform: translateY(2px);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

/* Ripple effect on click */
/* Smooth lift on hover */
.button:hover {
  transform: translateY(-2px);
  transition: transform 0.2s cubic-bezier(0.25, 1, 0.5, 1); /* ease-out-quart */
}

Loading delight:

  • Playful loading animations (not just spinners)
  • Personality in loading messages (write product-specific ones, not generic AI filler)
  • Progress indication with encouraging messages
  • Skeleton screens with subtle animations

Success animations:

  • Checkmark draw animation
  • Confetti burst for major achievements
  • Gentle scale + fade for confirmation
  • Satisfying sound effects (subtle)

Hover surprises:

  • Icons that animate on hover
  • Color shifts or glow effects
  • Tooltip reveals with personality
  • Cursor changes (custom cursors for branded experiences)

Personality in Copy

Playful error messages:

"Error 404"
"This page is playing hide and seek. (And winning)"

"Connection failed"
"Looks like the internet took a coffee break. Want to retry?"

Encouraging empty states:

"No projects"
"Your canvas awaits. Create something amazing."

"No saved articles"
"Nothing on the nightstand yet. Save a story for later."

Playful labels & tooltips:

"Delete"
"Send to void" (for playful brand)

"Help"
"Rescue me" (tooltip)

IMPORTANT: Match copy personality to brand. Banks shouldn't be wacky, but they can be warm.

Illustrations & Visual Personality

Custom illustrations:

  • Empty state illustrations (not stock icons)
  • Error state illustrations (friendly monsters, quirky characters)
  • Loading state illustrations (animated characters)
  • Success state illustrations (celebrations)

Icon personality:

  • Custom icon set matching brand personality
  • Animated icons (subtle motion on hover/click)
  • Illustrative icons (more detailed than generic)
  • Consistent style across all icons

Background effects:

  • Subtle particle effects
  • Gradient mesh backgrounds
  • Geometric patterns
  • Parallax depth
  • Time-of-day themes (morning vs night)

Satisfying Interactions

Drag and drop delight:

  • Lift effect on drag (shadow, scale)
  • Snap animation when dropped
  • Satisfying placement sound
  • Undo toast ("Dropped in wrong place? [Undo]")

Toggle switches:

  • Smooth slide with spring physics
  • Color transition
  • Haptic feedback on mobile
  • Optional sound effect

Progress & achievements (Operate surfaces with recurring tasks only; gamification on editorial, portfolio, or one-visit surfaces reads as noise):

  • Streak counters with celebratory milestones
  • Progress bars that "celebrate" at 100%
  • Badge unlocks with animation
  • Playful stats ("You're on fire! 5 days in a row")

Form interactions:

  • Input fields that animate on focus
  • Checkboxes with a satisfying scale pulse when checked
  • Success state that celebrates valid input
  • Auto-grow textareas

Sound Design

Subtle audio cues (when appropriate):

  • Notification sounds (distinctive but not annoying)
  • Success sounds (satisfying "ding")
  • Error sounds (empathetic, not harsh)
  • Typing sounds for chat/messaging
  • Ambient background audio (very subtle)

IMPORTANT:

  • Respect system sound settings
  • Provide mute option
  • Keep volumes quiet (subtle cues, not alarms)
  • Don't play on every interaction (sound fatigue is real)

Easter Eggs & Hidden Delights

Discovery rewards:

  • Konami code unlocks special theme
  • Hidden keyboard shortcuts (Cmd+K for special features)
  • Hover reveals on logos or illustrations
  • Alt text jokes on images (for screen reader users too!)
  • A view-source or console colophon (a note on the typefaces, a thank-you, a hiring line)

Seasonal touches:

  • Holiday themes (subtle, tasteful)
  • Seasonal color shifts
  • Weather-based variations
  • Time-based changes (dark at night, light during day)

Contextual personality:

  • Different messages based on time of day
  • Responses to specific user actions
  • Randomized variations (not same every time)
  • Progressive reveals with continued use

Loading & Waiting States

Make waiting engaging:

  • Interesting loading messages that rotate
  • Progress bars with personality
  • Mini-games during long loads
  • Fun facts or tips while waiting
  • Countdown with encouraging messages
Loading messages: write ones specific to your product, not generic AI filler:
- "Syncing with your team's changes..."
- "Fetching this week's issue..."
- "Developing your photos..."
- "Checking tomorrow's tide tables..."

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.

Celebration Moments

Success celebrations:

  • Confetti for major milestones
  • Animated checkmarks for completions
  • Progress bar celebrations at 100%
  • "Achievement unlocked" style notifications
  • Personalized messages ("You published your 10th article!")

Milestone recognition (same scoping as Progress & achievements: Operate surfaces with recurring tasks):

  • First-time actions get special treatment
  • Streak tracking and celebration
  • Progress toward goals
  • Anniversary celebrations

Implementation Patterns

Animation libraries:

  • Framer Motion (React)
  • GSAP (universal)
  • Lottie (After Effects animations)
  • Canvas confetti (party effects)

Sound libraries:

  • Howler.js (audio management)
  • Use-sound (React hook)

Physics libraries:

  • React Spring (spring physics)
  • Popmotion (animation primitives)

IMPORTANT: File size matters. Compress images, optimize animations, lazy load delight features.

NEVER:

  • Delay core functionality for delight
  • Force users through delightful moments (make skippable)
  • Use delight to hide poor UX
  • Overdo it (less is more)
  • Ignore accessibility (animate responsibly, provide alternatives)
  • Make every interaction delightful (special moments should be special)
  • Sacrifice performance for delight
  • Be inappropriate for context (read the room)

Verify Delight Quality

Test that delight actually delights:

  • User reactions: Do users smile? Share screenshots?
  • Doesn't annoy: Still pleasant after 100th time?
  • Doesn't block: Can users opt out or skip?
  • Performant: No jank, no slowdown
  • Appropriate: Matches brand and context
  • Accessible: Works with reduced motion, screen readers

When the moments feel earned, hand off to {{command_prefix}}impeccable polish for the final pass.