Night Reader v1.7.42resigned1
This extension eases your eyes by inverting the brightness of every webpage you browse.
The majority of websites mainly use very light colors, but some already have a refreshing dark theme. For these the user can disable the domain, essentially setting it on a blacklist of the application.
Its goal is, in contrast to the approach of creating new webpage–specific templates, to be as general as possible. This is best achieved by applying the CSS filter invert to the document root, because it inverts the whole area in one swoop after it got rendered normally instead of going through every element. This is even more efficient because CSS filters rely on the browser implementation, meaning all the good stuff like hardware acceleration or other system specific optimizations.
Images should still show normally, but single elements cannot be excluded from the filter. This is no problem, since they can just get inverted on their own before the whole document gets inverted, reverting the images to their original color.
To preserve the visual appearance of websites which may be iconic like the blue theme of Facebook, another filter is applied that rotates the hue back by 180 degrees. However, due to certain limitations of the RGB color model, very saturated colors get clipped in their value component that would have to exceed the maximum, resulting in occasional weird–looking images after they got reverted. Where an exact representation is needed, the hue–rotation can be disabled.
[TODO]
more ideas to be implemented in future releases are:
— serve options page to input custom CSS rules to optimize other websites
— friendly ui for options page (e.g. click [+] to add a rule, specify the case e.g. as regex, input CSS to be applied into text field)
— keyboard shortcuts for enabling/disabling on domain and more
— (maybe) make only–invert option domain specific
— (maybe) optionally stop inverting input text fields
— (do YOU have an idea? contact me!)
[KNOWN BUGS]
— (confirmed for Chrome) Prints get heavily pixelated when NightReader is enabled (even with "enabled globally" unchecked). There might be a possible fix in a future Version.
Workaround: disable Extension for printing
[CHANGELOG]
[Version 1.7.41]
fix for changed Twitter CSS
improvements and tweaks for YouTube, Twitch, Twitch Beta, Wikipedia, TED and Bandcamp
[Version 1.7.4]
made popup visually respond like websites (bg + css filter)
adjustment for new YT theme (and other domains)
updated preset blacklist
[Version 1.7.3]
Updated predefined custom rules for twitch.tv (not inverting the dark theme)
added predefined custom rules for bandcamp.com
[Version 1.7.2]
Fixed/improved some of the predefined custom rules
added message encouraging feedback
[Version 1.7.1]
Bugfix: extension won't install because options page (WIP) was referenced but not found because it got excluded when packing extension
[Version 1.7]
First public release of Night Reader
Working:
- inverting webpages via css filter at earliest possible stage (when loading a webpage)
- inverting images etc. back to display normally
- hue-rotating by 180 deg to achieve a brightness invert effect/preserving hues to keep the visual appearence as close to the original as possible
- global quick extension disable switch
- domain based blacklist managed by user
- hidden CSS rules to further enhace and smoothen some features of a couple of popular websites like Facebook and Twitter
- hue-rotation disable switch as workaround for loss of color information with very saturated colors