The <translation-value> CSS data type is used in the arguments for certain transform functions, including translate(), translateX(), translateY(), and translate3d().


The <translation-value> data type can be either a <length> value or a <percentage> value.


Translation function comparison

The following example provides a 3D cube created from DOM elements and transforms, and a select menu allowing you to choose different translation-related transform functions to transform the cube with, so you can compare the effects of the different types.

Choose one, and the transform is applied to the cube; after 2 seconds, the cube reverts back to its starting state. The cube's starting state is slightly rotated using transform3d(), to allow you to see the effect of all the transforms.


  <section id="example-element">
      <div class="face front">1</div>
      <div class="face back">2</div>
      <div class="face right">3</div>
      <div class="face left">4</div>
      <div class="face top">5</div>
      <div class="face bottom">6</div>

  <div class="select-form">
    <label>Select a transform function</label>
      <option selected>Choose a function</option>
      <option>translate(100px, 100px)</option>
      <option>translate3d(50px, 50px, 50px)</option>


main {
  width: 400px;
  height: 200px;
  padding: 50px;
  background-image: linear-gradient(135deg, white, cyan, white);

#example-element {
  width: 100px;
  height: 100px;
  transform-style: preserve-3d;
  transition: transform 1.5s;
  transform: rotate3d(1, 1, 1, 30deg);

.face {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  position: absolute;
  backface-visibility: inherit;
  font-size: 60px;
  color: #fff;

.front {
    background: rgba(90,90,90,.7);
    transform: translateZ(50px);

.back {
    background: rgba(0,210,0,.7);
    transform: rotateY(180deg) translateZ(50px);

.right {
  background: rgba(210,0,0,.7);
  transform: rotateY(90deg) translateZ(50px);

.left {
  background: rgba(0,0,210,.7);
  transform: rotateY(-90deg) translateZ(50px);

.top {
  background: rgba(210,210,0,.7);
  transform: rotateX(90deg) translateZ(50px);

.bottom {
  background: rgba(210,0,210,.7);
  transform: rotateX(-90deg) translateZ(50px);

.select-form {
  margin-top: 50px;


const selectElem = document.querySelector('select');
const example = document.querySelector('#example-element');

selectElem.addEventListener('change', () => {
  if(selectElem.value === 'Choose a function') {
  } else {
    example.style.transform = `rotate3d(1, 1, 1, 30deg) ${selectElem.value}`;
    setTimeout(function() {
      example.style.transform = 'rotate3d(1, 1, 1, 30deg)';
    }, 2000)



Specification Status Comment
CSS Transforms Level 1
The definition of 'The Transform Functions' in that specification.
Working Draft

Browser compatibility

Update compatibility data on GitHub
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
<transform-function>Chrome Full support 1Edge Full support 12Firefox Full support 3.5
Full support 3.5
Notes Firefox 14 removed experimental support for skew(), but it was reintroduced in Firefox 15.
Notes Before Firefox 16, the translation values of matrix() and matrix3d() could be <length>s, in addition to the standard <number>.
IE Full support 9
Full support 9
Notes Internet Explorer 9 supports 2D but not 3D transforms. In version 9, mixing 2D and 3D transform functions invalidates the entire property.
Opera Full support 10.5Safari Full support 3.1WebView Android Full support 2Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 11Safari iOS Full support 3.2Samsung Internet Android Full support 1.0
3D supportChrome Full support 12Edge Full support 12Firefox Full support 10IE Full support 10Opera Full support 15Safari Full support 4WebView Android Full support 3Chrome Android Full support 18Firefox Android Full support 10Opera Android Full support 14Safari iOS Full support 3.2Samsung Internet Android Full support 1.0


Full support  
Full support
See implementation notes.
See implementation notes.

See also