Visual emoji-based rating controls for collecting quick, intuitive feedback. Emojis are universally understood and create a more engaging user experience compared to traditional rating scales.
Every code snippet below is fully editable! Feel free to modify the code, experiment with different values, and see your changes reflected instantly in the live preview on the right.
Use the play button to run different snippet, or the refresh button to restore the original example.
Start with the most common use case - a satisfaction rating. The satisfaction preset provides 5 emoji options from "Very Bad" to "Excellent".
addEmojiRating() with preset: 'satisfaction' for quick customer feedback. Click any emoji to select it - click again to deselect. The mood preset is perfect for mood tracking, wellness apps, or checking in on how users feel.
The effort preset measures how easy or difficult something was - similar to Customer Effort Score (CES) but more visual and engaging.
The agreement preset is a simple 3-option scale for yes/no/maybe type questions like recommendations.
Create your own emoji sets with preset: 'custom'. Define any emojis that fit your specific use case - weather, food, activities, anything!
preset: 'custom', provide an emojis array with objects containing id, emoji, and optional label. The id is the value stored when selected. Control the size of emoji buttons with the size property. Choose from small, medium, or large based on your layout needs.
'sm' (compact), 'md' (default), 'lg' (prominent). Use larger sizes for primary questions and smaller for secondary ones. Make the emoji rating mandatory before form submission with isRequired: true.
isRequired is set, the form will show a validation error if the user tries to submit without selecting an emoji. Try clicking Submit without selecting anything! Control whether text labels appear under emojis and how the rating is aligned horizontally.
showLabels: false for a cleaner look when space is limited. Use alignment: 'left' | 'center' | 'right' to position the rating group. Control whether users can change their mind by clicking the same emoji again to clear their selection.
allowDeselect: true lets users clear their selection by clicking the same emoji twice. Set to false to make the choice permanent - once an emoji is selected, it cannot be removed. The real power comes from reacting to selections! Show different follow-up questions and styling based on the emoji chosen.
form.emojiRating('id')?.value() to get the selected emoji's id (e.g., 'excellent', 'good', 'neutral', 'bad', 'very-bad' for satisfaction preset). Use this in isVisible, customStyles, and label functions! Let's build a complete multi-step feedback form using multiple emoji ratings. Questions appear progressively as the user provides input.
Excellent! You've mastered emoji ratings for engaging user feedback. Ready to explore more?
Continue to Rating Scales TutorialOther learning paths: