apphouse
Version:
Component library for React that uses observable state management and theme-able components.
37 lines (31 loc) • 943 B
text/typescript
import {
FONT_SIZE_CONVERSION_RATIO_PX_TO_PT,
FONT_SIZE_CONVERSION_RATIO_REMS_TO_PX
} from './fontSizeRatios';
export const toPt = (value: string | number) => {
if (!value) {
return '';
}
if (typeof value === 'string') {
if (value.indexOf('rem') >= 0) {
return `${parseFloat(value) * FONT_SIZE_CONVERSION_RATIO_REMS_TO_PX}pt`;
}
if (value.indexOf('px') >= 0) {
return `${parseFloat(value) * FONT_SIZE_CONVERSION_RATIO_PX_TO_PT}pt`;
}
if (value.indexOf('pt') >= 0) {
return `${parseFloat(value) * FONT_SIZE_CONVERSION_RATIO_PX_TO_PT}pt`;
}
if (value.indexOf('sp') >= 0) {
return `${parseFloat(value)}sp`;
}
if (isNaN(parseFloat(value))) {
return `0pt`;
}
return `${parseFloat(value) * FONT_SIZE_CONVERSION_RATIO_PX_TO_PT}pt`;
}
if (typeof value === 'number') {
return `${value * FONT_SIZE_CONVERSION_RATIO_PX_TO_PT}pt`;
}
return value;
};