An easy to use, cross platform, GUI library for writing native Haskell applications.
Monomer provides a framework similar to the Elm Architecture, allowing the creation of GUIs using an extensible set of widgets with pure Haskell.
- Be easy to learn and use.
- Be extensible with custom widgets.
- Run on Windows, Linux and macOS.
- Have good documentation.
- Have good examples.
- Have a native look and feel.
- You want to write your application in Haskell.
- You want to write a native, not web based, application.
You can read how to setup your environment here.
Introductory tutorials are available:
- 01 - Basics
- 02 - Styling
- 03 - Life cycle
- 04 - Tasks
- 05 - Producers
- 06 - Composite
- 07 - Custom widgets
- 08 - Themes
Beyond the tutorials, a few real world like examples are available:
You can read the source code's documentation here.
In case you wonder why some choices were made, you can read here.
- Stability and performance.
- Mobile support.
Although there has not been a lot of activity in the past year, the project is still active.
I may take some time to respond to issues while I work on features I want to add to Monomer.
- Hagrid, a flexible datagrid widget.
PRs are welcome!
If possible, keep them small and focused. If you are planning on making a large change, please submit an issue first so we can agree on a solution.
This library is licensed under the BSD-3 license.
Fonts used in the examples:
- Roboto, licensed under the Apache license.
- Remix Icon, licensed under the Apache license.
- Thanks to Ghislaine Guerin for UX advice.
- Thanks to Mikko Mononen for the amazing nanovg library.