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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Nkkinsoft.SimpleToolkit.SimpleShell.Controls" Version="10.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Nkkinsoft.SimpleToolkit.SimpleShell.Controls" Version="10.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Nkkinsoft.SimpleToolkit.SimpleShell.Controls" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Nkkinsoft.SimpleToolkit.SimpleShell.Controls --version 10.0.0
                    
#r "nuget: Nkkinsoft.SimpleToolkit.SimpleShell.Controls, 10.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Nkkinsoft.SimpleToolkit.SimpleShell.Controls@10.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Nkkinsoft.SimpleToolkit.SimpleShell.Controls&version=10.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Nkkinsoft.SimpleToolkit.SimpleShell.Controls&version=10.0.0
                    
Install as a Cake Tool

<img src="./images/logo_with_background.svg" width="40" height="25"> SimpleToolkit 10

The Ultimate UI Toolkit for .NET MAUI 10

NuGet NuGet License: MIT

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=true with TrimMode=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

  1. Update target framework to net10.0-*
  2. Update NuGet packages to Nkkinsoft.SimpleToolkit.* version 10.0.0
  3. Move MainPage = new AppShell() from constructor to CreateWindow()
  4. 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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