> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-22654f5b-docs-llms-scoped-indexes.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Customize UI Kit

> Customize UI Kit — CometChat documentation.

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-docs-llms-scoped-indexes/2jSVlYXfUL_4P-jB/images/2bcfda5e-1623199957-c82f142ae375c2899452833bde0a3875.jpg?fit=max&auto=format&n=2jSVlYXfUL_4P-jB&q=85&s=dba5268b6948318bb4ef377ce03a24ab" width="2195" height="984" data-path="images/2bcfda5e-1623199957-c82f142ae375c2899452833bde0a3875.jpg" />
</Frame>

This guide helps you to customize, modify, and enable/disable features present in UIKit.

<Tip>
  CometChat SDK & UI Kit both need to be configured before starting the customization in UI Kit.
</Tip>

***

To Modify and customize UI Kit, you need to refer to the `UIKitSettings` class present in the UI Kit Library. You will be easily able to modify the color, enable/disable some of the features which you won't require in your app.

<Warning>
  * UI Kit Settings must be called before launching any UI Screen or UI Unified. By default, all settings will be enabled.

  * For advanced level customization, you can modify the source code of the library as per your requirement.
</Warning>

### **Color Settings**

| Description | Code Snippet | Settings |
| - | - | - |
| Modify primary colour | `UIKitSettings.setColor(String color)` | Requires Hex value of color as String Ex: "#F3F3F3" |

***

### **Tab bar settings**

| Description | Code Snippet | Settings |
| - | - | - |
| Hide/Show recents chats tab | `UIKitSettings.conversations(true)` | You can show it using `true` or hide it using `false`. |
| Hide/Show calls tab | `UIKitSettingscalls(true)` | You can show it using `true` or hide it using `false`. |
| Hide/Show users tab | `UIKitSettings.users(true)` | You can show it using `true` or hide it using `false`. |
| Hide/Show groups tab | `UIKitSettings.groups(true)` | You can show it using `true` or hide it using `false`. |
| Hide/Show user information tab | `UIKitSettings.userSettings(true)` | You can show it using `true` or hide it using `false`. |

***

### **Call settings**

| Description | Code Snippet | Settings |
| - | - | - |
| Enable audio call for user | `UIKitSettings.userAudioCall(true)` | You can enable it using `true` or disable it using `false`. |
| Enable video call for user | `UIKitSettings.userVideoCall(true)` | You can enable it using `true` or disable it using `false`. |
| Enable video call for group | `UIKitSettings.groupVideoCall(true)` | You can enable it using `true` or disable it using `false`. |
| Enable sound for calls | `UIKitSettings.enableSoundForCalls(true)` | You can enable it using `true` or disable it using `false`. |
| Show action messages for calls. | `UIKitSettings.callNotification(true)` | You can show it using `true` or hide it using `false`. |

***

### **User settings**

