function _cssBuilder (el, isRoot) {
  if ((!isRoot || !el.egglement) && (!el.styles || Object.keys(el.styles).length === 0)) return ''

  const selector = isRoot ? '#' : '.'
  const className = el.id.substr(el.id.lastIndexOf(".") + 1)

  let styleDef = ''
  let fullStyle = {}

  if (isRoot) {
    fullStyle = buildRoot(el)
  } else {
    fullStyle = buildNested(el)

    if (el.children && el.children.length > 0 && !el.global) {
      for (const child of el.children){
        styleDef += _cssBuilder(child)
      }
    }
  }


  styleDef += '\n' + selector + S(className).replaceAll('.', '-').s + ' '
    + S(JSON.stringify(fullStyle, null, 2)).replaceAll('\n}',';\n}').s + '\n'

  return S(styleDef).replaceAll('\\"', '\'').replaceAll('"', '').replaceAll(',\n', ';\n').s
}
Given an element definition, extracts the css/styles from that element
and its children (by recursive calling) and contatenates them on a sigle String object.
If the el is a componegg, its children won't be parsed.
@constructor

@param {object} el : Element from which the style definitions will be gathered

@return {string} : Style definitions for the provided element (and its children)