{"id":13731950,"url":"https://github.com/skui-org/skui","last_synced_at":"2025-05-08T06:30:41.231Z","repository":{"id":18803570,"uuid":"85348438","full_name":"skui-org/skui","owner":"skui-org","description":"Skia-based C++ UI framework","archived":false,"fork":false,"pushed_at":"2022-01-21T15:24:51.000Z","size":1186,"stargazers_count":394,"open_issues_count":11,"forks_count":61,"subscribers_count":37,"default_branch":"master","last_synced_at":"2024-08-04T02:10:38.224Z","etag":null,"topics":["cmake","cross-platform","cxx","cxx17","graphics","gui","opengl","signal","skia","ui"],"latest_commit_sha":null,"homepage":null,"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/skui-org.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}},"created_at":"2017-03-17T19:37:28.000Z","updated_at":"2024-07-31T16:18:41.000Z","dependencies_parsed_at":"2022-08-07T09:00:57.366Z","dependency_job_id":null,"html_url":"https://github.com/skui-org/skui","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/skui-org%2Fskui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skui-org%2Fskui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skui-org%2Fskui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skui-org%2Fskui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skui-org","download_url":"https://codeload.github.com/skui-org/skui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224707559,"owners_count":17356356,"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","cross-platform","cxx","cxx17","graphics","gui","opengl","signal","skia","ui"],"created_at":"2024-08-03T02:01:42.196Z","updated_at":"2024-11-14T23:30:36.072Z","avatar_url":"https://github.com/skui-org.png","language":"C++","funding_links":[],"categories":["Graphics"],"sub_categories":[],"readme":"# Introduction\n\nUI framework that uses [Skia](https://skia.org/) as a low-level drawing toolkit.\nIt uses the newest features of the C++ Standard library (currently targetting C++17).\n\n# Status\n\nSkUI is in a pre-release development phase, and the API is definitely not stable.\n\n[![Build Status](https://app.travis-ci.com/skui-org/skui.svg?branch=master)](https://app.travis-ci.com/skui-org/skui)\n[![Build status](https://ci.appveyor.com/api/projects/status/s9t7o9k8u0p15e0x?svg=true)](https://ci.appveyor.com/project/RubenVanBoxem/skui)\n[![codecov](https://codecov.io/gh/skui-org/skui/branch/master/graph/badge.svg)](https://codecov.io/gh/skui-org/skui)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/e461d12770cf4234b7d5a1ffcd880c2c)](https://www.codacy.com/manual/rubenvb/skui?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=skui-org/skui\u0026amp;utm_campaign=Badge_Grade)\n\n| Operating System | Compiler                | Supported          | Notes |\n|------------------| ------------------------|--------------------| ----- |\n| Windows          | Visual Studio 2019      | :heavy_check_mark: |       |\n| Windows          | VS 2019 Clang/LLVM 8.0+ | :heavy_check_mark: |       |\n| Windows          | Visual Studio 2017      | :heavy_check_mark: |       |\n| Windows          | VS 2017 Clang/LLVM 6.0+ | :heavy_check_mark: |       |\n| Windows          | MinGW-w64 GCC 7.3+      | :heavy_check_mark: | Requires usable std::filesystem implementation. |\n| Windows          | MinGW-w64 Clang 6.0+    | :heavy_check_mark: | Requires usable std::filesystem implementation. |\n| Windows          | Intel C++ 19            |        :x:         | Lacks required C++17 features. |\n| Linux            | GCC 7.3+                | :heavy_check_mark: |       |\n| Linux            | Clang 6.0+              | :heavy_check_mark: |       |\n| Linux            | Intel C++ 19            |        :x:         | Lacks required C++17 features. |\n| Mac OS X 10.15+  | XCode 11.6+ Clang       |      :soon:        | Missing implementation of core window/application classes. |\n| Mac OS X 10.15+  | Homebrew GCC 7.3+       |      :soon:        | Missing implementation of core window/application classes. |\n| Mac OS X 10.15+  | Homebrew Clang 6.0+     |      :soon:        | Missing implementation of core window/application classes. |\n\n# Components\n\nSkUI is subdivided in several modules which can depend on other modules but shouldn't become a dependency mess:\n\n * Core: basic functionality, including signals, properties, strings, paths, application, os abstraction...\n * CSS: CSS parser built on top of Boost.Spirit X3.\n * Graphics: graphical functionality such as canvases, contexts, shapes, text, ...\n * GUI: abstraction of platform-specific UI code, including event loops, windows, input, ...\n * OpenGL: abstraction of platform-specific OpenGL initialization code, header differences, ...\n * ...\n * Examples: example programs showing SkUI features\n * Tests: unit tests for various components to ensure correct and expected behaviour now and in the future.\n\nThis list will grow (and change) as the library's design takes shape.\n\n# How to get started\n\nClone this repository\n\n    git clone https://github.com/skui-org/skui.git\n\nAfter cloning this repository, make sure the submodules are up to date\n\n    cd skui\n    git submodule update --init --recursive\n\nCreate and navigate to a seperate build directory, e.g.\n\n    mkdir ../skui-build\n    cd ../skui-build\n\nRun CMake (here, the [ninja](https://ninja-build.org/) build system is used, but any generator should work fine)\n\n    cmake ../skui -G Ninja\n\nThis step should inform you of any missing dependencies.\nThen build\n\n    cmake --build .\n\nAnd run the tests to ensure nothing is wrong\n\n    ctest\n\n# Roadmap\n\n## 0.0.x\n\n * establish a logical basis for UI functionality, including:\n   * signals, properties, strings\n   * basic drawing functionality\n   * event handling\n   * basic UI controls and layout engine\n   * Application window and event abstraction\n     * Windows\n     * Linux\n     * OS X\n     * ...\n\n## 0.1.x\n\n * OS Notification system implementation\n   * taskbar icon\n   * notifications\n   * ...\n * Improve core logic and functionality.\n * OS theming of all controls and windows\n\n## 0.x.x\n\n * More application logic (model/views, ...)\n * process handling\n * advanced drawing\n * advanced UI controls, including:\n   * scrollbars\n   * tables, lists, etc.\n * File I/O systems?\n * Add missing unit tests\n * Add missing documentation\n * ...\n\n## 1.x.x\n\n * Stability and features of a basic UI framework\n * Improve platform support\n * Solve all them bugs.\n * Correct all them documentation typos.\n\n## x.x.x\n\n * Supreme world domination through superiour benevolent A.I.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskui-org%2Fskui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskui-org%2Fskui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskui-org%2Fskui/lists"}