JSFiddle - React, Tailwind, and code Playground
by rich_harris
HTML
<main></main>
<script id='template' type='text/ractive'>
<h2>non-encapsulated</h2>
<ul class='non-encapsulated'>
{{#each items}}
<li>{{this}}</li>
{{/each}}
</ul>
<h2>encapsulated</h2>
<list items='{{items}}'/>
</script>
<script id='widget' type='text/ractive'>
<ul>
{{#each items}}
<li>{{this}}</li>
{{/each}}
</ul>
</script>
CSS
body {
font-family: 'Helvetica Neue', arial, sans-serif;
font-weight: 200;
color: #353535;
}
h1, h2, h3, h4, h5, h6 {
font-weight: 200;
}
.error {
color: #d00;
font-family: monospace;
}
ul {
margin: 0;
padding: 0;
}
li {
padding: 0.5em;
list-style: none;
}
.non-encapsulated li:nth-child(2n + 1) {
background-color: #333; color: white
}
JavaScript
Ractive.components.list = Ractive.extend({
template: '#widget',
css: 'li:nth-child(2n + 1) { background-color: #333; color: white }'
});
var ractive = new Ractive({
el: 'main',
template: '#template',
data: {
items: 'a b c d e f g'.split( ' ' )
}
});