style-dictionary-utils
Version:
Utilities to use in your style dictionary config
25 lines (24 loc) • 943 B
JavaScript
import { isTransitionFilter } from '../filter/isTransition.js';
import { getValue } from '../utilities/getValue.js';
import { cubicBezierTransformer } from './cubicBezier-css.js';
import { durationValueTransformer } from './duration-css.js';
/**
* transitionCss
* @description convert a transition token to a CSS-compatible transition string
*/
export const transitionCss = {
name: 'transition/css',
type: `value`,
transitive: true,
filter: isTransitionFilter,
transform: (token) => {
try {
const { duration, delay, timingFunction } = getValue(token);
return `${durationValueTransformer(duration)} ${durationValueTransformer(delay)} ${cubicBezierTransformer(timingFunction)}`.trim();
// catch errors and rethrow with token name
}
catch (error) {
throw new Error(`Error transforming transition token '${token.name}': ${error}`);
}
},
};