Crates.io | bevy_mod_stylebuilder |
lib.rs | bevy_mod_stylebuilder |
version | 0.1.3 |
source | src |
created_at | 2024-07-09 04:11:11.787056 |
updated_at | 2024-07-31 05:04:48.2642 |
description | A set of fluent builder utilities for Bevy UI styles. |
homepage | |
repository | https://github.com/viridia/quill |
max_upload_size | |
id | 1296605 |
size | 49,874 |
This crate provides a set of low-level utilities for configuring bevy_ui
styles using a fluent
API. A StyleBuilder
is an object that understands how to insert, remove, and modify Bevy style
components such as Style
, BackgroundColor
and so on, as well as the Pickable
component used
by bevy_mod_picking
.
StyleBuilder
is extensible by implementing additional traits. In fact, all of the fluent methods
are trait methods.
use bevy_mod_stylebuilder::prelude::*;
fn style_button(ss: &mut StyleBuilder) {
ss.border(1)
.display(ui::Display::Flex)
.flex_direction(ui::FlexDirection::Row)
.justify_content(ui::JustifyContent::Center)
.align_items(ui::AlignItems::Center)
.align_content(ui::AlignContent::Center)
.padding((12, 0))
.border(0)
.color(colors::FOREGROUND)
.cursor(CursorIcon::Pointer);
}
In most cases, you won't need to instantiate a StyleBuilder
object yourself, the UI framework
will pass one to you as a callback parameter. For framework authors, however, here are the steps
needed to create a new StyleBuilder
:
/// Construct a new StyleBuilder instance with the entity and `Styles` component.
let mut sb = StyleBuilder::new(&mut target, style);
/// Apply one or more style functions.
self.styles.apply(&mut sb);
/// Call `.finish()` to write out the changes.
sb.finish();
Most style components such as BackgroundColor
are modified immediately, however Style
is
treated as a special case because it has so many properties: it's cached in the StyleBuilder
instance and then flushed out at the end via finish()
.