Skip to main content
CometChat UIKit provides a comprehensive set of pre-built components for building chat experiences.

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:
Each component page documents its available outputs in the Actions section.

Events

Events enable decoupled communication between components. A component emits events that other parts of the application can subscribe to without direct references.
Each component page documents its emitted events in the Events section. See Events for the full reference.

Filters

List-based components accept RequestBuilder inputs to control which data loads:

Custom View Slots

Components expose named ng-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
Data flow: selecting a conversation in 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