pub struct FrameNode {Show 26 fields
pub id: String,
pub name: Option<String>,
pub role: Option<String>,
pub x: Option<PropertyValue>,
pub y: Option<PropertyValue>,
pub w: Option<PropertyValue>,
pub h: Option<PropertyValue>,
pub layout: Option<String>,
pub columns: Option<u32>,
pub rows: Option<u32>,
pub opacity: Option<f64>,
pub visible: Option<bool>,
pub locked: Option<bool>,
pub rotate: Option<Dimension>,
pub blend_mode: Option<String>,
pub blur: Option<Dimension>,
pub style: Option<String>,
pub children: Vec<Node>,
pub anchor: Option<String>,
pub anchor_zone: Option<String>,
pub anchor_sibling: Option<String>,
pub anchor_edge: Option<String>,
pub anchor_gap: Option<Dimension>,
pub anchor_parent: Option<bool>,
pub source_span: Option<Span>,
pub unknown_props: BTreeMap<String, UnknownProperty>,
}Expand description
A frame node — a container that CLIPS its children to its rectangular
bounds and renders them in source order (first child = bottom of z-order).
Unlike group, a frame has required geometry (x, y, w, h): these four
dimensions define the clip rectangle. Children are rendered at their
absolute page coordinates — frame does NOT translate children (dx/dy
are unchanged). The frame only clips; it has no fill of its own in v0.
Opacity cascades (multiplies) into all descendant node alphas, exactly as
in GroupNode.
Fields§
§id: String§name: Option<String>§role: Option<String>§x: Option<PropertyValue>Required: clip-rectangle left edge in page coordinates.
y: Option<PropertyValue>Required: clip-rectangle top edge in page coordinates.
w: Option<PropertyValue>Required: clip-rectangle width.
h: Option<PropertyValue>Required: clip-rectangle height.
layout: Option<String>Layout algorithm hint (“absolute”/“flow”/“grid”). "flow" activates a
vertical-stack flow layout (uniform padding inset + gap between
children, resolved from the frame’s style); "grid" tiles children
row-major into a columns × rows grid inside the padded content box with
uniform gap gutters; any other value (including None and "absolute")
keeps the clip-only absolute-positioning model.
columns: Option<u32>Grid column count for layout="grid" (ignored otherwise). When the frame
uses grid layout, children tile row-major into columns columns; absent →
treated as 1 column. KDL: columns=2.
rows: Option<u32>Grid row count for layout="grid" (ignored otherwise). Absent → derived as
ceil(child_count / columns) so the grid grows to fit its children. KDL:
rows=3.
opacity: Option<f64>Opacity that cascades (multiplies) into all descendant node alphas.
visible: Option<bool>When Some(false) the entire subtree (including the clip) is excluded
from the render.
locked: Option<bool>§rotate: Option<Dimension>Rotation in degrees, applied at render about the node’s center (the subtree rotates with it; see the compile-site notes for clip limitations).
blend_mode: Option<String>Compositing blend mode: "normal" (default) or one of the 11 separable
blends. None/"normal" render source-over (byte-identical).
blur: Option<Dimension>Gaussian blur radius applied to the node’s own rendered ink (sigma in
the declared unit, resolved to pixels at compile time). None / 0 →
no blur (byte-identical to having no attribute).
style: Option<String>§children: Vec<Node>Child nodes in source order.
anchor: Option<String>Page-relative placement anchor (one of the nine named positions, e.g.
"bottom-right"). When present and recognized, the compile step derives
the node’s x and/or y from the page and node dimensions. An explicitly-
authored x or y always wins.
anchor_zone: Option<String>Optional safe-zone reference for the anchor. See RectNode::anchor_zone.
anchor_sibling: Option<String>Optional sibling node id for sibling-relative anchor positioning.
See RectNode::anchor_sibling.
anchor_edge: Option<String>Adjacent-placement edge relative to anchor-sibling: above/below/before/after.
See RectNode::anchor_edge.
anchor_gap: Option<Dimension>Gap (px) between this node and its anchor-sibling edge when anchor-edge is set.
See RectNode::anchor_gap.
anchor_parent: Option<bool>Parent-relative anchor toggle. See RectNode::anchor_parent.
source_span: Option<Span>Source declaration span, when available.
unknown_props: BTreeMap<String, UnknownProperty>Unknown properties preserved for forward-compat.