Crates.io | egui-theme |
lib.rs | egui-theme |
version | 0.2.0 |
source | src |
created_at | 2021-09-06 07:10:17.956186 |
updated_at | 2022-06-04 07:54:09.305066 |
description | A standalone serializable theme container for use with Egui. |
homepage | |
repository | |
max_upload_size | |
id | 447440 |
size | 723,669 |
egui-theme
defines a common interface for serializing and storing egui's style and font data for use between applications. The goal is to allow users of egui
to easily create and share themes between relevant applications.
egui-theme
is an intermediate format that is using serde_json to create this intermediate format.
The following example demonstrates how to create an EguiTheme
and serialize it and deserialize it.
let theme = EguiTheme::new(
Style::default(),
FontDefinitions::default(),
);
let serialized_theme = ron::to_string(&theme).expect("this should serialize"):
let theme = ron::from_string::<EguiTheme>(serialized_theme).expect("this should deserialize");
let (style, font_definitions) = theme.extract();
After this point you can set the style and font definitions using egui::Context::set_style
and egui::Context::set_fonts
respectively.
Given development resources, only the latest version of egui is supported. This library will not be maintaining "migration scripts" to migrate previous themes of egui, but it old egui themes will still provide a best effort to load in. "Best Effort" means that deserializing an old egui theme will load as much compatible data as possible and not emit errors.