patternUnits

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

The patternUnits attribute indicates which coordinate system to use for the geometry properties of the <pattern> element.

You can use this attribute with the following SVG elements:

Example

html
<svg viewBox="0 0 200 100" xmlns="http://www.w3.org/2000/svg">
  <!-- All geometry properties are relative to the current user space -->
  <pattern
    id="p1"
    x="12.5"
    y="12.5"
    width="25"
    height="25"
    patternUnits="userSpaceOnUse">
    <circle cx="10" cy="10" r="10" />
  </pattern>

  <!-- All geometry properties are relative to the target bounding box -->
  <pattern
    id="p2"
    x=".125"
    y=".125"
    width=".25"
    height=".25"
    patternUnits="objectBoundingBox">
    <circle cx="10" cy="10" r="10" />
  </pattern>

  <!-- Left square with user space tiles -->
  <rect x="10" y="10" width="80" height="80" fill="url(#p1)" />

  <!-- Right square with bounding box tiles -->
  <rect x="110" y="10" width="80" height="80" fill="url(#p2)" />
</svg>

pattern

For <pattern>, patternUnits defines the coordinate system in use for the geometry properties (x, y, width and height) of the element.

Value userSpaceOnUse | objectBoundingBox
Default value objectBoundingBox
Animatable Yes
userSpaceOnUse

This value indicates that all coordinates for the geometry properties refer to the user coordinate system as defined when the pattern was applied.

objectBoundingBox

This value indicates that all coordinates for the geometry properties represent fractions or percentages of the bounding box of the element to which the pattern is applied. A bounding box could be considered the same as if the content of the <pattern> were bound to a "0 0 1 1" viewBox.

Specifications

Specification
Scalable Vector Graphics (SVG) 2
# PatternElementPatternUnitsAttribute

Browser compatibility

BCD tables only load in the browser