UNPKG

zent

Version:

一套前端设计语言和基于React的实现

114 lines (107 loc) 2.39 kB
const transforms = { borderRadius: value => { return { msBorderRadius: value, MozBorderRadius: value, OBorderRadius: value, WebkitBorderRadius: value, borderRadius: value, }; }, boxShadow: value => { return { msBoxShadow: value, MozBoxShadow: value, OBoxShadow: value, WebkitBoxShadow: value, boxShadow: value, }; }, userSelect: value => { return { WebkitTouchCallout: value, KhtmlUserSelect: value, MozUserSelect: value, msUserSelect: value, WebkitUserSelect: value, userSelect: value, }; }, flex: value => { return { WebkitBoxFlex: value, MozBoxFlex: value, WebkitFlex: value, msFlex: value, flex: value, }; }, flexBasis: value => { return { WebkitFlexBasis: value, flexBasis: value, }; }, justifyContent: value => { return { WebkitJustifyContent: value, justifyContent: value, }; }, transition: value => { return { msTransition: value, MozTransition: value, OTransition: value, WebkitTransition: value, transition: value, }; }, transform: value => { return { msTransform: value, MozTransform: value, OTransform: value, WebkitTransform: value, transform: value, }; }, absolute: value => { const direction = value && value.split(' '); return { position: 'absolute', top: direction && direction[0], right: direction && direction[1], bottom: direction && direction[2], left: direction && direction[3], }; }, // extend: (name, otherElementStyles) => { // const otherStyle = otherElementStyles[name]; // if (otherStyle) { // return otherStyle; // } // return { // extend: name // }; // } }; const autoprefix = elements => { const prefixed = {}; Object.keys(elements).forEach(element => { const styles = elements[element]; let expanded = {}; Object.keys(styles).forEach(key => { const value = styles[key]; const transform = transforms[key]; if (transform) { expanded = { ...expanded, ...transform(value) }; } else { expanded[key] = value; } }); prefixed[element] = expanded; }); return prefixed; }; export default autoprefix;