use cushy::figures::units::Lp;
use cushy::kludgine::Color;
use cushy::styles::components::{TextColor, TextSize};
use cushy::widget::MakeWidget;
use cushy::widgets::stack::Stack;
use cushy::widgets::Style;
use cushy::Run;
fn main() -> cushy::Result {
Stack::rows("Green".and(red_text("Red")))
.with(&TextColor, Color::GREEN)
// Local styles are not inherited. In this situation, the text size is
// being applied to the stack, which has no text. The labels are
// children of the stack, and they will render at the default text size.
.with_local(&TextSize, Lp::inches(10))
.run()
}
/// Creating reusable style helpers that work with any Widget is straightfoward
fn red_text(w: impl MakeWidget) -> Style {
w.with(&TextColor, Color::RED)
}