<defs>
  <!-- le dégradé -->
  <linearGradient
   id="rougeBleu"
   x1="0%" y1="0%" x2="100%" y2="0%">	
	<stop offset="0%"   stop-color="crimson"/>
	<stop offset="100%" stop-color="deepSkyBlue"/>
  </linearGradient>					 
</defs>
  
<!-- le clipPath -->
<clipPath id="leClip" clipPathUnits="objectBoundingBox">  
  <path d="M 0 0.5
           a 0.5 0.5 0 0 0  0.5 -0.5
           a 0.5 0.5 0 0 0  0.5  0.5
           a 0.5 0.5 0 0 0 -0.5  0.5
           a 0.5 0.5 0 0 0 -0.5 -0.5"/>
</clipPath>


<!-- le rectangle affichant le dégradé -->
<rect
  width="128" height="128"
  fill="url(#rougeBleu)"
  fill-opacity="0.25"/>

<!-- la forme révélée -->
<g clip-path="url(#leClip)">
  <circle cx="64" cy="64" r="40" fill="url(#rougeBleu)"/>
  
  <g fill="none" stroke="white" stroke-width="2">
    <circle cx="64" cy="64" r="20"/>
    <circle cx="64" cy="64" r="12"/>
    <circle cx="64" cy="64" r="4"/>
  </g> 
</g>