JSFiddle - React, Tailwind, and code Playground

by rich_harris

HTML

<script src="http://cdn.ractivejs.org/edge/ractive.js"></script>
<script src="https://rawgit.com/ractivejs/ractive-transitions-slide/master/ractive-transitions-slide.js"></script>
<main></main>

<script id='template' type='text/ractive'>
    <h1>loading data...</h1>
    <widget name='one'/>
    <widget name='two'/>
    <widget name='three'/>
</script>

<script id='widget' type='text/ractive'>
    {{#if ready}}
        <p intro='slide'>widget {{name}} is ready: {{data}}</p>
    {{/if}}
</script>

CSS

body {
    font-family: 'Helvetica Neue', arial, sans-serif;
    font-weight: 200;
    color: #353535;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 200;
}

JavaScript

var Widget = Ractive.extend({
    init: function () {
        var self = this;
        
        // simulate AJAX request
        setTimeout( function () {
            self.set({
                ready: true,
                data: 42
            });
            
            self.observe( 'data', function ( n, o, k ) {
                console.log( '%s: %s -> %s', k, o, n );
            });
        }, Math.random() * 3000 );
    },
    data: { ready: false },
    template: '#widget'
});

var ractive = new Ractive({
    el: 'main',
    template: '#template',
    components: { widget: Widget }
});