<linearGradient gradientUnits="userSpaceOnUse" ...><svg class="inline-svg-icon" fill="url(#red-blue)"><use...> по сути каждый элемент просто наследует этот атрибут fill. И по умолчанию градиент рисуется в границах элемента. Если же указать userSpaceOnUse, то градиент будет рисоваться в пределах текущего viewport.