{"id":101859,"date":"2026-06-05T23:27:46","date_gmt":"2026-06-05T20:27:46","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/minecraft-flex-ui\/"},"modified":"2026-06-05T23:27:46","modified_gmt":"2026-06-05T20:27:46","slug":"minecraft-flex-ui","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/minecraft-flex-ui\/","title":{"rendered":"Minecraft Flex UI"},"content":{"rendered":"<p># Minecraft Flex UI<\/p>\n<p># For ordinary players do not download the mod<br \/>\nIn most cases the module is used by other module developers and is included in their mod Jar package<\/p>\n<p># Description<br \/>\nBased on `facebook` open source `Yoga` layout engine implements the `Minecraft` GUI framework based on the `Flex` layout.<\/p>\n<p>A subset of the `Flex` standard is implemented on top of `Yoga` and most of the `CSS` properties are implemented as well.<\/p>\n<p>The design concept of `MVC` is adopted to realize the one-way and two-way data binding.<\/p>\n<p>Developers can design and implement complex UI interfaces on top of this, and this project can be used as `Yoga` engine embedded in the game as a non-exhaustive reference implementation of the game layout engine.<\/p>\n<p># Example<\/p>\n<p>![example](https:\/\/github.com\/moheng233\/MFUI\/raw\/master\/doc\/example.gif)<\/p>\n<p>&#8220;`java<br \/>\npublic class WidgetTestScreen extends WidgetScreen {<br \/>\n\tprotected StringBuilderObservable text = new StringBuilderObservable();<\/p>\n<p>\tpublic WidgetTestScreen() {<br \/>\n\t\tsuper(Text.of(&#8220;test&#8221;));<br \/>\n\t}<\/p>\n<p>\t@Override<br \/>\n\tpublic void widget(ScreenWidget root) {<br \/>\n\t\troot.flexDirection.set(WidgetFlexDirection.Row)<br \/>\n\t\t\t\t.justifyContent.set(WidgetJustify.Center)<br \/>\n\t\t\t\t.alignItems.set(WidgetAlign.Center)<br \/>\n\t\t\t\t.child(new BoxWidget()<br \/>\n\t\t\t\t\t\t.background.set(RectDrawable.LIGHT_PANEL)<br \/>\n\t\t\t\t\t\t.child(new LabelWidget()<br \/>\n\t\t\t\t\t\t\t\t.text.binding(text.computed((StringBuilderObservable text) -> Text.of(text.getString())))<br \/>\n\t\t\t\t\t\t\t\t.margin(WidgetEdge.All, 4))<br \/>\n\t\t\t\t\t\t.child(new TextBoxWidget()<br \/>\n\t\t\t\t\t\t\t\t.text.binding(text))<br \/>\n\t\t\t\t\t\t.child(new ButtonWidget()<br \/>\n\t\t\t\t\t\t\t\t.click.on((mouse) -> close())<br \/>\n\t\t\t\t\t\t\t\t.child(new LabelWidget()<br \/>\n\t\t\t\t\t\t\t\t\t\t.text.set(Text.of(&#8220;\u53d6\u6d88&#8221;))))<br \/>\n\t\t\t\t);<br \/>\n\t}<br \/>\n}<\/p>\n<p>&#8220;`<\/p>\n<p># Data Binding<br \/>\nBy default all bindings from `non-computed binding sources` are `bi-directional bindings`.<br \/>\n> Setting values for `computed binding sources` is ignored<\/p>\n<p>**But most components will only operate `one-way` on bound values**<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Implement a Flex layout-based Minecraft GUI framework based on facebook&#8217;s open source Yoga layout engine.<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"_minecraft_slug":"minecraft-flex-ui","_minecraft_project_id":"J9xCf3zC","_minecraft_author":"moheng233","_minecraft_license":"MIT","_minecraft_downloads":255,"_minecraft_follows":10,"_minecraft_client_side":"required","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"minecraft-flex-ui.zip","_minecraft_size_bytes":276133,"_minecraft_version_count":2,"_minecraft_updated_at":"2026-05-15T20:48:33.612151Z","_minecraft_date_created":"2023-02-01T21:28:13.272124Z","_minecraft_date_modified":"2023-01-30T15:03:41.972689Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/minecraft-flex-ui","_minecraft_icon_attachment_id":0,"_minecraft_imported_at":"2026-06-05T20:27:47+00:00","_minecraft_import_hash":"4fab327d0577521f9440419e3bacdc0b","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[97,873,92],"mod_loader":[99],"minecraft_version":[54,55,56,57],"class_list":["post-101859","mod","type-mod","status-publish","hentry","mod_category-fabric","mod_category-library","mod_category-utility","mod_loader-fabric","minecraft_version-1-19","minecraft_version-1-19-1","minecraft_version-1-19-2","minecraft_version-1-19-3"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Minecraft Flex UI - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/minecraft-flex-ui\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Minecraft Flex UI - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Implement a Flex layout-based Minecraft GUI framework based on facebook&#039;s open source Yoga layout engine.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/minecraft-flex-ui\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/minecraft-flex-ui\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/minecraft-flex-ui\\\/\",\"name\":\"Minecraft Flex UI - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"datePublished\":\"2026-06-05T20:27:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/minecraft-flex-ui\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/minecraft-flex-ui\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/minecraft-flex-ui\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Minecraft Flex UI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Minecraft Flex UI - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/minecraft-flex-ui\/","og_locale":"en_US","og_type":"article","og_title":"Minecraft Flex UI - Minecraft","og_description":"Implement a Flex layout-based Minecraft GUI framework based on facebook's open source Yoga layout engine.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/minecraft-flex-ui\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/minecraft-flex-ui\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/minecraft-flex-ui\/","name":"Minecraft Flex UI - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"datePublished":"2026-06-05T20:27:46+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/minecraft-flex-ui\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/minecraft-flex-ui\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/minecraft-flex-ui\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"Minecraft Flex UI"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/101859","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=101859"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=101859"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=101859"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=101859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}