> For the complete documentation index, see [llms.txt](https://docs.plume.moe/norska/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.plume.moe/norska/core/properties.md).

# Properties

You can modify any object property, regardless of depth, by adding `$` in front of its name and separating levels with a dot.&#x20;

```html
<br x-3.meshBasicMaterial x-3.$color="'red'" />
```

{% hint style="warning" %}
No need to add a `$` in front of each property level, just the first one. This allows Norska to differentiate between an attempted class instantiation and a property change.
{% endhint %}

Any properties associated with objects featuring a `.set()` method can be assigned values directly by passing the same arguments as one would for the set method. For instance, instead of specifying `$color={new $three.Color('red')}`,  you can directly use `$color="'red'"` .

When `set()` requires several arguments, you can use an array like this `$position="[1, 2, 3]"`.

Just using a directive with no props will return `true` by default.

{% hint style="info" %}
Props with camel case key names can be accessed by splitting the words with `-` since HTML attributes are not case-sensitive
{% endhint %}

<pre class="language-html"><code class="lang-html"><strong>&#x3C;div
</strong><strong>    x-3.mesh 
</strong><strong>    x-3.$cast-shadow 
</strong><strong>    x-3.$receive-shadow
</strong><strong>>
</strong> &#x3C;!-- ... -->
&#x3C;/div>
</code></pre>
