Transforms
Transforms are style properties that will help you modify the appearance and position of your components using 2D or 3D transformations. However, once you apply transforms, the layouts remain the same around the transformed component hence it might overlap with the nearby components. You can apply margin to the transformed component, the nearby components or padding to the container to prevent such overlaps.
Exampleβ
Reference
Transformβ
transform
accepts an array of transformation objects or space-separated string values. Each object specifies the property that will be transformed as the key, and the value to use in the transformation. Objects should not be combined. Use a single key/value pair per object.
The rotate transformations require a string so that the transform may be expressed in degrees (deg) or radians (rad). For example:
{
transform: [{rotateX: '45deg'}, {rotateZ: '0.785398rad'}],
}
The same could also be achieved using a space-separated string:
{
transform: 'rotateX(45deg) rotateZ(0.785398rad)',
}
The skew transformations require a string so that the transform may be expressed in degrees (deg). For example:
{
transform: [{skewX: '45deg'}],
}
Type | Required |
---|---|
array of objects: {matrix: number[]} , {perspective: number} , {rotate: string} , {rotateX: string} , {rotateY: string} , {rotateZ: string} , {scale: number} , {scaleX: number} , {scaleY: number} , {translateX: number} , {translateY: number} , {skewX: string} , {skewY: string} or string | No |
decomposedMatrix
, rotation
, scaleX
, scaleY
, transformMatrix
, translateX
, translateY
β
Deprecated. Use the
transform
prop instead.
Transform Originβ
The transformOrigin
property sets the origin for a view's transformations. The transform origin is the point around which a transformation is applied. By default, the origin of a transform is center
.
Example
Valuesβ
Transform origin supports px
, percentage
and keywords top
, left
, right
, bottom
, center
values.
The transformOrigin
property may be specified using one, two, or three values, where each value represents an offset.
One-value syntax:β
- The value must be a
px
, apercentage
, or one of the keywordsleft
,center
,right
,top
, andbottom
.
{
transformOrigin: '20px',
transformOrigin: 'bottom',
}
Two-value syntax:β
- First value (x-offset) must be a
px
, apercentage
, or one of the keywordsleft
,center
, andright
. - The second value (y-offset) must be a
px
, apercentage
, or one of the keywordstop
,center
, andbottom
.
{
transformOrigin: '10px 2px',
transformOrigin: 'left top',
transformOrigin: 'top right',
}
Three-value syntax:β
- The first two values are the same as for the two-value syntax.
- The third value (z-offset) must be a
px
. It always represents the Z offset.
{
transformOrigin: '2px 30% 10px',
transformOrigin: 'right bottom 20px',
}
Array syntaxβ
transformOrigin
also supports an array syntax. It makes it convenient to use it with Animated APIs. It also avoids string parsing, so should be more efficient.
{
// Using numeric values
transformOrigin: [10, 30, 40],
// Mixing numeric and percentage values
transformOrigin: [10, '20%', 0],
}
You may refer to MDN's guide on Transform origin for additional information.