Skip to content

node style

Blossom Merz edited this page Oct 4, 2026 · 20 revisions

Home > Display > Style

< Previous: Display | Next: Preview >

Node Library

Style node icon   Style (node)

Stamp fill, stroke, stroke width, placement, cap and join onto geometry; it rides along through transforms and materializes with the shape in the model (Stroke width 0 = no stroke).

Style effect: a plain white-filled polygon becomes a gold-filled, terracotta-outlined shape, with the Fill, Stroke, and Stroke W inputs called out on the styled result.

Style node diagram

Category: Display | Add menu: Display > Style

Inputs

  • Geometry (any): the shape to stamp the style onto.
  • Fill (color): tints the region's interior. A color with less than full opacity (its Alpha in the Color node's picker) renders translucent. Accepts a list of colors, see below.
  • Stroke (color): colors the outline or open curve. Same alpha behavior as Fill: a translucent stroke color renders translucent. Accepts a list of colors too.
  • Stroke W (any): the stroke width in mm; 0 = no stroke. A number for every object, a value field to set each object's width by where it sits, or a list (one width per object), see below.
  • Placement (number): which side of the path the stroke falls on. A pulldown on the node: On, Inner, Outer. Default On.
  • Cap (number): how an open end is drawn. Round, Butt, Projecting. Default Round.
  • Join (number): how a corner turns. Round, Miter, Bevel. Default Round.
  • Miter Limit (number, editable): how far a miter is allowed to run before it gives up and bevels. Default 10, and only a miter join reads it.
  • Dash (number): the dash length in mm; 0 leaves it undashed.
  • Gap (number): the gap length in mm between dashes.

Outputs

  • Geometry (any): the same geometry with the style attached.

Painting with a color list

Fill and Stroke each take either one color or a list of colors. A single color behaves as it always has: every item gets it.

A list maps across the geometry's items instead. Each region or contour takes the color at its own index, and the list cycles when there are more items than colors, so a list of three colors paints a twelve-item collection in a repeating run of three.

Build the list with Collect: wire several Color nodes into it and the result is a color list ready to wire straight into Fill. For a color that varies per item rather than in a fixed cycle, index the list with Item at Index driven by a per-item index.

The Stroke W input - number, field or list

  • A number: one stroke width for every object, as before.
  • A value field: each object gets its own width, read from the field once at the object's center - so a tiling under an Image Sample field (through a Graph Mapper if you want to shape the response) draws each tile with a line weight that follows the image's tone at that spot. A region with holes is one object and gets one width. A ray reads the field at its start point; a dimension at its first point. A negative field value gives width 0, never a negative stroke.
  • A list: each object takes the width at its own index. Unlike a color list, a width list does not cycle: objects past the end of a short list get width 0 (no stroke), and extra values are ignored.

Placement, cap and join

These four arrived together and they all concern the stroke rather than the shape.

Placement: which side of the line the ink sits on

The same four-sided shape three times, each with its true path drawn as a thin dark hairline and its stroke as a thick green band. Under Placement On the band straddles the hairline. Under Inner it sits wholly inside it, its outer edge landing on the hairline. Under Outer it sits wholly outside, its inner edge landing on the hairline. The hairline is in the same place in all three, because placement never moves the path.

A stroke of a given width can straddle its path, which is On, the default and what every drawing did before this existed. Or it can sit wholly Inner, or wholly Outer. Illustrator calls the same thing Align Stroke.

It is one rule rather than two. Inner puts the ink half a width to the left of travel, outer half a width to the right. The interior of a counterclockwise contour is on its left, which is why that single sentence covers a closed region and a lone segment alike. An open curve has no inside, but it does have a direction, so left and right of travel are just as well defined on it. Turn on Show Curve Direction and which way a curve runs is on screen in front of you, so Outer is never something you have to guess at.

Placement is cosmetic. It does not touch the stored path. Booleans, intersections, snapping and picking all go on using the true one. It is resolved at the only two moments a stroke becomes visible: painting the canvas, and writing the file. Neither SVG nor DXF has a stroke-alignment property to hand the decision to, so an export writes the offset path stroked down its middle, which comes out looking the same.

Cap: how an open end is drawn

One thick green line three times, with dashed markers at its two endpoints. Under Cap Round the ink finishes in a half-disc centered on each endpoint, reaching past the marker. Under Butt it stops dead on the markers. Under Projecting it runs half a width past them, square rather than rounded.

  • Round, a half-disc centered on the endpoint. The default.
  • Butt, the ink stopping dead at the endpoint.
  • Projecting, the ink running half a width past it.

Only an open end has a cap, so a closed loop is unaffected.

Join: how a corner turns

The same sharp corner three times, drawn as a thick green stroke. Under Join Round the corner is filled with an arc. Under Miter the two edges run on until they meet in a point. Under Bevel that point is taken straight off, leaving a short flat across the corner.

  • Round, the corner filled with an arc. The default.
  • Miter, the two edges running on until they meet in a point.
  • Bevel, that point taken straight off.

Only a corner has a join, so a lone segment or a single arc has none. A closed region, which is all corner and no end, is the shape where the choice shows most.

Miter Limit

The same closing corner twice, both with a miter join. At Miter Limit 10 the point is allowed to run out a long way. At Miter Limit 1 the renderer gives up and bevels it instead, leaving a flat across the corner. Nothing about the corner changed between the two, only the limit.

A miter at a sharp corner runs away: the further the angle closes, the further the point flies out. So both the canvas and the file give up past a certain ratio of miter length to stroke width and bevel the corner instead. Miter Limit is that ratio. It defaults to 10, it only matters when Join is Miter, and a value below 1 is ignored in favor of the default.

Note

Round is the default for both Cap and Join because round is what Locus has always drawn on screen. Exported files used to say nothing about either, so they fell back to SVG's own defaults, which are butt ends and miter corners: a drawing came out of the export with squared-off ends and pointed corners it had never shown. Cap and Join carrying a value is what makes the file agree with the screen. The miter limit has the same problem one level down, since the canvas starts at 10 and SVG at 4, so the limit is written out whenever the join is a miter rather than left to whichever default happens to be reading.

< Previous: Display | Next: Preview >

Locus Studio Docs

Home

Getting Started

Modeling - Drawing

Modeling - Editing

Annotation

Layers

Modeling Menus

The Nodes Window

Node Library

Clusters

Bridging Modeling & Nodes

Patterns & Symmetry

Image-Driven Fields

Saving, Exporting & Files

Preferences & Language

CLI

Reference

Clone this wiki locally