Request Ignition 8.1 Dark Theme Designer!

I’ve been programming the most and designing for hours and it’s a real pain for our eyes retina to have see all in white. Please Inductive Development create a dark theme for projects development, the Designer app itself, hopefully for Ignition 8.1.
This software is awesome

Best Regards!

2 Likes

Beware! If you are getting eyestrain from a light background, it is almost certainly due to working in a dark room. While light vs. dark is usually a moot question if the background matches the room lighting, a bright background reduces the viewer’s pupil and therefore increases depth of field. This makes focusing on the content much easier for people with mild to moderate vision impairment. Sadly, that’s many of us, especially us geezers dealing with presbyopia. You could say that dark themes are ageist, and should not be used where you have a wide variety of users.

Some reading on the topic:

https://www.google.com/search?q=white+versus+dark+background+computer+eye+strain

2 Likes

We’re pretty unlikely to add a dark mode to the designer; the long-standing ideas post was officially closed recently. That’s not to say that we’re opposed to the idea - just that it’s not at the top of the list of feature improvements.

1 Like

I read this post from last week, and this is actually something that I was able to throw together myself using the method I developed here to automatically add the option to the designer's View dropdown when I open the designer.
Dark Mode Demo

Script Console Demo

Popup Demo

Tag and Component Browser

Vision Splash Page

Perspective Demo

I know there is a large demand for this, so if IA hasn't done anything on their end by 8.3, perhaps I'll clean this up, stress test it across the common modules, and offer it on the exchange. For now, I just wanted to point out that this simple cosmetic stuff is something that can easily be manipulated on our end.

Compare/contrast the state of Vision windows containing different components you author while in "dark mode" with standard components. Load them in an actual Vision client.

That's the biggest sticking point with us offering first-party dark mode.

I don't know what this means; can you clarify? I develop almost exclusively in Vision, and I've been using this for months without an issue. In my script, I simply don't alter anything that has a JRootPane if its not in a predefined target list, and that prevents any components in a Vision window from being touched. Note how the alarm status table and buttons in the demo video remain unchanged as I toggle from light to dark mode.

	'''
	Conditions that determine whether or not the current recursion cycle should be abandoned
	'''			
	# No iteration past root containers that are not from windows in the target list,
	# ...or other specifically selected containers that are not to be colored
	if componentClass in exclusionList and component.parent.__class__.__name__ not in targetList:
		continue

Edit: Here is the target list of containers that I allow to be colored:

def getDarkModeTargetList():
	return ['ActionEditorFrame', # Perspective component action script editor
			'BindingEditorFrame', # Perspective Binding Editor
			'BindingEditor$TransformsPanel$NewTransformPicker', # Perspective Binding Editor's "Add Transform" popup
			'ClientScriptEditor',
			'CollapsiblePanePalette',
			'ComponentScriptEditor',
			'ConfigurationExplorer', # Perspective component configuration explorerer
			'ComponentSecurityPanel', # Found in the security settings pane
			'CustomizerDialog', # Vision custom property and style customizer editors
			'DataSetEditorDialog', # Pops up when clicking on a dataset property's icon
			'DefaultPopupWindowParent',
			'DialogFloatingContainer',
			'DynamicOptsDialog', # Vision Binding Editor
			'FillAndStrokePane',
			'GlobalScriptEditor',
			'IgnitionDesigner',
			'InspectorFrame', # Reporting module property inspector
			'InteractiveScriptPlayground',
			'ImageManager',
			'JDialog', # Used for miscellaneous popups
			'KeyboardEditor',
			'KeysFrame', # Reporting module key browser
			'LayoutDialog', # Revealed by right clicking and selecting "Layout" from a Vision component
			'NavTreePanel',
			'OPCBrowserPanel',
			'OutputConsoleParent',
			'PaletteFrame', # Perspective Component selection pallet
			'PopupFactory$MediumWeightPopup$MediumWeightComponent', # These are usualy just tool tips, but sometimes they are lightweight dialogs that fit within their parent window
			'Popup$HeavyWeightWindow', # Used for various dropdown and mouse click popup menus
			'PositionDialog', # Revealed by right clicking and selecting "Size and Position" from a Vision component
			'ProjectExporter$2', # Displayed from [File-->Export]
			'PropertyEditorDialog',
			'PropertyEditorFrame', # Perspective property editor
			'PropertyTablePanel', # Vision component property pane
			'QueryBrowser',
			'ResizableWindow', # Perspective editor popups
			'ScriptEditorFrame', # Perspect custom method and message handler editor pane
			'SwingBorderEditor$BorderDialog', # Vision border editor that pops up when the pencil icon is pressed
			'SymbolBrowserFrame', # Popup window located @ [Tools --> Symbol Factory]
			'TabbedPanePalette',
			'TagBrowserFrame',
			'TagEditorDialog', # Revealed by double clicking a tag in the tag browser
			'TagObjectEditor', # Revealed by double clicking a Vision client tag in the tag browser
			'TranslationManager',
			'UdtPropBindingFrame'] # Revealed by clicking on certain parameter binding icons in the tag editor
3 Likes

A Dark Mode patch is now available for download on the exchange:
Dark Mode for the Designer

For the Vision module and the project library script editor, it's well polished. and it will darken the main of the windows in the Perspective and Reporting modules as well.

4 Likes