Nkkinsoft.SimpleToolkit.SimpleShell.Controls
10.0.0
dotnet add package Nkkinsoft.SimpleToolkit.SimpleShell.Controls --version 10.0.0
NuGet\Install-Package Nkkinsoft.SimpleToolkit.SimpleShell.Controls -Version 10.0.0
<PackageReference Include="Nkkinsoft.SimpleToolkit.SimpleShell.Controls" Version="10.0.0" />
<PackageVersion Include="Nkkinsoft.SimpleToolkit.SimpleShell.Controls" Version="10.0.0" />
<PackageReference Include="Nkkinsoft.SimpleToolkit.SimpleShell.Controls" />
paket add Nkkinsoft.SimpleToolkit.SimpleShell.Controls --version 10.0.0
#r "nuget: Nkkinsoft.SimpleToolkit.SimpleShell.Controls, 10.0.0"
#:package Nkkinsoft.SimpleToolkit.SimpleShell.Controls@10.0.0
#addin nuget:?package=Nkkinsoft.SimpleToolkit.SimpleShell.Controls&version=10.0.0
#tool nuget:?package=Nkkinsoft.SimpleToolkit.SimpleShell.Controls&version=10.0.0
<img src="./images/logo_with_background.svg" width="40" height="25"> SimpleToolkit 10
The Ultimate UI Toolkit for .NET MAUI 10
SimpleToolkit 10 is a modern, high-performance UI toolkit engineered from the ground up for .NET 10 MAUI. It provides beautiful controls, powerful navigation through SimpleShell, and a seamless developer experience.
Why SimpleToolkit?
| Feature | Description |
|---|---|
| Performance First | AOT-compatible, fully trimmable, zero-allocation rendering paths |
| Modern Design | Glass effects, pulse animations, smart popovers |
| SimpleShell | The most flexible Shell replacement with custom transitions |
| Cross-Platform | Android, iOS, macOS Catalyst, and Windows |
Packages
| Package | Version | Description |
|---|---|---|
Nkkinsoft.SimpleToolkit.Core |
10.0.0 | Core controls: ContentButton, Icon, Popover, GlassView, PulseButton |
Nkkinsoft.SimpleToolkit.SimpleShell |
10.0.0 | Custom Shell with transitions and flexible navigation |
Nkkinsoft.SimpleToolkit.SimpleShell.Controls |
10.0.0 | TabBar, ListPopover and navigation-related controls |
Quick Start
1. Install NuGet Packages
dotnet add package Nkkinsoft.SimpleToolkit.Core --version 10.0.0
dotnet add package Nkkinsoft.SimpleToolkit.SimpleShell --version 10.0.0
2. Initialize in MauiProgram.cs
using SimpleToolkit.Core;
using SimpleToolkit.SimpleShell;
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UseSimpleToolkit() // Initialize Core controls
.UseSimpleShell(); // Initialize SimpleShell navigation
return builder.Build();
}
}
3. Create Your AppShell
<simpleShell:SimpleShell
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:simpleShell="clr-namespace:SimpleToolkit.SimpleShell;assembly=SimpleToolkit.SimpleShell"
x:Class="YourApp.AppShell">
<ShellContent Title="Home" ContentTemplate="{DataTemplate local:HomePage}" />
<ShellContent Title="Settings" ContentTemplate="{DataTemplate local:SettingsPage}" />
</simpleShell:SimpleShell>
4. Important: App.xaml.cs Pattern for .NET 10
public partial class App : Application
{
public App()
{
InitializeComponent();
// DO NOT set MainPage here in .NET 10
}
protected override Window CreateWindow(IActivationState? activationState)
{
// Create the Window with AppShell in CreateWindow
return new Window(new AppShell());
}
}
Core Controls
ContentButton
A fully customizable button that can contain any content:
<st:ContentButton Clicked="OnButtonClicked">
<HorizontalStackLayout Spacing="8">
<st:Icon Source="star.png" TintColor="Gold" />
<Label Text="Favorite" />
</HorizontalStackLayout>
</st:ContentButton>
Popover
Smart popover that automatically positions relative to an anchor:
<st:Popover x:Name="myPopover">
<Border Padding="16" BackgroundColor="White">
<Label Text="Popover Content" />
</Border>
</st:Popover>
Icon
Universal icon with tinting support:
<st:Icon Source="settings.png" TintColor="{AppThemeBinding Light=Black, Dark=White}" />
SimpleShell Features
Custom Transitions
SimpleShell.SetTransition(page, new SimpleShellTransition
{
Callback = args =>
{
args.OriginPage.Opacity = 1 - args.Progress;
args.DestinationPage.Opacity = args.Progress;
},
Duration = args => 250,
Easing = args => Easing.CubicInOut
});
Platform-Specific Animations (Android)
SimpleShell.SetTransition(page, new PlatformSimpleShellTransition
{
PushingEnterAnimation = Resource.Animation.slide_in_right,
PushingLeaveAnimation = Resource.Animation.slide_out_left,
PoppingEnterAnimation = Resource.Animation.slide_in_left,
PoppingLeaveAnimation = Resource.Animation.slide_out_right
});
Roadmap
Version 10.0.x (Current)
- .NET 10 MAUI compatibility
- AOT and trimming support
- Android fragment lifecycle fixes
- Nullability annotations throughout
- Zero compiler warnings
Version 10.1.0 (Planned)
- GlassView: Cross-platform blur/acrylic effects
- PulseButton: Button with ripple and haptic feedback
- AdvancedIcon: SF Symbols, Fluent Icons, SVG support
- SafeAreaView: Dynamic island and notch handling
- Shared Element Transitions (Hero animations)
Version 10.2.0 (Future)
- SimpleShell.BottomSheet: Native bottom sheet integration
- SimpleShell.Drawer: Custom drawer navigation
- TransitionService: Declarative transition definitions
- Gesture-based navigation (swipe to go back)
- Performance Mode for low-end devices
Version 11.0.0 (Next Major)
- Source generators for handler registration
- Aspire OpenTelemetry integration
- XAML IntelliSense improvements
- Hot Reload optimizations
- Foldable device support
Code Quality Standards
This library follows strict quality guidelines:
- Nullable Reference Types: Enabled across all projects
- AOT Compatible:
IsAotCompatible=true - Fully Trimmable:
IsTrimmable=truewithTrimMode=full - Zero Warnings: All compiler warnings resolved
- XML Documentation: Complete API documentation
Platform Support
| Platform | Minimum Version | Target |
|---|---|---|
| Android | API 35 | net10.0-android |
| iOS | 18.0 | net10.0-ios |
| macOS Catalyst | 18.0 | net10.0-maccatalyst |
| Windows | 10.0.19041.0 | net10.0-windows |
Migration from Earlier Versions
From SimpleToolkit 5.x to 10.0
- Update target framework to
net10.0-* - Update NuGet packages to
Nkkinsoft.SimpleToolkit.*version 10.0.0 - Move
MainPage = new AppShell()from constructor toCreateWindow() - Review any custom handlers for breaking changes
// Before (v5.x)
public App()
{
InitializeComponent();
MainPage = new AppShell(); // Remove this
}
// After (v10.0)
protected override Window CreateWindow(IActivationState? activationState)
{
return new Window(new AppShell()); // Add this
}
Documentation
Contributing
Contributions are welcome! Please read our contributing guidelines and submit pull requests to the main branch.
Building from Source
git clone https://github.com/RadekVyM/SimpleToolkit.git
cd SimpleToolkit
dotnet build src/SimpleToolkit.Core/SimpleToolkit.Core.csproj
dotnet build src/SimpleToolkit.SimpleShell/SimpleToolkit.SimpleShell.csproj
Running Samples
cd src/Samples/Sample.SimpleShell
dotnet build -f net10.0-android
License
MIT License - see LICENSE for details.
Acknowledgements
- Original library by RadekVyM
- Modernized for .NET 10 by the community
- Built with love for the .NET MAUI ecosystem
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-android36.0 is compatible. net10.0-browser was computed. net10.0-ios was computed. net10.0-ios26.0 is compatible. net10.0-maccatalyst was computed. net10.0-maccatalyst26.0 is compatible. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. net10.0-windows10.0.19041 is compatible. |
-
net10.0
- Microsoft.Maui.Controls (>= 10.0.40)
- Nkkinsoft.SimpleToolkit.Core (>= 10.0.0)
-
net10.0-android36.0
- Microsoft.Maui.Controls (>= 10.0.40)
- Nkkinsoft.SimpleToolkit.Core (>= 10.0.0)
-
net10.0-ios26.0
- Microsoft.Maui.Controls (>= 10.0.40)
- Nkkinsoft.SimpleToolkit.Core (>= 10.0.0)
-
net10.0-maccatalyst26.0
- Microsoft.Maui.Controls (>= 10.0.40)
- Nkkinsoft.SimpleToolkit.Core (>= 10.0.0)
-
net10.0-windows10.0.19041
- Microsoft.Maui.Controls (>= 10.0.40)
- Nkkinsoft.SimpleToolkit.Core (>= 10.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.0 | 115 | 2/17/2026 |
| 10.0.0-preview1 | 104 | 2/15/2026 |