Master Material Design 3 and Jetpack Compose patterns
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 →
SkillDesign, redesign, shape, critique, audit, polish, clarifyImpeccable
SkillApple's approach to interface design and fluidApple design
SkillBuild an animation from scratchBuilding Animations
SkillRenders a component you choose in every stateBreak
SkillReviews your work across multiple categories like UIChange review
SkillCraft-first interface design for dashboards, admin panelsThe ProblemMore from wshobson
SkillMaster C/.NET backend development patterns for building
SkillImplement WCAG 2.2 compliant interfaces with mobileAccessibility compliance
SkillMigrate from AngularJS to Angular using hybrid modeAngular migration
SkillUnderstand anti-reversing, obfuscationAnti reversing techniques
SkillBuild production Apache Airflow DAGs with best practicesApache Airflow DAG Patterns
SkillOptimize Apache Spark jobs with partitioning, cachingApache Spark Optimization