> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Customizing Message Bubbles

When building chat applications, customizing the look and feel of message bubbles is often a significant challenge. Developers frequently encounter difficulties when they need to modify specific design elements, such as background colors or styles for particular message types. This complexity is amplified by the wide range of message bubbles available in the **CometChat Flutter UI Kit**.

To simplify this process, the CometChat UI Kit provides two specialized classes: **CometChatOutgoingMessageBubbleStyle** and **CometChatIncomingMessageBubbleStyle**. These classes are designed to give developers fine-grained control over the appearance of message bubbles for **sent** and **received** messages, respectively. Both classes extend the `ThemeExtension` class, allowing customizations to be seamlessly applied through global theming or by explicitly passing style objects.

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/R-mrzo_AxVZMXils/images/2e13a5bb-incoming_outgoing_bubbles-81152924459c679f53280557ac02d67a.png?fit=max&auto=format&n=R-mrzo_AxVZMXils&q=85&s=68476a05792aaa30e512c233b39e58bc" width="1448" height="328" data-path="images/2e13a5bb-incoming_outgoing_bubbles-81152924459c679f53280557ac02d67a.png" />
</Frame>

## How These Classes Help

### 1. Targeted Customization

Developers can customize specific attributes of message bubbles, such as:

* Background color

* Border radius

* Text style

* Bubble-specific elements like reactions or avatars

* Specialized bubbles for various message types, such as:

  * Audio bubbles
  * File bubbles
  * Collaborative bubbles
  * Poll bubbles
  * Deleted message bubbles
  * Link preview bubbles
  * Message translation bubbles
  * Sticker bubbles

This targeted approach eliminates the need to modify every bubble type when changes are required for just one.

### 2. Unified Global Theming

By leveraging the power of Flutter's global theming system:

* You can define consistent styles across your application.
* Alternatively, you can apply custom styles dynamically by passing `CometChatOutgoingMessageBubbleStyle` and `CometChatIncomingMessageBubbleStyle` objects to the `outgoingMessageBubbleStyle` and `incomingMessageBubbleStyle` properties of the **CometChatMessageListStyle** class.

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/yj8hatI1RYHMwVPT/images/a93d0db6-all_bubbles_customized-e22a94b3411ba69f1253afe125faf191.png?fit=max&auto=format&n=yj8hatI1RYHMwVPT&q=85&s=6db1d3c2daac6c79dd7589b33b1a6eea" width="683" height="1321" data-path="images/a93d0db6-all_bubbles_customized-e22a94b3411ba69f1253afe125faf191.png" />
</Frame>

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    MaterialApp(
          title: 'Your app',
          theme: ThemeData(
              extensions: [
                CometChatIncomingMessageBubbleStyle(
                    backgroundColor: Color(0xFFF76808)
                ),
                CometChatOutgoingMessageBubbleStyle(
                    backgroundColor: Color(0xFFF76808)
                ),
              ]
          ),
          home: ...
        );
    ```
  </Tab>
</Tabs>

### 3. Ease of Integration

To apply these styles:

1. Create a `CometChatMessageListStyle` object.
2. Assign your custom outgoing and incoming bubble styles.
3. Pass this object to the `style` property of the **CometChatMessageList** widget.

This modular approach ensures that customization is both easy to manage and highly adaptable.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatMessageList(
        user: user,
        group: group,
        style: CometChatMessageListStyle(
            incomingMessageBubbleStyle: CometChatIncomingMessageBubbleStyle(),
            outgoingMessageBubbleStyle: CometChatOutgoingMessageBubbleStyle(),
        ),
    )
    ```
  </Tab>
</Tabs>

## Key Features of Each Class

### CometChatOutgoingMessageBubbleStyle

Focused on customizing bubbles for **messages sent by the user**, with properties for:

