An easy to use, cross platform, GUI library for writing Haskell applications.
Go to file
2020-11-29 23:50:29 -03:00
app Move ui creation to Composites init. Use WidgetData instead of direct model value; rely on WidgetEnv 2020-11-29 21:57:14 -03:00
assets Add theming to scroll 2020-10-25 22:29:55 -03:00
cbits Avoid rendering on every frame if not needed 2020-11-24 23:26:12 -03:00
docs Avoid rendering on every frame if not needed 2020-11-24 23:26:12 -03:00
src If number/ordering of visible children changes in a container, request resize 2020-11-29 23:50:29 -03:00
test/unit Revert change to widgetMerge. Passing old model is useless, since WidgetData may reference a value instead of using a lens 2020-11-29 00:58:25 -03:00
.ghci Basic scrollbar display, minor general improvements and tests that will not stand the test of time 2020-05-07 17:04:26 -03:00
.ghcid Initial commit 2019-09-23 11:46:21 -03:00
.gitignore Unpack fields on basic types 2020-11-29 02:52:36 -03:00
.hlint.yaml Move hlint hints to config file 2020-09-30 17:28:58 -03:00
ChangeLog.md Initial commit 2019-09-23 11:46:21 -03:00
Info.plist Avoid rendering on every frame if not needed 2020-11-24 23:26:12 -03:00
LICENSE Minor adjustment to license 2020-07-10 22:08:19 -03:00
package.yaml Add tests for checkbox 2020-11-12 20:26:19 -03:00
profile.sh Initial commit 2019-09-23 11:46:21 -03:00
README.md Add tests for image 2020-11-16 18:04:23 -03:00
Setup.hs Initial commit 2019-09-23 11:46:21 -03:00
stack.yaml Fix Test build 2020-07-30 01:39:48 -03:00
stack.yaml.lock Fix Test build 2020-07-30 01:39:48 -03:00
tasks.md Create type alias to be used inside composite 2020-11-29 18:44:22 -03:00
test-cases.md Avoid rebuilding glyphs if renderArea did not change for label 2020-11-29 18:05:01 -03:00
watch-tests.sh Improve inputField, add new tests 2020-11-15 23:58:26 -03:00

Monomer

An easy to use, Elm/Flutter inspired, GUI library for writing native applications in Haskell.

Objectives

  • It should be easy to use
  • It should be possible to extend it with custom widgets
  • It should work on Windows, Linux and macOS
  • It should have good documentation
  • It should have good examples

Ideally, in the future, this project will

  • Be able to run in mobile
  • Support Vulkan/Metal

Why would I want to use this library

  • You want to write your application in Haskell
  • You want to write a native, not Electron based, application
  • You prefer not to use Gtk

These are not objectives for this project

  • Have a native look and feel
  • Be a research project pushing the boundaries on how GUIs are created

Current limitations

  • Multi-platform features depend on what SDL already provides
    • Copy/paste is only supported for text, not images
  • Text input capabilities are basic, supporting only left to right editing at the moment