trivial/
trivial.rs

1//! Simple example demonstrating linear gradients.
2
3use bevy::color::palettes::css::RED;
4use bevy::color::palettes::css::YELLOW;
5use bevy::prelude::*;
6use bevy_ui_gradients::*;
7
8fn main() {
9    App::new()
10        .add_plugins((DefaultPlugins, UiGradientsPlugin))
11        .add_systems(Startup, setup)
12        .add_systems(Update, update)
13        .run();
14}
15
16fn setup(mut commands: Commands) {
17    commands.spawn(Camera2d);
18
19    commands.spawn((
20        Node {
21            width: Val::Percent(100.),
22            height: Val::Percent(100.),
23
24            ..Default::default()
25        },
26        BackgroundGradient::from(LinearGradient::new(0., vec![RED.into(), YELLOW.into()])),
27    ));
28}
29
30#[derive(Component)]
31struct AnimateMarker;
32
33fn update(time: Res<Time>, mut query: Query<&mut BackgroundGradient, With<AnimateMarker>>) {
34    for mut gradients in query.iter_mut() {
35        for gradient in gradients.0.iter_mut() {
36            if let Gradient::Linear(LinearGradient { angle, .. }) = gradient {
37                *angle += 0.5 * time.delta_secs();
38            }
39        }
40    }
41}