{"id":17242421,"url":"https://github.com/loudoweb/gsui","last_synced_at":"2026-01-07T03:04:23.461Z","repository":{"id":149039236,"uuid":"187209687","full_name":"loudoweb/gsui","owner":"loudoweb","description":"UI for Openfl with set of tools and utils","archived":false,"fork":false,"pushed_at":"2023-11-09T08:33:13.000Z","size":187,"stargazers_count":3,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-31T01:42:10.622Z","etag":null,"topics":["haxe","openfl","ui"],"latest_commit_sha":null,"homepage":null,"language":"Haxe","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/loudoweb.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,"governance":null}},"created_at":"2019-05-17T12:07:23.000Z","updated_at":"2023-10-01T04:50:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"612b660a-8a6e-4977-a2c3-a27f59ef9d1a","html_url":"https://github.com/loudoweb/gsui","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/loudoweb%2Fgsui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loudoweb%2Fgsui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loudoweb%2Fgsui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loudoweb%2Fgsui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/loudoweb","download_url":"https://codeload.github.com/loudoweb/gsui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245581208,"owners_count":20638948,"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":["haxe","openfl","ui"],"created_at":"2024-10-15T06:13:15.582Z","updated_at":"2026-01-07T03:04:18.430Z","avatar_url":"https://github.com/loudoweb.png","language":"Haxe","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gsui\nUI for Openfl with set of tools and utils.\nMade in 2014/2015 for openfl legacy and now upgraded for openfl next and open sourced to make improvement easily.\n\n# Use Case\nCreate your UI for a specific orientation (landscape or portrait) and the highest resolution you can, then GSUI will resize proportionnaly you UI to fit the screen for lower resolutions.\nFor now, if the screen ratio of the screen is different from the default one, you will have your ui letter-boxed.\nThere is no automatic repositioning of ui elements except for few components.\n\n# component\n\n- [x] group, vbox, hbox\n- [x] render (group that uses item renderer)\n- [x] img\n- [x] grid9\n- [x] text\n- [x] simple Button\n- [x] button\n- [x] checkbox\n- [x] radio\n- [x] slider\n- [x] progress bar\n- [x] slot (place holder)\n- [ ] scroll bar\n \n# xml\n\n## game state configuration\n\n```\n\u003cdata\u003e\n\t\u003c!-- \n\tTAG is called by gui_create:TAG, gui_add:TAG or gui_remove:TAG\n\tattributes available:\n\t\tgroups all groups that need to be on screen\n\t\tstate is for the game state\n\t\tdesaturate ensure that every child is not saturated\n\t\tsaturate groups that must be saturated\n\t--\u003e\n\t\u003cstart groups=\"start\" desaturate=\"true\" state=\"start\" /\u003e\n\t\u003cpause groups=\"pause\" state=\"pause\"/\u003e\n\t\u003coptions groups=\"menuBackground,options\" saturate=\"menuBackground\" state=\"options\"/\u003e\n\u003c/data\u003e\n```\n\n\n## interface description\n\n```\n\u003c!-- general and reusable values --\u003e\n\u003cdefinitions\u003e\n\t\n\t\u003ctext id=\"labelNormal\" font=\"kenvector_future\" size=\"28\" color=\"0xb7b7b6\" x=\"20\" y=\"-2\" /\u003e\n\t\n\t\n\t\u003cslider id=\"slider\" bg=\"grey_sliderHorizontal.png\" button_def=\"sliderButton\" label_def=\"labelSlider\" y=\"center\" /\u003e\n\t\n\t\u003csimpleButton id=\"sliderButton\" name=\"grey_sliderDown.png\" hover=\"grey_sliderDown.png\" y=\"center\" /\u003e\n\t\n\t\u003cprogressBar id=\"life\" img=\"grey_sliderHorizontal.png\" cache=\"grey_sliderHorizontal.png\" cover=\"grey_button06.png\" width=\"168\" /\u003e\n\t\n\u003c/definitions\u003e\n\u003c!-- sample of a ui --\u003e\n\u003cgroup id=\"start\"\u003e\n\t\u003cimg name=\"background.jpg\"/\u003e\n\t\u003cimg name=\"welcome.png\" x=\"center\" y=\"center\" /\u003e\n\t\u003cimg name=\"logo.png\" x=\"0\" y=\"0\" scale=\"0.3\" /\u003e\n\t\u003cgroup id=\"buttons\" width=\"495\" height=\"200\" x=\"center\" bottom=\"250\" layout=\"v\" gap=\"5\"\u003e\n\t\t\u003cbutton id=\"continue\" x=\"center\" width=\"190\" height=\"40\" click=\"gui_create:stats\" state=\"continue\" hitArea=\"true\"\u003e\n\t\t\t\u003cimg name=\"grey_button01.png\" y=\"center\" state=\"up\" /\u003e\n\t\t\t\u003cimg name=\"grey_button02.png\" y=\"center\" state=\"hover\" /\u003e\n\t\t\t\u003ctext font=\"labelNormal\" height=\"40\" color=\"0x999694\" hoverColor=\"0xc28b30\" x=\"center\" align=\"center\" text=\"{$CONTINUE}\"/\u003e\n\t\t\u003c/button\u003e\n\t\t\u003cbutton id=\"stats\" x=\"center\"  width=\"190\" height=\"40\" click=\"gui_create:stats\" hitArea=\"true\"\u003e\n\t\t\t\u003cimg name=\"grey_button01.png\" y=\"center\" state=\"up\" /\u003e\n\t\t\t\u003cimg name=\"grey_button02.png\" y=\"center\" state=\"hover\" /\u003e\n\t\t\t\u003ctext font=\"labelNormal\" height=\"40\" color=\"0x999694\" hoverColor=\"0xc28b30\" x=\"center\" align=\"center\" text=\"{$STATS}\"/\u003e\n\t\t\u003c/button\u003e\n\t\t\u003cbutton id=\"options\" x=\"center\"  width=\"190\" height=\"40\" click=\"gui_create:options\" hitArea=\"true\"\u003e\n\t\t\t\u003cimg name=\"grey_button01.png\" y=\"center\" state=\"up\" /\u003e\n\t\t\t\u003cimg name=\"grey_button02.png\" y=\"center\" state=\"hover\" /\u003e\n\t\t\t\u003ctext font=\"labelNormal\" height=\"40\" color=\"0x999694\" hoverColor=\"0xc28b30\" x=\"center\" align=\"center\" text=\"{$OPTIONS}\"/\u003e\n\t\t\u003c/button\u003e\n\t\u003c/group\u003e\n\u003c/group\u003e\n```\n\n# Positioning on xml:\n\t\n| position | xml attribute | value | warning |\n| ------------- | ------------- | ------------- | ------------- |\n| align center  | x, y  | center  | need to set parent width or height |\n| align right minus width  | right  | width  | need to set parent width or height |\n| align bottom minus height  | bottom  | height  | need to set parent width or height |\n\n# Fonts:\n\t\nMust be in fonts folder and have lowercase extension in ttf only.\n\t\n\t\n# TODO\n- [x] transitions\n\t- [x] actuate tween\n\t- [x] actuate transform\n\t- [x] actuate effects\n\t- [x] actuate apply\n\t- [x] on added\n\t- [x] on removed\n\t- [x] on hover\n\t- [x] on back to up\n\t- [x] other lib than actuate should be ok to used\n- [ ] allow value 'auto' for width and height to make the parent width or height equal to children\n- [ ] hot reload\n- [ ] some responsiveness to avoid letterbox and better looking in mobile\n- [ ] samples\n- [ ] haxe 4 support\n- [ ] documentation\n- [ ] remove bindx2 dependency ?\n- [ ] add macros to include classes from xml\n- [ ] Render should also handle CheckBox and Radio\n- [X] Textfield should inherits Base to allow repositioning if in boxB or boxV\n- [ ] forbids setting x in boxH and y in boxV\n- [X] add app scroller\n- [ ] add size=\"+1\" and size=\"-1\" to change size of default font relatively\n- [ ] add margin\n- [ ] add sticky elements\n- [ ] GuiRender should have auto gap\n- [ ] Bind states for group only when on screen\n\n# dependencies\n- actuate\n- bindx2\n- openfl\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floudoweb%2Fgsui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Floudoweb%2Fgsui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floudoweb%2Fgsui/lists"}