* **Text bubbles**: Style text content sent by users.
* **Image and video bubbles**: Customize visual media messages.
* **Audio bubbles**: Adjust styles for audio messages.
* **File bubbles**: Tailor the look of file-sharing bubbles.
* **Collaborative bubbles**: Style messages related to collaboration features.
* **Poll bubbles**: Adjust the appearance of poll-related messages.
* **Deleted message bubbles**: Customize how deleted messages are displayed.
* **Link preview bubbles**: Style links with previews for shared URLs.
* **Message translation bubbles**: Adjust translations for sent messages.
* **Sticker bubbles**: Customize stickers sent in chats.
* **Call bubbles**: Style voice and video call bubbles.
* Additional customizations like reactions, timestamps, avatars, and borders.

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/bhTrlIxYu6hfTewG/images/43ff8510-outgoing_bubble_customized-63ed1fa2d4795d223bf8c8881419c28d.png?fit=max&auto=format&n=bhTrlIxYu6hfTewG&q=85&s=7641b0c21389e271fa765c4639869b12" width="683" height="1321" data-path="images/43ff8510-outgoing_bubble_customized-63ed1fa2d4795d223bf8c8881419c28d.png" />
</Frame>

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatOutgoingMessageBubbleStyle(
        backgroundColor: Color(0xFFF76808)
    )
    ```
  </Tab>
</Tabs>

### CometChatIncomingMessageBubbleStyle

Designed to style bubbles for **messages received from others**, with properties for:

* **Text bubbles**: Customize text content from other users.
* **Image and video bubbles**: Adjust styles for media from others.
* **Audio bubbles**: Customize received audio messages.
* **File bubbles**: Tailor the look of received files.
* **Collaborative bubbles**: Style incoming collaboration-related messages.
* **Poll bubbles**: Adjust the appearance of polls sent by others.
* **Deleted message bubbles**: Customize how deleted messages appear.
* **Link preview bubbles**: Style links with previews in received messages.
* **Message translation bubbles**: Adjust translations for received messages.
* **Sticker bubbles**: Customize stickers sent by others.
* **Call bubbles**: Style voice and video call bubbles.
* **Sender name**: Customize the display style for sender names.
* **AI Assistant bubbles**: Customize how ai assistant messages appear.
* Additional customizations like reactions, timestamps, avatars, and borders.

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/_lZ5S0KefxAVVFd5/images/1477c53c-incoming_bubble_customized-b9e48c99ce89463cd3e4f17fb0f1de42.png?fit=max&auto=format&n=_lZ5S0KefxAVVFd5&q=85&s=28eadaaa5e714c50fabb76a0879f445a" width="683" height="1321" data-path="images/1477c53c-incoming_bubble_customized-b9e48c99ce89463cd3e4f17fb0f1de42.png" />
</Frame>

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    CometChatIncomingMessageBubbleStyle(
        backgroundColor: Color(0xFFF76808)
    )
    ```
  </Tab>
</Tabs>

## Benefits

By using these classes, developers can:

* Save time by focusing on specific customizations.
* Reduce complexity while maintaining a consistent design.
* Create visually appealing and user-friendly chat interfaces.

Whether you're tweaking a single bubble type or applying a cohesive design across your application, these tools provide the flexibility and precision needed to bring your vision to life.

## Customizable Message Bubbles

The CometChat Flutter Chat UI Kit offers a versatile range of customizable message bubbles tailored to enhance any chat experience. From Text, Image, Video, and Audio Bubbles for seamless multimedia sharing, to File, Poll, and Collaborative Whiteboard/Document Bubbles for productivity, the UI Kit ensures every interaction is visually engaging. Link Previews, Stickers, and Call Bubbles add rich context, while Action and Deleted Message Bubbles enhance clarity. These bubbles are fully customizable, empowering developers to create unique, brand-specific chat interfaces.

### Text Bubble

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/-G4WbAhFV_nFm5lW/images/5070ca6a-text_bubble-5a44c1b055fd5f8c09aae4ec55b7fa95.png?fit=max&auto=format&n=-G4WbAhFV_nFm5lW&q=85&s=921678bbf914f1eb9bafedfbe8742f1b" width="1200" height="396" data-path="images/5070ca6a-text_bubble-5a44c1b055fd5f8c09aae4ec55b7fa95.png" />
</Frame>

