Traits / LayoutLayer
LayoutLayer
Governs sequencing, blending, and shared channel behavior for layered mark compositions.
Generated from @oods/foundry 0.10.1
- Group
- viz.layout
- Maturity
- beta
- Contexts
- none listed
Fields it adds
| Field | Type | Required | Description |
|---|---|---|---|
viz_layout_type | string (layer) | yes | Normalized layout identifier. |
viz_layout_blend_mode | string (normal, multiply, screen, overlay) | no | Blend/composite mode applied to layered marks. |
viz_layout_sync_interactions | boolean | no | Whether interaction predicates are shared across layers. |
viz_layout_shared_channels | string[] | no | Channels that share a domain across layered marks. |
viz_layout_order_hint | string[] | no | Optional ordered list describing layer precedence. |
viz_layout_projection | string (cartesian, polar, radial) | no | Projection metadata forwarded to adapters and docs. |
What it shows in each context
This trait places no component of its own.
Parameters
blendModestring- Blend/composite mode applied across stacked marks.
syncInteractionsboolean- Whether interaction predicates propagate across all layers.
sharedChannelsstring[]- Channels whose scales remain synchronized across layers.
orderHintstring[]- Optional list describing explicit bottom→top layer ordering. Entries name layers by mark options.id when set (preferred — repeated same-trait marks need distinct ids to be addressable), else by mark trait.
projectionstring- Projection hint for adapters when layering across spaces.
Objects that use it
No shipped object uses this trait.
The trait file
traits/viz/layout-layer.trait.yaml
trait:
name: LayoutLayer
version: 0.2.0
description: >
Governs sequencing, blending, and shared channel behavior for layered mark
compositions.
category: viz.layout
tags:
- viz
- layout
- layer
- composition
parameters:
- name: blendMode
type: string
required: false
description: Blend/composite mode applied across stacked marks.
default: normal
validation:
enum: [normal, multiply, screen, overlay]
- name: syncInteractions
type: boolean
required: false
description: Whether interaction predicates propagate across all layers.
default: true
- name: sharedChannels
type: string[]
required: false
description: Channels whose scales remain synchronized across layers.
default: [x, y, color]
- name: orderHint
type: string[]
required: false
description: >-
Optional list describing explicit bottom→top layer ordering. Entries name
layers by mark options.id when set (preferred — repeated same-trait marks
need distinct ids to be addressable), else by mark trait.
- name: projection
type: string
required: false
description: Projection hint for adapters when layering across spaces.
default: cartesian
validation:
enum: [cartesian, polar, radial]
schema:
viz_layout_type:
type: string
required: true
description: Normalized layout identifier.
default: layer
validation:
enum: [layer]
viz_layout_blend_mode:
type: string
required: false
description: Blend/composite mode applied to layered marks.
defaultFromParameter: blendMode
validation:
enum: [normal, multiply, screen, overlay]
viz_layout_sync_interactions:
type: boolean
required: false
description: Whether interaction predicates are shared across layers.
defaultFromParameter: syncInteractions
viz_layout_shared_channels:
type: string[]
required: false
description: Channels that share a domain across layered marks.
defaultFromParameter: sharedChannels
viz_layout_order_hint:
type: string[]
required: false
description: Optional ordered list describing layer precedence.
defaultFromParameter: orderHint
viz_layout_projection:
type: string
required: false
description: Projection metadata forwarded to adapters and docs.
defaultFromParameter: projection
validation:
enum: [cartesian, polar, radial]
semantics:
viz_layout_type:
semantic_type: viz.layout.type
ui_hints:
component: Badge
viz_layout_blend_mode:
semantic_type: viz.layout.layer.blend
ui_hints:
component: Badge
viz_layout_sync_interactions:
semantic_type: viz.layout.layer.sync_interactions
ui_hints:
component: BooleanPill
viz_layout_shared_channels:
semantic_type: viz.layout.shared_channels
ui_hints:
component: ListSummary
viz_layout_order_hint:
semantic_type: viz.layout.layer.order
ui_hints:
component: ListSummary
viz_layout_projection:
semantic_type: viz.layout.projection
ui_hints:
component: Badge
tokens:
viz.layout.layer.blend: var(--cmp-viz-layer-blend)
dependencies:
- trait: MarkBar
optional: true
- trait: MarkLine
optional: true
- trait: MarkPoint
optional: true
- trait: MarkArea
optional: true
metadata:
created: '2025-11-16'
updated: '2026-02-28'
owners:
- viz@oods.systems
maturity: beta
accessibility:
keyboard: Layer order is keyboard-traversable. Focus moves through layers bottom to top.
screenreader: Announces layer count and blend mode (e.g., "Layered visualization, 3 layers, normal blend").
examples:
- LineWithConfidenceBand
- BarWithTrendOverlay
- ScatterWithRegressionLine
references:
- objects/provenance.v1.json#/references/ref-c52ae10b7f25