Skenra types

Home · ← Element reference · Types index · Attributes index · JavaScript API

Every declarative value type used across the attribute and config tables, sourced from the scene-description schema. A Type cell that names one of these links here (standard types link to their normative spec).

Standard types

<angle> standard · spec ↗
DescriptionA CSS angle — units mandatory.
Example"90deg" "0.25turn" "1.5rad"
<time> standard · spec ↗
DescriptionA CSS time — units mandatory.
Example"500ms" "2s"
<color> standard · spec ↗
DescriptionA CSS color string.
Example"white" "#ff8800" "rgb(255 136 0)"
<easing-function> standard · spec ↗
DescriptionA CSS easing function or a named Skenra easing.
Example"ease-in-out" "cubic-bezier(0.4, 0, 0.2, 1)" "steps(4, end)" "easeInOutCubic"
<id> standard · spec ↗
DescriptionThis element's own unique identifier (must not start with #).
Example"sun" "main-camera"
<blend-mode> standard · spec ↗
DescriptionA CSS compositing blend mode (plus-lighter is CSS Compositing Level 2's additive plus operator, whose overlaps sum toward white).
Values"normal" "multiply" "screen" "overlay" "darken" "lighten" "color-dodge" "color-burn" "hard-light" "soft-light" "difference" "exclusion" "hue" "saturation" "color" "luminosity" "plus-lighter"
Example"normal"
<backdrop-blend-mode> standard · spec ↗
DescriptionA CSS blend mode applied across the material↔backdrop boundary (the fixed-function-realizable subset: normal, multiply, screen, plus-lighter — the last being the additive fireworks-glow mode).
Values"normal" "multiply" "screen" "plus-lighter"
Example"normal"
<begin-value-list> standard · spec ↗
DescriptionA SMIL begin-value list (animation start times / sync-bases).
Syntax<begin-value>[;<begin-value>]*
Example"0s" "1s; 3s" "other.end+0.5s"
<end-value-list> standard · spec ↗
DescriptionA SMIL end-value list (animation end times / sync-bases).
Syntax<end-value>[;<end-value>]*
Example"4s" "other.begin+2s"
<iteration-count> standard · spec ↗
DescriptionAn animation iteration count (a number or Infinity).
Composition<number> | Infinity
Example3 "Infinity"
<stroke-line-cap> standard · spec ↗
DescriptionThe stroke end-cap shape.
Values"butt" "round" "square"
Example"butt"
<stroke-line-join> standard · spec ↗
DescriptionThe stroke corner-join shape.
Values"miter" "round" "bevel"
Example"miter"
<playback-direction> standard · spec ↗
DescriptionAnimation playback direction (Web Animations).
Values"normal" "reverse" "alternate" "alternate-reverse"
Example"normal"
<fill-mode> standard · spec ↗
DescriptionAnimation fill mode (CSS Animations).
Values"none" "forwards" "backwards" "both" "auto"
Example"none"
<composite-operation> standard · spec ↗
DescriptionKeyframe/effect composite operation (Web Animations).
Values"replace" "add" "accumulate"
Example"replace"

Enumerated types

<orientation-axis> enum
DescriptionA signed coordinate axis.
Values"+x" "-x" "+y" "-y" "+z" "-z"
Example"+x"
<anchor> enum
DescriptionA nine-way box-anchor alignment.
Values"center" "top" "bottom" "left" "right" "top-left" "top-right" "bottom-left" "bottom-right"
Example"center"
<sphere-type> enum
DescriptionThe sphere tessellation family.
Values"standard" "hemisphere" "tetrahedron" "hexahedron" "octahedron" "icosahedron"
Example"standard"
<platonic-solid> enum
DescriptionA platonic-solid base shape.
Values"tetrahedron" "hexahedron" "octahedron" "icosahedron"
Example"tetrahedron"
<voronoi-type> enum
DescriptionWhich plane(s) a Voronoi field packs cells in; a 2D type is constant along the omitted axis.
Values"xy" "yz" "zx" "xyz"
Example"xy"
<voronoi-output> enum
DescriptionThe scalar a Voronoi field emits.
Values"distance-to-edge" "f1" "f2" "cell-id"
Example"distance-to-edge"
<cull-mode> enum
DescriptionWhich triangle facings are culled.
Values"front" "back" "none"
Example"front"
<selection-type> enum
DescriptionThe kind of mesh topology a selection addresses (face = triangle, edge, or point/vertex).
Values"face" "edge" "point"
Example"face"
<scalar-blend-mode> enum
DescriptionA scalar-field blend mode token (field compositing — distinct from CSS color <blend-mode>).
Values"max" "min" "multiply" "add" "subtract"
Example"max"
<raster-tile> enum
DescriptionRaster color-source tiling: none (one bounded image, transparent outside — the projector model) or repeat (seamless tiling across the projection plane).
Values"none" "repeat"
Example"none"
<raster-projection> enum
DescriptionRaster color-source projection: auto (the paint drives the parametrization — stroke paints sample stroke-parametrically, surface paints world-planarly) or uv (sample at the mesh's authored per-vertex texture coordinates; stroke consumers keep their parametric mapping).
Values"auto" "uv"
Example"auto"
<custom-wgsl-alpha-mode> enum
DescriptionAuthor-declared fragment classification of a custom-WGSL paint. auto (the default) is conservative — both opaque and translucent, so the material routes through A-buffer collection. opaque skips collection when nothing else is translucent. translucent keeps collection. cutout is a hard 0/1 alpha mask: crisp opaque coverage with transparent holes (kept pixels write depth and cast a holed shadow).
Values"auto" "opaque" "translucent" "cutout"
Example"auto"
<compute-output-kind> enum
DescriptionThe typed output contract of a compute node: spline-polyline (16-byte spline vertices), point-matrices (64-byte per-clone transform matrices), color-array (16-byte linear RGBA records, an evenly-spaced palette), or color-stops (32-byte (offset, color) records — an offset vec4 with the [0,1] position in .x, then a linear-RGBA color vec4 — a non-uniformly spaced stop table looked up by position; offsets must be monotonically non-decreasing in [0,1]). Fixes the record layout and the handle type consumers receive.
Values"spline-polyline" "point-matrices" "color-array" "color-stops"
Example"spline-polyline"
<points-basis> enum
DescriptionA control-point interpolation basis.
Values"bezier" "bspline" "catmullRom" "linear"
Example"bezier"
<points-wrap> enum
DescriptionHow a points spline wraps its ends.
Values"open" "closed" "pinned"
Example"open"
<width-profile-basis> enum
DescriptionA width-profile interpolation basis.
Example"linear" "bezier" "catmullRom" "bspline"
<stroke-space> enum
DescriptionWhether stroke width is screen- or world-space.
Values"screen" "world"
Example"screen"
<ordered-dither-pattern> enum
DescriptionAn ordered-dither threshold pattern.
Values"bayer2" "bayer4" "bayer8" "bayer16" "white-noise"
Example"bayer2"
<dither-shape> enum
DescriptionA dither dot shape.
Values"circle" "square" "diamond" "line"
Example"circle"
<paper-projection> enum
DescriptionHow the paper texture domain is built: screen-space (the printed look) or tri-planar surface attachment.
Values"screen" "triplanar"
Example"screen"
<color-interpolation> enum
DescriptionThe color space a color-map interpolates between colors in (CSS linear-gradient(in <space>, …)). auto resolves per-consumer: linear-light for a tonemap, gamma sRGB for a color-source.
Values"auto" "srgb" "srgb-linear" "oklab"
Example"auto"
<blend-color-interpolation> enum
DescriptionThe color space a composite runs its per-layer BLEND + src-over math in (SVG color-interpolation-filters analogue). No Oklab — the CSS blend formulas are RGB-component operations. auto resolves to gamma sRGB (the CSS compositing default).
Values"auto" "srgb" "srgb-linear"
Example"auto"
<cap-field-mode> enum
DescriptionHow a stroke field treats caps.
Values"none" "match"
Example"none"
<cap-progress-mode> enum
DescriptionHow progress includes caps.
Values"body-only" "inclusive"
Example"body-only"
<field-space> enum
DescriptionThe unit space a stroke-field distance value is expressed in: a fraction of the local half-width (proportional to the stroke width), absolute screen pixels, or absolute world units.
Values"fraction" "screen" "world"
Example"fraction"
<field-anchor> enum
DescriptionWhere a cross-stroke distance is measured from: the stroke centreline outward (a central core) or the stroke edge inward (an outer rim).
Values"center-line" "edge"
Example"center-line"
<stop-interpolation> enum
DescriptionColor-stop segment interpolation.
Values"step" "linear" "smooth"
Example"step"
<constraint-composite> enum
DescriptionHow a constraint composites onto its target.
Values"replace" "add" "accumulate"
Example"replace"
<spline-distribution> enum
DescriptionHow a spline distributes clone points.
Values"control-points" "tessellated" "arc-length-spaced"
Example"control-points"
<mesh-distribution> enum
DescriptionHow mesh-surface points are sampled.
Values"random" "poisson-disk"
Example"random"
<sphere-distribution> enum
DescriptionHow sphere points are distributed.
Values"fibonacci"
Example"fibonacci"
<ocean-preset> enum
DescriptionAn ocean-displacement sea-state preset.
Values"calm" "moderate" "rough" "storm"
Example"calm"
<ocean-projection> enum
DescriptionHow the ocean field is projected onto the host: a single-plane world-XZ projection (planar-xz, default) or a surface-relative triplanar projection for non-planar meshes (triplanar-surface).
Values"planar-xz" "triplanar-surface"
Example"planar-xz"
<cloner-mode> enum
DescriptionWhether a cloner clones per object or per vertex.
Values"object" "vertex"
Example"object"
<viewport-position-mode> enum
DescriptionViewport-position coordinate mode.
Values"px" "percent" "anchor"
Example"px"
<scene-controls-mode> enum
DescriptionDefault-camera-controls opt-out.
Values"auto" "none"
Example"auto"

Composed types

<3d-vector> composed
DescriptionA 3-component vector [x, y, z].
Composition[<number>, <number>, <number>]
Example[0, 1, 0] [1, 0, -1]
<3d-position> composed
DescriptionA 3-component world position [x, y, z].
Composition[<number>, <number>, <number>]
Example[0, 0, 0] [2.5, 1, -3]
<field-weight-range> composed
DescriptionThe [lo, hi] range a normalized field weight maps onto.
Composition[<number>, <number>]
Example[0, 1] [-1, 1] [0, 3]
<quaternion> composed
DescriptionA rotation quaternion {x, y, z, w}.
Composition{ <number>, <number>, <number>, <number> }
Example{"x":0,"y":0,"z":0,"w":1}
<number-list> composed
DescriptionA list of numbers.
Composition<number>[,<number>]*
Example[1, 2, 3]
<string-list> composed
DescriptionA list of strings.
Composition<string>[,<string>]*
Example["pos", "rot"]
<id-ref-list> composed
DescriptionA list of element id references.
Composition<id-ref>[,<id-ref>]*
Example"#glow #base-tone" ["#glow", "#base-tone"]
<blend-mode-list> composed
DescriptionA space-separated list of CSS blend modes (one per composite layer).
Composition<blend-mode>[,<blend-mode>]*
Example"normal multiply" "screen overlay normal"
<scalar-blend-mode-list> composed
DescriptionA space-separated list of scalar-field blend modes (one per composite layer).
Composition<scalar-blend-mode>[,<scalar-blend-mode>]*
Example"replace add" "max add max"
<3d-vector-list> composed
DescriptionA list of 3-component vectors.
Composition<3d-vector>[,<3d-vector>]*
Example[[0,0,0],[1,0,0],[1,1,0]]
<matrix3d> composed
DescriptionA column-major 4×4 matrix as 16 numbers.
Syntax[<number>×16]
Example[1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1]
<matrix3d-list> composed
DescriptionA list of column-major 4×4 matrices (a list of <matrix3d>, or a flat number array whose length is a multiple of 16).
Composition<matrix3d>[,<matrix3d>]*
Example[[1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1]] [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1]
<property-mapping> composed
DescriptionA list of {source, target} property-name mappings.
Example[{"source":"pos","target":"headPos"}]
<fit-targets> composed
DescriptionCamera fit targets: auto, none, or a list of element id references.
Compositionauto | none | <id-ref-list> | <id-ref-list>
Example"auto" "none" ["#hero", "#ground"]
<normalize-scale> composed
DescriptionA normalize-scale: a number N rescaling content to fit [-N, N], or none to disable.
Composition<number> | none
Example1 2.5 "none"
<positive-normalize-scale> composed
DescriptionA normalize-scale: a positive number N rescaling content to fit [-N, N], or none to disable.
Compositionnone
Example1 2.5 "none"
<content-anchor> composed
DescriptionA content anchor: a box-anchor keyword, a [x, y] pair, or content(x, y).
Composition<anchor>
Example"center" [0, 0] "content(10, 20)"
<anchor-3d> composed
DescriptionA composable 3D anchor keyword: left/right, top/bottom, front/back, center, joined by - (e.g. top-left-front).
Example"center" "top" "front" "top-left" "bottom-right-back"
<content-anchor-3d> composed
DescriptionA 3D content anchor: a composable box-anchor keyword, an [x, y, z] triple, or content(x, y, z).
Composition<anchor-3d>
Example"center" "top-left-front" [0.5, 0, 0.5] "content(0, 0, 0)"
<width-profile> composed
DescriptionA stroke width profile: an interpolation basis plus at least two {t, width} control points (t in [0, 1], width ≥ 0).
Composition{ <width-profile-basis> }
Syntax{ "basis"?: <width-profile-basis>, "points": [{ "t": <number>, "width": <number> }, …] }
Example{"basis":"linear","points":[{"t":0,"width":1},{"t":1,"width":4}]} {"points":[{"t":0,"width":0},{"t":0.5,"width":6},{"t":1,"width":0}]}

Scalar types

<index-range-list> skenra-scalar
DescriptionA whitespace-separated list of element-index singletons and inclusive ranges ("0-1 4 6-7"); empty = the empty set.
Example"4-7" "0-1 4 6-7" ""
<selection-token-list> skenra-scalar
DescriptionA whitespace-separated list of selection tokens, each a bare mesh-local name or a #id reference.
Example"top bottom" "#accent" ""
<selection-token> skenra-scalar
DescriptionA single selection reference: a bare mesh-local name or a #id. The empty string selects nothing (distinct from an absent attribute, which is the whole mesh).
Example"#accent" "top" ""
<remap-curve> skenra-scalar
DescriptionA descriptor that reshapes a field’s raw [0, 1] output before it drives a property.
Syntax[inverse:]( <easing-keyword> | step:<t> | uniform:<v> | points:[[<t>,<v>],…] | points:<points-basis>:[[<t>,<v>],…] )
Example"linear" "ease-in-out" "step:0.3" "points:[[0,0],[0.5,1],[1,0]]" "inverse:ease-in"
<coordinate-space> skenra-scalar
DescriptionA signed coordinate-space token mapping SVG axes to world axes.
Syntaxa 2- or 3-axis token from {x, y, z}, each optionally `-`-prefixed to flip
Example"xy" "x-y" "x-z" "xyz"
<number> skenra-scalar
DescriptionA number.
Example42 -1.5 0
<string> skenra-scalar
DescriptionA free-text string.
Example"hello"
<boolean> skenra-scalar
DescriptionA boolean flag.
Exampletrue false
<id-ref> skenra-scalar
DescriptionA reference to another element by its id, as a #id fragment (or a var(--…) expression the runtime resolves to one).
Example"#sun" "#ground-material"
<length> skenra-scalar
DescriptionA CSS length string.
Example"12px" "2rem" "5%"
<property-name> skenra-scalar
DescriptionThe name of an Animatable property.
Example"intensity" "baseColor"