---
title: usePosition
description: Read and update selected node position, size, rotation, alignment, and flipping.
---

# usePosition

`usePosition()` is a control composable for position-related UI.

It exposes selected-node values like:

- `x`
- `y`
- `width`
- `height`
- `rotation`

and actions like:

- align
- flip
- rotate
- scrub/update numeric properties

## Usage

```ts
import { usePosition } from '@open-pencil/vue'

const position = usePosition()
```

## Basic example

```ts
const { x, y, width, height, rotation, updateProp, commitProp } = usePosition()
```

## Practical examples

### Align selected nodes

```ts
position.align('horizontal', 'center')
position.align('vertical', 'min')
```

### Flip selection

```ts
position.flip('horizontal')
position.flip('vertical')
```

### Rotate selection

```ts
position.rotate(90)
```

## Related APIs

- [useLayout](./use-layout)
- [useAppearance](./use-appearance)
