JSFiddle - React, Tailwind, and code Playground

by rich_harris

HTML

<script src="http://cdn.ractivejs.org/edge/ractive.js"></script>
<main></main>

<script id='template' type='text/ractive'>
    <widget type='{{type}}'/>
</script>

<script id='widget1' type='text/ractive'>
    ONE
</script>

<script id='widget2' type='text/ractive'>
    TWO
</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

Ractive.components.widget = Ractive.extend({
    template: function ( data ) {
        return '#widget' + data.type;
    },
    init: function () {
        this.observe( 'type', function ( type ) {
            this.resetTemplate( '#widget' + type );
        }, { init: false });
    }
});

var ractive = new Ractive({
    el: 'main',
    template: '#template',
    data: {
        type: 1
    }
});

ractive.set( 'type', 2 );