Expand description
This crate contains Bevy’s UI system, which can be used to create UI for both 2D and 3D games
§Basic usage
Spawn UI elements with widget::Button
, ImageNode
, Text
and Node
This UI is laid out with the Flexbox and CSS Grid layout models (see https://cssreference.io/flexbox/)
Re-exports§
pub use measurement::*;
pub use ui_material::*;
Modules§
- Box shadows rendering
- Experimental features are not yet stable and may change or be removed in the future.
- This module contains basic node bundles used to build UIs
- picking_
backend bevy_ui_picking_backend
A picking backend for UI nodes. - The UI prelude.
- The values here should match the values for the constants in
ui.wgsl
- Z offsets of “extracted nodes” for a given entity. These exist to allow rendering multiple “extracted nodes” for a given source entity (ex: render both a background color and a custom material for a given node).
- This module contains systems that update the UI when something changes
- This module contains the basic building blocks of Bevy’s UI
Structs§
- The background color of the node
- The border color of the UI node.
- Used to add rounded corners to a UI node. You can set a UI node to have uniformly rounded corners or specify different radii for each corner. If a given radius exceeds half the length of the smallest dimension between the node’s height or width, the radius will calculated as half the smallest dimension.
- The calculated clip of the node
- Provides the computed size and layout properties of the node.
GlobalZIndex
allows aNode
entity anywhere in the UI hierarchy to escape the implicit draw ordering of the UI’s layout tree and be rendered above or below other UI nodes. Nodes with aGlobalZIndex
of greater than 0 will be drawn on top of nodes without aGlobalZIndex
or nodes with a lowerGlobalZIndex
. Nodes with aGlobalZIndex
of less than 0 will be drawn below nodes without aGlobalZIndex
or nodes with a greaterGlobalZIndex
.- Represents the position of a grid item in a single axis.
- A
GridTrack
is a Row or Column of a CSS Grid. This struct specifies what size the track should be. See below for the different “track sizing functions” you can specify. - Marker used to identify default cameras, they will have priority over the
PrimaryWindow
camera. - The base component for UI entities. It describes UI layout and style properties.
- Main query for
ui_focus_system
- Automatically generated
WorldQuery
item type forNodeQuery
, returned when iterating over query results. - Automatically generated
WorldQuery
type for a read-only variant ofNodeQuery
. - Automatically generated
WorldQuery
item type forNodeQueryReadOnly
, returned when iterating over query results. - The
Outline
component adds an outline outside the edge of a UI node. Outlines do not take up space in the layout. - Whether to show or hide overflowing items
- The bounds of the visible area when a UI node is clipped.
- A component storing the position of the mouse relative to the node, (0., 0.) being the top-left corner and (1., 1.) being the bottom-right If the mouse is not over the node, the value will go beyond the range of (0., 0.) to (1., 1.)
- Represents a possibly repeated
GridTrack
. - Represents the resolved border radius values for a UI node.
- The scroll position of the node.
- Contains entities whose Interaction should be set to None
- Indicates that this root
Node
entity should be rendered to a specific camera. - Number of shadow samples. A larger value will result in higher quality shadows. Default is 4, values higher than ~10 offer diminishing returns.
- Render pipeline data for a given
UiMaterial
- Adds the necessary ECS resources and render logic to enable rendering entities using the given
UiMaterial
asset type (which includesUiMaterial
types). - The basic plugin for Bevy UI
- A type which is commonly used to define margins, paddings and borders.
- The current scale of the UI.
- The current UI stack, which contains all UI nodes ordered by their depth (back-to-front).
- Indicates that this
Node
entity’s front-to-back ordering is not controlled solely by its location in the UI hierarchy. A node with a higher z-index will appear on top of sibling nodes with a lower z-index.
Enums§
- Used to control how items are distributed.
- Used to control how each individual item is aligned by default within the space they’re given.
- Used to control how the specified item is aligned within the space it’s given.
- Defines the layout model used by this node.
- Defines how flexbox items are ordered within a flexbox
- Defines if flexbox items appear on a single line or on multiple lines
- Describes whether the node should block interactions with lower nodes
- Controls whether grid items are placed row-wise or column-wise as well as whether the sparse or dense packing algorithm is used.
- Errors that occur when setting constraints for a
GridPlacement
- How many times to repeat a repeated grid track
- Describes what type of input interaction has occurred for a UI node.
- Used to control how items are distributed.
- Used to control how each individual item is aligned by default within the space they’re given.
- Used to control how the specified item is aligned within the space it’s given.
- The type of UI node. This is used to determine how to render the UI node.
- Whether to show or hide overflowing items
- Used to determine the bounds of the visible area when a UI node is clipped.
- The strategy used to position this node
- Marker for controlling whether Ui is rendered with or without anti-aliasing in a camera. By default, Ui is always anti-aliased.
- The label enum labeling the types of systems in the Bevy UI
- Represents the possible value types for layout properties.
Constants§
Functions§
- Extracts all UI elements associated with a camera into the render world.
- The system that sets Interaction for all UI elements based on the mouse cursor activity
- Updates the UI’s layout tree, computes the new layout geometry and then updates the sizes and transforms of all the UI nodes.