JSFiddle - React, Tailwind, and code Playground
by Prajeesh_PR
HTML
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.6.0/pure-min.css">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular-messages.min.js"></script>
<div class="container" id="demoApp">
<form class="pure-form pure-form-aligned" name="frm" method="post"
novalidate autocomplete="off">
<fieldset>
<div class="pure-control-group">
<label>Username</label>
<input name="username" ng-model="user.username" type="text" placeholder="Username" required>
<div class="field-message" ng-messages="frm.username.$error" ng-if='frm.username.$dirty' ng-cloak>
<div ng-message="required">Username is required</div>
</div>
</div>
<div class="pure-control-group">
<label>Password</label>
<input name="password"
ng-model="user.password"
type="password"
placeholder="Password"
required
ng-pattern="/^[a-zA-Z0-9._-]+$/"
>
<div class="field-message" ng-messages="frm.password.$error" ng-if='frm.password.$dirty' ng-cloak>
<div ng-message="required">Password is required</div>
<div ng-message="pattern">Password must have minimum 6 characters</div>
<div ng-message="maxlength">Password must have maximum 10 characters</div>
</div>
</div>
<div class="pure-control-group">
<label>Email Address</label>
<input name="email"
ng-model="user.email"
type="email"
placeholder="Email Address"
required>
<div class="field-message"...
CSS
.container {
width: 970px;
padding-top:10px;
margin: 0 auto;
}
.pure-form input.ng-dirty.ng-invalid {
border-color: #e9322d;
}
.field-message {
display: inline-block;
color:#e9322d;
font-size: 90%;
margin-left: 0.5em;
}
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
display: none !important;
}
JavaScript
angular.module('DemoApp', ['ngMessages']);
angular.bootstrap(document.getElementById('demoApp'), ['DemoApp']);