maui-accessibility
Guide for making .NET MAUI apps accessible — screen reader support via SemanticProperties, heading levels, AutomationProperties…
Guidance for adding map controls, pins, polygons, polylines, geocoding, Google Maps API key configuration, and platform setup in .NET MAUI apps using Microsoft.Maui.Controls.Maps. USE FOR: "add map", "map control", "map pins", "polygons on map", "polylines", "geocoding", "Google
$ npx -y skills add davidortinau/maui-skills --skill maui-maps --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/maui-mapsContext preview
The summary Claude sees to decide when to auto-load this skill.
Guidance for adding map controls, pins, polygons, polylines, geocoding, Google Maps API key configuration, and platform setup in .NET MAUI apps using Microsoft.Maui.Controls.Maps. USE FOR: "add map", "map control", "map pins", "polygons on map", "polylines", "geocoding", "Google
name: maui-maps description: > Guidance for adding map controls, pins, polygons, polylines, geocoding, Google Maps API key configuration, and platform setup in .NET MAUI apps using Microsoft.Maui.Controls.Maps. USE FOR: "add map", "map control", "map pins", "polygons on map", "polylines", "geocoding", "Google Maps API key", "Microsoft.Maui.Controls.Maps", "map setup", "reverse geocoding", "map region". DO NOT USE FOR: getting device GPS coordinates (use maui-geolocation), custom drawing overlays (use maui-graphics-drawing), or location permissions only (use maui-permissions).
| Issue | Fix | |---|---| | Map is blank on Android | Google Maps API key missing or wrong in `AndroidManifest.xml` | | Map crashes on startup | `.UseMauiMaps()` not called in `MauiProgram.cs` | | `Map` type ambiguous | Conflicts with `Microsoft.Maui.ApplicationModel.Map` — add namespace alias | | Map doesn't show on Windows | Windows has no native support — must use `CommunityToolkit.Maui.Maps` | | User location dot missing | `IsShowingUser="True"` set but location permission not granted | | Android 11+ can't launch external map app | Missing `<queries>` for `geo` scheme in manifest |
`Microsoft.Maui.Controls.Maps.Map` conflicts with `Microsoft.Maui.ApplicationModel.Map`. This causes confusing compile errors.
// ✅ Correct — explicit alias using Map = Microsoft.Maui.Controls.Maps.Map;
<!-- ✅ Correct — namespace prefix in XAML --> xmlns:maps="clr-namespace:Microsoft.Maui.Controls.Maps;assembly=Microsoft.Maui.Controls.Maps" <maps:Map ... /> <!-- ❌ Wrong — bare <Map> is ambiguous --> <Map ... />
<!-- ✅ Correct -->
<application ...>
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="YOUR_GOOGLE_MAPS_KEY" />
</application>
<!-- ❌ Outside <application> — key is silently ignored -->⚠️ Also required: Google Play Services version meta-data and `<queries>` for geo scheme on API 30+ (see `references/maps-api.md`).
⚠️ Without `NSLocationWhenInUseUsageDescription` in `Info.plist`, location permission is denied without prompt.
Must add `CommunityToolkit.Maui.Maps` + Bing key. Use conditional package reference and `#if WINDOWS` for setup.
// ✅ Required — without this, Map control throws at runtime builder.UseMauiMaps(); // ❌ Forgetting this causes "No registered handler for Map" crash
<!-- ✅ Correct — data-bound pins for dynamic collections -->
<maps:Map ItemsSource="{Binding Locations}">
<maps:Map.ItemTemplate>
<DataTemplate>
<maps:Pin Label="{Binding Name}"
Address="{Binding Description}"
Location="{Binding Position}" />
</DataTemplate>
</maps:Map.ItemTemplate>
</maps:Map>
<!-- ❌ Wrong — manually adding pins in code-behind for data-driven scenarios -->| Need | Approach | |---|---| | Basic map with pins | `Map` control + `Pins.Add()` or `ItemsSource` binding | | Map with shapes | `MapElements` — `Polygon`, `Polyline`, `Circle` | | Address → coordinates | `Geocoding.Default.GetLocationsAsync(address)` | | Coordinates → address | `Geocoding.Default.GetPlacemarksAsync(lat, lon)` | | Custom map overlays | Use handlers to access native map APIs | | Windows support | Must add `CommunityToolkit.Maui.Maps` + Bing key |
A collection of 41 skills for .NET MAUI development, UI/UX design reasoning, and Xamarin migration, designed for use with GitHub Copilot CLI and Claude Code.
Guide for making .NET MAUI apps accessible — screen reader support via SemanticProperties, heading levels, AutomationProperties…
.NET MAUI view animations, custom animations, easing functions, rotation, scale, translation, and fade effects. USE FOR: "animate…
.NET MAUI app icon configuration, splash screen setup, SVG to PNG conversion at build time, composed/adaptive icons, and…
.NET MAUI app lifecycle guidance covering the four app states (not running, running, deactivated, stopped), cross-platform Window…
Guide for .NET MAUI apps consuming .NET Aspire-hosted backend services. Covers AppHost configuration, service discovery for…
Add authentication to .NET MAUI apps. Covers WebAuthenticator for generic OAuth 2.0 / social login, and MSAL.NET for Microsoft…