An easy to use, cross platform, GUI library for writing Haskell applications.
Go to file
2024-05-20 12:03:55 +02:00
.github/workflows Fix build issues (#240) 2022-12-06 03:18:06 +01:00
assets Add Monomer logo and badges to README.md (#186) 2022-06-27 16:25:03 -03:00
cbits Loading fonts from memory (#199) 2022-09-11 07:28:02 -03:00
dev-test-app Remove redundant imports and fix typos (#275) 2023-05-17 02:32:22 +02:00
docs Better explain how the nodeKey function is related to WidgetKey (#270) 2023-05-03 14:44:59 +02:00
examples Fix type error in examples (#263) 2023-02-26 23:18:45 +01:00
nix Fix flake.nix definition to work with more recent nixpkgs snapshots (#266) 2023-05-01 17:21:59 +02:00
src Improve documentation (#293) 2024-03-21 03:34:18 +01:00
test/unit Add support for delete key in inputField and textArea (and fix undo bug) (#294) 2024-03-21 03:26:22 +01:00
.ghci Simplify Renderers image interface. Replace existsImage with getImage 2020-12-16 23:53:55 -03:00
.ghcid Add "examples" flag to optionally build examples and tutorials (#218) 2022-10-27 18:42:44 +02:00
.gitignore Fix build issues (#240) 2022-12-06 03:18:06 +01:00
.hlint.yaml Make zstack handle mouse according to used regions. Make stack adjust its size to its content. Simplify related settings 2020-12-28 23:00:25 -03:00
cabal.project Add cabal support (#8) 2021-08-22 15:18:04 -03:00
ChangeLog.md Prepare release 1.6.0.1 (#314) 2024-01-08 02:35:36 +01:00
default.nix add support for Nix build with Flakes (#13) 2021-08-22 01:09:56 -03:00
flake.lock Fix flake.nix definition to work with more recent nixpkgs snapshots (#266) 2023-05-01 17:21:59 +02:00
flake.nix Fix flake.nix definition to work with more recent nixpkgs snapshots (#266) 2023-05-01 17:21:59 +02:00
generate-hackage-docs.sh Prepare release 1.6.0.1 (#314) 2024-01-08 02:35:36 +01:00
Info.plist Add whell support to dial and slider 2021-05-08 14:50:05 -03:00
LICENSE Update copyright year range 2021-08-09 00:34:21 -03:00
monomer.cabal Prepare release 1.6.0.1 (#314) 2024-01-08 02:35:36 +01:00
package.yaml Prepare release 1.6.0.1 (#314) 2024-01-08 02:35:36 +01:00
README.md Add a readme link to monomer-flatpak-example. (#321) 2024-05-20 12:03:55 +02:00
Setup.hs Initial commit 2019-09-23 11:46:21 -03:00
shell.nix add support for Nix build with Flakes (#13) 2021-08-22 01:09:56 -03:00
stack-8.10.yaml Upgrade stack.yaml to LTS 20 (GHC 9.2) (#236) 2022-11-21 01:17:30 +01:00
stack.yaml Prepare release 1.6.0.1 (#314) 2024-01-08 02:35:36 +01:00
stack.yaml.lock Prepare release 1.6.0.1 (#314) 2024-01-08 02:35:36 +01:00
watch-tests.sh Improve inputField, add new tests 2020-11-15 23:58:26 -03:00

Monomer

A cross-platform GUI library for Haskell

Logo

CI badge made with Haskell BSD-3-Clause


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.

Objectives

  • Be easy to learn and use.
  • Be extensible with custom widgets.
  • Run on Windows, Linux and macOS.
  • Have good documentation.
  • Have good examples.

These are not objectives for this project

  • Have a native look and feel.

Why would you want to use this library?

  • You want to write your application in Haskell.
  • You want to write a native, not web based, application.

Documentation

Setup

You can read how to setup your environment here.

Tutorials

Introductory tutorials are available:

Examples

Beyond the tutorials, a few real world like examples are available:

Haddock

You can read the source code's documentation here.

Design decisions

In case you wonder why some choices were made, you can read here.

Roadmap

  • Stability and performance.
  • Mobile support.

Project status

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.

Useful extensions

Contributing

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.

License

This library is licensed under the BSD-3 license.

Fonts used in the examples:

Acknowledgments