NiceEntry 1.6.1
See the version list below for details.
dotnet add package NiceEntry --version 1.6.1
NuGet\Install-Package NiceEntry -Version 1.6.1
<PackageReference Include="NiceEntry" Version="1.6.1" />
<PackageVersion Include="NiceEntry" Version="1.6.1" />
<PackageReference Include="NiceEntry" />
paket add NiceEntry --version 1.6.1
#r "nuget: NiceEntry, 1.6.1"
#:package NiceEntry@1.6.1
#addin nuget:?package=NiceEntry&version=1.6.1
#tool nuget:?package=NiceEntry&version=1.6.1
NiceEntry
Labeled input controls for .NET MAUI with built-in validation, required field indicators, and light/dark theme support.
Features
- LabeledEntry — Text input with floating label
- LabeledPicker — Dropdown picker with label
- LabeledDatePicker — Date selector with label
- LabeledTimePicker — Time selector with label
- LabeledAutoCompleteEntry — Entry with inline suggestion dropdown (new in 1.5)
- NiceButton — Standalone tappable icon/text button with shapes, shadow, and command binding
- Built-in validation error display (red border + error messages)
- Required field indicator (
*) - Unit suffix label with customizable font, size, and color
- Configurable content padding
- Example/hint text below the control
- Platform-specific native styling (Android & iOS)
- Light and dark theme support
Platforms
| Platform | Minimum Version |
|---|---|
| Android | 21+ |
| iOS | 15+ |
Installation
dotnet add package NiceEntry
Usage
Add the namespace to your XAML:
xmlns:nice="clr-namespace:NiceEntry;assembly=NiceEntry"
Basic entry
<nice:LabeledEntry Label="Name"
Text="{Binding Name}"
Placeholder="Enter your name"
IsRequired="True" />
Entry with unit suffix
<nice:LabeledEntry Label="Battery size"
Text="{Binding BatterySize}"
Unit="kWh"
Keyboard="Numeric" />
Custom unit styling
<nice:LabeledEntry Label="Weight"
Text="{Binding Weight}"
Unit="kg"
UnitFontSize="20"
UnitFontFamily="Georgia"
UnitColor="DarkOrange" />
Custom padding
<nice:LabeledEntry Label="Extra padding"
Text="{Binding Value}"
ContentPadding="24,20" />
Validation errors
Bind Error to an IReadOnlyCollection<string> — when non-empty, the border turns red and messages display below the control:
<nice:LabeledEntry Label="Email"
Text="{Binding Email}"
Error="{Binding EmailErrors}" />
Picker
<nice:LabeledPicker Label="Country"
ItemsSource="{Binding Countries}"
SelectedItem="{Binding SelectedCountry}" />
Date and time pickers
<nice:LabeledDatePicker Label="Select a date"
Date="{Binding SelectedDate}" />
<nice:LabeledTimePicker Label="Select a time"
Time="{Binding SelectedTime}"
IsRequired="True" />
Auto-complete entry
Filter a list of suggestions as the user types. Tap a row to commit it back into the entry.
<nice:LabeledAutoCompleteEntry Label="ICAO code"
Placeholder="e.g. ESGG"
Text="{Binding IcaoText}"
Suggestions="{Binding IcaoSuggestions}"
MaxSuggestions="6"
CommitOnUpperCase="True" />
| Property | Type | Description |
|---|---|---|
Suggestions |
IEnumerable |
Source list filtered against Text |
MaxSuggestions |
int |
Cap on visible rows (default 8; negative = unbounded) |
CommitOnUpperCase |
bool |
Auto-uppercase typed text (useful for codes) |
SuggestionTemplate |
DataTemplate |
Custom row template (default: single Label) |
Common Properties (LabelBase)
| Property | Type | Description |
|---|---|---|
Label |
string |
Floating label text |
IsRequired |
bool |
Shows a red * indicator |
Error |
IReadOnlyCollection<string> |
Validation error messages |
Unit |
string |
Unit suffix (e.g. "kWh", "kg") |
UnitFontSize |
double |
Font size for the unit label |
UnitFontFamily |
string |
Font family for the unit label |
UnitColor |
Color |
Text color for the unit label |
ContentPadding |
Thickness |
Inner padding (default: 12,10 Android / 12,12 iOS) |
Example |
string |
Hint text displayed below the control |
LabeledEntry Properties
| Property | Type | Description |
|---|---|---|
Text |
string |
Input text (two-way binding) |
Placeholder |
string |
Placeholder text |
PlaceholderColor |
Color |
Placeholder text color |
Keyboard |
Keyboard |
Keyboard type (Default, Numeric, Email, etc.) |
MaxLength |
int |
Maximum input length |
IsPassword |
bool |
Mask input as password |
IsReadOnly |
bool |
Prevent editing |
ReturnType |
ReturnType |
Return key type |
ReturnCommand |
ICommand |
Command on return key press |
HorizontalTextAlignment |
TextAlignment |
Text alignment |
FontSize |
double |
Input text font size |
NiceButton
NiceButton is a standalone tappable button that combines an optional icon (from Material Design Icons) with optional text. It is not part of the labeled-input family — it has no floating label or validation display.
The same buttons in light and dark mode — icon/text layouts, circle/rounded/rectangle shapes, shadow, and theme-aware colors:
<p align="center"> <img src="images/nicebutton-light.png" alt="NiceButton variants in light mode" width="300" /> <img src="images/nicebutton-dark.png" alt="NiceButton variants in dark mode" width="300" /> </p>
Setup
NiceButton uses the Material Design Icons font, which must be registered before glyphs render correctly. Call .UseNiceEntry() in your MauiProgram.cs:
builder.UseMauiApp<App>()
.UseNiceEntry(); // registers the Material Design Icons font
Without this call, Icon glyphs render as empty boxes.
Basic example
<nice:NiceButton Text="Buy now"
Icon="Cart"
BackgroundColor="#3B49DF"
TextColor="White"
Command="{Binding BuyCommand}" />
Properties
| Category | Property | Type | Default |
|---|---|---|---|
| Content | Text |
string |
"" |
| Content | Icon |
MaterialIcon? |
null |
| Layout | Orientation |
ButtonContentOrientation |
Horizontal |
| Layout | IconPlacement |
IconPlacement |
Start |
| Layout | Spacing |
double |
6 |
| Layout | ContentPadding |
Thickness |
iOS (12,12) / Android (12,10) |
| Shape | ButtonShape |
ButtonShape |
Rounded |
| Shape | CornerRadius |
double |
8 |
| Color | BackgroundColor |
Color |
theme |
| Color | Background |
Brush |
– |
| Color | TextColor |
Color |
theme (icon + text) |
| Color | BorderColor |
Color |
transparent |
| Color | BorderWidth |
double |
0 |
| Text | FontSize |
double |
NiceButton.DefaultFontSize (14.0) |
| Text | FontFamily |
string |
– |
| Text | FontAttributes |
FontAttributes |
None |
| Icon | IconSize |
double |
20 |
| Shadow | HasShadow |
bool |
false |
| Shadow | CustomShadow |
Shadow |
– |
| Interaction | Command |
ICommand |
– |
| Interaction | CommandParameter |
object |
– |
| Interaction | IsEnabled |
bool |
true (inherited) |
Enums and constants
ButtonShape—Rectangle,Rounded,CircleButtonContentOrientation—Horizontal,Vertical(set via theOrientationproperty)IconPlacement—Start,EndMaterialIcon— generated enum with codepoint values for every MDI glyphNiceButton.DefaultFontSize— constant14.0
Icon source
Icons come from Material Design Icons. Browse the library to find an icon name, then pass it as the Icon property value using the MaterialIcon enum (e.g. Icon="Cart", Icon="Account", Icon="ArrowRight").
Third-party licenses
NiceEntry bundles the Material Design Icons webfont
(v7.4.47, from Templarian/MaterialDesign-Webfont)
as an embedded resource used by NiceButton to render icons.
The font is distributed under the Apache License, Version 2.0 by the Pictogrammers icon group. Full license text and required attribution notices are in THIRD-PARTY-NOTICES.md.
License
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-android36.0 is compatible. net10.0-ios26.0 is compatible. |
-
net10.0-android36.0
- Microsoft.Maui.Controls (>= 10.0.41)
-
net10.0-ios26.0
- Microsoft.Maui.Controls (>= 10.0.41)
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 |
|---|---|---|
| 2.0.0 | 127 | 7/6/2026 |
| 1.11.2 | 125 | 7/3/2026 |
| 1.11.1 | 104 | 6/11/2026 |
| 1.11.0 | 105 | 6/11/2026 |
| 1.10.3 | 105 | 7/3/2026 |
| 1.10.2 | 103 | 6/11/2026 |
| 1.10.1 | 100 | 6/11/2026 |
| 1.10.0 | 138 | 6/11/2026 |
| 1.9.1 | 106 | 6/10/2026 |
| 1.8.0 | 109 | 6/10/2026 |
| 1.6.1 | 109 | 6/9/2026 |
| 1.5.1 | 184 | 5/13/2026 |
| 1.5.0 | 122 | 5/12/2026 |
| 1.4.1 | 118 | 4/12/2026 |
| 1.4.0 | 143 | 4/12/2026 |