Material Design 3 & Compose
Android Mobile Design

Master Material Design 3 and Jetpack Compose patterns for building native Android apps. Use when designing Android interfaces, implementing Compose UI, or following Google's Material Design guidelines.
--- name: mobile-android-design description: Master Material Design 3 and Jetpack Compose patterns for building native Android apps. Use when designing Android interfaces, implementing Compose UI, or following Google's Material Design guidelines. --- # Android Mobile Design Master Material Design 3 (Material You) and Jetpack Compose to build modern, adaptive Android applications that integrate seamlessly with the Android ecosystem. ## When to Use This Skill - Designing Android app interfaces following Material Design 3 - Building Jetpack Compose UI and layouts - Implementing Android navigation patterns (Navigation Compose) - Creating adaptive layouts for phones, tablets, and foldables - Using Material 3 theming with dynamic colors - Building accessible Android interfaces - Implementing Android-specific gestures and interactions
Overview
Master Material Design 3 (Material You) and Jetpack Compose to build modern, adaptive Android applications that integrate seamlessly with the Android ecosystem.
Manual install (npx, ZIP)
Claude Code
npx skills add wshobson/agents --skill mobile-android-design -g -a claude-codeClaude Code (manual)
mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/wshobson/agents/tar.gz/4236bb91f839 \
| tar -xz -C ~/.claude/skills --strip-components=4 agents-4236bb91f839/plugins/ui-design/skills/mobile-android-designWindows (PowerShell)
New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/cbf79f603a61f1ee8c12/mobile-android-design.zip" -OutFile "$env:TEMP\mobile-android-design.zip"; Expand-Archive "$env:TEMP\mobile-android-design.zip" -DestinationPath "$HOME\.claude\skills" -ForceClaude.ai / desktop
Codex, Cursor, other agents
Connects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md3.7 KBreferences/4 files · 67.1 KB
Read the files here
wshobson/
SKILL.md
Show the full text102 lines
Android Mobile Design
Master Material Design 3 (Material You) and Jetpack Compose to build modern, adaptive Android applications that integrate seamlessly with the Android ecosystem.
When to Use This Skill
- Designing Android app interfaces following Material Design 3
- Building Jetpack Compose UI and layouts
- Implementing Android navigation patterns (Navigation Compose)
- Creating adaptive layouts for phones, tablets, and foldables
- Using Material 3 theming with dynamic colors
- Building accessible Android interfaces
- Implementing Android-specific gestures and interactions
- Designing for different screen configurations
Detailed section: Core Concepts
Originally a 9201-byte section in this SKILL.md. Moved to references/details.md to fit Codex's 8 KB skill body cap.
Quick Start Component
@Composable
fun ItemListCard(
item: Item,
onItemClick: () -> Unit,
modifier: Modifier = Modifier
) {
Card(
onClick = onItemClick,
modifier = modifier.fillMaxWidth(),
shape = RoundedCornerShape(12.dp)
) {
Row(
modifier = Modifier
.padding(16.dp)
.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically
) {
Box(
modifier = Modifier
.size(48.dp)
.clip(CircleShape)
.background(MaterialTheme.colorScheme.primaryContainer),
contentAlignment = Alignment.Center
) {
Icon(
imageVector = Icons.Default.Star,
contentDescription = null,
tint = MaterialTheme.colorScheme.onPrimaryContainer
)
}
Spacer(modifier = Modifier.width(16.dp))
Column(modifier = Modifier.weight(1f)) {
Text(
text = item.title,
style = MaterialTheme.typography.titleMedium
)
Text(
text = item.subtitle,
style = MaterialTheme.typography.bodyMedium,
color = MaterialTheme.colorScheme.onSurfaceVariant
)
}
Icon(
imageVector = Icons.Default.ChevronRight,
contentDescription = null,
tint = MaterialTheme.colorScheme.onSurfaceVariant
)
}
}
}
Best Practices
- Use Material Theme: Access colors via
MaterialTheme.colorSchemefor automatic dark mode support - Support Dynamic Color: Enable dynamic color on Android 12+ for personalization
- Adaptive Layouts: Use
WindowSizeClassfor responsive designs - Content Descriptions: Add
contentDescriptionto all interactive elements - Touch Targets: Minimum 48dp touch targets for accessibility
- State Hoisting: Hoist state to make components reusable and testable
- Remember Properly: Use
rememberandrememberSaveableappropriately - Preview Annotations: Add
@Previewwith different configurations
Common Issues
- Recomposition Issues: Avoid passing unstable lambdas; use
remember - State Loss: Use
rememberSaveablefor configuration changes - Performance: Use
LazyColumninstead ofColumnfor long lists - Theme Leaks: Ensure
MaterialThemewraps all composables - Navigation Crashes: Handle back press and deep links properly
- Memory Leaks: Cancel coroutines in
DisposableEffect
| 1 | |
| 2 | name mobile-android-design |
| 3 | description Master Material Design 3 and Jetpack Compose patterns for building native Android apps. Use when designing Android interfaces, implementing Compose UI, or following Google's Material Design guidelines. |
| 4 | |
| 5 | |
| 6 | # Android Mobile Design |
| 7 | |
| 8 | Master Material Design 3 (Material You) and Jetpack Compose to build modern, adaptive Android applications that integrate seamlessly with the Android ecosystem. |
| 9 | |
| 10 | ## When to Use This Skill |
| 11 | |
| 12 | Designing Android app interfaces following Material Design 3 |
| 13 | Building Jetpack Compose UI and layouts |
| 14 | Implementing Android navigation patterns (Navigation Compose) |
| 15 | Creating adaptive layouts for phones, tablets, and foldables |
| 16 | Using Material 3 theming with dynamic colors |
| 17 | Building accessible Android interfaces |
| 18 | Implementing Android-specific gestures and interactions |
| 19 | Designing for different screen configurations |
| 20 | |
| 21 | ## Detailed section: Core Concepts |
| 22 | |
| 23 | Originally a 9201-byte section in this SKILL.md. Moved to `references/details.md` to fit Codex's 8 KB skill body cap. |
| 24 | |
| 25 | ## Quick Start Component |
| 26 | |
| 27 | |
| 28 | @Composable |
| 29 | fun ItemListCard( |
| 30 | item: Item, |
| 31 | onItemClick: () -> Unit, |
| 32 | modifier: Modifier = Modifier |
| 33 | ) { |
| 34 | Card( |
| 35 | onClick = onItemClick, |
| 36 | modifier = modifier.fillMaxWidth(), |
| 37 | shape = RoundedCornerShape(12.dp) |
| 38 | ) { |
| 39 | Row( |
| 40 | modifier = Modifier |
| 41 | .padding(16.dp) |
| 42 | .fillMaxWidth(), |
| 43 | verticalAlignment = Alignment.CenterVertically |
| 44 | ) { |
| 45 | Box( |
| 46 | modifier = Modifier |
| 47 | .size(48.dp) |
| 48 | .clip(CircleShape) |
| 49 | .background(MaterialTheme.colorScheme.primaryContainer), |
| 50 | contentAlignment = Alignment.Center |
| 51 | ) { |
| 52 | Icon( |
| 53 | imageVector = Icons.Default.Star, |
| 54 | contentDescription = null, |
| 55 | tint = MaterialTheme.colorScheme.onPrimaryContainer |
| 56 | ) |
| 57 | } |
| 58 | |
| 59 | Spacer(modifier = Modifier.width(16.dp)) |
| 60 | |
| 61 | Column(modifier = Modifier.weight(1f)) { |
| 62 | Text( |
| 63 | text = item.title, |
| 64 | style = MaterialTheme.typography.titleMedium |
| 65 | ) |
| 66 | Text( |
| 67 | text = item.subtitle, |
| 68 | style = MaterialTheme.typography.bodyMedium, |
| 69 | color = MaterialTheme.colorScheme.onSurfaceVariant |
| 70 | ) |
| 71 | } |
| 72 | |
| 73 | Icon( |
| 74 | imageVector = Icons.Default.ChevronRight, |
| 75 | contentDescription = null, |
| 76 | tint = MaterialTheme.colorScheme.onSurfaceVariant |
| 77 | ) |
| 78 | } |
| 79 | } |
| 80 | } |
| 81 | |
| 82 | |
| 83 | ## Best Practices |
| 84 | |
| 85 | **Use Material Theme**: Access colors via `MaterialTheme.colorScheme` for automatic dark mode support |
| 86 | **Support Dynamic Color**: Enable dynamic color on Android 12+ for personalization |
| 87 | **Adaptive Layouts**: Use `WindowSizeClass` for responsive designs |
| 88 | **Content Descriptions**: Add `contentDescription` to all interactive elements |
| 89 | **Touch Targets**: Minimum 48dp touch targets for accessibility |
| 90 | **State Hoisting**: Hoist state to make components reusable and testable |
| 91 | **Remember Properly**: Use `remember` and `rememberSaveable` appropriately |
| 92 | **Preview Annotations**: Add `@Preview` with different configurations |
| 93 | |
| 94 | ## Common Issues |
| 95 | |
| 96 | **Recomposition Issues**: Avoid passing unstable lambdas; use `remember` |
| 97 | **State Loss**: Use `rememberSaveable` for configuration changes |
| 98 | **Performance**: Use `LazyColumn` instead of `Column` for long lists |
| 99 | **Theme Leaks**: Ensure `MaterialTheme` wraps all composables |
| 100 | **Navigation Crashes**: Handle back press and deep links properly |
| 101 | **Memory Leaks**: Cancel coroutines in `DisposableEffect` |
| 102 |
Details
- Updated
- Sep 21, 2026
- License
- MIT
- Stars on the repo
- ★ 39,857
- Checked
- Source
- wshobson/agents ↗
- Creator
- wshobson · 179 listings
Similar skills
See all →
SkillInterface Designer
SkillApple Design Patterns
SkillWeb Animation Choreographer
SkillComponent State Renderer
SkillDesign Quality Auditor
SkillDashboard Interface DesignMore from wshobson
Skill.NET Backend Developer
SkillWCAG 2.2 Implementation
SkillAngularJS to Angular Upgrade
SkillReverse Engineering Defense
SkillApache Airflow DAG Builder
SkillApache Spark Optimizer