1use 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}