Skip to main content

Nodes

Nodes allow you to simply you to modify the elements. Think of them as nodes in procedural software like Houdini. Every node generates code that is used on elements.

Step 1: Blast node

Blast node allows you to create stroked text.

let nodes = [
{
op: {
name: "blast",
}
}
]

If you want, you can specify more options for your node like color and width for the blast node.

let nodes = [ 
{
op: {
name: "blast",
color: "green",
width: "3px"
},
}
]

Step 2: Defining ranges

Breakpoints allow you to control the range where the node will take effect. You can use the range key for this purpose. Range takes a form of array with two values Using range is not mandatory.

  • Probably don't use object.
let nodes = [
{
op: {/*...*/}
range: ["600px", "700px"],
}
]

Step 3: Affecting specific elements

You can also decide to affect specific elements. In this example, only element with id #myID will be affected. If you don't supply any value to the target property, all nodes for which this operations applies will be affected. The id property is not mandatory.

Let's define element with certain ID:

let elements = [
{
type: "text",
id: "#first"
}
];

We then use the target property to affect only this element.

let nodes = [
{
op: {/*...*/},
range: [ /*...*/ ],
target: ["#myID"]
}
];

Seeing it all together

The complete nodes with blast node might look like this. Keep in mind that range and target properties are not mandatory.

let elements = [
{
type: "text",
id: "#first"
}
];


let nodes = [
{
range: ["600px", "700px"],
// rest of the code
op: {
name: "blast",
color: "green",
width: "3px"
},
target: "#myID"
}
]

Then, you can render the result as you are used to:

<div id="#mount"></div>
new Des()
.nodes(nodes)
.add(elements)
.set({
mount: "#mount",
code: true
});