UNPKG

kitchensink

Version:

Dispatch's awesome components and style guide

33 lines (27 loc) 899 B
/* @flow */ import appendPxIfNeeded from './append-px-if-needed'; import camelCasePropsToDashCase from './camel-case-props-to-dash-case'; import mapObject from './map-object'; import {getPrefixedStyle} from './prefixer'; function createMarkupForStyles(style: Object): string { return Object.keys(style).map(property => { return property + ': ' + style[property] + ';'; }).join('\n'); } export default function cssRuleSetToString( selector: string, rules: Object, userAgent: ?string, ): string { if (!rules) { return ''; } const rulesWithPx = mapObject( rules, (value, key) => appendPxIfNeeded(key, value) ); const prefixedRules = getPrefixedStyle(rulesWithPx, userAgent); const cssPrefixedRules = camelCasePropsToDashCase(prefixedRules); const serializedRules = createMarkupForStyles(cssPrefixedRules); return selector + '{' + serializedRules + '}'; }