aboutsummaryrefslogtreecommitdiffstats
path: root/Fix input fields/fix-input-fields.user.js
diff options
context:
space:
mode:
Diffstat (limited to 'Fix input fields/fix-input-fields.user.js')
-rw-r--r--Fix input fields/fix-input-fields.user.js62
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