JSFiddle - React, Tailwind, and code Playground

by rich_harris

HTML

<main></main>

<script id='template' type='text/ractive'>
    <fancy-list on-select='doSomething' items='{{myItems}}'/>
</script>

<script id='fancy-list' type='text/ractive'>
    {{#each items}}
        <button on-click='fire("select",this)'>select {{this.name}}</button>
    {{/each}}
</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;
}

JavaScript

Ractive.components[ 'fancy-list' ] = Ractive.extend({
    template: '#fancy-list'
});

var ractive = new Ractive({
    el: 'main',
    template: '#template',
    data: {
        myItems: [
            { name: 'foo' },
            { name: 'bar' },
            { name: 'baz' }
        ]
    }
});

ractive.on( 'doSomething', function ( item ) {
    console.log( this === ractive );
    console.log( this.event );
    console.log( 'selected %s', item.name );
});