Documentation

rotateElement
Question mark
Go to source

Rotates content without affecting layout.

Rotates an element by a given angle. The layout will act as if the element was not rotated unless you specify reflow: true.

Example

#stack(
  dir: ltr,
  spacing: 1fr,
  ..range(16)
    .map(i => rotate(24deg * i)[X]),
)

Parameters

angle
angle
Positional
Question mark
Settable
Question mark
Default: 0deg

The amount of rotation.

ExpandView example
#rotate(-1.571rad)[Space!]

origin
alignment
Settable
Question mark
Default: center + horizon

The origin of the rotation.

If, for instance, you wanted the bottom left corner of the rotated element to stay aligned with the baseline, you would set it to bottom + left instead.

ExpandView example
#set text(spacing: 8pt)
#let square = square.with(width: 8pt)

#box(square())
#box(rotate(30deg, origin: center, square()))
#box(rotate(30deg, origin: top + left, square()))
#box(rotate(30deg, origin: bottom + right, square()))

reflow
bool
Settable
Question mark
Default: false

Whether the rotation impacts the layout.

If set to false, the rotated content will retain the bounding box of the original content. If set to true, the bounding box will take the rotation of the content into account and adjust the layout accordingly.

ExpandView example
Hello #rotate(90deg, reflow: true)[World]!

body
content
RequiredPositional
Question mark

The content to rotate.