Я хочу воссоздать линейный градиент css с определенной степенью в svg.
Например:
linear-gradient(45deg, yellow,green)
В svg я мог бы воссоздать его, если бы знал ширину и высоту, но я хочу создать плавный градиент
Мое лучшее решение:
<svg xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='xMidYMid slice' viewBox='0 0 1 1'>
<defs>
<linearGradient id='g' x1="1"y1='0' y2='1' gradientTransform='rotate(45, .5, .5)'>
<stop offset='0%' stop-color='green' />
<stop offset='100%' stop-color='yellow' />
</linearGradient>
</defs>
<rect x='0' y='0' width='100%' height='100%' fill='url(#g)'/>
</svg>
Это создаст квадрат с градиентом, и квадрат будет обрезан сбоку, чтобы создать самый большой квадрат, возможный в области просмотра.
Но в спецификации css3 точка цвета будет начинаться с ближайшего угла, но с моим решением она начнется там, где начинается квадрат.
Есть ли лучшее решение?
Надеюсь понятно описал ;)