code: function set (sel, props) {
      if (props) {
        if (props && typeof props.rulesets === 'function') props = props.rulesets()
        Object.keys(props).forEach(function (prop) {
          var val = props[prop]
          if (typeof val === 'object') {
            // nested rules
            set(expand(sel, prop), val)
          } else {
            if (!(sel in rules)) {
              rules[sel] = {}
            }
            rules[sel][prop] = val
          }
        })
      } else {
        if (sel && typeof sel.rulesets === 'function') sel = sel.rulesets()
        Object.keys(sel).forEach(function (selector) {
          set(selector, sel[selector])
        })
      }
  
      return api
    }
docs: .set() takes a selector name and an object of properties and nested rulesets (passing an object as a property value) Alternatively, it takes an object of rulesets, the keys being selectors and the values being rulesets (incl. nested)  style.set('.selector', { 'css-prop': 'value' }) style.set('.selector', { '.nested': { 'prop': 'value' }, 'sibling-prop': 'sibling' }) style.set({ '.selector-1': { 'css-prop': 'one' }, '.selector-2': { 'css-prop': 'two' } })