Crate bevy_ui

Source
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_shadow
Box shadows rendering
debug
experimental
Experimental features are not yet stable and may change or be removed in the future.
graph
measurement
picking_backendbevy_ui_picking_backend
A picking backend for UI nodes.
prelude
The UI prelude.
shader_flags
The values here should match the values for the constants in ui.wgsl
stack_z_offsets
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).
ui_material
ui_texture_slice_pipeline
update
This module contains systems that update the UI when something changes
widget
This module contains the basic building blocks of Bevy’s UI

Structs§

BackgroundColor
The background color of the node
BorderColor
The border color of the UI node.
BorderRadius
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.
BoxShadow
List of shadows to draw for a Node.
BoxShadowSamples
Number of shadow samples. A larger value will result in higher quality shadows. Default is 4, values higher than ~10 offer diminishing returns.
CalculatedClip
The calculated clip of the node
ComputedNode
Provides the computed size and layout properties of the node.
ComputedNodeTarget
Derived information about the camera target for this UI node.
DefaultUiCamera
DrawUiMaterialNode
DrawUiNode
ExtractedGlyph
ExtractedUiMaterialNode
ExtractedUiMaterialNodes
ExtractedUiNode
ExtractedUiNodes
GlobalZIndex
GlobalZIndex allows a Node 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 a GlobalZIndex of greater than 0 will be drawn on top of nodes without a GlobalZIndex or nodes with a lower GlobalZIndex. Nodes with a GlobalZIndex of less than 0 will be drawn below nodes without a GlobalZIndex or nodes with a greater GlobalZIndex.
GridPlacement
Represents the position of a grid item in a single axis.
GridTrack
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.
ImageNodeBindGroups
IsDefaultUiCamera
Marker used to identify default cameras, they will have priority over the PrimaryWindow camera.
LayoutConfig
This component can be added to any UI node to modify its layout behavior.
LayoutContext
Node
The base component for UI entities. It describes UI layout and style properties.
NodeQuery
Main query for ui_focus_system
NodeQueryItem
Automatically generated WorldQuery item type for NodeQuery, returned when iterating over query results.
NodeQueryReadOnly
Automatically generated WorldQuery type for a read-only variant of NodeQuery.
NodeQueryReadOnlyItem
Automatically generated WorldQuery item type for NodeQueryReadOnly, returned when iterating over query results.
Outline
The Outline component adds an outline outside the edge of a UI node. Outlines do not take up space in the layout.
Overflow
Whether to show or hide overflowing items
OverflowClipMargin
The bounds of the visible area when a UI node is clipped.
PreparedUiMaterial
RelativeCursorPosition
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.)
RepeatedGridTrack
Represents a possibly repeated GridTrack.
ResolvedBorderRadius
Represents the resolved border radius values for a UI node.
ScrollPosition
The scroll position of the node.
SetMatUiViewBindGroup
SetUiMaterialBindGroup
SetUiTextureBindGroup
SetUiViewBindGroup
ShadowStyle
State
Contains entities whose Interaction should be set to None
TextShadow
Adds a shadow behind text
TransparentUi
UiBatch
UiCameraMap
UiCameraMapper
UiCameraView
A render-world component that lives on the main render target view and specifies the corresponding UI view.
UiDebugOptionsbevy_ui_debug
Configuration for the UI debug overlay
UiMaterialBatch
UiMaterialMeta
UiMaterialPipeline
Render pipeline data for a given UiMaterial
UiMaterialPlugin
Adds the necessary ECS resources and render logic to enable rendering entities using the given UiMaterial asset type (which includes UiMaterial types).
UiMaterialVertex
UiMeta
UiPassNode
UiPipeline
UiPipelineKey
UiPlugin
The basic plugin for Bevy UI
UiRect
A type which is commonly used to define margins, paddings and borders.
UiScale
The current scale of the UI.
UiStack
The current UI stack, which contains all UI nodes ordered by their depth (back-to-front).
UiTargetCamera
Indicates that this root Node entity should be rendered to a specific camera.
UiViewTarget
A render-world component that lives on the UI view and specifies the corresponding main render target view.
ZIndex
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§

AlignContent
Used to control how items are distributed.
AlignItems
Used to control how each individual item is aligned by default within the space they’re given.
AlignSelf
Used to control how the specified item is aligned within the space it’s given.
BoxSizing
Which part of a Node’s box length styles like width and height control
Display
Defines the layout model used by this node.
ExtractedUiItem
FlexDirection
Defines how flexbox items are ordered within a flexbox
FlexWrap
Defines if flexbox items appear on a single line or on multiple lines
FocusPolicy
Describes whether the node should block interactions with lower nodes
GridAutoFlow
Controls whether grid items are placed row-wise or column-wise as well as whether the sparse or dense packing algorithm is used.
GridPlacementError
Errors that occur when setting constraints for a GridPlacement
GridTrackRepetition
How many times to repeat a repeated grid track
Interaction
Describes what type of input interaction has occurred for a UI node.
JustifyContent
Used to control how items are distributed.
JustifyItems
Used to control how each individual item is aligned by default within the space they’re given.
JustifySelf
Used to control how the specified item is aligned within the space it’s given.
LayoutError
MaxTrackSizingFunction
MinTrackSizingFunction
NodeType
The type of UI node. This is used to determine how to render the UI node.
OverflowAxis
Whether to show or hide overflowing items
OverflowClipBox
Used to determine the bounds of the visible area when a UI node is clipped.
PositionType
The strategy used to position this node
RenderUiSystem
UiAntiAlias
Marker for controlling whether Ui is rendered with or without anti-aliasing in a camera. By default, Ui is always anti-aliased.
UiSystem
The label enum labeling the types of systems in the Bevy UI
Val
Represents the possible value types for layout properties.
ValArithmeticError
ValParseError

Constants§

UI_MATERIAL_SHADER_HANDLE
UI_SHADER_HANDLE

Functions§

build_ui_render
extract_text_sections
extract_text_shadows
extract_ui_camera_view
Extracts all UI elements associated with a camera into the render world.
extract_ui_material_nodes
extract_uinode_background_colors
extract_uinode_borders
extract_uinode_images
prepare_uimaterial_nodes
prepare_uinodes
queue_ui_material_nodes
queue_uinodes
ui_focus_system
The system that sets Interaction for all UI elements based on the mouse cursor activity
ui_layout_system
Updates the UI’s layout tree, computes the new layout geometry and then updates the sizes and transforms of all the UI nodes.

Type Aliases§

DrawUi
DrawUiMaterial