function border(sideKeyword) {
    for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
      values[_key - 1] = arguments[_key];
    }
    if (typeof sideKeyword === 'string' && sideMap.indexOf(sideKeyword) >= 0) {
      var _ref;
      return _ref = {}, _ref["border" + capitalizeString(sideKeyword) + "Width"] = values[0], _ref["border" + capitalizeString(sideKeyword) + "Style"] = values[1], _ref["border" + capitalizeString(sideKeyword) + "Color"] = values[2], _ref;
    } else {
      values.unshift(sideKeyword);
      return {
        borderWidth: values[0],
        borderStyle: values[1],
        borderColor: values[2]
      };
    }
  }
Shorthand for the border property that splits out individual properties for use with tools like Fela and Styletron. A side keyword can optionally be passed to target only one side's border properties.

@example
// Styles as object usage
const styles = {
  ...border('1px', 'solid', 'red')
}

// styled-components usage
const div = styled.div`
  ${border('1px', 'solid', 'red')}
`

// CSS as JS Output

div {
  'borderColor': 'red',
  'borderStyle': 'solid',
  'borderWidth': `1px`,
}

// Styles as object usage
const styles = {
  ...border('top', '1px', 'solid', 'red')
}

// styled-components usage
const div = styled.div`
  ${border('top', '1px', 'solid', 'red')}
`

// CSS as JS Output

div {
  'borderTopColor': 'red',
  'borderTopStyle': 'solid',
  'borderTopWidth': `1px`,
}