{"id":13730141,"url":"https://github.com/ImJimmi/JIVE","last_synced_at":"2025-05-08T02:31:30.577Z","repository":{"id":172332727,"uuid":"420261331","full_name":"ImJimmi/JIVE","owner":"ImJimmi","description":"The ultimate JUCE extension for building GUIs","archived":false,"fork":false,"pushed_at":"2024-11-05T20:29:36.000Z","size":4879,"stargazers_count":128,"open_issues_count":9,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-05T20:34:50.299Z","etag":null,"topics":["cmake","cpp17","declarative-ui","gui","juce","no-dependencies","reactive","tdd","ui"],"latest_commit_sha":null,"homepage":"https://github.com/ImJimmi/JIVE","language":"C++","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/ImJimmi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-22T22:51:22.000Z","updated_at":"2024-11-05T19:42:36.000Z","dependencies_parsed_at":"2023-09-30T13:30:19.156Z","dependency_job_id":"37209176-5ad3-4fe6-a9ab-d89c9ff672e1","html_url":"https://github.com/ImJimmi/JIVE","commit_stats":null,"previous_names":["imjimmi/jive"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ImJimmi%2FJIVE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ImJimmi%2FJIVE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ImJimmi%2FJIVE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ImJimmi%2FJIVE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ImJimmi","download_url":"https://codeload.github.com/ImJimmi/JIVE/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224689416,"owners_count":17353374,"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":["cmake","cpp17","declarative-ui","gui","juce","no-dependencies","reactive","tdd","ui"],"created_at":"2024-08-03T02:01:10.459Z","updated_at":"2024-11-14T20:31:55.027Z","avatar_url":"https://github.com/ImJimmi.png","language":"C++","funding_links":[],"categories":["UI"],"sub_categories":[],"readme":"![JIVE](.github/assets/banner.svg)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"License: MIT\" src=\"https://img.shields.io/github/license/ImJimmi/JIVE?style=for-the-badge\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/CMake-%23008FBA.svg?style=for-the-badge\u0026logo=cmake\u0026logoColor=white\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/c++-%2300599C.svg?style=for-the-badge\u0026logo=c%2B%2B\u0026logoColor=white\"/\u003e\n  \u003cimg src=\"https://img.shields.io/static/v1?logo=data:image/png;base64,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\u0026label=\u0026message=JUCE\u0026style=for-the-badge\u0026color=9E24C0\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/codecov-%23ff0077.svg?style=for-the-badge\u0026logo=codecov\u0026logoColor=white\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/ImJimmi/JIVE/test-runner.yml?label=TESTS\u0026logo=github\u0026style=for-the-badge\"/\u003e\n  \u003cimg src=\"https://img.shields.io/codecov/c/gh/ImJimmi/JIVE?label=Test%20Coverage\u0026logo=codecov\u0026logoColor=white\u0026style=for-the-badge\u0026token=827SYOR678\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"GitHub Repo stars\" src=\"https://img.shields.io/github/stars/ImJimmi/JIVE?logo=github\u0026style=for-the-badge\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/contributors/ImJimmi/JIVE?logo=github\u0026style=for-the-badge\"/\u003e\n  \u003cimg src=\"https://img.shields.io/github/last-commit/ImJimmi/JIVE?logo=git\u0026logoColor=white\u0026style=for-the-badge\"/\u003e\n\u003c/p\u003e\n\n- [About](#about)\n    - [🧑‍💻 Improved Developer Experience](#-improved-developer-experience)\n    - [👷 Improved Architecture](#-improved-architecture)\n- [Approach](#approach)\n    - [🧩 Layouts](#-layouts)\n    - [🎨 Style Sheets](#-style-sheets)\n- [Integration](#integration)\n    - [CMake](#cmake)\n    - [Projucer](#projucer)\n- [Getting Started](#getting-started)\n- [Contributing](#contributing)\n\n## About\n\nJIVE is a bundle of [JUCE](https://github.com/juce-framework/JUCE) modules centered around the desire to have a more modern approach to UI development.\n\nThis approach is inspired by web front-ends where we write declarative markup (HTML) to define what components we have, style those components using style sheets (CSS), and then dynamically update those components at runtime using imperitive code (JavaScript). With JIVE however, all three of these layers are done using tools already available in JUCE - [`juce::ValueTree`](https://docs.juce.com/master/classValueTree.html) for markup, [`juce::var`](https://docs.juce.com/master/classvar.html)/[`juce::DynamicObject`](https://docs.juce.com/master/classDynamicObject.html) for style sheets, and regular old C++ for dynamically updating.\n\n### 🧑‍💻 Improved Developer Experience\n\n- Write less UI code than in a typical JUCE project.\n- Write _better_ UI code that's more declarative and uses common terminology with other UI frameworks.\n- Build ideas faster, with much shorter iterations between one design to another.\n- No additional dependencies - built purely from the tools provided by JUCE.\n- Less boilerplate and therefore less time wasted (and maybe even fewer bugs) when developing UI features.\n- Easier onboarding for any team members unfamiliar with the querks and complexities of developing GUIs in JUCE.\n\n### 👷 Improved Architecture\n\n- Encourages the separation of the UI from the business logic that controls it.\n- Encapsulates the JUCE backend enabling applications to interact with the UI through common data structures like value-trees and JSON documents.\n- Specifically built to fit the [Model-view-presenter](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter) pattern - although flexible enough to suit any architecture.\n- Inspired by front-end web libraries to more easily build design systems and share components.\n\n## Approach\n\nThere are two main constituents to JIVE - [`jive_layouts`](jive_layouts/) and [`jive_style_sheets`](jive_style_sheets/). When used together, these modules completely overhaul the experience of building GUIs in JUCE by removing the boilerplate involved in writing [`Component`](https://docs.juce.com/master/classComponent.html) classes.\n\n### 🧩 Layouts\n\n`jive_layouts` addresses the hierarchy and layout of GUIs by allowing developers to describe their UI using value-trees.\n\nUnlike in a typical JUCE application where most of your UI code is spent describing _how_ components are shown on the screen, JIVE's approach is inspired by HTML where we simply describe _what_ is on the screen.\n\n\u003cdetails\u003e\n\u003csummary\u003eExample\u003c/summary\u003e\n\nExample XML file that could be parsed to a `juce::ValueTree`\n\n_Note that `juce::ValueTree` doesn't support inline text elements so these will need to be converted to `text` properties before parsing to a `juce::ValueTree`._\n\n```xml\n\u003cWindow width=\"640\" height=\"400\" align-items=\"centre\"\u003e\n    \u003cComponent id=\"header\" align-items=\"centre\"\u003e\n        \u003cText id=\"title\"\u003eWelcome to JIVE!\u003c/Text\u003e\n        \u003cText id=\"subtitle\"\u003eThe ultimate JUCE extension for building GUIs.\u003c/Text\u003e\n    \u003c/Component\u003e\n\n    \u003cComponent id=\"nav\" display=\"grid\" template-columns=\"1fr 1fr 1fr\" template-rows=\"1fr\"\u003e\n        \u003cButton\u003e\n            \u003cText\u003eHome\u003c/Text\u003e\n        \u003c/Button\u003e\n\n        \u003cButton\u003e\n            \u003cText\u003eAbout\u003c/Text\u003e\n        \u003c/Button\u003e\n\n        \u003cButton\u003e\n            \u003cText\u003eContact\u003c/Text\u003e\n        \u003c/Button\u003e\n    \u003c/Component\u003e\n\u003c/Window\u003e\n```\n\u003c/details\u003e\n\n### 🎨 Style Sheets\n\n`jive_style_sheets` addresses the styling of GUIs by allowing developers to apply common style properties using JSON documents.\n\nInspired by CSS, JIVE's style sheets allow common styling properties like background colours, text colours, and font size to be set on any UI element, removing the need to use [`juce::Graphics`](https://docs.juce.com/master/classGraphics.html) for the majority of components.\n\n\u003cdetails\u003e\n\u003csummary\u003eExample\u003c/summary\u003e\n\nExample JSON document that could be parsed to a `jive::Object` and set as the top-level window's `style` property.\n\n```json\n{\n    \"background\": \"#202020\",\n    \"foreground\": \"#EEEEEE\",\n    \"font-family\": \"Helvetica\",\n\n    \"#title\": {\n        \"font-size\": \"45\",\n        \"font-style\": \"bold\",\n    },\n    \"#subtitle\": {\n        \"font-size\": \"25\",\n        \"font-style\": \"italic\",\n    },\n\n    \"Button\": {\n        \"background\": \"#303030\",\n        \"border\": \"#FF3077\",\n    },\n}\n```\n\u003c/details\u003e\n\n## Integration\n\nThe simplest way to intergrate JIVE with your JUCE project is with [CPM](https://github.com/cpm-cmake/CPM.cmake):\n\n```cmake\nCPMAddPackage(\"gh:ImJimmi/JIVE@main\")\n```\n\nIf not using CPM, you should add JIVE as a submodule to your git repository:\n\n```bash\ngit submodule add git@github.com:ImJimmi/JIVE.git\n```\n\nOr simply clone JIVE to use across multiple projects:\n\n```bash\ngit clone git@github.com:ImJimmi/JIVE.git\n```\n\n### CMake\n\n![CMake](https://img.shields.io/static/v1?logo=cmake\u0026label=\u0026message=CMake\u0026style=for-the-badge\u0026color=064F8C)\n\n```cmake\nadd_subdirectory(path/to/JUCE)\n\n# Recommended\nCPMAddPackage(\"gh:ImJimmi/JIVE@main\")\n\n# If not using CPM\nadd_subdirectory(path/to/JIVE)\n\ntarget_link_libraries(my_juce_project\nPRIVATE\n    jive::jive_layouts\n    jive::jive_style_sheets\n)\n\n# Recommended if using both jive_layouts and jive_style_sheets\ntarget_compile_definitions(my_juce_project\nPRIVATE\n    JIVE_GUI_ITEMS_HAVE_STYLE_SHEETS=1\n)\n```\n\n### Projucer\n\n![Projucer](https://img.shields.io/static/v1?logo=data:image/png;base64,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\u0026label=\u0026message=Projucer\u0026style=for-the-badge\u0026color=555555)\n\nAdd modules to the project by clicking the \"+\" icon in the \"Modules\" panel and choosing \"Add a module from a specified folder...\".\n\n## Getting Started\n\nSee [Getting Started](./docs/Getting%20Started.md) for a detailed guide on getting started with JIVE once you have it integrated in your project.\n\n## Contributing\n\nAll contributions are welcome!\n\nPlease see the [Contribution Guidelines](./CONTRIBUTING.md) before submitting a PR. Be sure to check the [Issues Tab](https://github.com/ImJimmi/JIVE/issues) to avoid duplicates and to contribute to any ongoing conversation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FImJimmi%2FJIVE","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FImJimmi%2FJIVE","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FImJimmi%2FJIVE/lists"}