Skip to content

blakeembrey/style-helper

Repository files navigation

Style Helper

NPM version NPM downloads Build status Test coverage

Style Helper is a small utility for CSS-in-JS functions.

Installation

npm install style-helper --save

Usage

import { quote, url, objectify, merge } from 'style-helper'

Quote

Wrap a string in quotes (useful for the psuedo-element content property).

css({
  '&:before': {
    content: quote('Hello World') //=> `"Hello World"`
  }
})

URL

Wrap a string in the CSS url() function.

css({
  backgroundImage: url('image.png') //=> `url("image.png")`
})

Merge

Merge CSS objects recursively.

import { ellipsis } from './styles'

css(merge({ padding: 10 }, ellipsis)) //=> { padding: 10, ... }

Multi

Repeats the same style for multiple selectors (reference issue).

css(multi(['& .a', '& .b'], { margin: 10 }))

Objectify

Turn a list of arguments into an object (...[key, value]).

// Simple properties.
css(objectify(
  ['padding', 10],
  ['margin', 10]
)) //=> { padding: 10, margin: 10 }

// Array key for repeating property values.
css(objectify(
  [
    ['& .a', '& .b'],
    { margin: 10 }
  ]
)) //=> { '& .a': { margin: 10 }, '& .b': { margin: 10 } }

License

MIT license