{"id":22369872,"url":"https://github.com/zeozeozeo/microui-go","last_synced_at":"2025-07-30T19:31:22.793Z","repository":{"id":64887044,"uuid":"576949655","full_name":"zeozeozeo/microui-go","owner":"zeozeozeo","description":"A tiny, portable, immediate-mode UI library ported to idiomatic Go","archived":false,"fork":false,"pushed_at":"2024-08-28T16:28:26.000Z","size":20,"stargazers_count":19,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-08-29T18:23:35.761Z","etag":null,"topics":["golang","golang-gui","golang-ui","gui","immediate-gui","immediate-mode","immediate-mode-ui","immediate-ui","microui","no-cgo","port","pure-go","ui"],"latest_commit_sha":null,"homepage":"https://zeozeozeo.github.io/ebitengine-microui-go/demo","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zeozeozeo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-12-11T14:11:56.000Z","updated_at":"2024-08-29T18:03:51.000Z","dependencies_parsed_at":"2022-12-17T13:48:17.273Z","dependency_job_id":null,"html_url":"https://github.com/zeozeozeo/microui-go","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeozeozeo%2Fmicroui-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeozeozeo%2Fmicroui-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeozeozeo%2Fmicroui-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeozeozeo%2Fmicroui-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zeozeozeo","download_url":"https://codeload.github.com/zeozeozeo/microui-go/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228178450,"owners_count":17881038,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["golang","golang-gui","golang-ui","gui","immediate-gui","immediate-mode","immediate-mode-ui","immediate-ui","microui","no-cgo","port","pure-go","ui"],"created_at":"2024-12-04T19:29:31.644Z","updated_at":"2024-12-04T19:29:32.553Z","avatar_url":"https://github.com/zeozeozeo.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![microui](https://user-images.githubusercontent.com/3920290/75171571-be83c500-5723-11ea-8a50-504cc2ae1109.png)\n\nA tiny, portable, immediate-mode UI library ported to Go (as of commit [0850aba860959c3e75fb3e97120ca92957f9d057](https://github.com/rxi/microui/tree/0850aba860959c3e75fb3e97120ca92957f9d057), v2.02)\n\n# API changes\n\n-   Functions and structs are renamed to be PascalCase and the prefix `mu_` is removed, like this:\n\n    \u003e `mu_push_command` -\u003e `PushCommand`\n\n    \u003e `mu_begin_treenode_ex` -\u003e `BeginTreeNodeEx`\n\n    \u003e `mu_get_clip_rect` -\u003e `GetClipRect`\n\n-   Every function that takes `mu_Context` (`Context`) instead has a `Context` reciever, so `Button(ctx, label)` becomes `ctx.Button(label)`\n-   Stacks are now slices with variable length, `append` is used for `push` and `slice = slice[:len(slice)-1]` is used for `pop`\n-   `mu_Font` (`Font`) is `interface{}`, since it doesn't store any font data. You can use `reflect` if you want to store values inside it\n-   All pointer-based commands (`MU_COMMAND_JUMP`) and the `Command` struct have been reworked to use indices\n-   The `mu_Real` type has been replaced with `float32` because Go does not allow implicit casting of identical type aliases \n-   The library is split into separate files instead of one file\n-   The library is ~1300 lines of code in total\n\n## Additional functions:\n\n-   `NewContext`, which is a helper for creating a new `Context`\n-   `ctx.Render`, which calls a function for every command inside the command list, then clears it\n\n# Integrations, demos, renderers\n\n* [Ebitengine](https://ebitengine.org/) rendering backend + demo port: [zeozeozeo/ebitengine-microui-go](https://github.com/zeozeozeo/ebitengine-microui-go)\n    ![microui demo running in Ebitengine](https://github.com/zeozeozeo/ebitengine-microui-go/blob/main/screenshots/demo.png?raw=true)\n* Official Ebitengine fork and integration efforts: [ebitengine/microui](https://github.com/ebitengine/microui)\n\n# Notes\n\nThe library expects the user to provide input and handle the resultant drawing commands, it does not do any drawing/tessellation itself.\n\n# Credits\n\nThank you [@rxi](https://github.com/rxi) for creating this awesome library and thank you [@Zyko0](https://github.com/Zyko0) for contributing numerous fixes to this Go port.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeozeozeo%2Fmicroui-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeozeozeo%2Fmicroui-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeozeozeo%2Fmicroui-go/lists"}