Modify text color, font, and background to match your branding while maintaining readability.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    ThemeData(
        extensions: [
            CometChatOutgoingMessageBubbleStyle(
                textBubbleStyle: CometChatTextBubbleStyle(
                    backgroundColor:Color(0xFFF76808),
                )
            ),
            CometChatIncomingMessageBubbleStyle(
                textBubbleStyle: CometChatTextBubbleStyle(
                    backgroundColor:  Color(0xFFFEEDE1),
                )
            ),
            ]
        )
    ```

    <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/yJmnm403_SpqIPxu/images/1c8970f5-text_bubble_customized-7e864e9942e622a04619f92451de0d4e.png?fit=max&auto=format&n=yJmnm403_SpqIPxu&q=85&s=267ed57fe7531eaf9c04b529855b2887" alt="Image" width="1200" height="396" data-path="images/1c8970f5-text_bubble_customized-7e864e9942e622a04619f92451de0d4e.png" />
  </Tab>
</Tabs>

### Image Bubble

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/vzzfpS2btRpdNNgT/images/0eaf520c-image_bubble-0d99571a0979914ba9a4aeeeb0abe33e.png?fit=max&auto=format&n=vzzfpS2btRpdNNgT&q=85&s=d4b27fd503247addcbcbbcf18c9d506f" width="1200" height="1392" data-path="images/0eaf520c-image_bubble-0d99571a0979914ba9a4aeeeb0abe33e.png" />
</Frame>

Customize borders and background to enhance media presentation.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    ThemeData(
        extensions: [
            CometChatOutgoingMessageBubbleStyle(
               imageBubbleStyle: CometChatImageBubbleStyle(
                 backgroundColor:Color(0xFFF76808),
               )
              ),
            CometChatIncomingMessageBubbleStyle(
                  imageBubbleStyle: CometChatImageBubbleStyle(
                    backgroundColor:  Color(0xFFFEEDE1),
                  )
              ),
            ]
        )
    ```
  </Tab>
</Tabs>

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/494NzpIb6o8839I0/images/7e6e9700-image_bubble_customized-58c6a19de71aa161622c6ee4aa062f15.png?fit=max&auto=format&n=494NzpIb6o8839I0&q=85&s=8a95756914e8e8f614d4402c4af18ca6" width="1200" height="1392" data-path="images/7e6e9700-image_bubble_customized-58c6a19de71aa161622c6ee4aa062f15.png" />
</Frame>

### Video Bubble

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/9lHiRWz053XfUHU4/images/80e14e9c-video_bubble_customized-74b3ce65670970b341ad94d6409d76b9.png?fit=max&auto=format&n=9lHiRWz053XfUHU4&q=85&s=2be4cefb28ff5f7e91bc481baae14157" width="1200" height="1016" data-path="images/80e14e9c-video_bubble_customized-74b3ce65670970b341ad94d6409d76b9.png" />
</Frame>

