styled-responsive
Version:
Responsive helpers for :nail_care: styled-components. Mobile-first and react-native ready.
206 lines (203 loc) • 6.65 kB
JavaScript
function defaultTranslator(props) {
var result = {}
if (props === 'undefined')
return
Object.keys(props).filter((key) => {
switch (key) {
case 'm':
result['margin'] = props[key];
break;
case 'marginVertical':
case 'mv':
result['marginTop'] = props[key];
result['marginBottom'] = props[key];
break;
case 'marginHorizontal':
case 'mh':
result['marginRight'] = props[key];
result['marginLeft'] = props[key];
break;
case 'mt':
result['marginTop'] = props[key];
break;
case 'ml':
result['marginLeft'] = props[key];
break;
case 'mb':
result['marginBottom'] = props[key];
break;
case 'mr':
result['marginRight'] = props[key];
break;
case 'p':
result['padding'] = props[key];
break;
case 'paddingVertical':
case 'pv':
result['paddingTop'] = props[key];
result['paddingBottom'] = props[key];
break;
case 'paddingHorizontal':
case 'ph':
result['paddingRight'] = props[key];
result['paddingLeft'] = props[key];
break;
case 'pt':
result['paddingTop'] = props[key];
break;
case 'pl':
result['paddingLeft'] = props[key];
break;
case 'pb':
result['paddingBottom'] = props[key];
break;
case 'pr':
result['paddingRight'] = props[key];
break;
case 'justifyStart':
result['justifyContent'] = props[key] && 'flex-start';
break;
case 'justifyCenter':
result['justifyContent'] = props[key] && 'center';
break;
case 'justifyEnd':
result['justifyContent'] = props[key] && 'flex-end';
break;
case 'justifySpaceAround':
result['justifyContent'] = props[key] && 'space-around';
break;
case 'justifySpaceBetween':
result['justifyContent'] = props[key] && 'space-between';
break;
case 'wrapStart':
result['justifyItems'] = props[key] && 'flex-start';
break;
case 'wrapCenter':
result['justifyItems'] = props[key] && 'center';
break;
case 'wrapEnd':
result['justifyItems'] = props[key] && 'flex-end';
break;
case 'wrapSpaceAround':
result['justifyItems'] = props[key] && 'space-around';
break;
case 'wrapSpaceBetween':
result['justifyItems'] = props[key] && 'space-between';
break;
case 'alignStart':
result['alignItems'] = props[key] && 'flex-start';
break;
case 'alignCenter':
result['alignItems'] = props[key] && 'center';
break;
case 'alignEnd':
result['alignItems'] = props[key] && 'flex-end';
break;
case 'alignStretch':
result['alignItems'] = props[key] && 'stretch';
break;
case 'alignMeStart':
result['alignSelf'] = props[key] && 'flex-start';
break;
case 'alignMeCenter':
result['alignSelf'] = props[key] && 'center';
break;
case 'alignMeEnd':
result['alignSelf'] = props[key] && 'flex-end';
break;
case 'alignMeStretch':
result['alignSelf'] = props[key] && 'stretch';
break;
case 'b':
result['border'] = props[key];
break;
case 'borderVertical':
case 'bv':
result['borderTop'] = props[key];
result['borderBottom'] = props[key];
break;
case 'borderHorizontal':
case 'bh':
result['borderRight'] = props[key];
result['borderLeft'] = props[key];
break;
case 'bt':
result['borderTop'] = props[key];
break;
case 'bl':
result['borderLeft'] = props[key];
break;
case 'bb':
result['borderBottom'] = props[key];
break;
case 'br':
result['borderRight'] = props[key];
break;
case 'bg':
result['background'] = props[key];
break;
case 'bgColor':
result['backgroundColor'] = props[key];
break;
case 'w':
result['width'] = props[key];
break;
case 'h':
result['height'] = props[key];
break;
case 'minH':
result['min-height'] = props[key];
break;
case 'minW':
result['min-width'] = props[key];
break;
case 'maxW':
result['max-width'] = props[key];
break;
case 'maxH':
result['max-height'] = props[key];
break;
case 'hide':
result['display'] = props[key] && 'none';
break;
case 'show':
result['display'] = props[key] && 'flex';
break;
case 'absolute':
result['position'] = props[key] && 'absolute';
break;
case 'relative':
result['position'] = props[key] && 'relative';
break;
case 'column':
result['flexDirection'] = props[key] && 'column';
break;
case 'row':
result['flexDirection'] = props[key] && 'row';
break;
case 'wrap':
result['flexWrap'] = props[key] && 'wrap';
break;
case 'nowrap':
result['flexWrap'] = props[key] && 'nowrap';
break;
case 'grow':
result['flexGrow'] = props[key] === true ? '1' : props[key];
break;
case 'shrink':
result['flexShrink'] = props[key] === true ? '1' : props[key];
break;
case 'basis':
result['flexBasis'] = typeof props[key] === 'string' && props[key] || typeof props[key] === 'number' && props[key] > 0 && props[key] < 1 && props[key] * 100 + '%' || typeof props[key] === 'undefined' && 'auto';
break;
case 'scroll':
result['overflow'] = props[key] && 'auto';
break;
default:
result[key] = props[key];
}
return null
})
return result
}
export {defaultTranslator};