JSFiddle - React, Tailwind, and code Playground

by rich_harris

HTML

<main id="test"></main>

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.Foo = Ractive.extend({
    template: '<div>foo: {{message}}</div>',
    append : 'true'
});

Ractive.components.Bar = Ractive.extend({
    template: '<div>bar: {{message}}</div>',
    append : 'true'
});


try {
    var ractive = new Ractive({
    el : '#test',
    template: '<div><dynamicComponent/></div>',
    components: {
        dynamicComponent: function () {
            return this.get( 'foo' ) ?
                'Foo' :
                'Bar';
        }
    },
    data : {
        foo : false,
        message: 'it works'
    }
});
    
} catch ( err ) {
    document.body.innerHTML = '<pre class="error">' + err.message + '</pre>';
    throw err;
}