AuroraControls.Maui
3.11.1-beta
See the version list below for details.
dotnet add package AuroraControls.Maui --version 3.11.1-beta
NuGet\Install-Package AuroraControls.Maui -Version 3.11.1-beta
<PackageReference Include="AuroraControls.Maui" Version="3.11.1-beta" />
<PackageVersion Include="AuroraControls.Maui" Version="3.11.1-beta" />
<PackageReference Include="AuroraControls.Maui" />
paket add AuroraControls.Maui --version 3.11.1-beta
#r "nuget: AuroraControls.Maui, 3.11.1-beta"
#:package AuroraControls.Maui@3.11.1-beta
#addin nuget:?package=AuroraControls.Maui&version=3.11.1-beta&prerelease
#tool nuget:?package=AuroraControls.Maui&version=3.11.1-beta&prerelease
Aurora Controls for .NET MAUI
<p align="center" style="border-radius: 10px;"> <img src="images/logo.png" alt="TychoDB Logo" width="200"> </p>
A collection of beautiful, customizable UI controls for .NET MAUI applications. Aurora Controls provides a rich set of controls designed with modern UI/UX principles in mind.
Features
- 🎨 Modern, customizable UI controls
- 📱 Cross-platform compatibility (iOS, Android)
- ⚡ High-performance rendering with SkiaSharp
- 🎯 Touch and gesture support
- 🔄 Two-way binding support
- 🎭 Rich animation capabilities
- 📦 Easy integration with existing MAUI projects
Installation
Install via NuGet:
dotnet add package AuroraControls.Maui
Setup
- In your
MauiProgram.cs
, add Aurora Controls:
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UseAuroraControls<App>();
return builder.Build();
}
- Add the namespace to your XAML:
xmlns:aurora="http://auroracontrols.maui/controls"
Controls
Interactive Components
Tile
An advanced button-like control with support for SVG images, text, ripple effects, shadows, and notification badges.
<aurora:Tile
Text="Settings"
EmbeddedImageName="Assets/settings.svg"
MaxImageSize="24,24"
ButtonBackgroundColor="#4A90E2"
FontColor="White"
FontSize="16"
BorderColor="White"
BorderWidth="1"
CornerRadius="8"
ShadowColor="#80000000"
ShadowBlurRadius="4"
ShadowLocation="0,3"
Ripples="true"
ContentPadding="12"
Command="{Binding SettingsCommand}">
<aurora:Tile.NotificationBadge>
<aurora:NotificationBadge NotificationCount="5" />
</aurora:Tile.NotificationBadge>
</aurora:Tile>
Features:
- SVG image support with size constraints and optional color overlay
- Rich text customization (color, size, font, iconified text support)
- Material Design ripple effects on touch
- Customizable shadows with blur and offset
- Border and corner radius styling
- Optional notification badge integration
- Smooth tap animations
- Command binding and click event support
- Content padding configuration
GradientPillButton
<p align="center" style="border-radius: 10px;"> <img src="images/GradientPillButton.png" width="200"> <img src="images/GradientPillButton.ShadowBlurRadius.2.png" width="200"> <img src="images/GradientPillButton.BorderWidth.5.png" width="200"> </p>
A pill-shaped button with gradient background, shadow, and ripple effects.
<aurora:GradientPillButton
Text="Click Me"
ButtonBackgroundStartColor="#FF6B6B"
ButtonBackgroundEndColor="#4ECDC4"
FontColor="White"
Command="{Binding MyCommand}"
ShadowColor="#80000000"
ShadowBlurRadius="4"
ShadowLocation="0,3" />
SegmentedControl
<p align="center" style="border-radius: 10px;"> <img src="images/SegmentedControl.png" width="200"> </p>
A segmented control similar to iOS UISegmentedControl.
<aurora:SegmentedControl
SelectedIndex="{Binding SelectedViewIndex}"
ControlForegroundColor="{StaticResource Primary}"
ControlBackgroundColor="White"
BorderSize="1">
<aurora:Segment Text="Day" />
<aurora:Segment Text="Week" />
<aurora:Segment Text="Month" />
</aurora:SegmentedControl>
ToggleBox
<p align="center" style="border-radius: 10px;"> <img src="images/CheckBoxGroup.Example1.png" width="200"> </p>
A versatile toggle/checkbox control with multiple styles and customization options.
<aurora:ToggleBox
IsToggled="{Binding IsSelected}"
Shape="RoundedSquare"
CheckType="Check"
CheckColor="White"
BorderColor="Blue"
BorderWidth="2"
MarkWidth="2"
CornerRadius="4"
BackgroundColor="Transparent"
ToggledBackgroundColor="Blue"
Value="{Binding Item}" />
Features:
- Multiple shapes: Square, Circular, RoundedSquare
- Different check mark styles: Cross, Check, RoundedCheck, Circular
- Customizable colors for border, background, and check mark
- Configurable border width, mark width, and corner radius
- Two-way binding support for toggle state
- Optional value binding
- Toggle state change events
CupertinoToggleSwitch
<p align="center" style="border-radius: 10px;"> <img src="images/CupertinoToggleSwitch.png" width="200"> <img src="images/CupertinoToggleSwitch.Example1.png" width="200"> <img src="images/CupertinoToggleSwitch.Example2.png" width="200"> </p>
An iOS-style toggle switch with smooth animations.
<aurora:CupertinoToggleSwitch
IsToggled="{Binding IsEnabled}"
TrackEnabledColor="#4CD964"
TrackDisabledColor="#E9E9EA"
ThumbColor="White" />
CupertinoTextToggleSwitch
An iOS-style toggle switch with text labels.
<aurora:CupertinoTextToggleSwitch
IsToggled="{Binding IsDarkMode}"
EnabledText="ON"
DisabledText="OFF"
TrackEnabledColor="#4CD964"
EnabledFontColor="White"
DisabledFontColor="#272727" />
NumericEntry
<p align="center" style="border-radius: 10px;"> <img src="images/NumericEntry.png" width="200"> </p>
A customizable numeric entry control.
<aurora:NumericEntry
Value="{Binding NumericValue}"
Placeholder="Enter number"
TextColor="Black"
PlaceholderColor="Gray" />
SignaturePad
<p align="center" style="border-radius: 10px;"> <img src="images/Signature.png" width="200"> </p>
A control for capturing handwritten signatures.
<aurora:SignaturePad
StrokeColor="Black"
StrokeWidth="3"
BackgroundColor="White" />
ChipGroup and Chip
<p align="center" style="border-radius: 10px;"> <img src="images/ChipGroup.png" width="200"> </p>
A flexible chip component and chip group container for creating tag-like UI elements with selection capabilities.
<aurora:ChipGroup
IsScrollable="False"
AllowMultipleSelection="False"
HorizontalSpacing="8"
VerticalSpacing="8"
SelectedValue="{Binding SelectedCategory}"
SelectionChanged="OnChipSelectionChanged">
<aurora:Chip Text="Apple" Value="apple" />
<aurora:Chip Text="Banana" Value="banana" />
<aurora:Chip Text="Cherry" Value="cherry" />
</aurora:ChipGroup>
<aurora:ChipGroup
IsScrollable="True"
AllowMultipleSelection="True"
ItemsSource="{Binding ChipItems}"
ItemTemplate="{StaticResource ChipTemplate}"
SelectedValues="{Binding SelectedValues}"
SelectionChanged="OnSelectionChanged" />
ChipGroup Features:
Layout Options:
IsScrollable
- Toggle between scrollable single-line mode and multi-line wrapping modeHorizontalSpacing
andVerticalSpacing
- Customize the spacing between chips
Selection Management:
AllowMultipleSelection
- Toggle between single and multiple selection modesSelectedChip
- Get/set the currently selected chip in single selection modeSelectedChips
- Collection of currently selected chips in multi-selection modeSelectedValue
- Get/set the value of the selected chip in single selection modeSelectedValues
- Collection of values from the selected chips in multi-selection modeSelectionChanged
event - Provides information about selection changes
Collection Integration:
ItemsSource
- Bind to a collection of data itemsItemTemplate
- Define a template for creating chips from data items
Navigation Methods:
ScrollToChip(...)
- Scroll to a specific chipScrollToChipWithValue(...)
- Find and scroll to a chip by its valueScrollToSelectedChip(...)
- Scroll to the currently selected chipSelectChipByValue(...)
- Programmatically select a chip by its valueGetChipByValue(...)
- Find a chip by its value
Chip Features:
Text
- The text displayed on the chipValue
- An associated value for the chip (used for binding and selection)IsToggled
- The selection state of the chipIsRemovable
- Whether the chip shows a removal buttonBackgroundColor
/ToggledBackgroundColor
- Customize appearance based on selection stateFontColor
/ToggledFontColor
- Customize text color based on selection stateLeadingEmbeddedImageName
- Display an SVG image at the start of the chipIsSingleSelection
- Auto-configured by ChipGroup based on AllowMultipleSelection
Example with Value Binding:
<aurora:ChipGroup
AllowMultipleSelection="False"
SelectedValue="{Binding SelectedCategory, Mode=TwoWay}">
<aurora:Chip Text="Work" Value="work" />
<aurora:Chip Text="Personal" Value="personal" />
<aurora:Chip Text="Other" Value="other" />
</aurora:ChipGroup>
Example with Multi-Value Binding:
<aurora:ChipGroup
AllowMultipleSelection="True"
ItemsSource="{Binding FilterOptions}">
</aurora:ChipGroup>
Visual Elements
SVGImageView
<p align="center" style="border-radius: 10px;"> <img src="images/ImageView.png" width="200"> </p>
A control for displaying SVG images.
<aurora:SVGImageView
Source="image.svg"
WidthRequest="200"
HeightRequest="200" />
NotificationBadge
<p align="center" style="border-radius: 10px;"> <img src="images/NotificationBadge.png" width="200"> </p>
A badge control for displaying notifications.
<aurora:NotificationBadge
BadgeText="99+"
BadgeBackgroundColor="Red"
BadgeTextColor="White" />
Layout Controls
CardViewLayout
<p align="center" style="border-radius: 10px;"> <img src="images/CardLayoutView.Example1.png" width="200"> </p>
A material design inspired card container with elevation, rounded corners, and border customization.
<aurora:CardViewLayout
CornerRadius="12"
Elevation="4"
BorderSize="1"
BorderColor="Gray"
BackgroundColor="White">
<StackLayout Padding="16">
<Label Text="Card Title" FontSize="20" />
<Label Text="Card content goes here" />
</StackLayout>
</aurora:CardViewLayout>
GradientColorView
<p align="center" style="border-radius: 10px;"> <img src="images/GradientColorView.png" width="200"> </p>
A view that displays a customizable gradient background with support for touch interactions and animations.
<aurora:GradientColorView
GradientStartColor="Blue"
GradientStopColor="Purple"
GradientRotationAngle="45"
Ripples="True">
<Label Text="Gradient Background" TextColor="White" />
</aurora:GradientColorView>
Progress Indicators
Linear Gauge
<p align="center" style="border-radius: 10px;"> <img src="images/LinearGauge.png" width="200"> </p>
A horizontal or vertical progress gauge.
<aurora:LinearGauge
Progress="{Binding Progress}"
ProgressColor="Blue"
ProgressBackgroundColor="Gray"
ProgressThickness="10"
EndCapType="Rounded" />
Circular Gauge
<p align="center" style="border-radius: 10px;"> <img src="images/CircularGauge.png" width="200"> </p>
A circular progress indicator.
<aurora:CircularGauge
Progress="{Binding Progress}"
ProgressColor="Blue"
ProgressBackgroundColor="Gray"
ProgressThickness="10"
EndCapType="Rounded" />
CircularFillGauge
<p align="center" style="border-radius: 10px;"> <img src="images/CircularFillGauge.png" width="200"> </p>
A circular gauge that fills with color based on progress.
<aurora:CircularFillGauge
Progress="{Binding Progress}"
ProgressColor="Blue"
ProgressBackgroundColor="Gray" />
TouchDrawLettersImage
<p align="center" style="border-radius: 10px;"> <img src="images/TouchDrawLettersImage.png" width="200"> </p>
A specialized view for drawing letter shapes, useful for handwriting recognition or educational apps.
<aurora:TouchDrawLettersImage
StrokeColor="Black"
StrokeWidth="3"
BackgroundColor="White"
LetterSpacing="20" />
Loading Indicators
CupertinoActivityIndicator
iOS-style spinning activity indicator.
MaterialCircular
Material Design circular progress indicator with smooth animations.
Nofriendo
A custom loading animation inspired by retro gaming.
RainbowRing
A colorful rainbow ring loading animation.
Waves
An animated wave-style loading indicator.
Visual Effects System
Aurora Controls includes a powerful visual effects system that can be applied to any Aurora view control. The effects are powered by SkiaSharp for high-performance image processing.
Available Effects
Color Effects
BlackAndWhite
- Converts image to black and whiteBrightness
- Adjusts image brightnessContrast
- Modifies image contrastGrayscale
- Converts image to grayscaleHighContrast
- Applies high contrast effectHue
- Adjusts image hueInvert
- Inverts image colorsSaturation
- Adjusts color saturationSepia
- Applies sepia tone effect
Transform Effects
Scale
- Scales the imageRotate
- Rotates the imageSkew
- Applies skew transformationThreeDee
- Applies 3D rotation effectTranslate
- Moves the image
Special Effects
Gradient
- Applies gradient overlayPixelate
- Creates pixelation effectWatermark
- Adds watermark to imageHistogramEqualization
- Enhances image contrast using histogram equalization
Using Visual Effects
Effects can be applied to any Aurora view that implements IAuroraView
. You can add multiple effects and enable/disable them dynamically.
<aurora:AuroraView>
<aurora:AuroraView.VisualEffects>
<aurora:Sepia />
<aurora:Brightness BrightnessAmount="0.2" />
<aurora:Contrast ContrastAmount="1.2" />
</aurora:AuroraView.VisualEffects>
</aurora:AuroraView>
Adding Effects in Code
var auroraView = new AuroraView();
auroraView.VisualEffects.Add(new Sepia());
auroraView.VisualEffects.Add(new Brightness { BrightnessAmount = 0.2 });
Managing Effects
Effects can be enabled/disabled individually:
var effect = auroraView.VisualEffects[0];
effect.Enabled = false; // Temporarily disable the effect
Effects are applied in order, so the sequence matters. You can reorder effects:
auroraView.VisualEffects.Remove(effect);
auroraView.VisualEffects.Insert(0, effect); // Move to first position
Creating Custom Effects
You can create custom visual effects by inheriting from VisualEffect
:
public class CustomEffect : VisualEffect
{
public override SKImage ApplyEffect(SKImage image, SKSurface surface, SKImageInfo info, SKRect overrideRect)
{
// Implement your effect here using SkiaSharp
using (var paint = new SKPaint())
using (var surfaceImage = surface.Snapshot())
{
surface.Canvas.Clear();
// Apply your custom effect
surface.Canvas.DrawImage(surfaceImage, rect, paint);
}
return surface.Snapshot();
}
public override SKImage ApplyEffect(SKImage image, SKSurface surface, GRBackendRenderTarget info, SKRect overrideRect)
{
// Implement GPU-accelerated version if needed
return ApplyEffect(image, surface, new SKImageInfo(), overrideRect);
}
}
Performance Considerations
- Effects are applied sequentially, so use only the effects you need
- Some effects (like ThreeDee and Pixelate) are more computationally intensive
- Consider using GPU acceleration when available by implementing the GRBackendRenderTarget version of ApplyEffect
- Effects are processed on a background thread to maintain UI responsiveness
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
Support
If you encounter any issues or have questions, please file an issue on the GitHub repository.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-android34.0 is compatible. net8.0-browser was computed. net8.0-ios was computed. net8.0-ios18.0 is compatible. net8.0-maccatalyst was computed. net8.0-maccatalyst18.0 is compatible. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Microsoft.Maui.Controls (>= 8.0.3)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.3)
- SkiaSharp.HarfBuzz (>= 2.88.9)
- SkiaSharp.NativeAssets.Linux (>= 2.88.9)
- SkiaSharp.Views.Maui.Controls (>= 2.88.9)
- Svg.Skia (>= 2.0.0.4)
- Topten.RichTextKit (>= 0.4.167)
-
net8.0-android34.0
- Microsoft.Maui.Controls (>= 8.0.3)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.3)
- SkiaSharp.HarfBuzz (>= 2.88.9)
- SkiaSharp.NativeAssets.Linux (>= 2.88.9)
- SkiaSharp.Views.Maui.Controls (>= 2.88.9)
- Svg.Skia (>= 2.0.0.4)
- Topten.RichTextKit (>= 0.4.167)
-
net8.0-ios18.0
- Microsoft.Maui.Controls (>= 8.0.3)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.3)
- SkiaSharp.HarfBuzz (>= 2.88.9)
- SkiaSharp.NativeAssets.Linux (>= 2.88.9)
- SkiaSharp.Views.Maui.Controls (>= 2.88.9)
- Svg.Skia (>= 2.0.0.4)
- Topten.RichTextKit (>= 0.4.167)
-
net8.0-maccatalyst18.0
- Microsoft.Maui.Controls (>= 8.0.3)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.3)
- SkiaSharp.HarfBuzz (>= 2.88.9)
- SkiaSharp.NativeAssets.Linux (>= 2.88.9)
- SkiaSharp.Views.Maui.Controls (>= 2.88.9)
- Svg.Skia (>= 2.0.0.4)
- Topten.RichTextKit (>= 0.4.167)
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 |
---|---|---|
3.20.9 | 241 | 9/18/2025 |
3.20.8 | 256 | 9/17/2025 |
3.20.7 | 259 | 9/17/2025 |
3.20.6 | 236 | 9/17/2025 |
3.20.5 | 243 | 9/17/2025 |
3.20.4 | 254 | 9/17/2025 |
3.20.3 | 250 | 9/17/2025 |
3.20.2 | 74 | 9/12/2025 |
3.20.1 | 138 | 9/11/2025 |
3.19.3 | 392 | 8/12/2025 |
3.19.3-beta | 64 | 8/15/2025 |
3.19.2 | 148 | 8/11/2025 |
3.19.1 | 143 | 8/11/2025 |
3.18.3 | 132 | 8/11/2025 |
3.18.2 | 131 | 8/11/2025 |
3.18.1-beta | 212 | 8/7/2025 |
3.17.7 | 108 | 7/29/2025 |
3.17.6 | 544 | 7/23/2025 |
3.17.5 | 494 | 7/21/2025 |
3.17.4 | 420 | 7/21/2025 |
3.17.3 | 91 | 7/18/2025 |
3.17.2 | 89 | 7/18/2025 |
3.17.1 | 192 | 7/14/2025 |
3.16.3 | 94 | 7/11/2025 |
3.16.2 | 173 | 7/2/2025 |
3.16.1 | 140 | 6/30/2025 |
3.15.1 | 157 | 6/26/2025 |
3.14.1 | 148 | 6/26/2025 |
3.13.2 | 149 | 6/25/2025 |
3.13.1 | 162 | 6/23/2025 |
3.12.1 | 155 | 6/18/2025 |
3.11.2 | 154 | 6/18/2025 |
3.11.2-beta | 143 | 6/18/2025 |
3.11.1-beta | 139 | 6/16/2025 |
3.10.5 | 297 | 6/12/2025 |
3.10.4 | 295 | 6/12/2025 |
3.10.3 | 159 | 6/4/2025 |
3.10.2 | 158 | 6/2/2025 |
3.10.1 | 155 | 6/2/2025 |
3.9.2 | 154 | 5/28/2025 |
3.9.1 | 247 | 5/15/2025 |
3.8.1 | 249 | 5/14/2025 |
3.7.3 | 232 | 4/30/2025 |
3.7.2 | 164 | 4/30/2025 |
3.7.1 | 181 | 4/29/2025 |
3.6.2 | 139 | 4/25/2025 |
3.6.1 | 654 | 4/1/2025 |
3.5.2 | 257 | 3/19/2025 |
3.5.1 | 196 | 3/17/2025 |
3.5.1-beta | 166 | 3/17/2025 |
3.4.2-beta | 89 | 3/15/2025 |
3.4.1-beta | 171 | 3/12/2025 |
3.3.1-beta | 311 | 3/6/2025 |
3.2.1-beta | 225 | 3/5/2025 |
3.1.2-beta | 161 | 2/28/2025 |
3.1.1-beta | 98 | 2/28/2025 |
2.11.1 | 170 | 3/17/2025 |
2.10.2-beta | 128 | 2/20/2025 |
2.10.1-beta | 112 | 2/20/2025 |
2.9.1-beta | 109 | 2/19/2025 |
2.8.5-beta | 210 | 2/12/2025 |
2.8.3-beta | 231 | 1/22/2025 |
2.8.2-beta | 151 | 1/8/2025 |
2.8.1-beta | 96 | 1/8/2025 |
2.7.1-beta | 154 | 12/4/2024 |
2.6.8-beta | 122 | 10/11/2024 |
2.6.6 | 172 | 10/11/2024 |
2.6.6-beta | 106 | 10/11/2024 |
2.6.5 | 1,672 | 10/23/2023 |
2.6.4 | 189 | 10/19/2023 |
2.6.3 | 187 | 10/19/2023 |
2.6.2 | 180 | 10/19/2023 |