When designing a website/mobile you need to choose your neutrals. But I can't get my head around it. Sure I can move the color picker around but I'm trying to generate neutrals in a controlled, consistent and reproductible way. So a bit of methodology would be much appreciated.
I tried generators such as grayscale.design, tints.dev, etc. but there's something I don't get. These generators usually give you a set of ~10 tints and shades by default. Adding more values and you loose contrast between them (I read that best practices are to maintain some sort of contrast ratio between them). Removing some values and you end up with few values to assign to you UI.
Honestly, I feel that even 10 tints and shades are not enough.
First, you generally use only the dark ones and the light one, killing the middle values. So you end up with 5-6 values at best.
Second for a wide range of UI elements. Text, secondary text, muted text, placeholder, inverse text, icons, background, primary surface, secondary surface, tertiary surface, fill, borders, etc.. then you have to multiply those UI elements by the different states: hovered, active, selected, disabled... See the issue? 5-6 gray for dozens of UI applications.
I see lots of article saying that designing your UI in grayscale first before adding colors helps managing contrasts for accessibility but how can I design a whole website with my 5 to 6 gray values.
What are you methodologies to generate enough neutrals, that are spaced enough in term of contrast ratio, that you can assign to dozens of UI elements, each in different states?