- Transform styles: translate, rotate, scale and transform-origin from scripts (Translate, Rotate, Angle, Scale, TransformOrigin and their Style wrappers) and USS (lengths and percentages, deg, grad, rad and turn, keywords for the origin; one translate value moves along both axes, as in Unity), with resolvedStyle's values. The element's matrix is its layout position and translation, then rotation and scale about the origin; layout doesn't see it. worldBound, localBound, worldTransform, WorldToLocal, LocalToWorld and ChangeCoordinatesTo go through it, and so does picking (clipping by overflow included). VisualElement.transform (ITransform) adds to it.
- Drawing: elements only moved from the panel's space draw in it; rotated or scaled ones draw in their own space, their quads carrying its matrix. Clip rects clip where they stay axis-aligned to the element.
- Transitions: transition-property, -duration, -delay and -timing-function (and the shorthand) from USS and as StyleLists from scripts. A restyle that changes a listed property starts a transition from the value shown to the new one: lengths in one unit, numbers, colors and the transform styles interpolate, along the timing function (CSS's Béziers for the ease ones, the usual curves for the rest). An element's first style doesn't transition. TransitionRunEvent, StartEvent, EndEvent and CancelEvent (when a value changes again midway) trickle down and bubble up, grouped by kind of value as Unity sends them.
- Checked by
ui_toolkit_transitions(6000.3): inline and USS values, keywords and lists, resolved transforms, bounds, matrices, coordinate changes and picking through a rotated and scaled element, and transitions' events and values between their ends. The sample tilts its tiles and grows its button under the pointer. - Not yet: transitions of discrete values (enums, images), 3D rotations (rotations about the x or y axis don't show), elapsed times compared with Unity's (its panels use real time).
- Next: CompositeCollider2D.offsetDistance; the executable's icon; UI Toolkit numeric fields.
Phase 6 · Slice 28 ·