I tried to transform the SVG element with perspective and discovered that it does not work, but the same transformations to HTML tags work correctly.
Experiment on jsfiddle: https://jsfiddle.net/5ms7ubck/ (html transformation (red element) VS svg (gray)).
.outer {
perspective: 1000px;
}
.inner {
transform: rotateX(60deg) perspective(1000px);
transform-style: preserve-3d;
transform-origin: 50% 50%;
}
<svg width="151px" height="151px" viewBox="0 0 151 151" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs></defs>
<g class="outer" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect class="inner" width="150" height="150" fill="#D8D8D8"></rect>
</g>
</svg>
I would like to find the right way to transform SVG elements. I also tested an example from SVG Rotation in 3D and it isn't working too.