{"id":13728719,"url":"https://github.com/pisaiah/ui","last_synced_at":"2026-01-18T11:01:17.680Z","repository":{"id":41373981,"uuid":"436660468","full_name":"pisaiah/ui","owner":"pisaiah","description":"My UI Widget library for V","archived":false,"fork":false,"pushed_at":"2026-01-17T02:40:42.000Z","size":9024,"stargazers_count":149,"open_issues_count":8,"forks_count":9,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-01-17T14:00:00.622Z","etag":null,"topics":["cross-platform-gui","fluentui","gui","linux","mac","ui","ui-library","v","vlang","vlang-library","wasm","widget","widget-toolkit","windows"],"latest_commit_sha":null,"homepage":"https://discord.gg/NruVtYBf5g","language":"V","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/pisaiah.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-12-09T15:10:01.000Z","updated_at":"2026-01-17T02:40:45.000Z","dependencies_parsed_at":"2023-10-01T22:05:29.458Z","dependency_job_id":"5fc891c3-c8c1-4c19-9268-73c464e4dc80","html_url":"https://github.com/pisaiah/ui","commit_stats":null,"previous_names":["pisaiah/ui","isaiahpatton/ui"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/pisaiah/ui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pisaiah%2Fui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pisaiah%2Fui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pisaiah%2Fui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pisaiah%2Fui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pisaiah","download_url":"https://codeload.github.com/pisaiah/ui/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pisaiah%2Fui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28535156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T10:13:46.436Z","status":"ssl_error","status_checked_at":"2026-01-18T10:13:11.045Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["cross-platform-gui","fluentui","gui","linux","mac","ui","ui-library","v","vlang","vlang-library","wasm","widget","widget-toolkit","windows"],"created_at":"2024-08-03T02:00:48.890Z","updated_at":"2026-01-18T11:01:17.673Z","avatar_url":"https://github.com/pisaiah.png","language":"V","funding_links":[],"categories":["👓 Alternatives to the [Electron.js](https://electronjs.org) ⚛"],"sub_categories":["V"],"readme":"\u003cimg src=\"https://github.com/user-attachments/assets/2de597eb-e78a-47cf-be4f-3663c67d130c#gh-light-mode-only\" width=\"400\" align=\"right\"\u003e \u003cimg src=\"https://github.com/user-attachments/assets/fde5c0fc-d60b-4804-aac8-8ccde8a1b4cf#gh-dark-mode-only\" align=\"right\" width=\"400\"\u003e\n\n\u003cimg src=\"https://github.com/pisaiah/ui/assets/16439221/14ccf60b-cff4-4f49-884f-d6dc2cc796ef?s=200\u0026v=4\" align=\"\" alt=\"iUI\" height=\"64\"\u003e\n\n\u003cbr\u003e\n\n![0.0.20](https://img.shields.io/badge/version-0.28-white?style=flat)\n![GitHub](https://img.shields.io/badge/license-MIT-blue?style=flat)\n![vlang](http://img.shields.io/badge/V-0.4.11-%236d8fc5?style=flat)\n\nCross-platform GUI library for V. Inspired by the syntax of Java's Swing/FX \u0026 Fluent/WinUI3 Style.\n\nExample: *([examples/demo/](examples/demo/demo.v))*\n\n## Example \n\n```v\nfn main() {\n\tmut window := ui.Window.new(\n\t\ttitle: 'My App'\n\t\twidth: 640\n\t\theight: 480\n\t)\n\n\t// Create Button\n\tmut btn := ui.Button.new(\n\t\ttext:     'My Button'\n\t\ton_click: on_click_event\n\t)\n\n\t// Add Button to Window \u0026 Run\n\twindow.add_child(btn)\n\twindow.gg.run()\n}\n\nfn on_click_event(e \u0026ui.MouseEvent) {\n\tprintln('Button clicked!')\n}\n```\n\n## Install\nInstall via VPM:\n\n```\nv install https://github.com/pisaiah/ui\n```\nthen \n```v\nimport iui as ui\n```\n\n## Components, Containers, \u0026 Layouts\n\n| Components    | Containers  | Panel Layouts |\n| ------------- | ----------- | ------------- |\n| Button        | Window      | Flow Layout   |\n| Checkbox      | Panel       | Border Layout |\n| Hyperlink     | Tabbox      | Box Layout    |\n| Image         | Modal       | Grid Layout   |\n| InternalFrame | Page        | Card Layout   | \n| Label         | ButtonGroup |               |\n| Menubar       | ScrollView  |               |\n| MenuItem      | Splitview   |               |\n| NavPaneItem   | TitleGroup  |               |\n| ProgressBar   | Popup       |               |\n| Selectbox     | DesktopPane |               |\n| Slider        | NavPane     |               |\n| Switch        |             |               |\n| Textbox       |             |               |\n| TextField     |             |               |\n| Treeview      |             |               |\n\n- Components are the elements of the UI (buttons, inputs, etc). \n- Containers are components that are designed to contain other components (known as children).\n- Layouts define how the Panel container positions it's children.\n\nMore details about Layout: [A Visual Guide to Layout Managers - docs.oracle.com](https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html)\n\n## Themes\n\u003ctable\u003e\n\u003ctr\u003e\u003ctd\u003eLight:\u003cbr\u003e- Default, Minty, Ocean, Seven.\u003c/td\u003e\u003ctd\u003e\u003cimg src=\"https://github.com/pisaiah/ui/assets/16439221/5b2c9550-d936-4397-8cf4-12a951201a71\" height=\"75\"\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eDark:\u003cbr\u003e- Dark (with Blue/Red/Green/or RGB Accent), Seven Dark.\u003c/td\u003e\u003ctd\u003e\u003cimg src=\"https://github.com/pisaiah/ui/assets/16439221/33e1d24e-b24a-4cf4-91db-c9771a5b1fd4\" height=\"75\"\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n## Included Examples\n\n\u003ctable\u003e\n\t\u003ctr\u003e\u003cth\u003eBorderLayout Demo\u003c/th\u003e\u003cth\u003eInternal Frames\u003c/th\u003e\u003cth\u003eNavigation Pane\u003c/th\u003e\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003e\u003cimg src=\"https://github.com/pisaiah/ui/assets/16439221/0b058466-6775-4edc-a571-7d77870827fd\" height=\"170\"\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e\u003cimg src=\"https://github.com/pisaiah/ui/assets/16439221/bc14ec6c-4318-40d7-bcdd-6e2cf6a270be\" height=\"170\"\u003e\u003c/td\u003e\n  \t\t\u003ctd\u003e\u003cimg src=\"https://github.com/user-attachments/assets/4335c983-03d8-43e3-8ea8-3b4986e92d62\" height=\"170\"\u003e\u003c/td\u003e\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003e\u003ca href=\"examples/2-BorderLayoutDemo/\"\u003eBorder Layout Demo\u003c/a\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e\u003ca href=\"examples/Frames/\"\u003eInternal Frames\u003c/a\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e\u003ca href=\"examples/navpane_demo.v\"\u003eNavigation Pane\u003c/a\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable\u003e\n\t\u003ctr\u003e\u003cth\u003eNotepad\u003c/th\u003e\u003cth\u003eCalculator\u003c/th\u003e\u003cth\u003eClock\u003c/th\u003e\u003cth\u003eVideo Player\u003c/th\u003e\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003e\u003cimg src=\"https://github.com/pisaiah/ui/assets/16439221/b606df32-382d-4977-a06c-7d8d8d2fb042\" align=\"left\" height=\"130\"\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e\u003cimg src=\"https://github.com/pisaiah/ui/assets/16439221/1a42c4dd-351d-4c28-8edd-b85905ea9b1f\" height=\"170\"\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e\u003cimg src=\"https://github.com/pisaiah/ui/assets/16439221/23a2e490-2aa6-4a3b-b606-3a611eccdb52\" height=\"170\"\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e\u003cimg src=\"https://github.com/user-attachments/assets/3b38578c-1dea-44a3-92cc-3b025d9dae1d\" height=\"170\"\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eSee: \u003ca href=\"examples/Notepad/\"\u003eNotepad\u003c/a\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e\u003ca href=\"examples/Notepad/\"\u003eCalculator\u003c/a\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e\u003ca href=\"examples/Clock/\"\u003eClock\u003c/a\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e\u003ca href=\"examples/VideoPlayer\"\u003eVideo Player\u003c/a\u003e \u003ci\u003e(requires libmpv)\u003c/i\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable\u003e\n\t\u003ctr\u003e\u003cth\u003eMines\u003c/th\u003e\u003cth\u003e(Tic Tac Toe)^2\u003c/th\u003e\u003cth\u003eSnake\u003c/th\u003e\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003e\u003cimg src=\"https://github.com/pisaiah/ui/assets/16439221/fae5d2d2-abf3-490a-ac63-ce685a64abae\" height=\"170\"\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e\u003cimg src=\"https://github.com/user-attachments/assets/4f9969ed-43ec-4b0d-aa40-f92eae338d9b\" height=\"170\"\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e\u003cimg src=\"https://github.com/pisaiah/ui/assets/16439221/3f25af12-67c7-4808-a96c-9ca8d4a80ba4\" height=\"170\"\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eCode: \u003ca href=\"examples/Games/1-Minesweeper\"\u003e1-Minesweeper\u003c/a\u003e\u003cbr\u003eDemo: \u003ca href=\"https://pisaiah.com/showcase/app/mines/index.html\"\u003e\u003ci\u003ePlay online (via WASM)\u003c/i\u003e\u003c/a\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e\u003ca href=\"examples/Games/2-Tic-Tac-Toe-Squared\"\u003e2-Tic-Tac-Toe-Squared\u003c/a\u003e\u003cbr\u003e\u003ca href=\"https://pisaiah.com/showcase/app/tictactoe/index.html\"\u003e\u003ci\u003ePlay online (WASM)\u003c/i\u003e\u003c/a\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e\u003ca href=\"examples/Games/3-Snake\"\u003e3-Snake\u003c/a\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/table\u003e\n\n## Used in\n- [Vide](https://github.com/pisaiah/vide)\n- [Verminal](https://github.com/pisaiah/verminal)\n- [vPaint](https://github.com/pisaiah/vpaint) - Demo: [https://vpaint.app](https://vpaint.app)\n\n![image](https://github.com/user-attachments/assets/82a395ce-1c4b-4d4a-a2db-44009f3ed009)\n\n\n## License\nThis project is licensed under MIT OR Boost.\n\n\u003ckbd\u003e\u003cimg src=\"https://github.com/pisaiah/ui/assets/16439221/5ebb8b15-52e0-4e64-8941-45390a60b3ab\" width=\"128\"\u003e\u003cbr\u003eVeasel *(v mascot)* on a Swing\u003c/kbd\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpisaiah%2Fui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpisaiah%2Fui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpisaiah%2Fui/lists"}