use tinterm::*;
fn main() {
println!("🎨 Tinterm Comprehensive Demo 🎨\n");
println!("=== 1. BASIC COLORS ===");
println!("{}", "Red Text".color(Color::RED));
println!("{}", "Green Background".bg(Color::GREEN));
println!("{}", "Blue on Yellow".fg(Color::BLUE).bg(Color::YELLOW));
println!("{}", "Custom RGB Color".color(Color::new(255, 165, 0))); println!("{}", "Hex Color".color(Color::from_hex("#FF69B4").unwrap())); println!();
println!("=== 2. TEXT STYLING ===");
println!("{}", "Bold Text".bold());
println!("{}", "Italic Text".italic());
println!("{}", "Underlined Text".underline());
println!("{}", "Strikethrough Text".strikethrough());
println!("{}", "Dim Text".dim());
println!("{}", "Bright Text".bright());
println!("{}", "Reversed Text".reverse());
println!("{}", "Blinking Text".blink());
println!();
println!("=== 3. METHOD CHAINING ===");
println!(
"{}",
"Bold Red on Blue".bold().color(Color::RED).bg(Color::BLUE)
);
println!(
"{}",
"Italic Underlined Green"
.italic()
.underline()
.color(Color::GREEN)
);
println!(
"{}",
"Bright Magenta with Cyan BG"
.bright()
.color(Color::MAGENTA)
.bg(Color::CYAN)
);
println!();
println!("=== 4. GRADIENTS ===");
println!("Foreground Gradients:");
println!(
"{}",
"Red to Blue Gradient".gradient(Color::RED, Color::BLUE, None)
);
println!(
"{}",
"Green to Purple Gradient".gradient(Color::GREEN, Color::PURPLE, None)
);
println!(
"{}",
"Sunset Colors".gradient(Color::ORANGE, Color::DEEP_PINK, None)
);
println!("\nBackground Gradients:");
println!(
"{}",
"Ocean Waves".gradient_bg(Color::DEEP_SKY_BLUE, Color::TEAL, None)
);
println!(
"{}",
"Forest Floor".gradient_bg(Color::DARK_GREEN, Color::BROWN, None)
);
println!("\nMultiline Gradients:");
let multiline = "Line One\nLine Two\nLine Three";
println!("Block mode (each line separate):");
println!(
"{}",
multiline.gradient(Color::RED, Color::BLUE, Some(true))
);
println!("Continuous mode (across lines):");
println!(
"{}",
multiline.gradient(Color::CYAN, Color::MAGENTA, Some(false))
);
println!();
println!("=== 5. SHIMMER EFFECTS ===");
println!("Static Shimmer Renders:");
println!(
"{}",
"✨ Golden Shimmer ✨"
.shimmer(Color::GOLD, None)
.static_render()
);
println!(
"{}",
"💎 Diamond Shine 💎".shine(Color::WHITE).static_render()
);
println!(
"{}",
"🌟 Stellar Glow 🌟"
.glow(Color::YELLOW, 200)
.static_render()
);
println!(
"{}",
"🌈 Rainbow Gradient 🌈"
.shimmer_gradient(Color::RED, Color::VIOLET, None)
.static_render()
);
println!();
println!("=== 6. PREDEFINED COLORS SHOWCASE ===");
let colors = vec![
("Fire", Color::RED),
("Ocean", Color::BLUE),
("Forest", Color::GREEN),
("Sun", Color::YELLOW),
("Lavender", Color::LAVENDER),
("Coral", Color::CORAL),
("Gold", Color::GOLD),
("Silver", Color::SILVER),
("Rose", Color::HOT_PINK),
("Emerald", Color::LIME_GREEN),
];
for (name, color) in colors {
println!("{}", format!("● {}", name).color(color));
}
println!();
println!("=== 7. CREATIVE COMBINATIONS ===");
println!(
"{}",
"T".color(Color::RED).to_string()
+ &"I".color(Color::ORANGE).to_string()
+ &"N".color(Color::YELLOW).to_string()
+ &"T".color(Color::GREEN).to_string()
+ &"E".color(Color::BLUE).to_string()
+ &"R".color(Color::INDIGO).to_string()
+ &"M".color(Color::VIOLET)
);
let _progress_full = "████████████████████";
let _progress_empty = "░░░░░░░░░░░░░░░░░░░░";
println!(
"Progress: [{}{}] 75%",
"███████████████".bg(Color::GREEN),
"░░░░░".color(Color::DARK_GRAY)
);
println!("Status: {} Ready", "●".color(Color::GREEN));
println!("Status: {} Warning", "●".color(Color::YELLOW));
println!("Status: {} Error", "●".color(Color::RED));
println!("\nSyntax Highlighting Example:");
println!(
"{} {} {} {}{}{}",
"fn".color(Color::PURPLE),
"main".color(Color::BLUE),
"()".color(Color::YELLOW),
"{".color(Color::WHITE),
"\n println!".color(Color::CYAN),
"();".color(Color::WHITE)
);
println!("{}", "}".color(Color::WHITE));
println!();
println!("=== 8. PERFORMANCE TEST ===");
let start = std::time::Instant::now();
for i in 0..1000 {
let _colored = format!("Line {}", i).color(Color::BLUE);
}
let duration = start.elapsed();
println!("Rendered 1000 colored strings in: {:?}", duration);
println!(
"\n{}",
"🎉 Tinterm Demo Complete! 🎉".gradient(Color::RED, Color::BLUE, None)
);
println!(
"{}",
"Thank you for using Tinterm!"
.shimmer(Color::GOLD, None)
.static_render()
);
}