> For the complete documentation index, see [llms.txt](https://codalin.gitbook.io/nodalin-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://codalin.gitbook.io/nodalin-docs/quick-guide/nodes.md).

# Nodes

> **Nodes are the building blocks of your visuals.** Each node performs a specific function — generating shapes, processing data, applying effects, or outputting values.&#x20;

In this chapter we will dive deeper into how Nodalin handles nodes, their state, and their connections.

## Node Structure

* Nodes in Nodalin are circular.
* **Input connections** appear as arrows pointing towards the **top or left side** of a node.&#x20;
* **Output connections** extend from the **bottom or right side** of a node.

This layout makes graphs flow naturally to the **right, bottom, or a combination of both**.

<figure><img src="https://937151318-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F44MuVIHBk5o5yfcGn64w%2Fuploads%2FBCrPNRUEvUzpZrRbv3nW%2Fniode-ezgif.com-video-to-gif-converter.gif?alt=media&amp;token=c76f3f12-1442-4b18-b2c4-ecc866a6accf" alt="" width="269"><figcaption></figcaption></figure>

## **What are Node Properties?**

Properties are the settings that control how a node behaves. Each property has a name and a value. You can set properties manually, or animate them in real time by connecting other nodes as inputs.

<div data-with-frame="true"><figure><img src="https://937151318-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F44MuVIHBk5o5yfcGn64w%2Fuploads%2FhfbdmykPlLmmFsIPXhVz%2Fimage.png?alt=media&amp;token=0017c1a0-bf90-4b44-a222-eb2318038d2b" alt=""><figcaption></figcaption></figure></div>

In the example above, the Triangle node <i class="fa-triangle">:triangle:</i> has 5 **input** connections. Each connection line displays a label: `outline`, `strokeWidth`, `Side`, `y` and `rot` . **They denote which property they are currently connected to.**&#x20;

{% hint style="info" %}
Connection lines automatically adjust their curve and orientation as you move nodes around.
{% endhint %}

## Why Not Boxes?

Nodes in Nodalin use compact geometric shapes and don’t expose their properties as visible input slots. Unlike most node-based systems, this design keeps the graph clean, readable, and visually consistent — every node remains visually balanced and compact.

Instead of placing rows of input pins around each node, Nodalin uses a simpler, more streamlined way to work with properties.

<figure><img src="https://937151318-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F44MuVIHBk5o5yfcGn64w%2Fuploads%2FKOOa80GCeslynFyBjBN2%2Fimage.png?alt=media&amp;token=911bf3de-5f8e-4adb-b99f-027712caad47" alt="" width="563"><figcaption></figcaption></figure>

Properties are managed internally and can be controlled in two ways:

* Directly, through the node’s Property menu — ideal for manual tweaking and fine control.
* Via connections, by linking other nodes that drive those properties.

This approach reduces visual clutter, removes unnecessary noise, and makes iteration faster while building your graph.

### How Connections Work

Nodalin uses automatic property assignment, allowing you to connect nodes without manual configuration.

When you connect a node, Nodalin checks its output type and assigns it to the first compatible property on the target node.

In the example below:

* A **Number** node connects to the Square's `side` property
* A second **Number** node connects to `x` (horizontal position) property
* A **Color** node (automatically) connects to the Square's `color` property

<div data-with-frame="true"><figure><img src="https://937151318-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F44MuVIHBk5o5yfcGn64w%2Fuploads%2FrPFRSig36RMrTdPIdNcI%2Fconnecting.gif?alt=media&amp;token=b900dcb4-64b1-4dfe-8ef7-f91e59016e17" alt=""><figcaption></figcaption></figure></div>

You might be wondering, *“How do I adjust a node's properties?”* — and that’s exactly what we’ll cover in the next chapters!
