***Note*** By default the field settings has the field disabled for all entries. This can either be turned on for all entries or the editors will need to be set up with the ability to turn it on an entry by entry basis.
Demo
Default Widget: A clean, out-of-the-box Like/Dislike widget with clear thumbs controls. You can customize the text directly in the Craft Admin Panel (including heading and button labels), no code required, and optionally allow editors/user groups to manage those same text settings per entry.
Emoji Icon Variation (Pasted Emoji): This demo uses Emoji icon mode, with emoji copied from a website or elsewhere and pasted into the Like Emoji and Dislike Emoji fields in Craft. You can also It is a simple no-code way to personalize the widget style in the admin panel, and that same icon/text configuration access can be granted to editors or selected user groups.
Put whatever your heart desires here
Data model and metrics
Use these Likes field properties in Twig to read current counts, behavior settings, icon/text configuration, and the current userâs vote state. Youâll typically access them from your field handle (for example, entry.likesHandle.likeCount) and output what your template needs.
Setting
Description
enabled
Whether the likes/dislikes widget is enabled for this entry.
id
Aggregate record ID for this entry/field/site context.
elementId
Craft element ID this likes field belongs to.
fieldId
Craft field ID for this likes field.
siteId
Site ID for this likes/dislikes context.
likeCount
Total number of likes.
dislikeCount
Total number of dislikes.
icon
Active icon mode (thumbs, emoji, none, customSvg).
emojiIcon
Legacy emoji alias (kept for backwards compatibility).
likeEmojiIcon
Emoji used for the like button in emoji mode.
dislikeEmojiIcon
Emoji used for the dislike button in emoji mode.
beforeLikeColor
Background/color value used for Like before a like vote is active.
afterLikeColor
Background/color value used for Like when a like vote is active.
beforeDislikeColor
Background/color value used for Dislike before a dislike vote is active.
afterDislikeColor
Background/color value used for Dislike when a dislike vote is active.
likeCustomSvg
SVG markup used for the like icon in customSvg mode.
dislikeCustomSvg
SVG markup used for the dislike icon in customSvg mode.
allowGuestInteractions
Whether guests can submit like/dislike interactions.
allowVoteChange
Whether users can switch or remove their vote after voting.
headingText
Optional text shown above the likes/dislikes widget.
likeText
Optional label text for the Like button.
dislikeText
Optional label text for the Dislike button.
userVote
Current userâs vote state: 1 (like), -1 (dislike), or null (no vote).
totalVotes
Computed value: total likes + dislikes.
score
Computed value: likes minus dislikes.
Field settings and Customization
The Likes/Dislikes field settings let you control how the widget looks, behaves, and can be customized by editors. At a high level, you configure the visual style (icon mode and state colors), interaction rules (guest access and whether users can change votes), display text, and optional per-entry override permissions for editorial teams.
Widget Preview
The Widget Preview shows a live âBefore Interactionâ and âAfter Interactionâ example so you can quickly validate icon style, color states, and text settings before saving. It is a visual check only and does not cast real likes/dislikes.
Icon Appearance
Use Icon Appearance to choose how like/dislike buttons are rendered. Icon Mode supports built-in options (thumbs, emoji, none, and custom SVG). If you select Emoji, set both Like Emoji Icon and Dislike Emoji Icon. If you select Custom SVG, provide SVG markup for both the like and dislike icons. You can also define before/after color states for both buttons.
Like/Dislike Behavior
Default Enabled State determines whether new elements start with the widget enabled. Allow Guest Interactions controls whether non-logged-in visitors can like/dislike. Allow Users to Change Their Vote controls whether users can switch vote direction or remove their vote after interacting.
Text Overrides
Text Overrides controls optional messaging around the widget. Text Above Widget appears above the control, while Like Button Text and Dislike Button Text define button labels. These fields support tokenized values such as counts and vote state.
Editor Overrides
Allow Editor Overrides is the master switch for per-entry customization. When enabled, you can grant granular permissions for what editors may change per entry: widget enabled state, preview visibility, icon appearance, icon colors, guest interaction behavior, vote-change behavior, and text override fields. This keeps defaults consistent while allowing controlled flexibility at the content-entry level.
Â
Template Overrides
Engagementâs Ratings, Likes/Dislikes, and Favorites widgets are fully customizable. For each widget type, you can override the Twig/HTML, CSS, and JavaScript independently, either site-wide or per template/render call, so you can keep a global default while tailoring specific experiences where needed. Full template override details are available here: Template Overrides Documentation.