Repository navigation
node style
< Previous: Display | Next: Preview >
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).
Category: Display | Add menu: Display > Style
- 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.
- Geometry (any): the same geometry with the style attached.
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.
- 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.
These four arrived together and they all concern the stroke rather than the shape.
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.
- 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.
- 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.
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.
Found a bug or have feedback? Open an issue | Docs home | Videos | Credits
Getting Started
- Welcome
- How Locus came to be
- Videos
- Community & support
- Installing & launching
- Licensing & activation
- Beta License Agreement
- Core concepts
- Interface tour
- Your first pattern
Modeling - Drawing
- Canvas basics
- Points
- Typing coordinates
- Lines, rays & segments
- Circles & arcs
- Ellipses
- Compass & straightedge
- Rectangles & squares
- Constraining with Shift
Modeling - Editing
- Selecting objects
- Transform tools
- Align & distribute
- Duplicate, detach & ownership
- Regions & booleans
- Cleanup
- Weld & seams
- Style palettes & Re-ink
Annotation
Layers
Modeling Menus
- File
- Edit
- View
-
Draw
- Select
- Point
- Segment
- Line
- Ray
- Circle: Center Point
- Circle: Center Radius
- Circle: Through 3 Points
- Arc: Center, Start, End
- Straightedge
- Compass
- Compass: Radius
- Ellipse: Center + Axes
- Elliptical Arc
- Rectangle: XY-Aligned
- Rectangle: Directed
- Square
- Regular Polygon: Edge
- Regular Polygon: Center, Vertex
- Regular Polygon: Center, Edge Midpoint
- Dimension: Linear
- Dimension: Angle
- Dimension: Radial
- Label
- Construct
- Combine
- Transform
- Select
- Nodes
The Nodes Window
- Basics of visual programming
- How the node graph works
- Sockets & wires
- Adding & connecting nodes
- Sliders & number inputs
- Keeping the node graph tidy
- View menu (Nodes)
- Lists & collections
- Constants & unit conversions
Node Library
- Overview
- Input
-
Primitives
- Point
- Point: Polar
- Segment
- Line
- Ray
- Circle: Center Point
- Circle: Center Radius
- Circle: Apollonius
- Circle Tangent to...
- Circle: 3 Points
- Arc
- Ellipse
- Elliptical Arc
- Rectangle: XY-Aligned
- Rectangle: Directed
- Square
- Regular Polygon: Edge
- Regular Polygon: Center
- Rectangular Grid
- Oblique Grid
- Triangular Grid
- Construct
- Transform
- Image & Fields
- Combine
-
Data
- Measure
- Numbers
- Lists
- Select
- Clean up
- Display
Clusters
Bridging Modeling & Nodes
Patterns & Symmetry
Image-Driven Fields
Saving, Exporting & Files
Preferences & Language
CLI
Reference





