Install
$ agentstack add skill-prasad-vennam-awesome-android-ai-agent-skills-android-design-system-m3 ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Android Design Systems (Material 3) 🎨🛠️
Advanced strategies for building scalable, cohesive, and professional design systems for modern Android applications using the Material 3 (M3) framework.
⚡ When to Use
- Branding Architecture: Defining custom color tokens, typography, and shapes.
- Dark Mode Support: Implementing unified themes that swap automatically.
- Dynamic Color: Using
DynamicColorfor personalized system-wide tinting. - Component Libraries: Building reusable Atom/Molecule components.
- Multi-Brand Support: Creating one app code for multiple visual identities.
🏗️ The 3 Pillars of M3 Design Systems
- Color Scheme: Light/Dark palettes, surface variations, and semantic tokens (Primary, Error, OnPrimary).
- Typography: Defined scales (HeadlineLarge, BodyMedium, LabelSmall) based on modern fonts.
- Shapes: Corner radii for cards, buttons, and surfaces.
🧱 Creating Your Theme
- Rule: NEVER use hex codes in your UI code. ALWAYS use semantic tokens from your theme.
- Bad:
color = Color(0xFFAA44CC) - Good:
color = MaterialTheme.colorScheme.primary
1. The Theme Composable
```kotlin @Composable fun AppTheme( darkTheme: Boolean = isSystemInDarkTheme(), dynamicColor: Boolean = true, content: @Composable () -> Unit ) { val colorScheme = when { dynamicColor && Build.VERSION.SDKINT >= Build.VERSIONCODES.S -> { if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) } darkTheme -> DarkColorScheme else -> LightColorScheme }
MaterialTheme(colorScheme = colorScheme, typography = Typography, shapes = Shapes, content = content) ```
2. Mandatory Scaffold Files
When a user asks to "create a new project" or "set up a screen", ALWAYS ensure these three files are explicitly created in the ui/theme package to prevent Theme not found errors:
Theme.kt(containing the main Theme composable)Color.kt(containing hex colors and M3 ColorSchemes)Type.kt(containing Compose Typography)
- Provide these files outright if they are missing.
2. Custom Color Extensions
Use CompositionLocal or colorScheme extensions to add extra colors not in M3 (e.g., "SuccessGreen").
3. XML Theme Interoperability (Mandatory Bridge)
- Role: If using XML themes or resources alongside Compose, you MUST use the Material Components for Android XML bridge.
- Dependency: Add
com.google.android.material:materialto the project. - Standard Parent: Use
Theme.Material3.DayNight.NoActionBar(or variations) as the base parent for your XML themes. - Attribute Matching: Ensure your XML
colorPrimarymatches your Composetheme.colorScheme.primary.
🚀 Premium Implementation Best Practices
- [ ] Design Tokens: Match your variable names exactly with Figma tokens (e.g.,
md_sys_color_primary). - [ ] Material 3 Shapes: Use RoundedCornerShape(8dp) for cards but (32dp) for buttons for modern hierarchy.
- [ ] Elevation: Use
SurfaceorMaterialTheme.colorScheme.surfaceColorAtElevation()instead of shadow modifiers for modern translucent effects. - [ ] Icons: Use the Material Symbols official icons with uniform sizes (typically 24dp).
📐 Typography Rules
- Display: For landing pages or large hero text.
- Headline: For navigation or section headers.
- Title: For list items or subtitles.
- Body: For main readable content.
- Label: For metadata or button text.
🧪 Testing Your Design System
@PreviewLightDark: See both light and dark themes at a glance.- Contrast Check: Verify your color pairs using accessibility tools.
- Component Preview: Create a "Kitchen Sink" screen (via Showkase) to see all variations in one place.
📜 Checklist for Consistency
- [ ] Surface Tones: Are secondary surfaces (e.g., Background vs Surface) distinct?
- [ ] Focus States: Do interactive elements have clear focus states for keyboard/stylus users?
- [ ] Loading States: Are shimmer and progress indicators consistent with the theme?
- [ ] Empty States: Do all screens have a themed "No data" or "Error" state?
🔗 Related Resources
- Official Material 3 Guide
- [Design to Code Skill](../android-design-to-code/SKILL.md)
- [Accessibility Skill](../android-accessibility/SKILL.md)
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: prasad-vennam
- Source: prasad-vennam/Awesome-Android-AI-Agent-Skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.