Canvas layer: a named container that groups shapes for independent caching on the renderer side.
Each layer maps to an iced Cache on the Rust side; only changed
layers are re-tessellated. The name prop identifies the layer
for cache invalidation.
On the wire this encodes as type: "__layer__" to match what the
renderer expects.
Example
Layer.new("bg")
|> Layer.push(rect(0, 0, 800, 600, fill: "#f0f0f0"))
|> Layer.push(rect(10, 10, 50, 200, fill: "#3498db"))
Summary
Functions
Converts this widget struct to a ui_node() map.
Appends multiple children to the widget.
Layer name for renderer cache keying.
Creates a new element without an explicit ID (auto-assigned by parent container).
Creates a new element with the given ID and keyword options.
Appends a child to the widget.
Returns the element type string for the wire protocol.
Applies keyword options to an existing widget struct.
Types
@type t() :: %Plushie.Canvas.Layer{ children: [Plushie.Widget.ui_node()], id: String.t() | nil, name: (String.t() | atom()) | Plushie.Animation.Transition.t() | Plushie.Animation.Spring.t() | Plushie.Animation.Sequence.t() | nil }
Functions
@spec build(widget :: t()) :: Plushie.Widget.ui_node()
Converts this widget struct to a ui_node() map.
@spec extend(widget :: t(), children :: [Plushie.Widget.child()]) :: t()
Appends multiple children to the widget.
Layer name for renderer cache keying.
Accepts String.t() | atom().
Creates a new element without an explicit ID (auto-assigned by parent container).
Creates a new element with the given ID and keyword options.
@spec push(widget :: t(), child :: Plushie.Widget.child()) :: t()
Appends a child to the widget.
@spec type_name() :: String.t()
Returns the element type string for the wire protocol.
Applies keyword options to an existing widget struct.