Conversation
- Rename `textInverse` to `textOnInverse`. - Rename `backgroundCoreSurface` to `backgroundCoreSurfaceDefault` and remove `backgroundCoreElevation4`. - Rename `borderCoreInverse` to `borderCoreOnInverse`. - Add new color properties: `borderCoreOnSurface` and `borderUtilityDisabledOnSurface`. - Update all UI components, samples, and documentation across the library to reflect the new theme property names. - Update `buttonPrimaryText` to use `accentPrimary` by default. - Adjust `controlToggleSwitchKnob` to use `backgroundCoreOnAccent`. - Update the public API signature for `StreamDesign.Colors`.
PR checklist ✅All required conditions are satisfied:
🎉 Great job! This PR is ready for review. |
SDK Size Comparison 📏
|
WalkthroughComprehensive color token renaming across Stream Chat Android Compose theme system. Updated Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 1 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/StreamDesign.kt (1)
121-165:⚠️ Potential issue | 🟠 MajorEnsure Colors API changes are documented in v7 migration notes.
The breaking changes to
StreamDesign.Colors(renames:textInverse→textOnInverse,backgroundCoreSurface→backgroundCoreSurfaceDefault,borderCoreInverse→borderCoreOnInverse; removal:backgroundCoreElevation4; additions:borderCoreOnSurface,borderUtilityDisabledOnSurface) are not currently captured in migration documentation. CHANGELOG.md's unreleased section for stream-chat-android-compose is empty for these changes, and MIGRATION_TO_V7.md does not exist.Add entries to CHANGELOG.md or create MIGRATION_TO_V7.md documenting the affected color tokens and their migration paths.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/StreamDesign.kt` around lines 121 - 165, Document the breaking changes to StreamDesign.Colors by adding a migration note (either update the stream-chat-android-compose CHANGELOG.md unreleased section or create a MIGRATION_TO_V7.md) that lists the renamed tokens (textInverse → textOnInverse, backgroundCoreSurface → backgroundCoreSurfaceDefault, borderCoreInverse → borderCoreOnInverse), the removed token (backgroundCoreElevation4), and the new tokens (borderCoreOnSurface, borderUtilityDisabledOnSurface), and include clear migration guidance mapping old token names to new ones and suggested fallbacks for removed tokens so integrators can update usages of StreamDesign.Colors accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@stream-chat-android-compose/api/stream-chat-android-compose.api`:
- Line 6256: Add migration docs for the breaking StreamDesign.Colors token
renames and new tokens: list old→new mappings (e.g., backgroundCoreSurface →
backgroundCoreSurfaceDefault, textInverse → textOnInverse, borderCoreInverse →
borderCoreOnInverse) and any newly introduced tokens, and include example code
showing how to update existing theme usage; place this guidance in CHANGELOG.md
under UNRELEASED → stream-chat-android-compose → ⚠️ Changed or create a
MIGRATION_TO_V7.md and also add brief deprecation notes to DEPRECATIONS.md
referencing StreamDesign.Colors and the renamed getters/parameters so
integrators can migrate their code.
In
`@stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/StreamDesign.kt`:
- Line 94: Update the KDoc for the parameter borderCoreOnInverse in StreamDesign
(referencing backgroundCoreInverse and defaultDark) to be theme-agnostic:
replace "Used on dark backgrounds" with wording like "Border on inverse
backgrounds" (or similar) so the description remains correct for both light and
dark/defaultDark palettes and any custom themes.
---
Outside diff comments:
In
`@stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/StreamDesign.kt`:
- Around line 121-165: Document the breaking changes to StreamDesign.Colors by
adding a migration note (either update the stream-chat-android-compose
CHANGELOG.md unreleased section or create a MIGRATION_TO_V7.md) that lists the
renamed tokens (textInverse → textOnInverse, backgroundCoreSurface →
backgroundCoreSurfaceDefault, borderCoreInverse → borderCoreOnInverse), the
removed token (backgroundCoreElevation4), and the new tokens
(borderCoreOnSurface, borderUtilityDisabledOnSurface), and include clear
migration guidance mapping old token names to new ones and suggested fallbacks
for removed tokens so integrators can update usages of StreamDesign.Colors
accordingly.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: ade846cb-18cd-4849-bf7d-dc5af96e32d9
📒 Files selected for processing (22)
stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/component/SharedLocationItem.ktstream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/login/CustomLoginActivity.ktstream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/profile/UserProfileScreen.ktstream-chat-android-compose/api/stream-chat-android-compose.apistream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/attachments/content/MediaAttachmentContent.ktstream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/attachments/ChannelMediaAttachmentsScreen.ktstream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channels/list/SwipeActionItem.ktstream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/components/ShimmerProgressIndicator.ktstream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/components/avatar/AvatarStack.ktstream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/components/avatar/ChannelAvatar.ktstream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/components/common/CommandChip.ktstream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/components/common/MediaBadges.ktstream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/components/poll/PollOptionVotesDialog.ktstream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/MessagesScreen.ktstream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/attachments/poll/PollSwitchList.ktstream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactory.ktstream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/MessageComposerTheme.ktstream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/StreamDesign.ktstream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/threads/ThreadListBanner.ktstream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/util/StreamSnackbar.ktstream-chat-android-docs/src/main/kotlin/io/getstream/chat/docs/kotlin/cookbook/ui/CustomComposerAndAttachmentsPicker.ktstream-chat-android-ui-guides/src/main/java/io/getstream/chat/android/guides/catalog/CatalogActivity.kt
stream-chat-android-compose/api/stream-chat-android-compose.api
Outdated
Show resolved
Hide resolved
...hat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/StreamDesign.kt
Outdated
Show resolved
Hide resolved
...hat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/StreamDesign.kt
Outdated
Show resolved
Hide resolved
- Add `borderUtilityFocused` to `StreamDesign.Colors` to distinguish between focus and selection states. - Update `borderUtilitySelected` values for both light and dark themes to use semi-transparent slate and white, respectively. - Adjust `controlPlayButtonBg` to use a semi-transparent black instead of a solid chrome color. - Update `ChannelItem` to use `borderUtilityFocused` for the focus ring instead of `borderUtilitySelected`. - Reflect the changes in the public API signature of `StreamDesign$Colors`.
|



Goal
Apply the new updates from Figma
Implementation
textInversetotextOnInverse.backgroundCoreSurfacetobackgroundCoreSurfaceDefaultand removebackgroundCoreElevation4.borderCoreInversetoborderCoreOnInverse.borderCoreOnSurfaceandborderUtilityDisabledOnSurface.buttonPrimaryTextto useaccentPrimaryby default.controlToggleSwitchKnobto usebackgroundCoreOnAccent.StreamDesign.Colors.🎨 UI Changes
No UI changes
Testing
CI pipeline should pass
Summary by CodeRabbit