This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The limitingConeAngle read-only property of the SVGFESpotLightElement interface reflects the limitingConeAngle attribute of the given <feSpotLight> element.
An SVGAnimatedNumber object.
limitingConeAngle attribute of the <feSpotLight> elementIn this example, we access the angle in degrees between the spot light axis (i.e., the axis between the light source and the point to which it is pointing at) and the spot light cone, by using the limitingConeAngle read-only property of the SVGFESpotLightElement interface.
<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
<defs>
<filter id="specularLightingFilter">
<!-- Apply a specular light effect to the SourceGraphic -->
<feSpecularLighting
in="SourceGraphic"
specularExponent="40"
lighting-color="lime"
surfaceScale="5">
<feSpotLight
x="100"
y="100"
z="50"
pointsAtX="100"
pointsAtY="100"
limitingConeAngle="30"
specularExponent="40" />
</feSpecularLighting>
</filter>
</defs>
<!-- A circle to display the effect of the lighting -->
<circle
cx="100"
cy="100"
r="50"
fill="lightblue"
filter="url(#specularLightingFilter)" />
</svg>
// Select the feSpotLight element
const spotLightElement = document.querySelector("feSpotLight");
// Access the limitingConeAngle property
console.log(spotLightElement.limitingConeAngle.baseVal); // Output: 30
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
limitingConeAngle |
5 | 12 | 3 | ≤12.1 | 6 | 18 | 4 | ≤12.1 | 6 | 1.0 | 4.4 | 6 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement/limitingConeAngle