Déclencheurs
- fantaisie
- délice
- design ludique
- micro-interactions
- easter egg
- gamification
- UX amusante
- design de personnalité
- messages d'erreur
- états vides
- animation de chargement
- microcopy
- personnalité de marque
- design d'engagement
- interactions délicieuses
- système d'accomplissement
- surprise et délice
- humour dans le design
Instructions
Design de fantaisie stratégique
Chaque élément ludique doit servir un objectif fonctionnel ou émotionnel. Concevez du délice qui améliore l'expérience utilisateur plutôt que de créer une distraction.
Taxonomie de la fantaisie
Appliquez le niveau approprié de fantaisie pour chaque contexte :
-
Fantaisie subtile : Petites touches qui ajoutent de la personnalité sans distraction
- Effets au survol, animations de chargement, feedback des boutons, changements de curseur
- À appliquer partout comme personnalité de base
-
Fantaisie interactive : Interactions délicieuses déclenchées par l'utilisateur
- Animations au clic, célébrations de validation de formulaire, récompenses de progression
- À appliquer aux points d'achèvement de tâche et aux moments de feedback positif
-
Fantaisie de découverte : Éléments cachés récompensant l'exploration de l'utilisateur
- Easter eggs, raccourcis clavier (code Konami), fonctionnalités secrètes
- À appliquer avec parcimonie pour récompenser les utilisateurs avancés et les explorateurs curieux
-
Fantaisie contextuelle : Humour et ludisme appropriés à la situation
- Pages 404, états vides, thématisation saisonnière, récupération d'erreur
- À appliquer aux points de frustration pour réduire les émotions négatives
Spectre de personnalité de marque
Définissez comment la marque exprime sa personnalité selon les contextes :
- Contexte professionnel : Touches de personnalité subtiles et sophistiquées
- Contexte décontracté : Expression ludique complète
- Contexte d'erreur : Humour empathique qui réduit la frustration
- Contexte de succès : Moments de célébration qui récompensent les utilisateurs
Microcopy ludique
Écrivez du contenu qui maintient l'utilité tout en ajoutant de la personnalité :
- Messages d'erreur : Empathiques + utiles (ex. : « Votre email semble timide -- vous pouvez ajouter le symbole @ ? »)
- États de chargement : Engageants + informatifs (ex. : « Crunchage de nombres avec enthousiasme exceptionnel... »)
- Messages de succès : Célébratoires + clairs (ex. : « Allez ! Votre message est en route. »)
- États vides : Encourageants + actionnables (ex. : « Cet espace attend quelque chose d'extraordinaire »)
- Libellés de boutons : Descriptifs + personnalité (ex. : « Validé ! » plutôt que « Enregistrer »)
Design des micro-interactions
Concevez des animations avec intention :
- Survol du bouton : translateY(-2px) + scale(1.02) + élévation d'ombre
- Succès de validation de formulaire : animation d'étincelle sur les champs valides
- Chargement : points qui rebondissent avec délai échelonné
- Achèvement de progression : animation de célébration (confettis, rebond, étincelle)
- Effet de brillance/balayage au survol pour les éléments premium
Systèmes de gamification
Concevez des motifs d'accomplissement et de récompense :
- Déverrouillage d'accomplissements avec overlays de célébration
- Suivi de progression avec célébrations de jalons
- Systèmes de découverte d'easter eggs (séquences de clic, codes clavier)
- Déclencheurs de partage social pour les moments ludiques
Règles de délice inclusif
- Concevez des éléments ludiques qui fonctionnent pour les utilisateurs en situation de handicap
- Assurez-vous que la fantaisie n'interfère pas avec les lecteurs d'écran ou la technologie d'assistance
- Fournissez des alternatives
prefers-reduced-motionpour toutes les animations - Créez de l'humour culturellement sensible et approprié pour tous les publics
- Ne laissez jamais la personnalité entraver l'achèvement des tâches
Directives de performance
- Toutes les animations doivent utiliser les transformations CSS et l'opacité (accélérées par GPU)
- Conservez les durées d'animation sous 500ms pour les interactions, sous 3s pour les célébrations
- Supprimez automatiquement les éléments de célébration après affichage
- Testez l'impact de performance sur les appareils bas de gamme
Intégration de l'outil EloPhanto
- Utilisez
browser_navigatepour auditer les interfaces existantes afin de trouver des opportunités de fantaisie - Utilisez
web_searchpour rechercher les motifs d'engagement et les tendances du design de délice - Utilisez
knowledge_writepour maintenir les bibliothèques de microcopy et les spécifications d'animation
Livrables
CSS des micro-interactions
.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; }
}
Bibliothèque de microcopy
## Messages d'erreur
- 404: « Oups ! Cette page a pris des vacances sans nous prévenir. Revenons sur la bonne voie ! »
- Validation de formulaire : « Votre email semble timide -- vous pouvez ajouter le symbole @ ? »
- Réseau : « On dirait que l'internet a eu un hoquet. Vous pouvez réessayer ? »
- Téléchargement : « Ce fichier fait un peu la tête. Vous pouvez essayer un format différent ? »
## États de chargement
- Général : « Saupoudrage d'un peu de magie numérique... »
- Téléchargement d'image : « Apprentissage de nouveaux tours pour votre photo... »
- Traitement de données : « Crunchage de nombres avec enthousiasme exceptionnel... »
- Recherche : « À la chasse aux correspondances parfaites... »
## Messages de succès
- Soumission de formulaire : « Allez ! Votre message est en route. »
- Création de compte : « Bienvenue à la fête ! »
- Achèvement de tâche : « Boom ! Vous êtes officiellement génial. »
- Accomplissement : « Montée de niveau ! Vous avez maîtrisé [nom de la fonctionnalité]. »
## États vides
- Aucun résultat : « Aucune correspondance trouvée, mais vos compétences de recherche sont impeccables ! »
- Panier vide : « Votre panier se sent un peu seul. Voulez-vous ajouter quelque chose de sympa ? »
- Aucune notification : « À jour ! C'est l'heure d'une danse de victoire. »
- Aucune donnée : « Cet espace attend quelque chose d'extraordinaire (indice : c'est là que vous entrez en jeu !). »
JavaScript de gamification
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);
}
}
Métriques de succès
- L'engagement utilisateur avec les éléments ludiques montre une amélioration du taux d'interaction de 40%+
- La mémorabilité de la marque augmente mesurables grâce aux éléments de personnalité distinctifs
- Les scores de satisfaction utilisateur s'améliorent grâce aux améliorations de l'expérience délicieuse
- Le partage social augmente car les utilisateurs partagent les expériences ludiques de la marque
- Les taux d'achèvement des tâches se maintiennent ou s'améliorent malgré l'ajout d'éléments de personnalité
Vérification
- Le changement a été rendu dans un navigateur/simulateur et une capture d'écran ou un snapshot DOM a été capturé, pas simplement examiné par code
- La mise en page a été vérifiée aux points de rupture que le guide whimsy-design spécifie (mobile + bureau minimum) ; des preuves pour chacun sont jointes
- Les valeurs de couleur, typographie et espacement utilisées proviennent des tokens de conception/thème du projet, pas de valeurs ad hoc codées en dur
- La navigation au clavier et l'ordre de focus ont été testés sur chaque élément interactif introduit
- Les variantes reduced-motion / dark-mode (si supportées) ont été vérifiées, pas supposées hériter
- Aucune erreur console ou avertissement d'hydratation n'a été émis lors du rendu de vérification