UNPKG

@quarkly/atomize

Version:

Library for creating atomic react components

52 lines (44 loc) 1.16 kB
import _isUndefined from "lodash/fp/isUndefined"; import _get from "lodash/fp/get"; import _isNumber from "lodash/fp/isNumber"; export var pixel = function pixel(n) { return _isNumber(n) && n !== 0 ? n + "px" : n; }; export var width = function width(n) { return !_isNumber(n) || n > 1 ? pixel(n) : n * 100 + "%"; }; export var fontSize = function fontSize(n, scale) { if (!_isNumber(n)) { return pixel(n); } var value = _get(n, scale); if (_isUndefined(value)) { return pixel(n); } return pixel(value); }; export var space = function space(n, scale) { if (!_isNumber(n)) { return pixel(n); } var isNegative = n < 0; var absolute = Math.abs(n); var value = _get(absolute, scale); if (_isUndefined(value)) { return pixel(n); } if (!_isNumber(value)) { return isNegative ? "-" + value : value; } return pixel(value * (isNegative ? -1 : 1)); }; export var defaultTransformer = function defaultTransformer(value) { return _isNumber(value) ? "" + value : value; }; export default { pixel: pixel, width: width, space: space, fontSize: fontSize, defaultTransformer: defaultTransformer };