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.
- Monomer Flatpak Example, an example of how to package Monomer applications on Linux, using Flatpak.
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.