Info
This site is generated using the static site generator developed by the Typst Community. Please adjust the text content of this banner according to your usage requirements. At Typst GmbH's request, when publishing documentation, you must clearly indicate that it is non-official and display the version of Typst being documented. For details, refer to Issue #874 on typst/typst.
TypstDocumentEnglish
v0.dev.2025-09-12

rect
Element
Element
Element functions can be customized with set and show rules.

A rectangle with optional content.

Example

// Without content.
#rect(width: 35%, height: 30pt)

// With content.
#rect[
  Automatically sized \
  to fit the content.
]
Preview

Parameter
Parameter
Parameters are input values for functions. Specify them in parentheses after the function name.

width
Settable
Settable
Settable parameters can be set using the set rule, changing the default value used thereafter.

The rectangle's width, relative to its parent container.

Default value:

auto

height
Settable
Settable
Settable parameters can be set using the set rule, changing the default value used thereafter.

The rectangle's height, relative to its parent container.

Default value:

auto

fill
Settable
Settable
Settable parameters can be set using the set rule, changing the default value used thereafter.

How to fill the rectangle.

When setting a fill, the default stroke disappears. To create a rectangle with both fill and stroke, you have to configure both.

Default value:

none

Show example
#rect(fill: blue)
Preview

stroke
Settable
Settable
Settable parameters can be set using the set rule, changing the default value used thereafter.

How to stroke the rectangle. This can be:

  • none to disable stroking

  • auto for a stroke of 1pt + black if and only if no fill is given.

  • Any kind of stroke

  • A dictionary describing the stroke for each side individually. The dictionary can contain the following keys in order of precedence:

    • top: The top stroke.
    • right: The right stroke.
    • bottom: The bottom stroke.
    • left: The left stroke.
    • x: The horizontal stroke.
    • y: The vertical stroke.
    • rest: The stroke on all sides except those for which the dictionary explicitly sets a size.

    All keys are optional; omitted keys will use their previously set value, or the default stroke if never set.

Default value:

auto

Show example
#stack(
  dir: ltr,
  spacing: 1fr,
  rect(stroke: red),
  rect(stroke: 2pt),
  rect(stroke: 2pt + red),
)
Preview

radius
Settable
Settable
Settable parameters can be set using the set rule, changing the default value used thereafter.

How much to round the rectangle's corners, relative to the minimum of the width and height divided by two. This can be:

  • A relative length for a uniform corner radius.

  • A dictionary: With a dictionary, the stroke for each side can be set individually. The dictionary can contain the following keys in order of precedence:

    • top-left: The top-left corner radius.
    • top-right: The top-right corner radius.
    • bottom-right: The bottom-right corner radius.
    • bottom-left: The bottom-left corner radius.
    • left: The top-left and bottom-left corner radii.
    • top: The top-left and top-right corner radii.
    • right: The top-right and bottom-right corner radii.
    • bottom: The bottom-left and bottom-right corner radii.
    • rest: The radii for all corners except those for which the dictionary explicitly sets a size.

Default value:

(:)

Show example
#set rect(stroke: 4pt)
#rect(
  radius: (
    left: 5pt,
    top-right: 20pt,
    bottom-right: 10pt,
  ),
  stroke: (
    left: red,
    top: yellow,
    right: green,
    bottom: blue,
  ),
)
Preview

inset
Settable
Settable
Settable parameters can be set using the set rule, changing the default value used thereafter.

How much to pad the rectangle's content. See the box's documentation for more details.

Default value:

0% + 5pt

outset
Settable
Settable
Settable parameters can be set using the set rule, changing the default value used thereafter.

How much to expand the rectangle's size without affecting the layout. See the box's documentation for more details.

Default value:

(:)

body
Positional
Positional
Positional parameters can be set by specifying them in order, omitting the parameter name.
Settable
Settable
Settable parameters can be set using the set rule, changing the default value used thereafter.

The content to place into the rectangle.

When this is omitted, the rectangle takes on a default size of at most 45pt by 30pt.

Default value:

none

Open official docs

Search