-
Notifications
You must be signed in to change notification settings - Fork 26
CssBuilder.AddClass Method
Ed Charbeneau edited this page Jan 15, 2020
·
8 revisions
var ClassToRender = new CssBuilder("item-one")
.AddClass("item-two")
.Build();
// ClassToRender: "item-one item-two"var ClassToRender = CssBuilder.Default("item-one")
.AddClass("item-two", when: true)
.AddClass("item-three", when: false)
.AddClass("item-four")
.Build();
// ClassToRender: "item-one item-two item-four"Func<bool> isRendered = () => false;
var ClassToRender = CssBuilder.Default("item-one")
.AddClass("item-two", when: true)
.AddClass("item-three", when: isRendered)
.AddClass("item-four")
.Build();
// ClassToRender: "item-one item-two item-four"Using a Func<string> as a parameter ensures that the method is called only when a condition is met. This allows CssBuilder to easily chain something as complex as a dictionary lookup and ToString method call without throwing a key not found exception.
IReadOnlyDictionary<string, object> attributes = new Dictionary<string, object> { { "class", "my-custom-class-1" } };
var ClassToRender = CssBuilder.Default("item-one")
.AddClass(()=> attributes["class"].ToString(), when: attributes.ContainsKey("class"))
.Build();
// ClassToRender: "item-one my-custom-class-1"// contribute?var ClassToRender = new CssBuilder("item-one")
.AddClass("item-two", when: hasTwo)
.AddClass(new CssBuilder("item-three")
.AddClass("item-foo", false)
.AddClass("item-sub-three"),
when: hasThree)
.AddClass("item-four")
.AddClass("item-five", when: hasFive)
.Build();
//ClassToRender: "item-one item-three item-sub-three item-four"// contribute?