I'm having to learn node-RED for a project, which is fine. But I have a particular eyesight condition which makes certain colour/contrast combinations effectively invisible. One of these is white text on pastel backgrounds - and this is how all nodes in the editor seem to be labelled!
I've searched the forums and the wider web and have found a lot of advice on how to change a lot of items' colours, including the background colours of the nodes - just not how to switch the labels from white text to black. I could make them all solid black background, but that will make my flows hard for others to follow and isn't really ideal...
Until I get this fixed, I'm stuck literally at the beginning.
Ah, yes. This is unfortunately a bit of a failing for Node-RED. The colours of the nodes are left up to the node authors. I'm doubtless guilty of that myself. I tend to make all of my nodes a specific colour which may not be best. Something to add to the to-do list.
As work arounds, you might try some browser extensions. Google have a couple that might help:
Ah, yes - I am, As totallyinformation says, there are various browser plug-ins to recolourise, invert and re-contrast web pages, and anyone with eyesight like mine will be using them pretty constantly - they bring plenty of problems of their own, but they are nonetheless indispensable.
That doesn't fix the problem, though. If I disable the inversion plug-in, then nodeRED is unusable because almost everything else is bright white and thus unreaable. I, like many, lack adaptation - my eyes don't adjust to different levels of light. The inverted version I unwittingly used in the first place is very usable except for the (inverted) white text on the node labels. The standard version is entirely unusable except for the node labels! Irony, (Welcome to my world...)
Visual impairment is a very complex and very frustrating business - I highly recommend that you don't try it. In this case, just being able to change the node label text colour would leave me free to carry on doing what I need to do, which is teach myself nodeRED so I can help others. Without it, and even with the various patches, tricks and tools that anyone in my position has had to amass, it's very difficult!
If I can change all the other colours in the workspace and editor UI, then I can move on. Is this an option? If so, I can get going on that.
If I can help in any way to improve accessibility, I will do so and gladly. (I am not a JS programmer - yet - but I was a dev in the olden times.)
I'm just trying to identify the base line of what you are seeing so we can provide the right help to improve it.
Rather than use a browser plugin to modify the theme, there are a number of dark themes for Node-RED available that are more curated and considered in how they modify the theme.
And please don't take my reply as not being interested in improving the overall accessibility - we certainly are. Right now, more focussed on helping you get started today
Thank you VERY much. Themes are absolutely the right answer, I had no idea they were an option here. Let me tell you about my campaign for a universal theme descriptor scheme... another day
I (think I) have installed the themes - just to make sure I understand the instructions correctly, I choose a theme by editing its name into aettings.js and restarting? And sorry to be a nuisance, but which settings.js? find reveals seven settings.js associated with node-RED on my system, and I get nervous editing these things at random...
Sorry for the delay - real life pushed this down the stack for a while, but I have a few days to devote to this now.
I've installed the themes package as suggested, and have node-RED 1,3.1 running nicely. However, when I try to edit the settings.js file according to the theme instructions, I get errors and no running service.
The themes instructions are a little ambiguous - telling me to add some lines to the editoTtheme: section of the settings file, but including an extra editorTheme: { and } around the theme: "" statement. I don't know whether this means there should be nested editorTheme: { ... } or whther I just add the themes: < - not that it matters, as no matter what I try, I get errors.
The log output changes depending on whether I add the line(s) before or after the projects: { ... } section that's already in editorTheme, but here's what happens if I just put the themes: statement in at the end, before the closing } for the edtiroTheme section.
at Module._compile (internal/modules/cjs/loader.js:963:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Module.require (internal/modules/cjs/loader.js:887:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (/usr/lib/node_modules/node-red/red.js:136:20)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
Started Node-RED graphical event wiring tool.
Error loading settings file: /home/rupert/.node-red/settings.js
/home/rupert/.node-red/settings.js:343
theme: "dark"
^^^^^
SyntaxError: Unexpected identifier
at wrapSafe (internal/modules/cjs/loader.js:915:16)
at Module._compile (internal/modules/cjs/loader.js:963:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Module.require (internal/modules/cjs/loader.js:887:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object. (/usr/lib/node_modules/node-red/red.js:136:20)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
and here's the log if I put the themes: identifier on a line between editorTheme: { and projects: {
Started Node-RED graphical event wiring tool.
Error loading settings file: /home/rupert/.node-red/settings.js
/home/rupert/.node-red/settings.js:331
projects: {
^^^^^^^^
SyntaxError: Unexpected identifier
at wrapSafe (internal/modules/cjs/loader.js:915:16)
at Module._compile (internal/modules/cjs/loader.js:963:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Module.require (internal/modules/cjs/loader.js:887:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object. (/usr/lib/node_modules/node-red/red.js:136:20)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
/** Customising the editor
* favicon, page title, header text, header icon, deploy button, hide user menu, customise main menu, custom css, login logo
* @see https://github.com/node-red/node-red/wiki/Design:-Editor-Themes
*/
editorTheme: {
theme: 'dark',
projects: {
/** To enable the Projects feature, set this value to true */
enabled: false,
},
header: {
title: 'DEVELOPMENT (Local)',
//image: "/absolute/path/to/header/image", // or null to remove image
url: 'https://home.knightnet.....' // optional url to make the header text/image a link to this url
},
},
They have no comma because they have nothing after their entry, just the one. If you have more than one property in that section of the settings, you have to have a comma. Personally, in a js file I ALWAYS use trailing comma's anyway regardless of whether they are needed, they never hurt. However, you can't do that in a JSON file so you always need to know which you are in.
yes, I don't know the rules for .js config files - well, I guess I'm learning! At least it's not YAML
It's an experimental feature, it's not really intended for someone who isn't well versed in the ways of this particular magic, so no complaints. I'm just glad I can get stuck in at last.