@tokens-studio/sd-transforms
Version:
Custom transforms for Style-Dictionary, to work with Design Tokens that are exported from Tokens Studio
25 lines (24 loc) • 835 B
JavaScript
import { percentageToDecimal } from '../utils/percentageToDecimal.js';
/**
* Helper: Transforms letter spacing % to em
*/
export function transformLetterSpacingForCSS(token) {
const val = token.$value ?? token.value;
const type = token.$type ?? token.type;
if (val === undefined)
return undefined;
const transformLetterSpacing = (letterspacing) => {
const decimal = percentageToDecimal(letterspacing);
return typeof decimal === 'string' || isNaN(decimal) ? `${letterspacing}` : `${decimal}em`;
};
if (type === 'typography') {
if (val.letterSpacing !== undefined) {
return {
...val,
letterSpacing: transformLetterSpacing(val.letterSpacing),
};
}
return val;
}
return transformLetterSpacing(val);
}