Style play button color, background color and borders for a seamless viewing experience.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    ThemeData(
        extensions: [
            CometChatOutgoingMessageBubbleStyle(
               videoBubbleStyle: CometChatVideoBubbleStyle(
                 backgroundColor:Color(0xFFF76808),
                 playIconColor: Color(0xFFF76808),
               )
              ),
            CometChatIncomingMessageBubbleStyle(
                  videoBubbleStyle: CometChatVideoBubbleStyle(
                    backgroundColor:  Color(0xFFFEEDE1),
                    playIconColor: Color(0xFFF76808),
                  )
              ),
            ]
        )
    ```
  </Tab>
</Tabs>

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/9lHiRWz053XfUHU4/images/80e14e9c-video_bubble_customized-74b3ce65670970b341ad94d6409d76b9.png?fit=max&auto=format&n=9lHiRWz053XfUHU4&q=85&s=2be4cefb28ff5f7e91bc481baae14157" width="1200" height="1016" data-path="images/80e14e9c-video_bubble_customized-74b3ce65670970b341ad94d6409d76b9.png" />
</Frame>

### Audio Bubble

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/o4nkL6PV5-93ajk5/images/458d7661-audio_bubble-66b843573558f5a3c243ce857c86a650.png?fit=max&auto=format&n=o4nkL6PV5-93ajk5&q=85&s=7437ef90e7567bbf2c23d3f4a423c197" width="1200" height="640" data-path="images/458d7661-audio_bubble-66b843573558f5a3c243ce857c86a650.png" />
</Frame>

Adjust progress bar colors, play and download button styles, and backgrounds to suit your theme.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    ThemeData(
        extensions: [
            CometChatOutgoingMessageBubbleStyle(
               audioBubbleStyle: CometChatAudioBubbleStyle(
                 backgroundColor:Color(0xFFF76808),
                 playIconColor: Color(0xFFF76808),
               )
              ),
              CometChatIncomingMessageBubbleStyle(
                  audioBubbleStyle: CometChatAudioBubbleStyle(
                    backgroundColor:  Color(0xFFFEEDE1),
                    downloadIconColor: Color(0xFFF76808),
                    audioBarColor: Color(0xFFF76808),
                    playIconColor: Color(0xFFF76808),
                  )
              ),
            ]
        )
    ```
  </Tab>
</Tabs>

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/1gtOmNl1ryouxO5Y/images/8895ffba-audio_bubble_customized-f0ceb0a2fde1327593fcaa6c9f0ec9e9.png?fit=max&auto=format&n=1gtOmNl1ryouxO5Y&q=85&s=2c529c2f2cf8780d7888c3d8c49b9670" width="1200" height="640" data-path="images/8895ffba-audio_bubble_customized-f0ceb0a2fde1327593fcaa6c9f0ec9e9.png" />
</Frame>

### File Bubble

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/skyYyiTRS367pk0g/images/8e9c5474-file_bubble-fd76d4fc78bc92cb1f00db0e70b24381.png?fit=max&auto=format&n=skyYyiTRS367pk0g&q=85&s=496bde15427f2dc66010e936d3cfb0b7" width="1200" height="632" data-path="images/8e9c5474-file_bubble-fd76d4fc78bc92cb1f00db0e70b24381.png" />
</Frame>

Personalize file bubble's background and download icon colors.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    ThemeData(
        extensions: [
            CometChatOutgoingMessageBubbleStyle(
               fileBubbleStyle: CometChatFileBubbleStyle(
                 backgroundColor:Color(0xFFF76808),
               )
            ),
            CometChatIncomingMessageBubbleStyle(
                  fileBubbleStyle: CometChatFileBubbleStyle(
                    backgroundColor:  Color(0xFFFEEDE1),
                    downloadIconTint: Color(0xFFF76808),
                )
            ),
            ]
        )
    ```
  </Tab>
</Tabs>

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/J3CEbWtjVM-fUC9K/images/d488197b-file_bubble_customized-93b686d830f7a472541c47d9233f4385.png?fit=max&auto=format&n=J3CEbWtjVM-fUC9K&q=85&s=ca0860a05081491b1d2a968add92011a" width="1200" height="632" data-path="images/d488197b-file_bubble_customized-93b686d830f7a472541c47d9233f4385.png" />
</Frame>

### Sticker Bubble

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/rr55t_hLoswcBCG0/images/05d8fa7a-sticker_bubble-e4f14d56deb7d3db16a972e57c3b5fdc.png?fit=max&auto=format&n=rr55t_hLoswcBCG0&q=85&s=c10ed49e9028e1b0e8ee8a068e78093d" width="1200" height="1128" data-path="images/05d8fa7a-sticker_bubble-e4f14d56deb7d3db16a972e57c3b5fdc.png" />
</Frame>

Personalize sticker display with unique padding, borders, and background styles to match the app's personality.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    ThemeData(
        extensions: [
            CometChatOutgoingMessageBubbleStyle(
                stickerBubbleStyle: CometChatStickerBubbleStyle(
                  backgroundColor: Color(0xFFF76808),
                ),
              ),
              CometChatIncomingMessageBubbleStyle(
                stickerBubbleStyle: CometChatStickerBubbleStyle(
                    backgroundColor: Color(0xFFFEEDE1),
                ),
              ),
            ]
        )
    ```
  </Tab>
