<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>