Move the raw color into the theme layer, assign it to a Material 3 semantic role, and read that role from `MaterialTheme` in the composable. ```kotlin // ui/theme/Color.kt package com.example.ui.theme import androidx.compose.ui.graphics.Color private val Purple40 = Color(0xFF6650A4) private val Purple80 = Color(0xFFD0BCFF) val LightColors = lightColorScheme( primary = Purple40, ) val DarkColors = darkColorScheme( primary = Purple80, ) ``` ```kotlin // ui/theme/Theme.kt @Composable fun AppThem...
Scanned 9/5/2026
Install to Claude Code
npx -y skills add HoangNguyen0403/agent-skills-standard --skill android-design-system --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Android Design System?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hoangnguyen0403-android-design-system-agent-skills-standard)More formats (shields.io, HTML) on the badges page.
# Handling colors in Jetpack Compose
Move the raw color into the theme layer, assign it to a Material 3 semantic role, and read that role from `MaterialTheme` in the composable.
```kotlin
// ui/theme/Color.kt
package com.example.ui.theme
import androidx.compose.ui.graphics.Color
private val Purple40 = Color(0xFF6650A4)
private val Purple80 = Color(0xFFD0BCFF)
val LightColors = lightColorScheme(
primary = Purple40,
)
val DarkColors = darkColorScheme(
primary = Purple80,
)
```
```kotlin
// ui/theme/Theme.kt
@Composable
fun AppTheme(
darkTheme: Boolean = isSystemInDarkTheme(),
content: @Composable () -> Unit,
) {
val colors = if (darkTheme) DarkColors else LightColors
MaterialTheme(
colorScheme = colors,
typography = AppTypography,
content = content,
)
}
```
Then use the semantic token, not `Color(0xFF...)`, inside the UI:
```kotlin
@Composable
fun PrimaryAction() {
Button(
onClick = {},
colors = ButtonDefaults.buttonColors(
containerColor = MaterialTheme.colorScheme.primary,
),
) {
Text("Continue")
}
}
```
This keeps the composable independent of a particular palette and lets the same semantic role resolve correctly in light and dark themes. Apply the same approach to every custom color: define it once as a palette token and map it to an appropriate `lightColorScheme`/`darkColorScheme` slot.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!