</Tabs>

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/yj8hatI1RYHMwVPT/images/a9308401-sticker_bubble_customized-2537083999b883b108cc8571d000a45e.png?fit=max&auto=format&n=yj8hatI1RYHMwVPT&q=85&s=a3cb837785572769a6c47c592321cd15" width="1200" height="1128" data-path="images/a9308401-sticker_bubble_customized-2537083999b883b108cc8571d000a45e.png" />
</Frame>

### Call Bubble

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/45sEoks_X3i4sdzA/images/a6637ea0-video_call_bubble-cca3a4906b3e35e264262dff749dc712.png?fit=max&auto=format&n=45sEoks_X3i4sdzA&q=85&s=39826ec8a2db58870425c1b47252010f" width="1200" height="600" data-path="images/a6637ea0-video_call_bubble-cca3a4906b3e35e264262dff749dc712.png" />
</Frame>

Customize icons, text, and background elements for incoming and outgoing call notifications to fit seamlessly into your UI design.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    ThemeData(
        extensions: [
            CometChatOutgoingMessageBubbleStyle(
                videoCallBubbleStyle: CometChatCallBubbleStyle(
                  backgroundColor: Color(0xFFF76808),
                  iconColor:  Color(0xFFF76808),
                  buttonTextStyle: TextStyle(
                    color: Colors.white,
                  ),
                  dividerColor: Color(0xFFFBAA75)
                ),
              ),
            CometChatIncomingMessageBubbleStyle(
                videoCallBubbleStyle: CometChatCallBubbleStyle(
                  backgroundColor: Color(0xFFFEEDE1),
                  iconColor:  Color(0xFFF76808),
                  buttonTextStyle: TextStyle(
                    color:  Color(0xFFF76808),
                  ),
                ),
              ),
            ]
        )
    ```
  </Tab>
</Tabs>

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/h4jICZGdYoXE6-Y1/images/1058d1c0-video_call_bubble_customized-5fcb5e6ecc0a81c54ef955f6b5093320.png?fit=max&auto=format&n=h4jICZGdYoXE6-Y1&q=85&s=40ebbdd510b9ccbf4453d848af888cbf" width="1200" height="600" data-path="images/1058d1c0-video_call_bubble_customized-5fcb5e6ecc0a81c54ef955f6b5093320.png" />
</Frame>

### Collaborative Whiteboard Bubble

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/h4jICZGdYoXE6-Y1/images/12a5443e-collaborative_whiteboard-f6c07f384820f4a185a5271a1d2b00c4.png?fit=max&auto=format&n=h4jICZGdYoXE6-Y1&q=85&s=fe8f87e0637ffdf9d43006ac539f6a6b" width="1200" height="1336" data-path="images/12a5443e-collaborative_whiteboard-f6c07f384820f4a185a5271a1d2b00c4.png" />
</Frame>

Style the background and interaction controls to support creative collaboration.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    ThemeData(
        extensions: [
            CometChatOutgoingMessageBubbleStyle(
               collaborativeWhiteboardBubbleStyle: CometChatCollaborativeBubbleStyle(
                 backgroundColor:Color(0xFFF76808),
                 iconTint: Color(0xFFFFFFFF),
                 titleStyle: TextStyle(
                   fontWeight: FontWeight.bold,
                   color: Color(0xFFFFFFFF),
                 ),
                 buttonTextStyle: TextStyle(
                   color: Color(0xFFFFFFFF),
                 ),
                 dividerColor: Color(0xFFFBAA75),
               )
              ),
            CometChatIncomingMessageBubbleStyle(
                  collaborativeWhiteboardBubbleStyle: CometChatCollaborativeBubbleStyle(
                    backgroundColor:  Color(0xFFFEEDE1),
                    iconTint: Color(0xFFF76808),
                    titleStyle: TextStyle(
                      fontWeight: FontWeight.bold,
                    ),
                    buttonTextStyle: TextStyle(
                      color: Color(0xFFF76808),
                    ),
                  )
              ),
            ]
        )
    ```
  </Tab>
