2.2.0 • Published 4 years ago

light-levels v2.2.0

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

Light Levels

Travis npm package Coveralls

A vanilla JavaScript plugin for polyfilling the light-level CSS @media feature.

This media feature can be used to adjust styles based on the ambient light level - however since it's from a relatively recent Working Draft, it currently has zero browser support.

This polyfill detects ambient light levels and applies a corresponding class name to the <html> element in order to emulate the same behaviour today.

It is recommended to combine this plugin with the PostCSS plugin postcss-light-levels which allows you to write the upcoming syntax but uses it to generate class names which correlate to the ones generated by this library.

It is worth nothing that both this JS library and PostCSS plugin can be used independently if you wish.

Table of Contents

Demo

A working demo can be found here: https://daveordead.github.io/light-levels-demo/

Browser Support

EdgeFirefoxAndroid FirefoxChromeAndroid Chrome
1662 :triangular_flag_on_post:62 :triangular_flag_on_post:54 :checkered_flag:54 :checkered_flag:

:triangular_flag_on_post: uses deprecated ondevicelight behind the device.sensors.ambientLight.enabled feature flag

:checkered_flag: Uses AmbientLightSensor behind the #enable-generic-sensor-extra-classes feature flag

Installation

npm

npm install light-levels --save

CDN

<script src="https://unpkg.com/light-levels/umd/light-levels.min.js"></script>

A vanilla JavaScript plugin for polyfilling the light-level CSS @media feature.

Usage

ES module

import lightLevels from "light-levels";

lightLevels();

CommonJS

const lightLevels =  require("light-levels");

lightLevels();

UMD

If you use the direct <script> approach you can instantiate lightLevels as a browser global.

<script>
    lightLevel();
</script>

CSS

By default this plugin applies classes of .light-level-dim, .light-level-normal or .light-level-washed to match the values of the light-level media query.

/* Styles to apply in low light environments */
.light-level-dim p {
  background-color: black;
  color: white;
}

/* Styles to apply in normal light environments */
.light-level-normal p {
  background-color: white;
  color: black;
}

/* Styles to apply in bright light environments */
.light-level-washed p {
  background-color: pink;
  color: orange;
}

Options

lightLevels({
    prefix: "light-level-"
});
NameUsageDefault
prefixif the prefix light-level- doesn't suit your code base, you can change it to something more appropriate with this option. Note: The postfix names of 'dim' \ 'normal' \ 'washed' can not be modified. If you are using this in combination with the PostCSS plugin you should also update the prefix option there.'light-level-'

License

Copyright (c) 2020 David Berner

Licensed under the MIT license (see LICENSE.md for more details)

2.2.0

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

2.1.0

4 years ago

2.0.0

4 years ago

0.0.1

4 years ago

0.0.0

4 years ago