Skip to main content
The Flutter UI Kit uses ThemeExtension for styling. You can apply styles globally via ThemeData or pass style objects directly to components.

Two Approaches

1. Global Theming via ThemeData

Apply styles across your entire app by adding ThemeExtension objects to your MaterialApp theme:
MaterialApp(
  theme: ThemeData(
    extensions: [
      CometChatOutgoingMessageBubbleStyle(
        backgroundColor: Color(0xFFF76808),
      ),
      CometChatIncomingMessageBubbleStyle(
        backgroundColor: Color(0xFFFEEDE1),
      ),
      CometChatActionBubbleStyle(
        textStyle: TextStyle(color: Color(0xFFF76808)),
        backgroundColor: Color(0xFFFEEDE1),
      ),
    ],
  ),
  home: YourApp(),
)

2. Component-Level Styles

Pass style objects directly to a component. These override global theme values:
CometChatMessageList(
  user: user,
  style: CometChatMessageListStyle(
    backgroundColor: Color(0xFFFEEDE1),
    outgoingMessageBubbleStyle: CometChatOutgoingMessageBubbleStyle(
      backgroundColor: Color(0xFFF76808),
    ),
    incomingMessageBubbleStyle: CometChatIncomingMessageBubbleStyle(
      backgroundColor: Colors.white,
    ),
  ),
)

Style Precedence

Component style prop > ThemeData extension > Default theme

Style Classes by Component

ComponentStyle Class
CometChatConversationsCometChatConversationsStyle
CometChatUsersCometChatUsersStyle
CometChatGroupsCometChatGroupsStyle
CometChatGroupMembersCometChatGroupMembersStyle
CometChatMessageListCometChatMessageListStyle
CometChatMessageComposerCometChatMessageComposerStyle
CometChatMessageHeaderCometChatMessageHeaderStyle

Message Bubble Styles

The message list style contains nested styles for incoming and outgoing bubbles:
CometChatMessageListStyle(
  outgoingMessageBubbleStyle: CometChatOutgoingMessageBubbleStyle(
    textBubbleStyle: CometChatTextBubbleStyle(...),
    imageBubbleStyle: CometChatImageBubbleStyle(...),
    videoBubbleStyle: CometChatVideoBubbleStyle(...),
    audioBubbleStyle: CometChatAudioBubbleStyle(...),
    fileBubbleStyle: CometChatFileBubbleStyle(...),
    deletedBubbleStyle: CometChatDeletedBubbleStyle(...),
    pollsBubbleStyle: CometChatPollsBubbleStyle(...),
    stickerBubbleStyle: CometChatStickerBubbleStyle(...),
    collaborativeWhiteboardBubbleStyle: CometChatCollaborativeBubbleStyle(...),
    collaborativeDocumentBubbleStyle: CometChatCollaborativeBubbleStyle(...),
    linkPreviewBubbleStyle: CometChatLinkPreviewBubbleStyle(...),
    videoCallBubbleStyle: CometChatCallBubbleStyle(...),
  ),
  incomingMessageBubbleStyle: CometChatIncomingMessageBubbleStyle(
    // Same nested style structure
  ),
)
See Message Bubble Styling for per-bubble-type examples.

Component Style Examples

Conversations

ThemeData(
  fontFamily: 'Times New Roman',
  extensions: [
    CometChatConversationsStyle(
      avatarStyle: CometChatAvatarStyle(
        borderRadius: BorderRadius.circular(8),
        backgroundColor: Color(0xFFFBAA75),
      ),
      badgeStyle: CometChatBadgeStyle(
        backgroundColor: Color(0xFFF76808),
      ),
    ),
  ],
)

Message List

ThemeData(
  extensions: [
    CometChatMessageListStyle(
      backgroundColor: Color(0xFFFEEDE1),
      outgoingMessageBubbleStyle: CometChatOutgoingMessageBubbleStyle(
        backgroundColor: Color(0xFFF76808),
      ),
    ),
  ],
)

Message Composer

ThemeData(
  extensions: [
    CometChatMessageComposerStyle(
      sendButtonIconBackgroundColor: Color(0xFFF76808),
      secondaryButtonIconColor: Color(0xFFF76808),
      auxiliaryButtonIconColor: Color(0xFFF76808),
    ),
  ],
)

Message Header

ThemeData(
  extensions: [
    CometChatMessageHeaderStyle(
      avatarStyle: CometChatAvatarStyle(
        backgroundColor: Color(0xFFFBAA75),
        borderRadius: BorderRadius.circular(6.67),
      ),
    ),
  ],
)

Users

ThemeData(
  extensions: [
    CometChatUsersStyle(
      avatarStyle: CometChatAvatarStyle(
        borderRadius: BorderRadius.circular(8),
        backgroundColor: Color(0xFFFBAA75),
      ),
      titleTextColor: Color(0xFFF76808),
      separatorColor: Color(0xFFF76808),
      backgroundColor: Color(0xFFFFF9F5),
    ),
  ],
)

Groups

ThemeData(
  extensions: [
    CometChatGroupsStyle(
      avatarStyle: CometChatAvatarStyle(
        borderRadius: BorderRadius.circular(8),
        backgroundColor: Color(0xFFFBAA75),
      ),
      titleTextColor: Color(0xFFF76808),
      separatorColor: Color(0xFFF76808),
      backgroundColor: Color(0xFFFFF9F5),
    ),
  ],
)

