Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="react-theme demo: Using modifiers - logic">
<script src="http://static.jsbin.com/js/vendor/traceur.js"></script>
<script src="https://code.jquery.com/jquery-compat-git.js"></script>
<script src="https://rawgit.com/azazdeaz/react-theme/lib/browser/react-theme.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/tinycolor/1.1.2/tinycolor.js"></script>
 <script>
  removeObjects = function(o) {
    Object.keys(o).forEach(function(key) {
      if (typeof o[key] === 'object') {
        delete o[key]
      }
    })
    return o
  }
  log = function(o) {console.log(JSON.stringify(o, null, 2).replace(/"/g, "'"))}
</script>
<script src="//fb.me/react-0.13.1.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
var theme = new ReactTheme()
theme.setPostProcessor(removeObjects)
theme.setSource('config', () => ({
  size: {
    xs: {lineHeight: 12},
    m: {lineHeight: 17},
    l: {lineHeight: 21},
    xl: {lineHeight: 23}
  }
}))
theme.setSource('font', () => ({
  fontFamily: 'Roboto',
  fontWeight: 400
}))
theme.setSource('roundedBorders', () => ({
  borderRadius: 12,
  size: {
    xl: {borderRadius: 15}
  }
}))
theme.setSource('label', (theme, modifier) => {
  var { lineHeight } = theme.getStyle('config', modifier)
  return {
    //mixins are automatically resolved with the given modifier
    mixins: ['font', 'roundedBorders'],
    lineHeight
  }
})
var style = theme.getStyle('label', {size: 'xl'})
log(style)
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
azazdeazpro
0viewers