Skip to main content

Attributes

Attributes are a way of storing untyped key/value pairs on elements. These generally have two uses: styling and meta data tracking.

An attribute can be set in a few different ways on elements.

As a member declaration

In a top level declaration, you can declare an attribute with the attribute member syntax. attr: followed by the key name of the attribute optionally followed by a value expression. The value expression can be any expression that returns a string, boolean value, or enum value.

template Thing {

attr:valid;

attr:abc = "xyz";

attr:someKeyCode = KeyCode.A;

attr:somethingBoolean = true;

attr:someExpression = ComputeSomething();

}

As an invocation member

When applying an attribute to an element invocation, the same rules/apis apply as in the top level declaration member version.

template Example render {

SomeElement(attr:valid);

SomeElement(attr:abc = "xyz");

SomeElement(attr:someKeyCode = KeyCode.A);

SomeElement(attr:somethingBoolean = true);

SomeElement(attr:someExpression = ComputeSomething());


Using an ElementReference

When using an ElementReference to set attributes you instead use the C# api. There is also an api for reading attributes with string GetAttribute(string key) and bool HasAttribute(string key).


elementReference.SetAttribute("key", value);