################################################################################# # privoxy.jed: Additional Privoxy filters for light on dark prefs, by John E Duncan. # # Change Log: # 2006.02.02 # A new update! # # Added rgb/digital style filters (rgb(255,255,255)) # See comment for more details # # Added JED-C-BGImgCSS (what it says) # # I found a site with "C-style" comments (/*...*/) # in their style, causing the filters to not trigger. # I took care of one possible location, see the # comment and filter lines. # # License terms are now more appropriate for # a config: Creative Commons Attribution 2.5 # 2004.03.12 # Correct a couple subs typos. # # Action file section: Specifically filter /.*\.css, # since broken sites may return wrong mimetype, # preventing default filtering. (cough, businessweek.com) # 2004.03.08 # (Unreleased. To be effective on site with next update.) # Reordered comments, moving changelog up. # # Removed the JED-Raquo and JED-Font filters, leaving only the # JED-GoogleColor and JED-Color filters in the public file. # 2004.03.07 # **FINALLY** implement strong-color background substitutions. # Google cache hiliting works now without any special treatment. # Still need the reverse, standard colored txt/foreground subs. # # Changelog: Switched to reverse cron order. Switched to hash # bullets, since my fingers seem to want that anyway. # # Corrected lack of semicolon attrib terminator in many style subs. # 2004.03.01 # Reverted to including <> in style substitutions. (Forgot # about style= attributes in tags when I removed them.) # 2004.02.25 # Added end ## lines to ease extracting from my working copy. # # Realized (BG|BGC)-CF needed to be extended downward to B, # didn't want to default color them all, so split it up. # # Added many \b's to prevent mid-word matching, far safer. # # Tweaked gray conversion on -C to -E, 111>222, 222>333, 333>444 # # Slightly more comment verbosity. # # Split/tweaked (C|Txt|Font)-xx # # Google searches work w/o special treatment now, so remove # most of GoogleColor, leaving only File Format hiliting. # Change it and relocate filter above Color, for precidence. # Cached page hiliting (and strong colors in general) still # not optimal. # 2004.02.22 # First public version ################################################################################# # # This file is available at # http://members.cox.net/pu61ic.1inux.dunc4n/software/privoxy.jed # (There is no proper web site there at this time, only a few files like this one.) # # I can be reached at the same username ( so it looks like public.linux.duncan@cox.net, # but isn't. To avoid my spam filters, DO NOT USE HTML!! Also use this keyword at # the END of the subject line: --1inux (that is space dash dash one inux END). # Messages without an appropriate keyword are treated as spam. # Further, inclusion of "privoxy" in the subject line for automated sorting would # be appreciated. ( I don't always check mail that often, sometimes as seldom as once # a month, so a reply, if any, may take awhile. ) # # Note that both the URL and the address are the same user public.linux.duncan, # only substituting six for "be", one for "el", and four for "ae", again, for # spam control. # ################################################################################# # License: # This work is licensed under the Creative Commons Attribution 2.5 License. # To view a copy of this license, visit # http://creativecommons.org/licenses/by/2.5/ # or send a letter to # Creative Commons # 543 Howard Street, 5th Floor # San Francisco, California, 94105, USA. ################################################################################# # Privoxy itself is a software libre GPL licensed personal privacy and filtering # proxy, based on the original Junkbuster (tm) proxy code, but much enhanced since # then. (I'm just a happy user with my own customized config, a portion of which I # happened to mention in a discussion and was asked to make available, so here # it is...) For more information on Privoxy itself, go to http://privoxy.org ################################################################################# # Portions of this file can be added to user.action and default.filter # as appropriate. Note that as posted, the action lines are deactivated # as comments, for safety. Modify and activate as desired. ################################################################################# ################################################################################# # Add the filter invokers in this section, modified as desired, to user.action # I have commented them out to prevent unwanted activation. Uncomment to activate. ################################################################################# #{+filter{JED-GoogleColor}} #.google.com #{+filter{JED-Color}} #/ #/.*\.css ################################################################################# ################################################################################# # Here are the filters themselves, to be added to default.filter # Note that they assume browser defaults of text=white, background=black. # If you've other light on dark prefs, it won't matter much, except in gradient grays, # where I assume the extremes as default and thus often simply remove the specific setting. ################################################################################# FILTER: JED-GoogleColor Fix colors on Google for light on dark # The general filters below work on search pages now. # This filter simply hilights (in red) Google File Format notes. s+(\s*File\sFormat:\s*)([^<>]*)]*)(\sbgcolor\s*=\s*['"]?)\#?(?:c.c.c.|ccc)\b+$1 JED-C-BGC-C $2\#444+isUg # BGC-D lighter-gray to darker-gray s+(<[^>]*)(\sbgcolor\s*=\s*['"]?)\#?(?:d.d.d.|ddd)\b+$1 JED-C-BGC-D $2\#333+isUg # BGC-E very-light-gray to very-dark-gray s+(<[^>]*)(\sbgcolor\s*=\s*['"]?)\#?(?:e.e.e.|eee)\b+$1 JED-C-BGC-E $2\#222+isUg # BGC-F near-white to black s+(<[^>]*)(\sbgcolor\s*=\s*['"]?)\#?(?:f.f.f.|fff)\b+$1 JED-C-BGC-F $2\#000+isUg # BGC-EF tinted lighter gray to black s+(<[^>]*)(\sbgcolor\s*=\s*['"]?)\#?(?:[e-f].[e-f].[e-f].|[e-f]{3})\b+$1 JED-C-BGC-EF $2\#000+isUg # BGC-DF tinted light-gray to dark-gray s+(<[^>]*)(\sbgcolor\s*=\s*['"]?)\#?(?:[d-f].[d-f].[d-f].|[d-f]{3})\b+$1 JED-C-BGC-DF $2\#222+isUg # BGC-BCC light cyan darkened s+(<[^>]*)(\sbgcolor\s*=\s*['"]?)\#?([b-f].[c-f].[c-f].|[b-f][c-f][c-f])\b+$1 JED-C-BGC-BCC=$3$2\#044+isUg # BGC-CBC light magenta darkened s+(<[^>]*)(\sbgcolor\s*=\s*['"]?)\#?([c-f].[b-f].[c-f].|[c-f][b-f][c-f])\b+$1 JED-C-BGC-CBC=$3$2\#404+isUg # BGC-CCB light yellow darkened s+(<[^>]*)(\sbgcolor\s*=\s*['"]?)\#?([c-f].[c-f].[b-f].|[c-f][c-f][b-f])\b+$1 JED-C-BGC-CCB=$3$2\#440+isUg # BGC-BBC light blue darkened s+(<[^>]*)(\sbgcolor\s*=\s*['"]?)\#?([b-f].[b-f].[c-f].|[b-f][b-f][c-f])\b+$1 JED-C-BGC-BBC=$3$2\#004+isUg # BGC-BCB light green darkened s+(<[^>]*)(\sbgcolor\s*=\s*['"]?)\#?([b-f].[c-f].[b-f].|[b-f][c-f][b-f])\b+$1 JED-C-BGC-BCB=$3$2\#040+isUg # BGC-CBB light red darkened s+(<[^>]*)(\sbgcolor\s*=\s*['"]?)\#?([c-f].[b-f].[b-f].|[c-f][b-f][b-f])\b+$1 JED-C-BGC-CBB=$3$2\#400+isUg # BGC-0AA strong cyan darkened s+(<[^>]*)(\sbgcolor\s*=\s*['"]?)\#?([0-9a-f].[a-f].[a-f].|[0-9a-f][a-f][a-f])\b+$1 JED-C-BGC-0AA=$3$2\#066+isUg # BGC-A0A strong magenta darkened s+(<[^>]*)(\sbgcolor\s*=\s*['"]?)\#?([a-f].[0-9a-f].[a-f].|[a-f][0-9a-f][a-f])\b+$1 JED-C-BGC-A0A=$3$2\#606+isUg # BGC-AA0 strong yellow darkened s+(<[^>]*)(\sbgcolor\s*=\s*['"]?)\#?([a-f].[a-f].[0-9a-f].|[a-f][a-f][0-9a-f])\b+$1 JED-C-BGC-AA0=$3$2\#660+isUg # BGC-00A strong blue darkened s+(<[^>]*)(\sbgcolor\s*=\s*['"]?)\#?([0-9a-f].[0-9a-f].[a-f].|[0-9a-f][0-9a-f][a-f])\b+$1 JED-C-BGC-00A=$3$2\#006+isUg # BGC-0A0 strong green darkened s+(<[^>]*)(\sbgcolor\s*=\s*['"]?)\#?([0-9a-f].[a-f].[0-9a-f].|[0-9a-f][a-f][0-9a-f])\b+$1 JED-C-BGC-0A0=$3$2\#060+isUg # BGC-A00 strong red darkened s+(<[^>]*)(\sbgcolor\s*=\s*['"]?)\#?([a-f].[0-9a-f].[0-9a-f].|[a-f][0-9a-f][0-9a-f])\b+$1 JED-C-BGC-A00=$3$2\#600+isUg # BGC-Name all these light colors to default s+(<[^>]*)(\s)bgcolor\s*(=\s*['"]?\ (?:AliceBlue|AntiqueWhite[123]?|BlanchedAlmond|DarkSeaGreen1|FloralWhite|GhostWhite|\ LavenderBlush[123]?|LemonChiffon[12]?|LightCyan[123]?|LightGoldenrodYellow|LightGr[ae]y|\ LightSteelBlue1|LightYellow[12]?|MintCream|MistyRose[12]?|OldLace|PapayaWhip|RosyBrown1|\ SlateGr[ae]y1|WhiteSmoke|Azure[123]?|Beige|Bisque[12]?|CornSilk[12]?|Gainsboro|\ Gr[ae]y(:7[6-9]|8[0-9]|9[0-9]|100)|Honeydew[123]?|Ivory[123]?|Lavender|Linen|Pink|\ SeaShell[123]?|Snow[123]?|Thistle[12]?|White)\b\ )+$1$2JED-C-BGC-Name-$3+isUgx # BGImg kill bg images, too, so they don't screw our prefs s+(<[^>]*)(\s)background\s*=+$1$2JED-C-BGImgHTM=+isUg # Font and text (foreground) color tags # Txt-01 Near-black to white s+(<[^>]*)(\stext\s*=\s*['"]?)\#?([01].[01].[01].|[01][01][01])\b+$1 JED-C-Txt-01=$3$2\#fff+isUg # Txt-23 darker-gray to lighter-gray s+(<[^>]*)(\stext\s*=\s*['"]?)\#?([23].[23].[23].|[23][23][23])\b+$1 JED-C-Txt-23=$3$2\#ddd+isUg # Txt-45 lighter-dark-gray to darker-light-gray s+(<[^>]*)(\stext\s*=\s*['"]?)\#?([45].[45].[45].|[45][45][45])\b+$1 JED-C-Txt-45=$3$2\#bbb+isUg # Txt-68 dark-mid-gray to light-mid-gray s+(<[^>]*)(\stext\s*=\s*['"]?)\#?([678].[678].[678].|[678][678][678])\b+$1 JED-C-Txt-68=$3$2\#aaa+isUg # Txt-466 dark cyan lightened s+(<[^>]*)(\stext\s*=\s*['"]?)\#?([0-4].[0-6].[0-6].|[0-4][0-6][0-6])\b+$1 JED-C-Txt-466=$3$2\#0ff+isUg # Txt-646 dark magenta lightened s+(<[^>]*)(\stext\s*=\s*['"]?)\#?([0-6].[0-4].[0-6].|[0-6][0-4][0-6])\b+$1 JED-C-Txt-646=$3$2\#f0f+isUg # Txt-664 dark yellow lightened s+(<[^>]*)(\stext\s*=\s*['"]?)\#?([0-6].[0-6].[0-4].|[0-6][0-6][0-4])\b+$1 JED-C-Txt-664=$3$2\#ff0+isUg # Txt-446 dark blue lightened s+(<[^>]*)(\stext\s*=\s*['"]?)\#?([0-4].[0-4].[0-6].|[0-4][0-4][0-6])\b+$1 JED-C-Txt-446=$3$2\#00f+isUg # Txt-484 dark green lightened s+(<[^>]*)(\stext\s*=\s*['"]?)\#?([0-4].[0-8].[0-4].|[0-4][0-8][0-4])\b+$1 JED-C-Txt-484=$3$2\#0f0+isUg # Txt-644 dark red lightened s+(<[^>]*)(\stext\s*=\s*['"]?)\#?([0-6].[0-4].[0-4].|[0-6][0-4][0-4])\b+$1 JED-C-Txt-644=$3$2\#f00+isUg # Font-01 Near-black to white s+(]*)(\sCOLOR\s*=\s*['"]?)\#?([01].[01].[01].|[01][01][01])\b+$1 JED-C-Font-01=$3$2\#fff+isUg # Font-23 darker-gray to lighter-gray s+(]*)(\sCOLOR\s*=\s*['"]?)\#?([23].[23].[23].|[23][23][23])\b+$1 JED-C-Font-23=$3$2\#ddd+isUg # Font-45 lighter-dark-gray to darker-light-gray s+(]*)(\sCOLOR\s*=\s*['"]?)\#?([45].[45].[45].|[45][45][45])\b+$1 JED-C-Font-45=$3$2\#bbb+isUg # Font-68 dark-mid-gray to light-mid-gray s+(]*)(\sCOLOR\s*=\s*['"]?)\#?([678].[678].[678].|[678][678][678])\b+$1 JED-C-Font-68=$3$2\#aaa+isUg # Font-466 dark cyan lightened s+(]*)(\sCOLOR\s*=\s*['"]?)\#?([0-4].[0-6].[0-6].|[0-4][0-6][0-6])\b+$1 JED-C-Font-466=$3$2\#0ff+isUg # Font-646 dark magenta lightened s+(]*)(\sCOLOR\s*=\s*['"]?)\#?([0-6].[0-4].[0-6].|[0-6][0-4][0-6])\b+$1 JED-C-Font-646=$3$2\#f0f+isUg # Font-664 dark yellow lightened s+(]*)(\sCOLOR\s*=\s*['"]?)\#?([0-6].[0-6].[0-4].|[0-6][0-6][0-4])\b+$1 JED-C-Font-664=$3$2\#ff0+isUg # Font-446 dark blue lightened s+(]*)(\sCOLOR\s*=\s*['"]?)\#?([0-4].[0-4].[0-6].|[0-4][0-4][0-6])\b+$1 JED-C-Font-446=$3$2\#00f+isUg # Font-484 dark green lightened s+(]*)(\sCOLOR\s*=\s*['"]?)\#?([0-4].[0-8].[0-4].|[0-4][0-8][0-4])\b+$1 JED-C-Font-484=$3$2\#0f0+isUg # Font-644 dark red lightened s+(]*)(\sCOLOR\s*=\s*['"]?)\#?([0-6].[0-4].[0-4].|[0-6][0-4][0-4])\b+$1 JED-C-Font-644=$3$2\#f00+isUg # FontNavy turn navy into blue s+(]*)(COLOR\s*=\s*)(['"]?Navy)\b+$1 $2Blue JED-C-FontNavy+isUg # FontBlack turn black into white s+(]*)(COLOR\s*=\s*)(['"]?Black)\b+$1 $2White JED-C-FontBlack+isUg # LinkA = link/anchor colors simply default them s+(\s)([[:alpha:]]*)link\s*=+$1JED-C-LinkA-$2=+isUg # Specific body text color white, since any bgcolor attribute # in tag defaults text to black in some browsers.. s+()(?=\s*[^'"])+$1+isU # Styles.. Do with newer CSS (styles) basically what we did for tags above. # These may be in separate CSS file or in a style section in the HTML itself. # These are demarked by {}. They may also be special "style" attributes of tags. # Thus, the use of the character classes [{>] and [^}>] # (I forgot about that and took out the <> at one point, and had to revert. =:^( # Anchor (link) simply default these s/((?:^|\s|})a[a-z0-9.]*(?::(?:link|visited|active|hover)\ [a-z0-9.]*)?\s*{[^}]*)color\s*:/$1JED-C-Anchor-color:/isUgx # BGImg kill bg images, too, so they don't screw our prefs s+({[^}]*)background-image\s*:\s*[^;]*+$1JED-C-BGImgCSS:+isUg # ARRGH! A new digital style to filter, for folks evidently too lazy to put it in hex # example: # rough tranlation, hexfilter=digitalrange: # background: a=16x, b=17x-18x, c=19x, d=20x-21x, e=22x-23x, f=24x-25x # foreground: 01=00x-02x, 23=03x-05x, 45=06x-09x, 68=10x-13x # So... FILTERx now denotes the digital form of the filter. Ex: BG-Cx= digital form of BG-C # Another ARRGH! C-style (/*...*/) Comments in styles. I took care of one possible location, # after the colon, in the BG- (numeric only) and C- filters. # Background # BG-C light-gray to dark-gray 192-207 s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:c.c.c.|ccc)\b+$1JED-C-BG-C; $2\#444+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*19\d,\s*19\d,\s*19\d\s*\)+$1JED-C-BG-Cx; $2\#444+isUg # BG-D lighter-gray to darker-gray s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:d.d.d.|ddd)\b+$1JED-C-BG-D; $2\#333+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*2[01]\d,\s*2[01]\d,\s*2[01]\d\s*\)+$1JED-C-BG-Dx; $2\#333+isUg # BG-E very-light-gray to very-dark-gray s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:e.e.e.|eee)\b+$1JED-C-BG-E; $2\#222+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*2[23]\d,\s*2[23]\d,\s*2[23]\d\s*\)+$1JED-C-BG-Ex; $2\#222+isUg # BG-F near-white to black s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:f.f.f.|fff)\b+$1JED-C-BG-F; $2\#000+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*2[45]\d,\s*2[45]\d,\s*2[45]\d\s*\)+$1JED-C-BG-Fx; $2\#000+isUg # BG-EF tinted lighter gray to black s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:[e-f].[e-f].[e-f].|[e-f]{3})\b+$1JED-C-BG-EF; $2\#000+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*2[2345]\d,\s*2[2345]\d,\s*2[2345]\d\s*\)+$1JED-C-BG-EFx; $2\#000+isUg # BG-DF tinted light gray to dark gray s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:[d-f].[d-f].[d-f].|[d-f]{3})\b+$1JED-C-BG-DF; $2\#222+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*2\d\d,\s*2\d\d,\s*2\d\d\s*\)+$1JED-C-BG-DFx; $2\#222+isUg # BG-BCC light cyan darkened s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:[b-f].[c-f].[c-f].|[b-f][c-f][c-f])\b+$1JED-C-BG-BCC; $2\#044+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*(?:1[789]|2\d)\d,\s*(?:19|2\d)\d,\s*(?:19|2\d)\d\s*\)+$1JED-C-BG-BCCx; $2\#044+isUg # BG-CBC light magenta darkened s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:[c-f].[b-f].[c-f].|[c-f][b-f][c-f])\b+$1JED-C-BG-CBCx; $2\#404+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*(?:19|2\d)\d,\s*(?:1[789]|2\d)\d,\s*(?:19|2\d)\d\s*\)+$1JED-C-BG-CBCx; $2\#404+isUg # BG-CCB light yellow darkened s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:[c-f].[c-f].[b-f].|[c-f][c-f][b-f])\b+$1JED-C-BG-CCB; $2\#440+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*(?:19|2\d)\d,\s*(?:19|2\d)\d,\s*(?:1[789]|2\d)\d\s*\)+$1JED-C-BG-CCBx; $2\#440+isUg # BG-BBC light blue darkened s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:[b-f].[b-f].[c-f].|[b-f][b-f][c-f])\b+$1JED-C-BG-BBC; $2\#004+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*(?:1[789]|2\d)\d,\s*(?:1[789]|2\d)\d,\s*(?:19|2\d)\d\s*\)+$1JED-C-BG-BBCx; $2\#004+isUg # BG-BCB light green darkened s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:[b-f].[c-f].[b-f].|[b-f][c-f][b-f])\b+$1JED-C-BG-BCB; $2\#040+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*(?:1[789]|2\d)\d,\s*(?:19|2\d)\d,\s*(?:1[789]|2\d)\d\s*\)+$1JED-C-BG-BCBx; $2\#040+isUg # BG-CBB light red darkened s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:[c-f].[b-f].[b-f].|[c-f][b-f][b-f])\b+$1JED-C-BG-CBB; $2\#400+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*(?:19|2\d)\d,\s*(?:1[789]|2\d)\d,\s*(?:1[789]|2\d)\d\s*\)+$1JED-C-BG-CBBx; $2\#400+isUg # BG-0AA strong cyan darkened s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:[0-9a-f].[a-f].[a-f].|[0-9a-f][a-f][a-f])\b+$1JED-C-BG-0AA; $2\#066+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*\d\d\d,\s*(?:1[6789]|2\d)\d,\s*(?:1[6789]|2\d)\d\s*\)+$1JED-C-BG-0AAx; $2\#066+isUg # BG-A0A strong magenta darkened s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:[a-f].[0-9a-f].[a-f].|[a-f][0-9a-f][a-f])\b+$1JED-C-BG-A0A; $2\#606+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*(?:1[6789]|2\d)\d,\s*\d\d\d,\s*(?:1[6789]|2\d)\d\s*\)+$1JED-C-BG-A0Ax; $2\#606+isUg # BG-AA0 strong yellow darkened s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:[a-f].[a-f].[0-9a-f].|[a-f][a-f][0-9a-f])\b+$1JED-C-BG-AA0; $2\#660+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*(?:1[6789]|2\d)\d,\s*(?:1[6789]|2\d)\d,\s*\d\d\d\s*\)+$1JED-C-BG-AA0x; $2\#660+isUg # BG-00A strong blue darkened s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:[0-9a-f].[0-9a-f].[a-f].|[0-9a-f][0-9a-f][a-f])\b+$1JED-C-BG-00A; $2\#006+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*\d\d\d,\s*\d\d\d,\s*(?:1[6789]|2\d)\d\s*\)+$1JED-C-BG-00Ax; $2\#006+isUg # BG-0A0 strong green darkened s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:[0-9a-f].[a-f].[0-9a-f].|[0-9a-f][a-f][0-9a-f])\b+$1JED-C-BG-0A0; $2\#060+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*\d\d\d,\s*(?:1[6789]|2\d)\d,\s*\d\d\d\s*\)+$1JED-C-BG-0A0x; $2\#060+isUg # BG-A00 strong red darkened s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)\#?(?:[a-f].[0-9a-f].[0-9a-f].|[a-f][0-9a-f][0-9a-f])\b+$1JED-C-BG-A00; $2\#600+isUg s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)rgb\s*\(\s*(?:1[6789]|2\d)\d,\s*\d\d\d,\s*\d\d\d\s*\)+$1JED-C-BG-A00x; $2\#600+isUg # BG-Name (sometimes both background and background-color attribs, so listed once for each) s+([{<][^}>]*)(background\s*:\s* \ (?:AliceBlue|AntiqueWhite[123]?|BlanchedAlmond|DarkSeaGreen1|FloralWhite|GhostWhite| \ LavenderBlush[123]?|LemonChiffon[12]?|LightCyan[123]?|LightGoldenrodYellow|LightGr[ae]y| \ LightSteelBlue1|LightYellow[12]?|MintCream|MistyRose[12]?|OldLace|PapayaWhip|RosyBrown1| \ SlateGr[ae]y1|WhiteSmoke|Azure[123]?|Beige|Bisque[12]?|CornSilk[12]?|Gainsboro| \ Gr[ae]y(:7[6-9]|8[0-9]|9[0-9]|100)|Honeydew[123]?|Ivory[123]?|Lavender|Linen|Pink| \ SeaShell[123]?|Snow[123]?|Thistle[12]?|White)\b \ )+$1JED-C-BG-Name-$2+isUgx s+([{<][^}>]*)(background-color\s*:\s* \ (?:AliceBlue|AntiqueWhite[123]?|BlanchedAlmond|DarkSeaGreen1|FloralWhite|GhostWhite| \ LavenderBlush[123]?|LemonChiffon[12]?|LightCyan[123]?|LightGoldenrodYellow|LightGr[ae]y| \ LightSteelBlue1|LightYellow[12]?|MintCream|MistyRose[12]?|OldLace|PapayaWhip|RosyBrown1| \ SlateGr[ae]y1|WhiteSmoke|Azure[123]?|Beige|Bisque[12]?|CornSilk[12]?|Gainsboro| \ Gr[ae]y(:7[6-9]|8[0-9]|9[0-9]|100)|Honeydew[123]?|Ivory[123]?|Lavender|Linen|Pink| \ SeaShell[123]?|Snow[123]?|Thistle[12]?|White)\b \ )+$1JED-C-BG-Name-$2+isUgx # BG-U s+([{<][^}>]*)(background(?:-color)?\s*:\s*(?:/\*.*\*/\s*)?)url\([^)]*\)\s*+$1JED-C-BG-U $2+isUg # Foreground/text # C-01 Near-black to white s+([{<][^}>]*)((?]*)((?]*)((?]*)((?]*)((?]*)((?]*)((?]*)((?]*)((?]*)((?]*)((?]*)((?]*)((?]*)((?]*)((?]*)((?]*)((?]*)((?]*)((?]*)((?]*)((?