{"id":13424699,"url":"https://github.com/cycfi/elements","last_synced_at":"2025-05-14T16:11:49.046Z","repository":{"id":37663182,"uuid":"54825678","full_name":"cycfi/elements","owner":"cycfi","description":"Elements C++ GUI library","archived":false,"fork":false,"pushed_at":"2024-10-27T10:33:02.000Z","size":41426,"stargazers_count":3365,"open_issues_count":44,"forks_count":255,"subscribers_count":104,"default_branch":"master","last_synced_at":"2025-04-03T10:22:35.690Z","etag":null,"topics":["c-plus-plus","cpp","cpp17","cpp17-library","gui","modern-cpp"],"latest_commit_sha":null,"homepage":"http://cycfi.github.io/elements/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cycfi.png","metadata":{"files":{"readme":"README.md","changelog":"news.md","contributing":null,"funding":null,"license":null,"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}},"created_at":"2016-03-27T11:40:13.000Z","updated_at":"2025-04-03T08:15:07.000Z","dependencies_parsed_at":"2024-02-29T14:29:44.995Z","dependency_job_id":"c47f4aed-dd41-4ec2-b22a-0cbeb0f113f8","html_url":"https://github.com/cycfi/elements","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/cycfi%2Felements","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycfi%2Felements/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycfi%2Felements/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycfi%2Felements/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cycfi","download_url":"https://codeload.github.com/cycfi/elements/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248243465,"owners_count":21071054,"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":["c-plus-plus","cpp","cpp17","cpp17-library","gui","modern-cpp"],"created_at":"2024-07-31T00:00:58.048Z","updated_at":"2025-04-10T15:31:59.107Z","avatar_url":"https://github.com/cycfi.png","language":"C++","readme":"# ![Elements-Logo](https://cycfi.github.io/assets/img/elements/elements.png) Elements C++ GUI library\n\n[![CMake Build Matrix](https://github.com/cycfi/elements/workflows/Build/badge.svg)](https://github.com/cycfi/elements/actions?query=workflow%3ABuild)\n\n\n## Introduction\n\n![alt Elements Sampler](https://cycfi.github.io/assets/img/elements/photon_sampler.jpg)\n\nElements is a lightweight, fine-grained, resolution-independent, extremely modular GUI library. The library is written using modern C++20 language features. It has a declarative interface with a sensible and easy-to-use Domain Specific Embedded Languages (DSEL) syntax for constructing the GUI elements. A declarative description of the GUI is written exclusively in C++, and therefore, there is no need for an external visual GUI editor or code generator.\n\nElements is embeddable, meaning you can embed it in any application, and it will play well with other GUI libraries and frameworks. This also implies that you can utilize it for the creation of plugins. It does not own the event loop and is able to co-exist with components within a plugin host, such as [VST](https://en.wikipedia.org/wiki/Virtual_Studio_Technology) and [AU](https://en.wikipedia.org/wiki/Audio_Units). Porting to a new host target is straightforward, requiring the porting of only a few files.\n\nElements is distributed under the liberal and non-viral MIT License.\n\n## Status\n\nPlease take note that Elements is still very much in flux as we are inching closer towards a version 1.0 release. The API and code is still undergoing continuous changes, and for that matter, Elements is not yet \"production ready\". But that should not prevent you from using Elements now! It is already in a very usable form, and more people using it will ultimately make it more robust when bugs are reported and fixed. API and usability matters and I very much welcome suggestions and contributions. Hey, this is an open source project! If you like the design, concepts and ideas behind Elements, I very much welcome collaboration.\n\n## News\n\n**March 28, 2024:**\nI decided to bring the Cairo-based backend of Elements back into the fold. It will be the master branch once again. The Skia backend version is still very much in active development, but it still needs a lot of testing and work, especially with the way Skia is integrated.\n\nFollow [this link](news.md) for details.\n\n## Discord\n\nFeel free to join the [discord channel](https://discord.gg/NJkadSx) for discussion and chat with the developers.\n\n## Documentation\n\nDocumentation is work in progress. Stay tuned...\n\n1. [Gallery](http://cycfi.github.io/elements/elements/gallery.html)\n2. [Setup and Installation](http://cycfi.github.io/elements/elements/setup.html)\n3. [Design Aspects](http://cycfi.github.io/elements/elements/aspects.html)\n4. [Layout](http://cycfi.github.io/elements/elements/layout.html)\n\n## \u003ca name=\"jdeguzman\"\u003e\u003c/a\u003eAbout the Author\n\n\u003cimg align=\"right\" src=\"https://github.com/cycfi/elements/blob/assets/images/joel.jpg?raw=true\" width=\"200\"\u003e\n\nJoel got into electronics and programming in the 80s because almost\neverything in music, his first love, is becoming electronic and digital.\nSince then, he builds his own guitars, effect boxes and synths. He enjoys\nplaying distortion-laden rock guitar, composes and produces his own music in\nhis home studio.\n\nJoel de Guzman is the principal architect and engineer at [Cycfi\nResearch](https://www.cycfi.com/). He is a software engineer specializing in\nadvanced C++ and an advocate of Open Source. He has authored a number of\nhighly successful Open Source projects such as\n[Boost.Spirit](http://tinyurl.com/ydhotlaf),\n[Boost.Phoenix](http://tinyurl.com/y6vkeo5t) and\n[Boost.Fusion](http://tinyurl.com/ybn5oq9v). These libraries are all part of\nthe [Boost Libraries](http://tinyurl.com/jubgged), a well respected,\npeer-reviewed, Open Source, collaborative development effort.\n\n-------------------------------------------------------------------------------\n\n*Copyright (c) 2014-2024 Joel de Guzman. All rights reserved.*\n*Distributed under the [MIT License](https://opensource.org/licenses/MIT)*\n","funding_links":[],"categories":["GUI","Graphics","C++","User Interaction","UI","UI Frameworks"],"sub_categories":["Graphical User Interface"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcycfi%2Felements","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcycfi%2Felements","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcycfi%2Felements/lists"}