AuroraControls.Maui
3.7.2
See the version list below for details.
dotnet add package AuroraControls.Maui --version 3.7.2
NuGet\Install-Package AuroraControls.Maui -Version 3.7.2
<PackageReference Include="AuroraControls.Maui" Version="3.7.2" />
<PackageVersion Include="AuroraControls.Maui" Version="3.7.2" />
<PackageReference Include="AuroraControls.Maui" />
paket add AuroraControls.Maui --version 3.7.2
#r "nuget: AuroraControls.Maui, 3.7.2"
#:package AuroraControls.Maui@3.7.2
#addin nuget:?package=AuroraControls.Maui&version=3.7.2
#tool nuget:?package=AuroraControls.Maui&version=3.7.2
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" />
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.17.6 | 107 | 7/23/2025 |
3.17.5 | 108 | 7/21/2025 |
3.17.4 | 111 | 7/21/2025 |
3.17.3 | 39 | 7/18/2025 |
3.17.2 | 41 | 7/18/2025 |
3.17.1 | 177 | 7/14/2025 |
3.16.3 | 79 | 7/11/2025 |
3.16.2 | 155 | 7/2/2025 |
3.16.1 | 126 | 6/30/2025 |
3.15.1 | 146 | 6/26/2025 |
3.14.1 | 137 | 6/26/2025 |
3.13.2 | 140 | 6/25/2025 |
3.13.1 | 152 | 6/23/2025 |
3.12.1 | 145 | 6/18/2025 |
3.11.2 | 141 | 6/18/2025 |
3.11.2-beta | 136 | 6/18/2025 |
3.11.1-beta | 133 | 6/16/2025 |
3.10.5 | 287 | 6/12/2025 |
3.10.4 | 283 | 6/12/2025 |
3.10.3 | 146 | 6/4/2025 |
3.10.2 | 148 | 6/2/2025 |
3.10.1 | 146 | 6/2/2025 |
3.9.2 | 146 | 5/28/2025 |
3.9.1 | 237 | 5/15/2025 |
3.8.1 | 240 | 5/14/2025 |
3.7.3 | 222 | 4/30/2025 |
3.7.2 | 154 | 4/30/2025 |
3.7.1 | 173 | 4/29/2025 |
3.6.2 | 130 | 4/25/2025 |
3.6.1 | 561 | 4/1/2025 |
3.5.2 | 248 | 3/19/2025 |
3.5.1 | 186 | 3/17/2025 |
3.5.1-beta | 160 | 3/17/2025 |
3.4.2-beta | 83 | 3/15/2025 |
3.4.1-beta | 165 | 3/12/2025 |
3.3.1-beta | 304 | 3/6/2025 |
3.2.1-beta | 219 | 3/5/2025 |
3.1.2-beta | 155 | 2/28/2025 |
3.1.1-beta | 91 | 2/28/2025 |
2.11.1 | 161 | 3/17/2025 |
2.10.2-beta | 122 | 2/20/2025 |
2.10.1-beta | 106 | 2/20/2025 |
2.9.1-beta | 99 | 2/19/2025 |
2.8.5-beta | 203 | 2/12/2025 |
2.8.3-beta | 225 | 1/22/2025 |
2.8.2-beta | 146 | 1/8/2025 |
2.8.1-beta | 90 | 1/8/2025 |
2.7.1-beta | 147 | 12/4/2024 |
2.6.8-beta | 115 | 10/11/2024 |
2.6.6 | 163 | 10/11/2024 |
2.6.6-beta | 100 | 10/11/2024 |
2.6.5 | 1,631 | 10/23/2023 |
2.6.4 | 183 | 10/19/2023 |
2.6.3 | 182 | 10/19/2023 |
2.6.2 | 172 | 10/19/2023 |