Apply Android/Jetpack Compose design principles following Material Design 3 when building any Android UI component...
Build native Android interfaces that follow Material Design 3 (Material You) by applying systematic design principles. This skill provides comprehensive guidelines for Jetpack Compose-first development with Dynamic Color, spacing, typography, and component-specific patterns optimized for Android.
Activate this skill when:
Do NOT activate for:
Follow Material Design 3 principles + Flexible extensions:
Read references/design-principles.md - Material Design 3 principles
Read references/color-system.md - Dynamic Color, Material Theme
Read references/spacing-system.md - 4dp grid, touch targets
Read references/typography.md - Roboto, Material Type Scale
Read references/component-patterns.md - Compose component best practices
Read references/anti-patterns.md - Common Android design mistakes
component-patterns.md → Button sectioncomponent-patterns.md → Card sectioncomponent-patterns.md → LazyColumn sectioncomponent-patterns.md → TextField sectioncomponent-patterns.md → Navigation sectioncomponent-patterns.md → AlertDialog section4dp grid system:
16.dp, .padding(16.dp)Material Theme colors:
colorScheme.onSurface, colorScheme.onSurfaceVariantcolorScheme.surface, colorScheme.surfaceVariantcolorScheme.primaryMaterial Type Scale (REQUIRED):
displayLarge, displayMedium, displaySmallheadlineLarge, headlineMedium, headlineSmalltitleLarge, titleMedium, titleSmallbodyLarge, bodyMedium, bodySmalllabelLarge, labelMedium, labelSmallAndroid UI Component Request
│
├─ What component? → Load component-patterns.md section
│
├─ What spacing? → Use 4dp grid (spacing-system.md)
│
├─ What colors? → Material Theme + Dynamic Color (color-system.md)
│
├─ What typography? → Material Type Scale (typography.md)
│
├─ Compose or XML? → Compose first
│
└─ Validation → Check anti-patterns.md
Good Request Flow:
User: "Create a login form in Compose"
→ Read references/component-patterns.md (TextField section)
→ Apply: OutlinedTextField, Material Type Scale, 4dp spacing
→ Validate against anti-patterns.md
→ Implement with Column { OutlinedTextField, Button }
Component Implementation Checklist:
Button(onClick = { }) {
Text("확인")
}
Card {
Column(modifier = Modifier.padding(16.dp)) {
Text(
text = "제목",
style = MaterialTheme.typography.titleLarge,
color = MaterialTheme.colorScheme.onSurface
)
Text(
text = "내용",
style = MaterialTheme.typography.bodyMedium,
color = MaterialTheme.colorScheme.onSurfaceVariant
)
}
}
Text(
text = "제목",
fontSize = 24.sp, // ❌ No Type Scale
color = Color.Black // ❌ No Dark Mode
)
val colorScheme = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
dynamicLightColorScheme(LocalContext.current)
} else {
lightColorScheme()
}
Color.Black, Color.White