Home

Awesome

MaterialDesignControls Plugin for Xamarin Forms

<img src="https://raw.githubusercontent.com/HorusSoftwareUY/MaterialDesignControlsPlugin/master/icon.png" width="128">

MaterialDesignControls Plugin for Xamarin.Forms, provides a collection of Xamarin.Forms controls that follow the Material Design 3 Guidelines.

Coming soon

.NET MAUI
We're developing the next version of the plugin for .NET MAUI, bringing you exciting features and improvements.

Demo

<img src="screenshots/Controls.gif" width="300">

Content table

Setup

Platform Support

PlatformVersion
Xamarin.iOSiOS 8+
Xamarin.AndroidAPI 16+
Xamarin.Forms>= 5.0.0.1874

API Usage

You must add this line to your platform specific project (AppDelegate.cs, MainActivity.cs) before you use MaterialDesignControls:

if you're using iOS:

Plugin.MaterialDesignControls.iOS.Renderer.Init();           

or if you're using Android:

Plugin.MaterialDesignControls.Android.Renderer.Init();           

You must add this namespace to your xaml files (deprecated):

xmlns:material="clr-namespace:Plugin.MaterialDesignControls;assembly=Plugin.MaterialDesignControls"

You must add this namespace to your xaml files to use Material Design 3 controls:

xmlns:material="clr-namespace:Plugin.MaterialDesignControls.Material3;assembly=Plugin.MaterialDesignControls"

Styles

You can override colors, font sizes, font families and animations to apply to all the Material controls. <br/> View documentation

Controls

MaterialButton

Buttons allow users to take actions, and make choices, with a single tap. <br/> <img src="screenshots/button_preview.png" width="300"> <br/> View documentation


MaterialChips & MaterialChipsGroup

Chips are compact elements that represent an input, attribute, or action. <br/> <img src="screenshots/chips_preview.png" width="300"> <br/> View MaterialChips documentation <br/> View MaterialChipsGroup documentation


MaterialDatePicker

Date pickers let users select a date. <br/> <img src="screenshots/datepicker_preview.png" width="300"> <br/> View documentation


MaterialEditor

Text fields let users enter and edit text. <br/> <img src="screenshots/editor_preview.png" width="300"> <br/> View documentation


MaterialEntry

Text fields let users enter and edit text. <br/> <img src="screenshots/entry_preview.png" width="300"> <br/> View documentation


MaterialCodeEntry

Code fields let users enter and edit pin codes. <br/> <img src="screenshots/code_preview.png" width="300"> <br/> View documentation


MaterialField

Displays a value with its respective label in read-only format. <br/> <img src="screenshots/field_preview.png" width="300"> <br/> View documentation


MaterialPicker

Pickers let users select an option. <br/> <img src="screenshots/picker_preview.png" width="300"> <br/> View documentation


MaterialDoublePicker

Double pickers let users select two options in the same dialog. <br/> <img src="screenshots/doublepicker_preview.png" width="300"> <br/> View documentation


MaterialSelection

Selection let users select an option. <br/> <img src="screenshots/selection_preview.png" width="300"> <br/> View documentation


MaterialTimePicker

Time pickers let users select a time. <br/> <img src="screenshots/timepicker_preview.png" width="300"> <br/> View documentation


MaterialRating

Displays a rating control <br/> <img src="screenshots/rating_preview.png" width="300"> <br/> View documentation


MaterialSlider

Displays a slider control <br/> <img src="screenshots/slider_preview.png" width="300"> <br/> View documentation


MaterialSegmented

Displays a segmented control <br/> <img src="screenshots/segmented_preview.png" width="300"> <br/> View documentation


MaterialDivider

A divider is a thin line that groups content in lists and layouts. <br/> <img src="screenshots/divider_preview.png" width="300"> <br/> View documentation


MaterialRadioButtons

Displays a radiobuttons control <br/> <img src="screenshots/radio_preview.png" width="300"> <br/> View documentation


MaterialFloatingButton

Displays a floating button <br/> <img src="screenshots/floatingbutton_preview.png" width="300"> <br/> View documentation


MaterialCheckbox

Displays a checkbox control <br/> <img src="screenshots/checkbox_preview.png" width="300"> <br/> View documentation


MaterialSwitch

Switches toggle the state of a single item on or off. <br/> <img src="screenshots/switch_preview.png" width="300"> <br/> View documentation


MaterialTopAppBar

TopAppBar displays information and actions at the top of a screen. <br/> <img src="screenshots/topappbar_preview.png" width="300"> <br/> View documentation


MaterialProgressIndicator

MaterialProgressIndicator show the status of a process in real time <br/> <img src="screenshots/progress_preview.png" width="300"> <br/> View documentation


MaterialLabel

MaterialLabel helps make writing legible and beautiful <br/> <img src="screenshots/label_preview.png" width="300"> <br/> View documentation


MaterialBadge

Badges show notifications, counts, or status information on navigation items and icons <br/> <img src="screenshots/badge_preview.png" width="300"> <br/> View documentation


MaterialNavigationDrawer

Navigation drawers let people switch between UI views on larger devices <br/> <img src="screenshots/navigation_preview.png" width="300"> <br/> View documentation


MaterialCustomControl

This control provides a simple way to create custom controls with labels and support text that follow the Material Design Guidelines. <br/> <img src="screenshots/customcontrol_preview.png" width="300"> <br/> View documentation


MaterialSearch

MaterialSearch receives a text and executes a search action. <br/> <img src="screenshots/search_preview.png" width="300"> <br/> View documentation


MaterialIconButton

MaterialIconButton displays an icon and can execute a command. <br/> <img src="screenshots/iconbutton_preview.png" width="300"> <br/> View documentation


MaterialSnackBar

MaterialSnackBar show short updates about app processes at the bottom of the screen. <br/> <img src="screenshots/snackbar_preview.png" width="300"> <br/> View documentation


MaterialDialog

MaterialDialog provide important prompts in a user flow. <br/> <img src="screenshots/dialog_preview.png" width="300"> <br/> View documentation


MaterialCard

MaterialCard display content and actions about a single subject. <br/> <img src="screenshots/card_preview.png" width="300"> <br/> View documentation


MaterialBottomSheet

MaterialBottomSheet shows secondary content anchored to the bottom of the screen. <br/> <img src="screenshots/bottomsheet_preview.png" width="300"> <br/> View documentation


<br/>

Effects

TouchAndPressEffect

Effect to detect the different types of taps on a view: Pressing, Released and Canceled can be detected.

Example

<MyControl.Effects>
    <material:TouchAndPressEffect />
</MyControl.Effects>
public class MyControl : ContentView, ITouchAndPressEffectConsumer
{
    public void ConsumeEvent(EventType gestureType)
    {
        TouchAndPressAnimation.Animate(this, gestureType);
    }
}

Sample app

https://github.com/HorusSoftwareUY/MaterialDesignControlsPlugin/tree/master/example

Developed by

<a href="http://horus.com.uy"><img src="https://assets-global.website-files.com/64a7016392b0b7da3a8604e3/64a7016392b0b7da3a8604ed_horus.svg" width="128"></a>

Contributions

Contributions are welcome! If you find a bug want a feature added please report it.

If you want to contribute code please file an issue, create a branch, and file a pull request.

License

MIT License - see LICENSE.txt