Apply the Meshtastic design standards on Android - brand colours, Material 3 tokens, MeshtasticIcons and accessibility - with the upstream `meshtastic/design` standards as the source of truth. Use this whenever you choose a colour, icon, spacing value or contrast level, and before claiming a screen matches the design.
68
83%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Android-specific guidance for applying the Meshtastic design standards. All visual rules, color palettes, accessibility requirements, and cross-platform conventions live upstream.
Source of truth:
meshtastic/design/standards/That index names the current version; open it from there for the full spec (colors, M3 mapping, accessibility, units/locale, agent checklist). Don't fetchmeshtastic_design_standards_latest.mdover HTTP — it is a symlink, and GitHub returns its target's filename, 35 bytes, with HTTP 200. If this skill diverges from upstream, upstream wins.
Before implementing any UI:
meshtastic/design/standards/audits/settings-validation-matrix.md has field-by-field validation rules for every config/module settingThe upstream standards define M3 role mappings (Section 8). In this codebase:
core/ui/ — the AppTheme composable (core/ui/src/commonMain/kotlin/org/meshtastic/core/ui/theme/Theme.kt)MaterialTheme.colorScheme.primary, .surface, etc.) — never raw hex valuesdynamicColorScheme() (AppTheme(dynamicColor = true) for all flavors); the Android actual is gated by SDK ≥ S, while desktop/iOS return null| Standard Name | Hex | Compose Usage |
|---|---|---|
| Primary | #2C2D3C | MaterialTheme.colorScheme.primary |
| Accent | #67EA94 | MaterialTheme.colorScheme.tertiary (never as text on light bg) |
| Green 600 | #3FB86D | Use for success text on light backgrounds |
| Error | #E05252 | MaterialTheme.colorScheme.error |
| Link | #9BA8E0 | Blue 400 — for clickable text |
Raw palette defined in
core/ui/src/commonMain/kotlin/org/meshtastic/core/ui/theme/CustomColors.kt(e.g.N800,G500,G600,E500,B400) — reference the M3 token, not the rawCustomColorsentry, in UI code.
MeshtasticIcons (from core/ui/icon/), not material.icons.IconsMaterialTheme.typographyonSurface for text color, never node identity colorsic_launcher — adaptive (androidApp/src/main/res/mipmap-anydpi/ic_launcher.xml) with foreground/background layers. The Play-Store listing asset is androidApp/src/main/ic_launcher2-playstore.png.ic_launcher resource name.When implementing or modifying settings screens, consult the upstream validation spec:
settings-validation-android.md
It documents every field's:
d003a21
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.