</Tabs>

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/h4jICZGdYoXE6-Y1/images/123b88a7-collaborative_whiteboard_customized-91c3ec20aef900a3d1523e850b756ddb.png?fit=max&auto=format&n=h4jICZGdYoXE6-Y1&q=85&s=b6c89703dfca69ebf7a3a174f27914a9" width="1200" height="1336" data-path="images/123b88a7-collaborative_whiteboard_customized-91c3ec20aef900a3d1523e850b756ddb.png" />
</Frame>

### Collaborative Document Bubble

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/XXAUCbi4d9er5mBV/images/27e66eaf-collaborative_document-a916ac873284b4a0c43b064a44b016ca.png?fit=max&auto=format&n=XXAUCbi4d9er5mBV&q=85&s=9991cf2f06eca9a08dd10ab67a30757c" width="1200" height="1336" data-path="images/27e66eaf-collaborative_document-a916ac873284b4a0c43b064a44b016ca.png" />
</Frame>

Customize fonts and interface elements for shared document interaction.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    ThemeData(
        extensions: [
            CometChatOutgoingMessageBubbleStyle(
               collaborativeDocumentBubbleStyle: CometChatCollaborativeBubbleStyle(
                 backgroundColor:Color(0xFFF76808),
                 iconTint: Color(0xFFFFFFFF),
                 titleStyle: TextStyle(
                   fontWeight: FontWeight.bold,
                   color: Color(0xFFFFFFFF),
                 ),
                 buttonTextStyle: TextStyle(
                   color: Color(0xFFFFFFFF),
                 ),
                 dividerColor: Color(0xFFFBAA75),
               )
              ),
            CometChatIncomingMessageBubbleStyle(
                  collaborativeDocumentBubbleStyle: CometChatCollaborativeBubbleStyle(
                    backgroundColor:  Color(0xFFFEEDE1),
                    iconTint: Color(0xFFF76808),
                    titleStyle: TextStyle(
                      fontWeight: FontWeight.bold,
                    ),
                    buttonTextStyle: TextStyle(
                      color: Color(0xFFF76808),
                    ),
                  )
              ),
            ]
        )
    ```
  </Tab>
</Tabs>

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/cL0h7qQ6VW0ex7sa/images/cf13bbb4-collaborative_document_customized-53d8943ab8922cbd637e59eb3900813a.png?fit=max&auto=format&n=cL0h7qQ6VW0ex7sa&q=85&s=424f67b78955aae082faf4a3ffd6b9f8" width="1200" height="1336" data-path="images/cf13bbb4-collaborative_document_customized-53d8943ab8922cbd637e59eb3900813a.png" />
</Frame>

### Poll Bubble

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/yDKVamMkf61gj3YR/images/e452890b-poll_bubble-9c667b92325521e1c5ee055e1e4b922d.png?fit=max&auto=format&n=yDKVamMkf61gj3YR&q=85&s=e0f035df839f09f9ad5f01147fd9274d" width="1200" height="1412" data-path="images/e452890b-poll_bubble-9c667b92325521e1c5ee055e1e4b922d.png" />
</Frame>

Tailor vote bar colors, text, and layouts to align with your UI design.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    ThemeData(
        extensions: [
             CometChatOutgoingMessageBubbleStyle(
                pollsBubbleStyle: CometChatPollsBubbleStyle(
                  backgroundColor: Color(0xFFF76808),
                  progressBackgroundColor: Color(0xFFFBAA75),
                  iconColor: Color(0xFFF76808),
                  voterAvatarStyle: CometChatAvatarStyle(
                    border: Border.all(color: Color(0xFFF76808)),
                  )
                ),
              ),
            CometChatIncomingMessageBubbleStyle(
                pollsBubbleStyle: CometChatPollsBubbleStyle(
                    backgroundColor: Color(0xFFFEEDE1),
                    progressBackgroundColor: Color(0xFFDCDCDC),
                    progressColor: Color(0xFFF76808),
                    iconColor: Colors.white,
                    selectedOptionColor: Color(0xFFF76808),
                    voterAvatarStyle: CometChatAvatarStyle(
                      border: Border.all(color: Color(0xFFFEEDE1)),
                    )
                ),
            ),
            ]
        )
    ```
  </Tab>
