In reply to Marko.

The reason many of us prefer the "T-shirt size" model for font sizes is that it allows you to scale in either direction while maintaining semantic names. You can always continue appending *-xs or *-xl for smaller or larger sizes. Font sizes extend outward from a base/medium number rather than starting from 0.

For spacing, I use the same approach of a stepped (multiplier) naming system. That makes far more sense, which start from 0.

--base: 0.25rem;

--margin-1: calc( 1 * var( --base ) );
--margin-2: calc( 2 * var( --base ) );

--padding-1: calc( 1 * var( --base ) );
...

--gap-1: calc( 1 * var( --base ) );
...