Monomer
An easy to use, cross platform, GUI library for writing Haskell applications.
Install / Use
/learn @fjvallarino/MonomerREADME
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:
- 01 - Basics
- 02 - Styling
- 03 - Life cycle
- 04 - Tasks
- 05 - Producers
- 06 - Composite
- 07 - Custom widgets
- 08 - Themes
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
- Hagrid, a flexible datagrid widget.
- Monomer Flatpak Example, an example of how to package Monomer applications on Linux, using Flatpak.
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:
- Roboto, licensed under the Apache license.
- Remix Icon, licensed under the Apache license.
Acknowledgments
- Thanks to Ghislaine Guerin for UX advice.
- Thanks to Mikko Mononen for the amazing nanovg library.
Related Skills
qqbot-channel
352.9kQQ 频道管理技能。查询频道列表、子频道、成员、发帖、公告、日程等操作。使用 qqbot_channel_api 工具代理 QQ 开放平台 HTTP 接口,自动处理 Token 鉴权。当用户需要查看频道、管理子频道、查询成员、发布帖子/公告/日程时使用。
docs-writer
100.7k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
352.9kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
arscontexta
3.1kClaude Code plugin that generates individualized knowledge systems from conversation. You describe how you think and work, have a conversation and get a complete second brain as markdown files you own.
