AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Maui Safe Area

skill-davidortinau-maui-skills-maui-safe-area · by davidortinau

>

No reviews yet
0 installs
22 views
0.0% view→install

Install

$ agentstack add skill-davidortinau-maui-skills-maui-safe-area

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-davidortinau-maui-skills-maui-safe-area)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

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 →
Are you the author of Maui Safe Area? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Safe Area — Gotchas & Best Practices (.NET 10+)

Breaking Changes

⚠️ .NET 9 → 10: ContentPage default changed to None

ContentPage now defaults to edge-to-edge (None) on all platforms. In .NET 9, Android ContentPage behaved like Container. If your Android content goes under the status bar after upgrading, add SafeAreaEdges="Container" explicitly.

⚠️ WindowSoftInputModeAdjust.Resize migration

If you used WindowSoftInputModeAdjust.Resize in .NET 9, you may need SafeAreaEdges="All" on the ContentPage to maintain keyboard avoidance.

Common Gotchas

1. Layouts default to Container, not None

For true edge-to-edge, set SafeAreaEdges="None" on both the page and layouts:


    
        
    

    
        
    

2. SoftInput on ScrollView has no effect

ScrollView manages its own content insets. Wrap it in a Grid/StackLayout instead:


     ... 

3. Default is not None

Default = "use platform defaults for this control type." None = "edge-to-edge." They differ significantly on ScrollView (iOS maps Default to automatic content insets).

4. Blazor Hybrid double-padding


      

      

5. iOS Shell/NavigationPage edge-to-edge

Content won't extend behind the nav bar unless you set a transparent background AND hide the separator:

Decision Framework

| Scenario | SafeAreaEdges value | |---|---| | Forms, critical inputs | All | | Photo viewer, video player, game | None (on page AND layout) | | Scrollable content with fixed header/footer | Container | | Chat/messaging with bottom input bar | Per-edge: Container, Container, Container, SoftInput | | Blazor Hybrid app | None on page, CSS env() for insets |

Migration Quick Reference

| Legacy (.NET 9) | New (.NET 10+) | |---|---| | ios:Page.UseSafeArea="True" | SafeAreaEdges="Container" | | IgnoreSafeArea="True" | SafeAreaEdges="None" | | WindowSoftInputModeAdjust.Resize | SafeAreaEdges="All" on ContentPage |

Legacy properties still work but are obsolete.

Best Practices

  1. Combine SafeAreaEdges with Padding — safe area handles insets, Padding adds visual spacing:

```xaml

```

  1. Use per-control settings for mixed layouts (edge-to-edge header + safe body + keyboard-aware footer).
  1. For Blazor Hybrid, prefer CSS env() and leave SafeAreaEdges="None".

Add viewport-fit=cover to the `` tag.

  1. Test on notched devices (iPhone X+, Android cutouts), tablets in landscape, and varying screen sizes.

Checklist

  • [ ] Android upgrade: SafeAreaEdges="Container" added if content goes under status bar
  • [ ] Edge-to-edge: None set on both page and layout
  • [ ] ScrollView keyboard avoidance uses wrapper Grid, not ScrollView's own SafeAreaEdges
  • [ ] Blazor Hybrid: using either XAML or CSS safe areas, not both
  • [ ] viewport-fit=cover in Blazor's index.html `` tag
  • [ ] Legacy UseSafeArea / IgnoreSafeArea migrated to SafeAreaEdges

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.