Skip to main content
Version: Next

트랜스폼은 2D 또는 3D 변환을 사용해 컴포넌트의 외형과 위치를 수정할 수 있는 스타일 속성이다. 하지만 트랜스폼을 적용하면 변환된 컴포넌트 주변의 레이아웃은 그대로 유지되기 때문에 인접한 컴포넌트와 겹칠 수 있다. 이러한 겹침을 방지하려면 변환된 컴포넌트에 마진을 추가하거나, 주변 컴포넌트에 마진을 적용하거나, 컨테이너에 패딩을 설정할 수 있다.

참조

트랜스폼​

transform은 트랜스폼 객체 배열 또는 공백으로 구분된 문자열 값을 받는다. 각 객체는 트랜스폼할 속성을 키로 지정하고, 변환할 값을 값으로 지정한다. 객체를 결합해서는 안 되며, 각 객체마다 단일 키/값 쌍을 사용한다.

회전(rotate) 트랜스폼은 각도(deg) 또는 라디안(rad)으로 표현할 수 있도록 문자열을 요구한다. 예를 들어:

js
{
transform: [{rotateX: '45deg'}, {rotateZ: '0.785398rad'}],
}

동일한 결과를 공백으로 구분된 문자열로도 표현할 수 있다:

js
{
transform: 'rotateX(45deg) rotateZ(0.785398rad)',
}

기울임(skew) 트랜스폼은 각도(deg)로 표현할 수 있도록 문자열을 요구한다. 예를 들어:

js
{
transform: [{skewX: '45deg'}],
}
타입필수 여부
객체 배열: {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} 또는 문자열아니오

decomposedMatrix, rotation, scaleX, scaleY, transformMatrix, translateX, translateY​

더 이상 사용되지 않음. 대신 transform prop을 사용한다.

transformOrigin 속성​

transformOrigin 속성은 뷰의 변환(transform)이 적용되는 기준점을 설정한다. 변환 기준점은 변환이 적용되는 중심점을 의미한다. 기본적으로 변환 기준점은 center로 설정된다.

예제

변환 기준점​

변환 기준점(transform origin)은 px, percentage 그리고 top, left, right, bottom, center와 같은 키워드 값을 지원한다.

transformOrigin 속성은 하나, 두 개, 혹은 세 개의 값으로 지정할 수 있다. 각 값은 오프셋을 나타낸다.

단일 값 구문​

  • 값은 px, percentage, 또는 left, center, right, top, bottom 키워드 중 하나여야 한다.
js
{
transformOrigin: '20px',
transformOrigin: 'bottom',
}

두 값 구문:​

  • 첫 번째 값(x-offset)은 px, percentage, 또는 left, center, right 키워드 중 하나여야 한다.
  • 두 번째 값(y-offset)은 px, percentage, 또는 top, center, bottom 키워드 중 하나여야 한다.
js
{
transformOrigin: '10px 2px',
transformOrigin: 'left top',
transformOrigin: 'top right',
}

세 가지 값으로 구성된 문법​

  • 처음 두 값은 두 가지 값으로 구성된 문법과 동일하다.
  • 세 번째 값(z-offset)은 반드시 px 단위여야 한다. 이 값은 항상 Z축 오프셋을 나타낸다.
js
{
transformOrigin: '2px 30% 10px',
transformOrigin: 'right bottom 20px',
}

배열 구문​

transformOrigin은 배열 구문도 지원한다. 이 기능은 Animated API와 함께 사용할 때 편리하다. 또한 문자열 파싱을 피할 수 있어 더 효율적이다.

js
{
// 숫자 값 사용
transformOrigin: [10, 30, 40],
// 숫자와 백분율 값 혼합 사용
transformOrigin: [10, '20%', 0],
}

추가 정보는 MDN의 Transform origin 가이드를 참고할 수 있다.