Path: blob/main/examples/ui/scroll_and_overflow/overflow_clip_margin.rs
9358 views
//! Simple example demonstrating the `OverflowClipMargin` style property.12use bevy::{color::palettes::css::*, prelude::*};34fn main() {5App::new()6.add_plugins(DefaultPlugins)7.add_systems(Startup, setup)8.run();9}1011fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {12commands.spawn(Camera2d);1314let image = asset_server.load("branding/icon.png");1516commands17.spawn((18Node {19width: percent(100),20height: percent(100),21align_items: AlignItems::Center,22justify_content: JustifyContent::Center,23row_gap: px(40),24flex_direction: FlexDirection::Column,25..default()26},27BackgroundColor(ANTIQUE_WHITE.into()),28))29.with_children(|parent| {30for overflow_clip_margin in [31OverflowClipMargin::border_box().with_margin(25.),32OverflowClipMargin::border_box(),33OverflowClipMargin::padding_box(),34OverflowClipMargin::content_box(),35] {36parent37.spawn(Node {38flex_direction: FlexDirection::Row,39column_gap: px(20),40..default()41})42.with_children(|parent| {43parent44.spawn((45Node {46padding: UiRect::all(px(10)),47margin: UiRect::bottom(px(25)),48..default()49},50BackgroundColor(Color::srgb(0.25, 0.25, 0.25)),51))52.with_child(Text(format!("{overflow_clip_margin:#?}")));5354parent55.spawn((56Node {57margin: UiRect::top(px(10)),58width: px(100),59height: px(100),60padding: UiRect::all(px(20)),61border: UiRect::all(px(5)),62overflow: Overflow::clip(),63overflow_clip_margin,64..default()65},66BackgroundColor(GRAY.into()),67BorderColor::all(Color::BLACK),68))69.with_children(|parent| {70parent71.spawn((72Node {73min_width: px(50),74min_height: px(50),75..default()76},77BackgroundColor(LIGHT_CYAN.into()),78))79.with_child((80ImageNode::new(image.clone()),81Node {82min_width: px(100),83min_height: px(100),84..default()85},86));87});88});89}90});91}929394