Object Types & Properties
Every element on the canvas in Piko is an object. Objects are organized in a tree structure visible in the Layers panel. This page lists every object type and the properties you can configure on each.
Common properties
Section titled “Common properties”All objects share the following properties regardless of type:
| Property | Type | Description |
|---|---|---|
| Name | string | User-visible label shown in the Layers panel. |
| X, Y | number | Position of the top-left corner of the unrotated bounding rectangle. |
| Width, Height | number | Dimensions of the object. |
| Rotation | number | Rotation angle in radians. The pivot point is at (X, Y). |
| Opacity | 0—1 | Object-level opacity applied on top of any fill or stroke opacity. |
| Visible | boolean | Show or hide the object on the canvas. |
| Locked | boolean | Prevent the object from being selected or edited. |
| Fills | FillLayer[] | Array of fill paint layers (solid color or gradient). |
| Strokes | StrokeLayer[] | Array of stroke paint layers. |
| Effects | EffectLayer[] | Array of effect layers (drop shadow, inner shadow, blur). |
| Export Settings | ExportSetting[] | Per-object export configurations used by Export Selected. |
Rectangle
Section titled “Rectangle”A basic rectangular shape with optional rounded corners.
| Property | Type | Description |
|---|---|---|
| Corner Radius | number (0+) | Radius in pixels applied to all four corners when linked. |
| Per-Corner Radius | TL, TR, BR, BL | Independent radius for each corner when unlinked. |
| Corner Smoothing | 0–100% | Controls superellipse interpolation. 0% = standard circular arcs, ~50% = iOS-style squircle, 100% = maximum smoothing. |
Ellipse
Section titled “Ellipse”A standard ellipse defined by its bounding rectangle. Rendered as a signed distance field (SDF) for crisp edges at any zoom level.
No additional properties beyond the common set.
A container object that can clip its children to its bounds. Frames are the primary way to organize and group content with layout control.
| Property | Type | Description |
|---|---|---|
| Clips Content | boolean | When enabled, children that extend beyond the frame bounds are clipped. |
| Corner Radius | number (0+) | Radius applied to the frame outline. |
| Corner Smoothing | 0–100% | Superellipse interpolation for rounded corners. |
| Children | Node[] | Ordered array of child objects. |
A lightweight container that bundles objects together without clipping. The group’s bounding rectangle is automatically calculated from its children.
| Property | Type | Description |
|---|---|---|
| Children | Node[] | Ordered array of child objects. |
A freeform vector shape defined by a series of points with bezier control handles.
| Property | Type | Description |
|---|---|---|
| Path Data | Point[] | Array of points, each with position and optional bezier in/out handles. |
| Closed | boolean | Whether the path forms a closed shape. |
Point types:
| Type | Behavior |
|---|---|
| Corner | No smoothing. Handles can be positioned independently. |
| Symmetric | Both handles mirror each other in angle and length. |
| Smooth | Handles share the same angle but can differ in length. |
| Free | Each handle is fully independent. |
A text object that renders a string with configurable typography settings.
| Property | Type | Description |
|---|---|---|
| Content | string | The text string to display. |
| Font Family | string | Name of the font family. |
| Font Size | number | Size in pixels. |
| Font Weight | 100—900 | Weight value from thin (100) to black (900). |
| Font Style | string | Normal or italic. |
| Text Align | left, center, right | Horizontal text alignment. |
| Vertical Align | top, middle, bottom | Vertical alignment within the text bounding box. |
| Text Decoration | string | Underline, strikethrough, or none. |
| Line Height | number | Spacing between lines. |
| Letter Spacing | number | Additional horizontal spacing between characters. |
| Auto Width | boolean | When enabled, the text box grows horizontally to fit its content. |
Polygon
Section titled “Polygon”A regular polygon with a configurable number of sides.
| Property | Type | Description |
|---|---|---|
| Sides | 3—64 | Number of sides. |
| Inner Radius Ratio | 0—1 | Pulls vertices inward to create star-like indentations. At 1 the polygon is regular; at 0 all vertices collapse to the center. |
| Corner Radius | number (0+) | Rounding applied to each vertex. |
| Corner Smoothing | 0–100% | Superellipse interpolation for rounded vertices. |
A star shape with configurable point count and inner radius.
| Property | Type | Description |
|---|---|---|
| Points | 3—64 | Number of outer points on the star. |
| Inner Radius Ratio | 0.01—0.99 | Controls how far the inner vertices are pulled toward the center. Lower values produce sharper, thinner arms. |
| Corner Radius | number (0+) | Rounding applied to each point and inner vertex. |
| Corner Smoothing | 0–100% | Superellipse interpolation for rounded points. |
A straight line segment with optional arrowheads on either end.
| Property | Type | Description |
|---|---|---|
| Start Arrowhead | none, triangle, open, diamond, circle | Arrowhead style at the start of the line. |
| End Arrowhead | none, triangle, open, diamond, circle | Arrowhead style at the end of the line. |
| Arrowhead Size | number | Scale of the arrowhead relative to the stroke width. |
Boolean Group
Section titled “Boolean Group”A compound shape created by combining two or more child objects using a boolean operation. The result renders as a single shape.
| Property | Type | Description |
|---|---|---|
| Boolean Operation | union, subtract, intersect, exclude | The operation used to combine children. |
| Children | Node[] | The child objects being combined. Order matters — the first (bottom) child determines default fills and strokes. |
Bitmap
Section titled “Bitmap”A raster image object created by importing or pasting an image.
| Property | Type | Description |
|---|---|---|
| Pixel Width | number (read-only) | Original width of the source image in pixels. |
| Pixel Height | number (read-only) | Original height of the source image in pixels. |
| Filtering | nearest, bilinear | Interpolation method used when scaling. Use nearest for pixel art; bilinear for photos and illustrations. |
| Blend Mode | enum (16 modes) | How the bitmap composites with content below it. Supports standard blend modes such as Normal, Multiply, Screen, Overlay, and others. |