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

# Introduction

## Overview

Theming in CometChat for iOS allows you to create visually consistent and customizable user interfaces that align with your application's branding. The CometChatTheme system enables global theming, customization of colors, typography, spacing, and component-specific styles to enhance the user experience across all CometChat components.

With global styles and an easy-to-override architecture, you can seamlessly apply themes at both a global and component level.

## Using Theming in Your Project

Global Theming

Set up the global theme for your application during the app launch. This ensures all CometChat components use the specified theme.

Example in AppDelegate.swift

<Tabs>
  <Tab title="Swift">
    ```swift theme={null}
    import UIKit
    import CometChatSDK

    @main
    class AppDelegate: UIResponder, UIApplicationDelegate {
        var window: UIWindow?

        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
            
            // Apply the global theme
            CometChatTheme.primaryColor = UIColor.systemBackground
            
            // Apply custom typography
            CometChatTypography.Body.regular = UIFont.systemFont(ofSize: 18, weight: .bold)
            
            return true
        }
    }
    ```
  </Tab>
</Tabs>

<Frame>
  <img src="https://mintcdn.com/cometchat-013b37f0/5WxrN8SWPMt4fpe9/images/50251410-conversations-3f0ef3f28c52cc9c3b9306db1652a4de.png?fit=max&auto=format&n=5WxrN8SWPMt4fpe9&q=85&s=15f6a22fada82436fd287327cfbad9cd" width="1440" height="833" data-path="images/50251410-conversations-3f0ef3f28c52cc9c3b9306db1652a4de.png" />
</Frame>

## Customization

Customizing Colors

Override specific color attributes globally in CometChatTheme. This is equivalent to overriding attributes in Android's themes.xml.

Example: Setting Primary Color

<Tabs>
  <Tab title="Swift">
    ```swift theme={null}
    CometChatTheme.primaryColor = UIColor(hex: "#F76808") // Custom primary color
    ```
  </Tab>
</Tabs>

<Frame>
  <img src="https://mintcdn.com/cometchat-013b37f0/HXCEtxvU3PM74z8P/images/42fec91c-conversation-theme-7af3cbbe9848a8208c155c3e061c90bc.png?fit=max&auto=format&n=HXCEtxvU3PM74z8P&q=85&s=1632f3e3cd34292f943f10fbf5678e76" width="1440" height="833" data-path="images/42fec91c-conversation-theme-7af3cbbe9848a8208c155c3e061c90bc.png" />
</Frame>
