An easy to use, cross platform, GUI library for writing Haskell applications.
Go to file
2021-11-29 17:37:41 -03:00
.github/workflows github/actions (Linux): add automated builds+tests (#16) 2021-08-28 16:41:11 -03:00
assets Remove development helpers/notes 2021-08-09 00:10:32 -03:00
cbits Improve Windows build/setup (#21) 2021-08-30 23:49:48 -03:00
docs Add SetFocusOnKey/MoveFocusFromKey to Composite (#37) 2021-10-28 16:33:39 -03:00
examples Add SetFocusOnKey/MoveFocusFromKey to Composite (#37) 2021-10-28 16:33:39 -03:00
nix nix: discover and build examples (#45) 2021-11-29 17:37:41 -03:00
src Export drawLine from Drawing module. Rename drawBorderRoundedRect to drawRoundedRectBorder (naming consistency) (#40) 2021-11-05 21:28:48 -03:00
test/unit Add optionButton and toggleButton widgets (#36) 2021-10-28 15:23:42 -03:00
.ghci Simplify Renderers image interface. Replace existsImage with getImage 2020-12-16 23:53:55 -03:00
.ghcid Add containerDrawDecorations. Simplify button/externalLink internals. 2021-09-24 00:50:31 -03:00
.gitignore Fix issue with scrollbars using mouse position in child coordinates 2021-09-23 21:18:49 -03: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 Keep state on resize for scroll and split (#39) 2021-11-05 20:46:41 -03:00
default.nix add support for Nix build with Flakes (#13) 2021-08-22 01:09:56 -03:00
flake.lock add support for Nix build with Flakes (#13) 2021-08-22 01:09:56 -03:00
flake.nix add support for Nix build with Flakes (#13) 2021-08-22 01:09:56 -03: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 Use correct lower bound for SDL2 2021-10-28 21:08:19 -03:00
package.yaml Use correct lower bound for SDL2 2021-10-28 21:08:19 -03:00
README.md Suggest opening an issue for usage questions (#38) 2021-11-02 15:59:05 -03: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.yaml Improve Windows build/setup (#21) 2021-08-30 23:49:48 -03:00
stack.yaml.lock Improve Windows build/setup (#21) 2021-08-30 23:49:48 -03:00
upload-docs.sh Add script for uploading Haddock documentation (build on Hackage fails and documentation was not being generated) 2021-08-10 00:27:05 -03:00
watch-tests.sh Improve inputField, add new tests 2020-11-15 23:58:26 -03:00

Monomer

An easy to use, cross platform, GUI library for writing native Haskell applications.

It provides a framework similar to the Elm Architecture, allowing the creation of GUIs using an extensible set of widgets with pure Haskell.

Screenshot

Project's screenshot

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.

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.

Questions?

If you aren't sure how something works or you have a usage question, feel free to open an issue!

License

This library is licensed under the BSD-3 license.

Fonts used in the examples:

Acknowledgments