</Tabs>

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/8EmfxiO8VFkbp4xi/images/ee285dd1-poll_bubble_customized-354912ae5af49e77df7b8b6555f74892.png?fit=max&auto=format&n=8EmfxiO8VFkbp4xi&q=85&s=83e5611a975a2d770f67f654322a2213" width="1200" height="1412" data-path="images/ee285dd1-poll_bubble_customized-354912ae5af49e77df7b8b6555f74892.png" />
</Frame>

### Link Preview Bubble

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/Jekl0sHaq-tRog2V/images/57de81a6-link_preview_bubble-d2b806a696c9d6472df9ee3c90b87cd3.png?fit=max&auto=format&n=Jekl0sHaq-tRog2V&q=85&s=13261012eb5715e1030ea7d1c4cf01e9" width="1200" height="1836" data-path="images/57de81a6-link_preview_bubble-d2b806a696c9d6472df9ee3c90b87cd3.png" />
</Frame>

Adjust title fonts, descriptions, and thumbnail frames for cohesive link displays.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    ThemeData(
        extensions: [
            CometChatOutgoingMessageBubbleStyle(
               linkPreviewBubbleStyle: CometChatLinkPreviewBubbleStyle(
                 backgroundColor:Color(0xFFFBAA75),
               ),
                textBubbleStyle: CometChatTextBubbleStyle(
                  backgroundColor: Color(0xFFF76808),
                ),
              ),
              CometChatIncomingMessageBubbleStyle(
                  linkPreviewBubbleStyle: CometChatLinkPreviewBubbleStyle(
                    backgroundColor:  Color(0xFFFBAA75),
                  ),
                textBubbleStyle: CometChatTextBubbleStyle(
                  backgroundColor: Color(0xFFFEEDE1),
                ),
              ),
            ]
        )
    ```
  </Tab>
</Tabs>

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/_heqVKMNlvrPCGxI/images/614945dc-link_preview_bubble_customized-86ba4c4262848e9a0c65258f283e48e2.png?fit=max&auto=format&n=_heqVKMNlvrPCGxI&q=85&s=d176866f63275838c3a08e4ca12fd7a3" width="1200" height="1836" data-path="images/614945dc-link_preview_bubble_customized-86ba4c4262848e9a0c65258f283e48e2.png" />
</Frame>

### Action Message Bubble

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/yDKVamMkf61gj3YR/images/e499ae6c-action_bubble-9adc9422f0ac185ab5a580c79b0759f3.png?fit=max&auto=format&n=yDKVamMkf61gj3YR&q=85&s=284ffd70930d3af5b31edbdc0440f96a" width="1200" height="476" data-path="images/e499ae6c-action_bubble-9adc9422f0ac185ab5a580c79b0759f3.png" />
</Frame>

Style background colors and icons for activity-driven notifications.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    ThemeData(
        extensions: [
            CometChatActionBubbleStyle(
                textStyle: TextStyle(
                  color: Color(0xFFF76808),
                ),
                border: Border.all(
                  color: Color(0xFFF76808),
                ),
                backgroundColor: Color(0xFFFEEDE1)
            )
            ]
        )
    ```
  </Tab>
</Tabs>

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/Vpuhh0o-Ddyw99N5/images/961d2e64-action_bubble_customized-3d194ed39391bee8dcaa26fb1abcc3fb.png?fit=max&auto=format&n=Vpuhh0o-Ddyw99N5&q=85&s=c5092d1cdd89c4a58729f44bc498380d" width="1200" height="476" data-path="images/961d2e64-action_bubble_customized-3d194ed39391bee8dcaa26fb1abcc3fb.png" />
</Frame>

