fill is none, a color, or url(#id) with an optional fallback color, as in fill="url(#sheen) #1f5f8b". When a path crosses itself, fill-rule decides what is inside. Cast a ray from a point to infinity. With nonzero (the default), add one for each path segment crossing it left to right and subtract one for each crossing right to left; the point is inside unless the total is zero. With evenodd, it is inside when the number of crossings is odd. fill-opacity and stroke-opacity fade one paint, while opacity fades a whole element or group after it has been drawn.
<svg width="600" height="105" fill="#5b3f99">
<polygon points="60,7 88,94 14,40 106,40 32,94"/>
<polygon points="190,7 218,94 144,40 236,40 162,94" fill-rule="evenodd"/>
<g opacity="0.6"><circle cx="320" cy="55" r="40" fill="#1f5f8b"/>
<circle cx="370" cy="55" r="40" fill="#e09a10"/></g>
<g fill-opacity="0.6"><circle cx="470" cy="55" r="40" fill="#1f5f8b"/>
<circle cx="520" cy="55" r="40" fill="#e09a10"/></g>
</svg>
The star's center pentagon is crossed twice in the same direction, a winding count of 2, so nonzero fills it and evenodd leaves a hole. On the left pair, the group is flattened first and then faded, so the overlap shows only the top circle; on the right, each circle is transparent on its own and the blue shows through the saffron. Group opacity needs an offscreen buffer, so it costs more.