CometChatReactions component renders emoji reaction pills on a message bubble’s footer area. It dynamically calculates how many pills to show based on the parent container width and provides overflow handling via a “+N” button with a popover list.
Overview
The Reactions component provides interactive emoji reaction display:- Dynamic Layout: Automatically adjusts visible reaction count based on container width
- Overflow Handling: Shows a “+N” button when reactions exceed available space, with a popover list for hidden reactions
- Toggle Support: Clicking a reaction pill emits an event to add or remove the reaction
- Hover Tooltips: Displays reaction info tooltips showing who reacted with each emoji
- Alignment Aware: Adjusts popover placement based on message bubble alignment (left/right)
- Responsive: Adapts popover placement for mobile viewports
- Keyboard Accessible: Full keyboard support for navigating and toggling reactions
Live Preview — default reactions preview.
Open in Storybook ↗
Basic Usage
Simple Reactions Display
With Custom Request Builder and Overflow Handling
Properties
Events
Customization
CSS Variables
The Reactions component uses BEM-style CSS classes that can be customized:Theming
The component adapts to light and dark themes through CSS variables:Accessibility
Keyboard Navigation
ARIA Attributes
Screen Reader Support
- Reaction pills announce the emoji, count, and user reaction status
- Toggling a reaction announces whether it was added or removed via a live region
- The overflow button announces how many additional reactions are hidden
Related Components
- CometChatReactionList - Displays the full list of users who reacted, used in the overflow popover
- CometChatReactionInfo - Tooltip showing who reacted with a specific emoji
- CometChatMessageBubble - Parent component that hosts reactions in its footer
- CometChatPopover - Used for the overflow reaction list popover