Comments are a shade that's near the background: I can read them if I focus on them, but otherwise they're not present when I'm reading code
Strings are a colourful colour, because the next visual distinction I want is between what's an operation or name, and what's data or literal. Numbers don't get this treatment because they're sufficiently obvious on their own.
The base text colour has a small distinction between keywords (darker) and everything else (lighter).
Sometimes I'll pull in another colour if I'm in something like Python for things like decorators, to create a distinction between code and meta-code.
This takes care of 95% of the visual distinguishing that's useful, and the rest is noise that adds cognitive load to track. As a bonus, because it's common to all languages in which I work, switching is easy because almost every language breaks down nicely between these categories.