Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jsuarezruiz/alohakit.components
Cupertino, Fluent and Material drawn Controls with high performance and 100% customizable.
https://github.com/jsuarezruiz/alohakit.components
cupertino design dotnet dotnet-maui draw fluent-design material-design maui
Last synced: 3 months ago
JSON representation
Cupertino, Fluent and Material drawn Controls with high performance and 100% customizable.
- Host: GitHub
- URL: https://github.com/jsuarezruiz/alohakit.components
- Owner: jsuarezruiz
- License: mit
- Created: 2023-01-28T12:36:30.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-12-28T10:42:21.000Z (about 1 year ago)
- Last Synced: 2024-05-02T05:31:23.164Z (9 months ago)
- Topics: cupertino, design, dotnet, dotnet-maui, draw, fluent-design, material-design, maui
- Language: C#
- Homepage:
- Size: 1.59 MB
- Stars: 31
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AlohaKit.Components
Cupertino, Fluent and Material drawn Controls with high performance and 100% customizable.
![AlohaKit.Components](images/alohakit-components-promo.png)
At the moment, this is _"just"_ an experimental library where try to optimize, evolve and cover the gaps of [Microsoft.Maui.Graphics.Controls](https://github.com/dotnet/Microsoft.Maui.Graphics.Controls). There are performance improvements, visual state management, drawing more effects and animations, more ways to extend both XAML and C#, etc. Of course, any idea, improvement, optimization or detail of this library can end up benefiting Microsoft.Maui.Graphics.Controls.
## Features
**Pixel perfect**
Same appearance and behavior on all platforms.
This includes the appearance to all possible control states, mouse over, pressed, disabled, etc.
![States](images/alohakit-components-states.gif)
**High performance**
Controls drawn using Microsoft.Maui.Graphics always looking for maximum optimization.
**Highly customizable**
It is extremely easy to go from having a component using Fluent Design to Material.
```
```
What happens in a .NET MAUI control, for example using the Switch, if you want to modify the Thumb to have a star shape with a shadow in addition to displaying the value in a text? You can modify many colors using Styles, modify the Track, the Thumb or you can even change the Thumb to an image. However, if you want to display a text, or make more complex modifications, you will need to either create a composition of cross platform controls to achieve the result or go to the native platform. The first option is simple, it only requires knowing the .NET MAUI APIs but it increases the visual hierarchy and has an impact on performance. The second option allows us to take advantage of the native platform better, probably more optimized although it requires more code per platform and knowledge about each native platform.
What if we could customize anything from the abstraction layer, with C# or XAML, and without penalizing performance?
Among the possibilities to customize we have the use of ControlTemplates just like we have in various Microsoft frameworks.
```
```
```
```
In addition to being able to modify any property, color or size, you can access the definition of the control and modify, add or remove what you need. All components have a **ControlTemplate** property. Remember, everything is drawn.
**A11y Support**
(Work in progress)
**RTL Support**
(Work in progress)
## Copyright and license
Code released under the [MIT license](https://opensource.org/licenses/MIT).