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 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}