Cometchat android v5 theming
Skill cometchat/cometchat-skills/skills/cometchat-android-v5-theming
Customize CometChat UI to match your app's design system. Covers CometChatTheme, XML attributes, style classes, dark mode, and color system.From its SKILL.md
npx -y skills add cometchat/cometchat-skills --skill cometchat-android-v5-themingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.7 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it
Ground truth:
com.cometchat:chat-uikit-android:5.x(legacy/maintenance-only; +calls-sdk-android:5.x) — resolved AAR (javap) +ui-kit/android. Official docs: https://www.cometchat.com/docs/ui-kit/android/overview · Docs MCP:claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp(or fetch the URL directly without MCP). Verify symbols against the installed package/source before relying on them.
Companion skills:
cometchat-android-v5-corecovers initialization;cometchat-android-v5-componentsprovides the component catalog;cometchat-android-v5-customizationcovers deeper component-level overrides.
Purpose
This skill teaches how to theme CometChat Android UI Kit v5 to match your app's design system. CometChat uses a combination of XML theme attributes, the CometChatTheme static class, and per-component style resources.
Use this skill when
- Changing CometChat colors to match brand
- Customizing fonts or typography
- Enabling dark mode
- Applying per-component styles
- "How do I change the primary color?"
- "How do I make CometChat match my app theme?"
Do not use this skill when
- Writing custom message templates → use
cometchat-android-v5-customization - Adding features → use
cometchat-android-v5-features
1. How CometChat theming works
CometChat's visual identity is driven by XML theme attributes defined in attrs.xml files. Every CometChat* component reads these attributes from the current theme. To override: define the attributes in your app's theme.
The CometChatTheme class
CometChatTheme is a static utility class that provides programmatic access to theme colors. It reads from XML theme attributes and supports runtime overrides.
Key static methods:
| Method | Description |
|---|---|
setPrimaryColor(int) | Override primary color at runtime |
getPrimaryColor(Context) | Get current primary color |
getExtendedPrimaryColor50(Context) through getExtendedPrimaryColor900(Context) | Get extended primary color shades (auto-generated from primary) |
getBackgroundColor1(Context) | Primary background color |
getTextColorPrimary(Context) | Primary text color |
getTextColorSecondary(Context) | Secondary text color |
getIconTintHighlight(Context) | Highlighted icon tint |
getIconTintSecondary(Context) | Secondary icon tint |
Setting primary color programmatically
Java:
CometChatTheme.setPrimaryColor(Color.parseColor("#6C63FF"));
Kotlin:
CometChatTheme.setPrimaryColor(Color.parseColor("#6C63FF"))
This must be called before any CometChat component is inflated. The extended color shades (50–900) are auto-generated by blending the primary color with white (light mode) or black (dark mode).
2. XML theme attributes
Override CometChat colors in your app's themes.xml:
<style name="AppTheme" parent="CometChatTheme.DayNight">
<!-- CometChat primary color -->
<item name="cometchatPrimaryColor">#6C63FF</item>
<!-- Background colors -->
<item name="cometchatBackgroundColor1">#FFFFFF</item>
<item name="cometchatBackgroundColor2">#F5F5F5</item>
<!-- Text colors -->
<item name="cometchatTextColorPrimary">#141414</item>
<item name="cometchatTextColorSecondary">#727272</item>
<!-- Extended primary shades (optional — auto-generated if not set) -->
<item name="cometchatExtendedPrimaryColor50">#F0EEFF</item>
<item name="cometchatExtendedPrimaryColor100">#D9D5FF</item>
</style>
3. Per-component styles
Each component has its own style attribute that can be overridden in your theme. The naming convention is cometchat<ComponentName>Style.
| Component | Style attribute | Example |
|---|---|---|
CometChatConversations | cometchatConversationsStyle | @style/CustomConversationsStyle |
CometChatMessageList | cometchatMessageListStyle | @style/CustomMessageListStyle |
CometChatMessageComposer | cometchatMessageComposerStyle | @style/CustomComposerStyle |
CometChatMessageHeader | cometchatMessageHeaderStyle | @style/CustomHeaderStyle |
CometChatUsers | cometchatUsersStyle | @style/CustomUsersStyle |
CometChatGroups | cometchatGroupsStyle | @style/CustomGroupsStyle |
CometChatAvatar | cometchatAvatarStyle | @style/CustomAvatarStyle |
CometChatBadge | cometchatBadgeStyle | @style/CustomBadgeStyle |
CometChatStatusIndicator | cometchatStatusIndicatorStyle | @style/CustomStatusStyle |
CometChatMessageReceipt | cometchatMessageReceiptStyle | @style/CustomReceiptStyle |
4. Programmatic styling
Every component exposes setter methods for colors, text appearances, and drawables:
Java:
CometChatConversations conversations = findViewById(R.id.conversations);
conversations.setBackgroundColor(Color.WHITE);
conversations.setTitleTextColor(Color.BLACK);
conversations.setTitleTextAppearance(R.style.MyTitleStyle);
conversations.setSeparatorColor(Color.LTGRAY);
conversations.setAvatarStyle(R.style.MyAvatarStyle);
conversations.setStatusIndicatorStyle(R.style.MyStatusStyle);
5. Dark mode
CometChat respects Android's DayNight theme. Define separate values in values-night/themes.xml:
<!-- values/themes.xml (light) -->
<style name="AppTheme" parent="CometChatTheme.DayNight">
<item name="cometchatPrimaryColor">#6C63FF</item>
<item name="cometchatBackgroundColor1">#FFFFFF</item>
<item name="cometchatTextColorPrimary">#141414</item>
</style>
<!-- values-night/themes.xml (dark) -->
<style name="AppTheme" parent="CometChatTheme.DayNight">
<item name="cometchatPrimaryColor">#7B73FF</item>
<item name="cometchatBackgroundColor1">#1A1A2E</item>
<item name="cometchatTextColorPrimary">#E0E0E0</item>
</style>
The CometChatTheme class auto-detects the current night mode and adjusts extended color shades accordingly.
Hard rules
- Set primary color BEFORE inflating components.
CometChatTheme.setPrimaryColor()must be called beforesetContentView()or component inflation. - Use XML theme attributes for global overrides. Per-component setters are for fine-tuning.
- Extended primary shades are auto-generated. Only override them if you need exact brand colors at each shade level.
- Dark mode uses
values-night/. Follow Android's standardDayNighttheme pattern.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most design systems skills give in ~1.6k tokens
Counted across 501 of the 520 authors here whose files we hold, read 2026-09-06
- Extract colors, typography, spacing, radii, shadows, breakpointsin 20 of 501, across 10 files
- Create a self-contained dependency-free HTML preview pagein 20 of 501, across 10 files
- Keep touch targets at least 44x44pxin 20 of 501
- Score the UI across ten dimensionsin 18 of 501, across 8 files
- Animate exclusively via transform and opacityin 18 of 501, across 15 files
- Ensure WCAG AA color contrastin 18 of 501, across 13 files
- Generate DESIGN.md with rationale for each decisionin 17 of 501, across 7 files
- Ensure proper contrast and readabilityin 15 of 501, across 10 files
- Scan the codebase for existing style patternsin 15 of 501, across 6 files
- Give every interactive element a visible focus indicatorin 15 of 501, across 13 files
- Propose a design token setin 14 of 501, across 5 files
- Create a custom theme when none fitin 14 of 501, across 9 files
Said here and by no other author read
- Call setPrimaryColor before inflating any CometChat component
- Set primary color before setContentView
- Define cometchat attributes in your app theme
- Use XML theme attributes for global overrides
- Use per-component setters only for fine-tuning
- Put dark mode values in values-night/themes.xml
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.