| Description | Code Snippet | Settings |
| - | - | - |
| Show users-conversations/group-conversation only | `UIKitSettings.setConversationsMode(ConversationMode conversationMode)` | You can use below constants. - `ConversationMode.ALL_CHATS` - `ConversationMode.GROUP` - `ConversationMode.USER` |
| Show all-users/friends | `UIKitSettings.setUsersMode(UserMode mode)` | You can use below constants. - `UserMode.ALL_USER` - UserMode.FRIENDS\` |
| Show all-groups/password-protected groups/public-groups | `UIKitSettings.setGroupsMode(GroupMode mode)` | You can use below constants. - `GroupMode.ALL_GROUPS` - GroupMode.PUBLIC\_GROUP\` |
| Show user presence | `UIKitSettings.userPresence(true)` | You can show it using `true` or hide it using `false`. |
| Allow Users to block | `UIKitSettings. blockUser(true)` | You can allow it using `true` or disallow it using `false`. |

***

### **Group settings**

| Description | Code Snippet | Settings |
| - | - | - |
| Show create group | `UIKitSettings.groupCreate(true)` | You can show it using `true` or hide it using `false`. |
| Show join or leave group | `UIKitSettings. joinOrLeaveGroup(true)` | You can show it using `true` or hide it using `false`. |
| Show delete group | `UIKitSettings.allowDeleteGroups(true)` | You can show it using `true` or hide it using `false`. |
| Show group members | `UIKitSettings.viewGroupMembers(true)` | You can show it using `true` or hide it using `false`. |
| Show add member | `UIKitSettings.allowAddMembers(true)` | You can show it using `true` or hide it using `false`. |
| Allow moderator to delete messages of participants | `UIKitSettings.allowModeratorToDeleteMemberMessages(true)` | You can allow it using `true` or disallow it using `false`. |
| Allow user to kick members | `UIKitSettings.kickMember(true)` | You can allow it using `true` or disallow it using `false`. |
| Allow user to ban members | `UIKitSettings.banMember(true)` | You can allow it using `true` or disallow it using `false`. |
| Allow user to promote or demote members | `UIKitSettings.allowPromoteDemoteMembers(true)` | You can allow it using `true` or disallow it using `false`. |
| Show group action messages in groups. | `UIKitSettings.groupNotifications(true)` | You can show it using `true` or hide it using `false`. |

***

### **Message settings**

| Description | Code Snippet | Settings |
| - | - | - |
| Allow send message | `UIKitSettings.allowSendingMessages(true)` | You can allow it using `true` or disallow it using `false`. |
| Allow send photos & videos | `UIKitSettings.sendPhotosVideo(true)` | You can allow it using `true` or disallow it using `false`. |
| Allow send files & documents | `UIKitSettings.sendFiles(true)` | You can allow it using `true` or disallow it using `false`. |
| Allow send voice notes | `UIKitSettings.sendVoiceNotes(true)` | You can allow it using `true` or disallow it using `false`. |
| Allow send emojis from keyboard | `UIKitSettings.sendEmojis(true)` | You can allow it using `true` or disallow it using `false`. |
| Allow send emojis in Larger Size | `UIKitSettings.sendEmojisInLargeSize(true)` | You can allow it using `true` or disallow it using `false`. |
| Show typing indicator | `UIKitSettings.sendTypingIndicators(true)` | You can show it using `true` or hide it using `false`. |
| Ability to edit the message | `UIKitSettings.editMessage(true)` | You can allow it using `true` or disallow it using `false`. |
| Ability to delete the message | `UIKitSettings.deleteMessage(true)` | You can allow it using `true` or disallow it using `false`. |
| Ability to share, copy & forward the message | `UIKitSettings.shareCopyForwardMessage(true)` | You can allow it using `true` or disallow it using `false`. |
| Ability to reply on message | `UIKitSettings.replyingToMessage(true)` | You can allow it using `true` or disallow it using `false`. |
| Ability to start new thread for message | `UIKitSettings.threadedChats(true)` | You can allow it using `true` or disallow it using `false`. |
| Ability to share live reaction | `UIKitSettings.sendLiveReaction(true)` | You can enable it using `true` or disable it using `false`. |
| Ability to share your location | `UIKitSettings.shareLocation(true)` | You can allow it using `true` or disallow it using `false`. |
| Show shared media | `UIKitSettings.viewSharedMedia(true)` | You can show it using `true` or hide it using `false`. |
| Show read/delivery receipts for Messages | `UIKitSettings.showReadDeliveryReceipts(true)` | You can show it using `true` or hide it using `false`. |
| Ability to create poll (Poll Extension must be enabled from Dashboard) | `UIKitSettings.sendPolls(true)` | You can allow it using `true` or disallow it using `false`. |
| Enable Message Reactions | `UIKitSettings.sendMessageReaction(true)` | You can enable it using `true` or disable it using `false`. |
| Enable Collaborative Document | `UIKitSettings.collaborativeWhiteBoard(true)` | You can enable it using `true` or disable it using `false`. |
| Enable Collaborative Whiteboard | `UIKitSettings.collaborativeDocument(true)` | You can enable it using `true` or disable it using `false`. |

***


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.