Bootstrapping problem - node label text colour

Hi, all

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.

Any help is very much apprecaited

Rupert

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:

Hi @RupertG

The default theme for node-red has the nodes labelled with dark text.

Are you using a dark theme or some other modification to get white text?

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.)

tl;dr accessibility is about choice!

Thanks very much,

R

1 Like

Aha - see my reply to knolleary below. Much unpacking...

R

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.

If you are using Node-RED 1.3 (released last week), then you can install this module and pick from the themes it provides: GitHub - node-red-contrib-themes/theme-collection: Collection of Node-RED themes published by the Node-RED Contrib Themes team

If you are on an earlier version, you can still install extra themes, they just take a bit more work to setup. For example: GitHub - node-red-contrib-themes/midnight-red: A gorgeous dark theme for Node-RED

1 Like

And I know you've put in a lot of work trying to make sure that everything is themable.

CSS Classname: red-ui-palette-label is the class for all of the labels so it can overridden.

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 :slight_smile:

1 Like

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 :slight_smile:

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...

The one you need to change exists in your userDir folder which is at ~/.node-red on most systems.

when you start Node-RED the console log will print out the full path of the one it is using.

Hi guys

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)

So - ?

Thanks,
Rupert

Pretty clear here, you have an error in the format of your settings file at line 343.

I just followed the exact instructions on the node-red-contrib-themes/theme-collection: Collection of Node-RED themes published by the Node-RED Contrib Themes team (github.com) page and it worked perfectly.

    /** 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
        },
    },

Thanks - that worked.

It's very strange, when I look at the instructions at GitHub - node-red-contrib-themes/theme-collection: Collection of Node-RED themes published by the Node-RED Contrib Themes team there's no comma at the end of the theme: "dark" where you do have one, and it was the missing comma that was going it. Even Mr Cut And Paste says there's no comma so... huh.

Anyway, fantastic - I can get on with the tutorials now.

Thanks everyone...

R

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 :slight_smile:

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.

R

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.