The undertone of your neutral scale — warm (yellow/red bias), cool (blue/green bias), or true neutral — should be chosen in relation to your brand primary hue, not independently. A cobalt-blue primary with a warm neutral creates a tension that makes the UI feel inconsistent: the primary screams digital and cool, the background mutters warm and analog. The convention in digital design systems is to use a cool-to-neutral gray scale for blue-primary products (Google, Atlassian, Salesforce) and a warm gray scale for products with warmer primaries (Airbnb's warm gray, Mailchimp's warm off-white). This is not a hard rule, but the more saturated and chromatic your brand primary, the more the neutral scale's undertone creates or destroys coherence.
Most mature design systems use 10-12 neutral steps (Gray-50, Gray-100 ... Gray-900, Gray-950 in Tailwind's convention). The density of steps near the ends of the scale (very light and very dark) is more important than steps in the middle. Very light neutrals (50, 100, 200) define the entire range of background surfaces in light mode — getting these three steps right determines whether the UI feels layered or flat. Very dark neutrals (800, 900, 950) define dark mode surfaces and text-on-light contrast. The middle range (400-600) handles borders, disabled states, and placeholder text. If you can only spend time tuning three areas of a neutral scale, tune the light end, tune the dark end, and make sure your mid-tones are monotonically decreasing in lightness (perceptual lightness jumps between adjacent steps create visual discontinuities in gradients and hover states).
Pure HSL grays (hue=0, saturation=0) look artificially flat in interfaces that contain chromatic content because the human visual system adapts to chromatic context and reads pure neutral grays as slightly colored by contrast. The fix — used by almost every major design system — is to add a small amount of chroma to neutral steps (typically 2-6% saturation in HSL, or a chroma of 2-5 in OKLCH). This chroma addition coordinates the gray with the primary hue direction, making the neutral feel like it belongs in the same color world as the chromatic elements. Figma's Gray palette, Apple's system grays, and Google's Material 3 neutral palette all use slightly chromatic neutrals. The effect is subtle at any single step but cumulatively produces a neutral palette that feels unified rather than generic.