# Tools (https://docs.fuser.studio/docs/compositor/tools)

The toolbar floats at the bottom of the canvas. Tools change what clicks and drags do on the canvas — every other interaction (selection, drag-drop, keyboard) keeps working alongside the active tool.

![Compositor Toolbar](/compositor-toolbar-ui.png)

Pick a tool by clicking its button or pressing its single-key shortcut. The active tool's button stays filled; the others render as outlines.

##  Select — `V` [#-select--v]

The default tool. Click a layer to select it; drag to move; use the gizmo handles to resize and rotate.

* **Click empty canvas** — deselects.
* **Shift-click** — adds a layer to the selection. Click again to remove it.
* **Drag a corner handle** — resize. Hold `Shift` to constrain aspect ratio.
* **Drag the rotation handle** — rotate around the layer's anchor (see [Concepts → Anchor points](https://docs.fuser.studio/docs/compositor/concepts.md#anchor-points)).
* **Arrow keys** — nudge the selected layer by 1 px. Hold `Shift` for 10 px.

##  Hand — `H` [#-hand--h]

Pan the canvas without moving anything in the scene.

* **Drag** — pan.
* **Hold `Space` with any other tool** — temporarily switches to Hand without leaving your current tool. Release `Space` to go back.
* **Middle-mouse drag** — also pans, regardless of the active tool.

##  Rectangle — `R` [#-rectangle--r]

Draw rectangle layers.

* **Drag** — define the rectangle's bounds.
* **Hold `Shift` while dragging** — constrain to a square.

Settings live in the Properties panel while the tool is active or while a Rectangle layer is selected:

* **Fill** — color, on/off toggle.
* **Stroke** — color, width, position (`Center`, `Inside`, `Outside`), on/off toggle.
* **Corner radius** — rounds all four corners uniformly.

##  Ellipse — `O` [#-ellipse--o]

Draw ellipse and circle layers.

* **Drag** — define the ellipse's bounding box.
* **Hold `Shift` while dragging** — constrain to a circle.

Same fill and stroke settings as Rectangle, minus the corner radius.

##  Text — `T` [#-text--t]

Add and edit text layers.

* **Click on the canvas** — creates a new text layer at that point and drops you straight into edit mode.
* **Double-click an existing text layer** (with any tool) — re-enters edit mode.
* **Click outside, press `Esc`, or press `Enter`** to commit.

**In-place edit overlay.** Double-clicking a text layer opens the inline text-edit overlay — type directly on the canvas with kerning controls and per-character formatting available without leaving the layer. `Esc` or `Enter` commits the edit.

The full font story — Google Fonts, custom fonts, variable axes, kerning, alignment, sizing modes, stroke — lives on the [Layers → Text](https://docs.fuser.studio/docs/compositor/layers.md#text) page.

##  Pen — `P` [#-pen--p]

Draw vector paths (Bezier curves) point by point.

* **Click** to drop a corner point.
* **Click and drag** to drop a smooth point with extending control handles.
* **Click an existing endpoint** to continue an open path from that point. Click the starting point to close the path.
* **Press `Enter` or `Esc`** to finalize the current path.

Pen settings (in the Properties panel while drawing or with a Vector layer selected):

* **Fill** — color, on/off.
* **Stroke** — color, width, position (`Center`, `Inside`, `Outside`), on/off.

### Vector edit shortcuts [#vector-edit-shortcuts]

Vector editing happens in an in-place overlay — the path's points become draggable handles and a small toolbar surfaces the actions below. The overlay opens automatically when you finish drawing with the Pen tool, or when you double-click a Vector with the Select tool. While editing the points of an existing path, these shortcuts apply to the **selected** points:

| Shortcut               | Action                                                                   |
| ---------------------- | ------------------------------------------------------------------------ |
| `C`                    | Cycle the selected points' type — corner → smooth → asymmetric → corner. |
| `Tab` / `Shift+Tab`    | Cycle the point selection forward or backward along the path.            |
| `H`                    | Harmonize the selected points to G2 curvature continuity.                |
| `R`                    | Reverse the active path's direction.                                     |
| `⌘/Ctrl+K`             | Split the path at the selected point.                                    |
| `Delete` / `Backspace` | Remove the selected points.                                              |
| `Esc`                  | Exit vector editing.                                                     |

> [!NOTE] `H` and `R` collide with the toolbar
>
> While you're inside a vector edit session, `H` harmonizes and `R` reverses — they don't switch you to the Hand or Rectangle tool. The toolbar shortcuts come back the moment you exit vector editing (`Esc` or click outside the path).

##  Brush — `B` [#-brush--b]

Paint with a soft round brush onto a raster layer. Painting always lands on a raster layer — if you don't have one selected, the Brush creates a new one.

* **Drag** — paint a stroke.

Brush settings live in the Properties panel:

* **Size** — `1`–`200` px.
* **Color** — any hex.
* **Opacity** — `0`–`100%`.
* **Hardness** — `0` (soft, fully feathered) to `1` (crisp edge).
* **Streamline** — `0` (no smoothing) to `1` (heavy smoothing). Higher streamline produces calmer, more confident-looking strokes at the cost of input lag.

##  Eraser — `E` [#-eraser--e]

Remove pixels from a raster layer, or apply a non-destructive eraser mask.

* **Drag on a raster layer** — destructive erase. Pixels are removed.
* **Drag on any non-raster layer** — creates an **eraser mask** layer linked to the parent. The original layer's content is preserved; the eraser mask hides parts of it. Delete the eraser mask to bring everything back.

Eraser settings: size, opacity, and hardness (same scales as the Brush).

## General shortcuts [#general-shortcuts]

These work regardless of the active tool, as long as you're not typing into a text field.

| Shortcut                        | Action                                                         |
| ------------------------------- | -------------------------------------------------------------- |
| `V / H / R / O / T / P / B / E` | Switch tool.                                                   |
| `Space` (hold)                  | Temporarily pan with the Hand tool.                            |
| `⌘/Ctrl + Z`                    | Undo.                                                          |
| `⌘/Ctrl + Shift + Z`            | Redo.                                                          |
| `⌘/Ctrl + S`                    | Save.                                                          |
| `⌘/Ctrl + D`                    | Duplicate the selected layer.                                  |
| `⌘/Ctrl + =` / `⌘/Ctrl + −`     | Zoom in / out.                                                 |
| `⌘/Ctrl + 0`                    | Fit canvas to view.                                            |
| `Delete` / `Backspace`          | Delete the selected layer.                                     |
| `Enter`                         | Enter text edit mode (on a Text layer) or finalize a Pen path. |
| `Escape`                        | Exit text edit, finalize a Pen path, or close the Compositor.  |
| Arrow keys                      | Nudge the selected layer (1 px, or 10 px with `Shift`).        |

## What's Next? [#whats-next]

  - [Layers](https://docs.fuser.studio/docs/compositor/layers.md): The layer types your tools create, and the ones you bring in via inputs.

  - [Properties](https://docs.fuser.studio/docs/compositor/properties.md): Per-tool and per-layer settings — transform, fill, stroke, masks.