### Deleted Message Bubble

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/Jekl0sHaq-tRog2V/images/5b4866cb-deleted_bubble-e8560963f6640e1936369df8890d7db0.png?fit=max&auto=format&n=Jekl0sHaq-tRog2V&q=85&s=66017d25c1db1fb45d524d08251de0ca" width="1200" height="396" data-path="images/5b4866cb-deleted_bubble-e8560963f6640e1936369df8890d7db0.png" />
</Frame>

Add unique styles for placeholders that indicate message deletion.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    ThemeData(
        extensions: [
            CometChatOutgoingMessageBubbleStyle(
                deletedBubbleStyle: CometChatDeletedBubbleStyle(
                  backgroundColor: Color(0xFFF76808),
                ),
            ),
            CometChatIncomingMessageBubbleStyle(
                deletedBubbleStyle: CometChatDeletedBubbleStyle(
                    backgroundColor: Color(0xFFFEEDE1),
                ),
            ),
            ]
        )
    ```
  </Tab>
</Tabs>

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/8EmfxiO8VFkbp4xi/images/eca46e37-deleted_bubble_customized-5676220503c8daedf981aa8e4b18732c.png?fit=max&auto=format&n=8EmfxiO8VFkbp4xi&q=85&s=1915ae918990218680cddf2972403675" width="1200" height="396" data-path="images/eca46e37-deleted_bubble_customized-5676220503c8daedf981aa8e4b18732c.png" />
</Frame>

### Call Action Bubble

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/bhTrlIxYu6hfTewG/images/4390f72f-call_action_bubble-779db8d45094ff6579493a16ee34909c.png?fit=max&auto=format&n=bhTrlIxYu6hfTewG&q=85&s=b68586d5dc01a23978fb0a45fd574b71" width="1200" height="1304" data-path="images/4390f72f-call_action_bubble-779db8d45094ff6579493a16ee34909c.png" />
</Frame>

Customize call action bubbles with unique background colors and icons.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    ThemeData(extensions: [
        CometChatColorPalette(textSecondary: Color(0xFFF76808)),
        CometChatActionBubbleStyle(
            textStyle: TextStyle(
              color: Color(0xFFF76808),
            ),
            border: Border.all(
              color: Color(0xFFF76808),
            ),
            backgroundColor: Color(0xFFFEEDE1))
      ]);
    ```
  </Tab>
</Tabs>

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/DHfasVbiAENM-XY2/images/9e8d6bf0-call_action_bubble_customized-748c529ae36e3aefb3573cd2fb6189b4.png?fit=max&auto=format&n=DHfasVbiAENM-XY2&q=85&s=8da7f7a438e9078375494bb889013d75" width="1200" height="1304" data-path="images/9e8d6bf0-call_action_bubble_customized-748c529ae36e3aefb3573cd2fb6189b4.png" />
</Frame>

### AI Assistant Bubble

AI Assistant bubbles display messages and interactions from an AI assistant within the chat interface.

**Default**

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/0XxgOJWFEp0qOHuU/images/flutter_ai_agent_default_bubble.png?fit=max&auto=format&n=0XxgOJWFEp0qOHuU&q=85&s=8d401b59502d6dbc23f8048795369eed" width="3040" height="1760" data-path="images/flutter_ai_agent_default_bubble.png" />
</Frame>

**Customization**

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-feature-react-native-sdk-quotedmessage-a/0XxgOJWFEp0qOHuU/images/flutter_ai_agent_customize_bubble.png?fit=max&auto=format&n=0XxgOJWFEp0qOHuU&q=85&s=93a86843002eb9fbf98af1a87b758622" width="3040" height="1760" data-path="images/flutter_ai_agent_customize_bubble.png" />
</Frame>

**Customizing Bubble**

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    ThemeData(
      extensions: [
        CometChatAiAssistantBubbleStyle(
          backgroundColor: Colors.transparent,
          textColor: const Color(0xFF141414),
          textStyle: const TextStyle(
            fontFamily: 'TimesNewRoman', // Add this in pubspec.yaml under fonts
          ),
        ),
      ],
    );
    ```
  </Tab>
</Tabs>
