use twill::{
BorderRadius, Button, Color, FontSize, FontWeight, Padding, Scale, Shadow, Spacing, Style,
ToCss,
};
fn main() {
println!("=== Twill Demo ===\n");
println!("1. Basic Style Builder:");
let card = Style::new()
.padding(Padding::all(Spacing::S6))
.bg(Color::white())
.rounded(BorderRadius::Lg)
.shadow(Shadow::Md);
println!(" Card: {}\n", card.to_css());
println!("2. Flex Layout:");
let flex_center = Style::centered_col()
.gap(Spacing::S4)
.padding(Padding::all(Spacing::S8));
println!(" Centered: {}\n", flex_center.to_css());
println!("3. Button Variants:");
println!(" Primary: {}", Button::primary().to_css());
println!(" Secondary: {}", Button::secondary().to_css());
println!(" Outline: {}", Button::outline().to_css());
println!(" Ghost: {}", Button::ghost().to_css());
println!(" Destructive: {}", Button::destructive().to_css());
println!();
println!("4. Button Sizes:");
println!(" Small: {}", Button::primary().sm().to_css());
println!(" Medium: {}", Button::primary().to_css());
println!(" Large: {}", Button::primary().lg().to_css());
println!();
println!("5. Color Palette:");
println!(" Blue 500: {}", Color::blue(Scale::S500).to_css());
println!(" Red 500: {}", Color::red(Scale::S500).to_css());
println!(" Green 500: {}", Color::green(Scale::S500).to_css());
println!(" Slate 900: {}", Color::slate(Scale::S900).to_css());
println!();
println!("6. Typography:");
let text_style = Style::new()
.text_size(FontSize::Xl)
.font_weight(FontWeight::Bold)
.text_color(Color::slate(Scale::S900));
println!(" Heading: {}\n", text_style.to_css());
println!("7. Complex Component (Card):");
let complex_card = Style::new()
.display(twill::Display::Flex)
.flex(twill::FlexContainer::col().gap(Spacing::S4))
.padding(Padding::all(Spacing::S6))
.bg(Color::white())
.rounded(BorderRadius::Xl)
.shadow(Shadow::Lg)
.border(
twill::BorderWidth::S1,
twill::BorderStyle::Solid,
Color::gray(Scale::S200),
);
println!(" {}\n", complex_card.to_css());
println!("=== Demo Complete ===");
}