The same controls are presented for Clip, Layer and Master scopes - pick the scope at the top of the Inspector, then open Transform. Each scope keeps its own independent values.
Parameters
| Control | Label | Range | Default | Meaning |
|---|---|---|---|---|
| Position X | X |
−2 … 2 | 0 | Multiplied by the composition width |
| Position Y | Y |
−2 … 2 | 0 | Multiplied by the composition height |
| Scale X | X |
0.01 … 4 | 1 | Combined as fit base × scale × scaleX |
| Scale Y | Y |
0.01 … 4 | 1 | Combined as fit base × scale × scaleY |
| Uniform scale | Uniform scale |
0.01 … 4 | 1 | Multiplies both axes |
| Rotation | Rotation (°) |
−180 … 180 | 0 | Degrees, about the anchor |
| Anchor X | X |
0 … 1 | 0.5 | Normalized inside the source extent |
| Anchor Y | Y |
0 … 1 | 0.5 | Normalized inside the source extent |
| Fit | Fit |
Fit / Fill / Stretch | Fit |
How the source maps into the canvas |
Because position X and Y are fractions of canvas dimensions rather than pixels, the same numeric values mean different pixel distances at different composition sizes.
Reset transform restores every field to its default.
Fit modes
- Fit scales uniformly by the smaller axis ratio - the whole source is visible, letterboxed.
- Fill scales uniformly by the larger axis ratio - the canvas is covered, cropping the source.
- Stretch uses each axis ratio independently, distorting the source.
Fit also governs how the frame is scaled into the Preview monitor, the Output monitor and fullscreen windows. Every one of those defaults to Fit.
The X/Y link toggle
A link button sits beside the Scale label, labelled Link X and Y scale or Unlink X and Y
scale. Its help text is precise: "When linked, changing either axis sets both axes to the same
scale. Linking preserves their current values until edited."
That last clause matters - linking does not retro-synchronize your current X and Y. It only applies from your next edit onward. It is off by default, and it does not govern Uniform scale, which always drives both axes.
Committing numeric values
Transform fields have no Apply button. A value commits when you press Return, when the field loses focus, or when the view disappears. Text that cannot be parsed strokes red and reads "Enter a number between LO and HI."; a parseable value outside the range is clamped, not rejected.
Opacity at each scope
| Scope | Control | Notes |
|---|---|---|
| Clip | Opacity slider 0…1 in Transform | Default 1 |
| Layer | Opacity readout and slider 0…1 | Setting it clears any layer opacity driver |
| Master | Opacity slider 0…1 affects only brightness/opacity, never output dimensions | Default 1 |
Opacity participates in the visible result in order: clip opacity applies after clip effects, layer opacity applies when the layer composites into the canvas, master opacity applies last, over black.
Transform presets
Transform tab → Save… / Load…, tooltips "Save this transform as a reusable preset" and "Load a transform preset into this scope".
- Extension
.uvjtransform, default filenameTransform.uvjtransform. - Stores only the ten transform fields. No effects, opacity or media.
- A preset must contain every field, so a partial file can never silently reset the others.
- Maximum 16 KiB.
- Load replaces the target only if different, as one discrete undo step. Status confirms with the filename.
- Load failures surface as "Could not open transform preset: …".
- Validation ranges exactly match the Inspector controls.
How transformations stack
Rendering is unambiguous about order:
- Clip: source → clip transform → clip effects → clip opacity
- Layer transition from outgoing to incoming clip
- Layer: layer transform → layer effects, then composite with that layer's blend and opacity
- Master: after all layers - master transform → master effects → master opacity over black
So moving a layer with the layer transform does not disturb any clip's own framing, and clip coordinates survive the layer stage intact.
Slider actions
Supported Inspector sliders have explicit right-click zero/reset actions. Zero is used when valid; otherwise the menu names the declared default. Layer → Opacity → Zero is an explicit button; the matrix opacity slider has the context action. Each reset keeps its captured owner and refuses a stale target. See Interface layouts and slider reset.