0

I found a rendering issue with Safari browser (both Mac and iPhone) with the following SVG file.

<?xml version="1.0" encoding="UTF-8" ?>
<svg
   viewBox="0 0 1024 1024"
   version="1.1"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:svg="http://www.w3.org/2000/svg">
  <defs>
    <g id="nouns12">
      <rect width="128" height="128" x="0" y="0" fill="blue" />
      <rect width="128" height="128" x="128" y="128" fill="blue" />
      <rect width="128" height="128" x="256" y="256" fill="blue" />
      <rect width="128" height="128" x="384" y="384" fill="blue" />
      <rect width="128" height="128" x="512" y="512" fill="blue" />
      <rect width="128" height="128" x="640" y="640" fill="blue" />
      <rect width="128" height="128" x="768" y="768" fill="blue" />
      <rect width="128" height="128" x="896" y="896" fill="blue" />
    </g>  
    <pattern id="Pattern" x="0" y="0" width="0.03125" height=".03125">
      <rect width="32" height="32" fill="black" />
      <circle cx="16" cy="16" r="16" fill="white"/>
    </pattern>
    <mask id="dotMask">
      <rect fill="url(#Pattern)" stroke="black" width="1024" height="1024" />
    </mask>
  </defs>
  <use href="#nouns12" mask="url(#dotMask)"/>
</svg>

Chrome, Edge and Brave (on Mac) this SVG perfectly, but Safari renders a little bit incorrectly (see below), which seems like a bug.

enter image description here

I'm looking for a work around, and I'd really appreciate any suggestions. By the way, I have already tried SVG filters instead of mask, and the result was worse. Note: I am not able to change the definition of "nouns12", because it is coming from outside.

Satoshi Nakajima
  • 1,863
  • 18
  • 29

0 Answers0