JSFiddle - React, Tailwind, and code Playground

by rich_harris

HTML

<script src="http://cdn.ractivejs.org/edge/ractive.js"></script>
<pre id='html'></pre>

<script id='template' type='text/ractive'>
    {{#Fields:i}}
        {{#.MaskTextBox}}
        <span>
            <input data-bind="value: Fields[{{i}}].MaskTextBox.Value"
            data-role="maskedtextbox"
            placeholder="{{PlaceHolder}}"
            data-mask="{{Mask}}" />
        </span>
        {{/.MaskTextBox}}
    {{/Fields}}
</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 ractive = new Ractive({
    el: 'main',
    template: '#template',
    data: {
        Fields: [
            {
                MaskTextBox: {
                    PlaceHolder: 'this is a placeholder',
                    Mask: 'true'
                }
            },
            {
                MaskTextBox: {
                    PlaceHolder: 'this is another placeholder',
                    Mask: 'false'
                }
            }
        ]
    },
    preserveWhitespace: true
});

// this is just so the template becomes visible in the
// box on the right, ignore it
html.innerText = ractive.toHTML().split( '\n' ).map( deIndent ).join( '\n' ).trim();

function deIndent ( line ) {
    return line.substring( 8 );
}