Crates.io | fyrox-ui |
lib.rs | fyrox-ui |
version | |
source | src |
created_at | 2022-01-10 18:53:14.16739 |
updated_at | 2025-02-05 18:11:19.119147 |
description | Extendable UI library |
homepage | https://fyrox.rs |
repository | https://github.com/FyroxEngine/Fyrox |
max_upload_size | |
id | 511542 |
Cargo.toml error: | TOML parse error at line 25, column 1 | 25 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
Retained mode, general purpose, graphics API agnostic user interface library. Inspired by WPF.
NOTE: even though this crate has fyrox
prefix in its name, it can be used separately without any issues.
fyrox-ui uses a bit unusual way of styling - you have to replace entire sub-graphs of widget's visual trees. What does that mean? fyrox-ui uses graph to build visual trees of any complexity, each widget is a set of nodes in the graph. For example a button is a set of background and foreground widgets, background widget usually defines appearance and foreground shows a content. Content of a button can be any widget, in most common cases it is either a text or an image. So to change appearance of a button you have to define your own background widget at the building stage, by default fyrox-ui uses Decorator widget which just changes its foreground brush when it receives MouseEnter, MouseLeave, etc. message. This fact significantly complicates minor styling (like change a color), but it is super flexible approach and allows to build your own unique style. Most of widget builders provides a way to change its parts, some of them still may lack such functionality, but this should eventually be fixed.
TODO.
TODO.
There are two projects using this UI library:
However, it can be too difficult to understand how to use the library from those projects, so standalone samples should be added. This is still a TODO.