borders/
borders.rs

1use termio::StyledText;
2use termio::Termio;
3
4fn main() {
5    let mut parser = Termio::new();
6    
7    let tcss = r#"
8        @element "solid-red" {
9            border-style: solid;
10            border-color: red;
11            padding: 1;
12        }
13
14        @element "dashed-green" {
15            border-style: dashed;
16            border-color: green;
17            padding: 1;
18        }
19
20        @element "rounded-blue" {
21            border-style: rounded;
22            border-color: blue;
23            padding: 1;
24        }
25
26        @element "fancy-yellow" {
27            border-style: solid;
28            border-color: yellow;
29            color: yellow;
30            background: black;
31            decoration: bold;
32            padding: 1 2;
33        }
34
35        @element "rainbow" {
36            border-style: rounded;
37            border-color: i-magenta;
38            color: cyan;
39            background: black;
40            decoration: bold italic;
41            padding: 2;
42            margin: 1;
43        }
44
45        @element "outer" {
46            border-style: dashed;
47            border-color: red;
48            color: white;
49            background: black;
50            padding: 2;
51            margin: 1;
52        }
53
54        @element "inner" {
55            border-style: solid;
56            border-color: cyan;
57            color: i-green;
58            background: rgb(44, 202, 0);
59            padding: 1;
60            margin: 0;
61        }
62    "#;
63
64    parser.parse(tcss).unwrap();
65
66    // Basic border styles
67    println!("{}", "Simple solid red border".style("solid-red", &parser));
68    println!("{}", "Dashed green border".style("dashed-green", &parser));
69    println!("{}", "Rounded blue border".style("rounded-blue", &parser));
70
71    println!("\nStyled content with borders:");
72    println!("{}", "Fancy Yellow Box".style("fancy-yellow", &parser));
73    println!("{}", "Rainbow Box with Margins".style("rainbow", &parser));
74
75    println!("\nNested borders:");
76    let outer_start = "Outer box containing:".style("outer", &parser);
77    let inner_box = "This is an inner box\nwith multiple lines\nof styled content".style("inner", &parser);
78    println!("{}\n{}", outer_start, inner_box);
79}