AmbientLightSensor

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The AmbientLightSensor interface of the the Sensor APIs returns the current light level or illuminance of the ambient light around the hosting device.

To use this sensor, the user must grant permission to the 'ambient-light-sensor' device sensor through the Permissions API.

If a feature policy blocks use of a feature it is because your code is inconsistent with the policies set on your server. This is not something that would ever be shown to a user. See Feature-Policy for implementation instructions.

Constructor

AmbientLightSensor.AmbientLightSensor()
Creates a new AmbientLightSensor object.

Properties

AmbientLightSensor.illuminance
Returns the current light level in lux of the ambient light level around the hosting device.

Example

if ( 'AmbientLightSensor' in window ) {
  const sensor = new AmbientLightSensor();
  sensor.onreading = () => {
    console.log('Current light level:', sensor.illuminance);
  };
  sensor.onerror = (event) => {
    console.log(event.error.name, event.error.message);
  };
  sensor.start();
}

Specifications

Specification Status Comment
Generic Sensor API Candidate Recommendation Defines sensors in general.
Ambient Light Sensor
The definition of 'AmbientLightSensor' in that specification.
Candidate Recommendation

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
AmbientLightSensorChrome Full support 56
Disabled
Full support 56
Disabled
Disabled From version 56: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge Full support 79
Disabled
Full support 79
Disabled
Disabled From version 79: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to Enabled).
Firefox No support NoIE No support NoOpera Full support 43
Disabled
Full support 43
Disabled
Disabled From version 43: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to Enabled).
Safari No support NoWebView Android No support NoChrome Android Full support 56
Disabled
Full support 56
Disabled
Disabled From version 56: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Firefox Android No support NoOpera Android Full support 43
Disabled
Full support 43
Disabled
Disabled From version 43: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to Enabled).
Safari iOS No support NoSamsung Internet Android No support No
AmbientLightSensor() constructorChrome Full support 56Edge Full support 79Firefox No support NoIE No support NoOpera Full support 43Safari No support NoWebView Android No support NoChrome Android Full support 56Firefox Android No support NoOpera Android Full support 43Safari iOS No support NoSamsung Internet Android No support No
illuminanceChrome Full support 56
Notes
Full support 56
Notes
Notes In Chrome 79, this method stopped returning floats and returned integers to avoid fingerprinting.
Edge Full support 79Firefox No support NoIE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes In Opera 66, this method stopped returning floats and returned integers to avoid fingerprinting.
Safari No support NoWebView Android No support NoChrome Android Full support 56
Notes
Full support 56
Notes
Notes In Chrome for Android 79, this method stopped returning floats and returned integers to avoid fingerprinting.
Firefox Android No support NoOpera Android Full support 43
Notes
Full support 43
Notes
Notes In Opera for Android 57, this method stopped returning floats and returned integers to avoid fingerprinting.
Safari iOS No support NoSamsung Internet Android No support No

Legend

Full support  
Full support
No support  
No support
See implementation notes.
See implementation notes.
User must explicitly enable this feature.
User must explicitly enable this feature.