<svg xmlns='http://www.w3.org/2000/svg' width='500' height='500'>
<g transform="translate(30,30)">
  <!-- transform-origin specifies a point in user space with percentages
       resolved against the nearest viewport's dimensions.
  -->
  <rect x='10' y='10' width='100' height='100' fill='blue' stroke-width='20' stroke='black'
        style="transform:rotate(90deg); transform-origin:2% calc(20% + 10px);"/>
</g>
</svg>