polished
Version:
A lightweight toolset for writing styles in Javascript.
31 lines (28 loc) • 759 B
Flow
// @flow
import directionalProperty from '../helpers/directionalProperty'
import type { Styles } from '../types/style'
/**
* Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.
* @example
* // Styles as object usage
* const styles = {
* ...margin('12px', '24px', '36px', '48px')
* }
*
* // styled-components usage
* const div = styled.div`
* ${margin('12px', '24px', '36px', '48px')}
* `
*
* // CSS as JS Output
*
* div {
* 'marginTop': '12px',
* 'marginRight': '24px',
* 'marginBottom': '36px',
* 'marginLeft': '48px'
* }
*/
export default function margin(...values: Array<?string | ?number>): Styles {
return directionalProperty('margin', ...values)
}