Path: blob/main/crates/bevy_feathers/src/containers/pane.rs
30636 views
use bevy_ecs::hierarchy::Children;1use bevy_scene::{bsn, Scene};2use bevy_text::FontWeight;3use bevy_ui::{4px, AlignItems, AlignSelf, Display, FlexDirection, JustifyContent, Node, PositionType, UiRect,5};67use crate::{8constants::{fonts, size},9font_styles::InheritableFont,10rounded_corners::RoundedCorners,11theme::{InheritableThemeTextColor, ThemeBackgroundColor, ThemeBorderColor},12tokens,13};1415/// A standard pane16pub fn pane() -> impl Scene {17bsn! {18Node {19display: Display::Flex,20flex_direction: FlexDirection::Column,21align_items: AlignItems::Stretch,22}23}24}2526/// Pane header27pub fn pane_header() -> impl Scene {28bsn! {29Node {30display: Display::Flex,31flex_direction: FlexDirection::Row,32align_items: AlignItems::Center,33justify_content: JustifyContent::SpaceBetween,34padding: px(6),35border: UiRect {36left: px(1),37top: px(1),38right: px(1),39},40min_height: size::HEADER_HEIGHT,41column_gap: px(6),42border_radius: {RoundedCorners::Top.to_border_radius(4.0)},43}44ThemeBackgroundColor(tokens::PANE_HEADER_BG)45ThemeBorderColor(tokens::PANE_HEADER_BORDER)46InheritableThemeTextColor(tokens::PANE_HEADER_TEXT)47InheritableFont {48font: fonts::REGULAR,49font_size: size::MEDIUM_FONT,50weight: FontWeight::NORMAL,51}52}53}5455/// Vertical divider between groups of widgets in pane headers56pub fn pane_header_divider() -> impl Scene {57bsn! {58Node {59width: px(1),60align_self: AlignSelf::Stretch,61}62Children [(63// Because we want to extend the divider into the header padding area, we'll use64// an absolutely-positioned child.65Node {66position_type: PositionType::Absolute,67left: px(0),68right: px(0),69top: px(-6),70bottom: px(-6),71}72ThemeBackgroundColor(tokens::PANE_HEADER_DIVIDER)73)]74}75}7677/// Pane body78pub fn pane_body() -> impl Scene {79bsn! {80Node {81display: Display::Flex,82flex_direction: FlexDirection::Column,83row_gap: px(4),84padding: px(6),85border_radius: {RoundedCorners::Bottom.to_border_radius(4.0)}86}87ThemeBackgroundColor(tokens::PANE_BODY_BG)88}89}909192