Their blog post on light mode themes has some good points, but damn do they choose some bad examples of color themes.
Specifically, the Dark+ theme with Python is incredibly readable.
dark purple -> keyword
dark blue -> def and string modifiers
dark green -> comment
bright yellow -> function or method
bright blue -> variable or attribute
bright green -> module or class or type hint
Only 6 colors used and literally everything you can write has a color assigned to it. I don’t like not color coding attributes and functions/methods the same since accessing a method without calling it can cause weird issues if you’re expecting it to be a value (obj.max != obj.max(), but that distinction isn’t immediately visible without special highlighting and won’t necessarily be caught by your linter unless you have it set to strict).
To be fair, this is specifically for Python. With more language clutter you might need more color scopes, but separating highlights with darker/brighter colors where darker is for system stuff and brighter is for implementation stuff works really well. I can pretty easily scan through thousands of lines of code with that theme and almost immediately tell roughly what’s happening just from the color.
Here’s a simple example
The strings, types, functions, variables, and keywords are all clearly delineated.
On the topic of icons though they are 100% correct. I can’t stand pointless icons. Just underline the first letter and make that a shortcut if you don’t know what to do. At least that way I can scan for letters which are way easier to parse than a bunch of small pictures.
I don’t need to have an Icon tell me what something does, I need a visual roadmap that my eyes can subconsciously follow to get where I need to go. Which means clear naming and consistent placement of similar items.
Their blog post on light mode themes has some good points, but damn do they choose some bad examples of color themes.
Specifically, the Dark+ theme with Python is incredibly readable.
dark purple -> keyword
dark blue -> def and string modifiers
dark green -> comment
bright yellow -> function or method
bright blue -> variable or attribute
bright green -> module or class or type hint
Only 6 colors used and literally everything you can write has a color assigned to it. I don’t like not color coding attributes and functions/methods the same since accessing a method without calling it can cause weird issues if you’re expecting it to be a value (obj.max != obj.max(), but that distinction isn’t immediately visible without special highlighting and won’t necessarily be caught by your linter unless you have it set to strict).
To be fair, this is specifically for Python. With more language clutter you might need more color scopes, but separating highlights with darker/brighter colors where darker is for system stuff and brighter is for implementation stuff works really well. I can pretty easily scan through thousands of lines of code with that theme and almost immediately tell roughly what’s happening just from the color.
Here’s a simple example
The strings, types, functions, variables, and keywords are all clearly delineated.
On the topic of icons though they are 100% correct. I can’t stand pointless icons. Just underline the first letter and make that a shortcut if you don’t know what to do. At least that way I can scan for letters which are way easier to parse than a bunch of small pictures.
I don’t need to have an Icon tell me what something does, I need a visual roadmap that my eyes can subconsciously follow to get where I need to go. Which means clear naming and consistent placement of similar items.