Group Members

ThemeData(
  extensions: [
    CometChatGroupMembersStyle(
      avatarStyle: CometChatAvatarStyle(
        borderRadius: BorderRadius.circular(8),
        backgroundColor: Color(0xFFFBAA75),
      ),
      titleStyle: TextStyle(color: Color(0xFFF76808)),
      separatorColor: Color(0xFFF76808),
      ownerMemberScopeBackgroundColor: Color(0xFFF76808),
      adminMemberScopeBackgroundColor: Color(0xFFFEEDE1),
      adminMemberScopeBorder: Border.all(color: Color(0xFFF76808)),
      adminMemberScopeTextColor: Color(0xFFF76808),
    ),
  ],
)

AI Assistant Chat History

final ccColor = CometChatThemeHelper.getColorPalette(context);
CometChatAIAssistantChatHistory(
  user: user,
  style: CometChatAIAssistantChatHistoryStyle(
    backgroundColor: const Color(0xFFFFFAF6),
    headerBackgroundColor: const Color(0xFFFFFAF6),
    headerTitleTextColor: ccColor.textPrimary,
  ),
)

Base Component Styles

Avatar

ThemeData(
  extensions: [
    CometChatAvatarStyle(
      borderRadius: BorderRadius.circular(8),
      backgroundColor: Color(0xFFFBAA75),
    ),
  ],
)

Status Indicator

ThemeData(
  extensions: [
    CometChatStatusIndicatorStyle(
      backgroundColor: Color(0xFFFFAB00),
      borderRadius: BorderRadius.circular(2),
    ),
  ],
)

Badge

ThemeData(
  extensions: [
    CometChatBadgeStyle(
      borderRadius: BorderRadius.circular(4),
      backgroundColor: Color(0xFFF44649),
    ),
  ],
)

Receipts

ThemeData(
  extensions: [
    CometChatMessageReceiptStyle(
      readIconColor: Color(0xFFFFAB00),
    ),
  ],
)

Media Recorder

ThemeData(
  extensions: [
    CometChatMediaRecorderStyle(
      recordIndicatorBackgroundColor: Color(0xFFF44649),
      recordIndicatorBorderRadius: BorderRadius.circular(20),
      pauseButtonBorderRadius: BorderRadius.circular(8),
      deleteButtonBorderRadius: BorderRadius.circular(8),
      stopButtonBorderRadius: BorderRadius.circular(8),
    ),
  ],
)

Reactions

ThemeData(
  extensions: [
    CometChatReactionsStyle(
      borderRadius: BorderRadius.circular(8),
    ),
  ],
)

Reaction List

ThemeData(
  extensions: [
    CometChatReactionListStyle(
      activeTabTextColor: Color(0xFFF76808),
      activeTabIndicatorColor: Color(0xFFF76808),
    ),
  ],
)

Conversation Starter

ThemeData(
  extensions: [
    CometChatAIConversationStarterStyle(
      backgroundColor: Color(0xFFFEEDE1),
      border: Border.all(color: Color(0xFFFBBB90)),
    ),
  ],
)

Conversation Summary

ThemeData(
  extensions: [
    CometChatAIConversationSummaryStyle(
      backgroundColor: Color(0xFFFEEDE1),
      titleStyle: TextStyle(color: Color(0xFFF76808)),
    ),
  ],
)

Smart Replies

ThemeData(
  extensions: [
    CometChatAISmartRepliesStyle(
      backgroundColor: Color(0xFFFEEDE1),
      titleStyle: TextStyle(color: Color(0xFFF76808)),
      itemBackgroundColor: Color(0xFFFFF9F5),
      itemBorder: Border.all(color: Color(0xFFFBBB90)),
    ),
  ],
)

Message Information

ThemeData(
  fontFamily: "Times New Roman",
  extensions: [
    CometChatOutgoingMessageBubbleStyle(
      backgroundColor: Color(0xFFF76808),
    ),
    CometChatMessageInformationStyle(
      backgroundHighLightColor: Color(0xFFFEEDE1),
      messageReceiptStyle: CometChatMessageReceiptStyle(
        readIconColor: Color(0xFFF76808),
      ),
    ),
  ],
)

Message Option Sheet

ThemeData(
  extensions: [
    CometChatMessageOptionSheetStyle(
      backgroundColor: Color(0xFFFEEDE1),
      iconColor: Color(0xFFF76808),
    ),
  ],
)

Attachment Option Sheet

ThemeData(
  extensions: [
    CometChatAttachmentOptionSheetStyle(
      backgroundColor: Color(0xFFFEEDE1),
      iconColor: Color(0xFFF76808),
    ),
  ],
)

AI Option Sheet

ThemeData(
  extensions: [
    CometChatAiOptionSheetStyle(
      backgroundColor: Color(0xFFFFF9F5),
      iconColor: Color(0xFFF76808),
    ),
  ],
)

Mentions

ThemeData(
  extensions: [
    CometChatMentionsStyle(
      mentionSelfTextBackgroundColor: Color(0xFFF76808),
      mentionTextBackgroundColor: Colors.white,
      mentionTextColor: Colors.black,
      mentionSelfTextColor: Colors.white,
    ),
  ],
)