Я адаптував відповідь Інго тут .
<defs>
<pattern id="diagonalHatch" patternUnits="userSpaceOnUse" width="4" height="4">
<path id="background"
d="M-1,3 L3,-1
M1,5 L5,1" style="stroke:pink; stroke-width:10" />
<path id="hatches"
d="M-2,2 L2,-2
M0,4 L4,0
M2,6 L6,2" style="stroke:red; stroke-width:1" />
</pattern>
</defs>
Цей шаблон включає два шляхи, один для фону, а інший для люків. Колір фону можна адресувати проти JS, наприклад:
const hatchPath = document.querySelector("path#hatches");
hatchPath.setAttribute('style', "stroke:blue; stroke-width:1")
Шлях до фону навмисне надто широкий, так що жодна частина візерунка не принаймні покрита фоном. Тим часом ширина люків може бути налаштована, щоб змінити товщину ліній.