JSFiddle - React, Tailwind, and code Playground

by rich_harris

HTML

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

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

<script id='widget' type='text/ractive'>
    <div>
        <box>
            <p>some content</p>
        </box>
    </div>
</script>

<script id='box' type='text/ractive'>
    <div decorator='check' style='border: 1px solid black;'>
        {{yield}}
    </div>
</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.widget = Ractive.extend({
    template: '#widget'
});

Ractive.components.box = Ractive.extend({
    template: '#box',
    decorators: {
        check: function ( node ) {
            node.textContent = 'should be true: `document.contains(node)` -> ' + document.contains(node);
            
            return {
                teardown: function () {}
            };
        }
    }
});

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