bevy_bsml 0.14.10

A UI library to compose UI elements using simple markup language, inspired by svelte and tailwindcss
Documentation
use crate::class::ApplyClass;
use bevy_ui::{GridTrack, Style};
use derive_more::From;

pub const AUTO_COLS_AUTO: GridAutoCols = GridAutoCols(GridTrack::DEFAULT);

pub fn auto_cols_min() -> GridAutoCols {
    GridAutoCols(GridTrack::min_content())
}

pub fn auto_cols_max() -> GridAutoCols {
    GridAutoCols(GridTrack::max_content())
}

pub fn auto_cols_fr() -> GridAutoCols {
    GridAutoCols(GridTrack::flex(1.0))
}

#[derive(Debug, From, Clone, PartialEq)]
pub struct GridAutoCols(pub GridTrack);

impl ApplyClass<GridAutoCols> for Style {
    #[inline]
    fn apply_class(&mut self, class: &GridAutoCols) {
        if !self.grid_auto_columns.is_empty() {
            self.grid_auto_columns.clear();
        }

        self.grid_auto_columns.push(class.0.clone());
    }
}