Fashion is significantly more limited and changes more often. Not that these basics can not change, but fashion refers to something still less stable.
GrayScale = 0.299 * R + 0.587 * G + 0.114 * B
Grayscale tells you if the color is for foreground/background - it's something like the weight the color has.
When I had to pick (too many) colors manually I finally automated color picking by using the following rules - and never had to worry about this subject any more.
A) When combining colors it's good to have matching Gray-Values. (Otherwise one will dominate - you can also use this to make one color stand out)
B) Gray value of background and foreground should differ a lot.
C) Colors of similar gray value should not be picked too close to each other (obviously...)
Maybe some of these references are a starting point, idk.
(warning -PDF link)
https://scholarworks.umass.edu/cgi/viewcontent.cgi?article=1...