diff options
Diffstat (limited to 'Fix input fields')
-rw-r--r-- | Fix input fields/fix-input-fields.user.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/Fix input fields/fix-input-fields.user.js b/Fix input fields/fix-input-fields.user.js new file mode 100644 index 0000000..d300fbd --- /dev/null +++ b/Fix input fields/fix-input-fields.user.js @@ -0,0 +1,62 @@ +// ==UserScript== +// @name Fix input fields +// @namespace snake66 +// @description Fix input fields with unreadable text +// @include http://*/* +// @include https://*/* +// @version 2 +// @grant none +// ==/UserScript== + +function normalizedColor(color) +{ + let argstart = color.indexOf("(") + 1; + let arglen = color.lastIndexOf(")") - argstart; + let type = color.substr(0, argstart - 1); + let args = color.substr(argstart, arglen).split(", ").map(function(v) { + return parseInt(v); + }); + return {type: type, val: args} +} + +function isBright(color) +{ + if (!color || color == "") + return false; + + let c = normalizedColor(color); + if (c.type != "rgb") + return false; + + let avg = (c.val[0] + c.val[1] + c.val[2]) / 3; + return avg > 90; +} + +function fixInputFields() +{ + let inputs = document.getElementsByTagName("input"); + console.log("Fix input fields found " + inputs.length + " inputs..."); + + for (let i = 0; i < inputs.length; i++) { + let input = inputs[i]; + let style = getComputedStyle(input); + let fg = style.getPropertyValue("color"); + let bg = style.getPropertyValue("background-color"); + let image = style.getPropertyValue("background-image"); + + if (image) { + input.style.backgroundImage = "none"; + } + + if (isBright(bg)) { + if (isBright(fg)) { + input.style.color = "darkslategray"; + } + } else if (!isBright(fg)) { + input.style.color = "lightgray"; + } + } + console.log("Fix input fields end..."); +} + +fixInputFields();
\ No newline at end of file |