Component Categories
Conversations
Components for displaying and managing chat conversations.Messages
Components for displaying and sending messages.Users
Components for user management and display.Groups
Components for group chat functionality.Component API Pattern
All Angular UIKit components share a consistent API surface.Actions
Actions control component behavior. They split into two categories: Predefined Actions are built into the component and execute automatically on user interaction (e.g., clicking send dispatches the message). No configuration needed. User-Defined Actions are@Output() callbacks that fire on specific events. Override them to customize behavior:
Events
Events enable decoupled communication between components. A component emits events that other parts of the application can subscribe to without direct references.Filters
List-based components acceptRequestBuilder inputs to control which data loads:
Custom View Slots
Components expose namedng-template inputs to replace sections of the default UI:
CSS Overrides
Every component has a root CSS class (.cometchat-<component>) for style customization:
Component Catalog
All components are imported from@cometchat/chat-uikit-angular.
Conversations and Lists
Messages
Calling
AI
Architecture
The UIKit is a set of independent components that compose into chat layouts. A typical two-panel layout uses four core components:- cometchat-conversations — sidebar listing recent conversations (users and groups)
- cometchat-message-header — toolbar showing avatar, name, online status, and typing indicator
- cometchat-message-list — scrollable message feed with reactions, receipts, and threads
- cometchat-message-composer — rich text input with attachments, mentions, and voice notes
cometchat-conversations yields a CometChat.User or CometChat.Group object. That object is passed as an input ([user] or [group]) to cometchat-message-header, cometchat-message-list, and cometchat-message-composer. The message components use the SDK internally — cometchat-message-composer sends messages, cometchat-message-list receives them via real-time listeners.
The UIKit supports a Hybrid Approach for wiring components: by default, components subscribe to ChatStateService for active chat state, but explicit @Input() bindings always take priority. This lets you start with zero-config service-based wiring and override individual components as needed. See the State Management guide for a full comparison and code examples.
Components communicate through a publish/subscribe event bus (CometChatMessageEvents, CometChatConversationEvents, CometChatGroupEvents, etc.). A component emits events that other components or application code can subscribe to without direct references. See Events for the full list.
Each component accepts @Output() callbacks, ng-template view slot inputs for replacing UI sections, RequestBuilder inputs for data filtering, and CSS variable overrides on .cometchat-<component> classes.
Next Steps
Core Features
Chat features included out of the box
Theming
Customize colors, fonts, and styles
Extensions
Add-on features like polls, stickers, and translation
Guides
Task-oriented tutorials for common patterns