<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/css/materialize.min.css">
<!--Import Google Icon Font-->
<link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<title>JS Bin</title>
</head>
<body>
<ul class="stepper horizontal">
<li class="step active">
<div class="step-title waves-effect">Step 1</div>
<div class="step-content">
<div class="row">
<div class="input-field col s12">
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
</div>
</div>
</div>
</li>
<li class="step">
<div class="step-title waves-effect">Step 2</div>
<div class="step-content">
<div class="row">
<div class="input-field col s12">
<input id="password" name="password" type="password" class="validate" required>
<label for="password">Your password</label>
</div>
</div>
</div>
</li>
<li class="step">
<div class="step-title waves-effect">Final!</div>
<div class="step-content">
Finish!
<div class="step-actions">
<button class="waves-effect waves-dark btn" type="submit">SUBMIT</button>
</div>
</div>
</li>
</ul>
<!-- jQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<!-- Materializecss compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.7/js/materialize.min.js"></script>
<!-- jQueryValidation Plugin -->
<script src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.15.0/jquery.validate.min.js"></script>
</body>
</html>
/* Materializecss Stepper - By Kinark 2016
// https://github.com/Kinark/Materialize-stepper
// CSS v2.1.3
*/
/*Validate.js FIX*/
label.invalid {
font-size: 12.8px;
font-size: 0.8rem;
font-weight: 500;
color: red !important;
top: 50px !important;
}
label.invalid.active {
transform: translateY(0%) !important;
transform: translateY(0%) !important;
}
/*Validate.js FIX*/
ul.stepper {
counter-reset: section;
overflow-y: auto;
overflow-x: hidden;
/*max-width: 800px;*/
}
.card-content ul.stepper {
margin: 1em -24px;
padding: 0 24px;
}
@media only screen and (min-width: 993px){
ul.stepper.horizontal {
position: relative;
display: flexbox;
display: box;
display: flex;
flex-pack: justify;
box-pack: justify;
justify-content: space-between;
min-height: 458px;
}
.card-content ul.stepper.horizontal {
margin-left: -24px;
margin-right: -24px;
padding-left: 24px;
padding-right: 24px;
overflow: hidden;
}
.card-content ul.stepper.horizontal:first-child {
margin-top: -24px;
}
ul.stepper.horizontal:before {
content: '';
background-color: transparent;
width: 100%;
min-height: 84px;
box-shadow: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);
position: absolute;
left: 0;
}
}
ul.stepper .wait-feedback {
left: 0;
right: 0;
top: 0;
z-index: 2;
position: absolute;
width: 100%;
height: 100%;
text-align: center;
display: flexbox;
display: box;
display: flex;
flex-pack: center;
box-pack: center;
justify-content: center;
flex-align: center;
box-align: center;
align-items: center;
}
ul.stepper .step {
position: relative;
}
ul.stepper .step.feedbacking .step-content>*:not(.wait-feedback) {
opacity: 0.1;
filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)";
}
@media only screen and (min-width: 993px){
ul.stepper.horizontal .step {
position: static;
margin: 0;
width: 100%;
display: flexbox;
display: box;
display: flex;
flex-align: center;
box-align: center;
align-items: center;
height: 84px !important;
}
ul.stepper.horizontal>.step:last-of-type, ul.stepper.horizontal>.step[data-last="true"] {
width: auto !important;
}
ul.stepper.horizontal .step:not(:last-of-type):after, ul.stepper.horizontal>.step.active:not(:last-of-type):after{
content: '';
position: static;
display: inline-block;
width: 100%;
height: 1px;
}
}
ul.stepper>li:not(:last-of-type) {
margin-bottom: 10px;
transition: margin-bottom 0.4s;
transition: margin-bottom 0.4s;
}
ul.stepper .step:not(:last-of-type).active {
margin-bottom: 36px;
}
ul.stepper .step:before {
position: absolute;
top: 12px;
counter-increment: section;
content: counter(section);
height: 28px;
width: 28px;
color: white;
background-color: rgba(0,0,0,0.3);
border-radius: 50%;
text-align: center;
line-height: 28px;
font-weight: 400;
}
ul.stepper .step.active:before, ul.stepper .step.done:before {
background-color: #2196f3;
}
ul.stepper .step.done:before {
content: '\e5ca';
font-size: 16px;
font-family: 'Material Icons';
}
ul.stepper .step.wrong:before {
content: '\e001';
font-size: 24px;
font-family: 'Material Icons';
background-color: red !important;
}
ul.stepper .step-title {
margin: 0 -24px;
cursor: pointer;
padding: 15.5px 44px 24px 64px;
display: block;
}
@media only screen and (min-width: 993px){
ul.stepper.horizontal .step.active .step-title:before, ul.stepper.horizontal .step.done .step-title:before {
background-color: #2196f3;
}
ul.stepper.horizontal .step.done .step-title:before {
content: '\e5ca';
font-size: 16px;
font-family: 'Material Icons';
}
ul.stepper.horizontal .step.wrong .step-title:before {
content: '\e001';
font-size: 24px;
font-family: 'Material Icons';
background-color: red !important;
}
ul.stepper.horizontal .step-title {
line-height: 84px;
height: 84px;
margin: 0;
padding: 0 25px 0 65px;
display: inline-block;
max-width: 220px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
flex-negative: 0;
flex-shrink: 0;
}
ul.stepper.horizontal .step:before {
content: none;
}
ul.stepper.horizontal .step .step-title:before {
position: absolute;
top: 28.5px;
left: 19px;
counter-increment: section;
content: counter(section);
height: 28px;
width: 28px;
color: white;
background-color: rgba(0,0,0,0.3);
border-radius: 50%;
text-align: center;
line-height: 28px;
font-weight: 400;
}
}
/*.card-content ul.stepper.horizontal .step .step-title:first-child {
margin-left: -20px;
padding-left: 85px;
}
.card-content ul.stepper.horizontal .step .step-title:first-child::before {
left: 39px;
}
.card-content ul.stepper.horizontal .step .step-title:last-child {
margin-right: -20px;
padding-right: 45px;
}
.card-content ul.stepper.horizontal .step .step-title:last-child::before {
left: 39px;
}*/
ul.stepper .step-title:after {
content: attr(data-step-label);
display: block;
position: absolute;
font-size: 12.8px;
font-size: 0.8rem;
color: #424242;
font-weight: 400;
}
@media only screen and (min-width: 993px){
ul.stepper.horizontal .step-title:after {
top:15px;
}
}
ul.stepper .step-title:hover {
background-color: rgba(0, 0, 0, 0.06);
}
ul.stepper .step.active .step-title {
font-weight: 500;
}
ul.stepper .step-content {
position: relative;
display: none;
height: calc(100% - 132px);
width: inherit;
overflow: visible;
margin-left: 41px;
margin-right: 24px;
}
@media only screen and (min-width: 993px){
ul.stepper.horizontal .step-content {
position: absolute;
height: calc(100% - 84px);
top: 84px;
left: 0;
width: 100%;
overflow-y: auto;
overflow-x: hidden;
margin: 0;
padding: 20px 20px 76px 20px;
}
.card-content ul.stepper.horizontal .step-content {
padding-left: 40px;
padding-right: 40px;
}
}
ul.stepper>.step:not(:last-of-type):after {
content: '';
position: absolute;
top: 50px;
left: 13.5px;
width: 1px;
height: 40%;
height: calc(100% - 38px);
background-color: rgba(0,0,0,0.1);
transition: all 0.4s;
transition: all 0.4s;
}
ul.stepper>.step.active:not(:last-child):after {
height: 93%;
height: calc(100% - 12px);
}
ul.stepper>.step[data-last="true"]:after {
height: 0;
width: 0;
}
ul.stepper>.step[data-last="true"] {
margin-bottom: 0;
}
ul.stepper .step-actions {
padding-top: 16px;
display: flex;
display: flex;
display: flex;
display: box;
display: flex;
flex-pack: start;
box-pack: start;
justify-content: flex-start;
}
ul.stepper .step-actions .btn:not(:last-child), ul.stepper .step-actions .btn-flat:not(:last-child), ul.stepper .step-actions .btn-large:not(:last-child) {
margin-right:5px;
}
@media only screen and (min-width: 993px){
ul.stepper.horizontal .step-actions .btn:not(:last-child), ul.stepper.horizontal .step-actions .btn-flat:not(:last-child), ul.stepper.horizontal .step-actions .btn-large:not(:last-child) {
margin-left:5px;
margin-right:0;
}
ul.stepper.horizontal .step-actions {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 20px;
background-color: #fff;
flex-direction: row-reverse;
box-orient: horizontal;
box-direction: reverse;
flex-direction: row-reverse;
}
.card-content ul.stepper.horizontal .step-actions {
padding-left: 40px;
padding-right: 40px;
}
}
ul.stepper .step-content .row {
margin-bottom: 7px;
}
Output
You can jump to the latest bin by adding /latest
to your URL
Keyboard Shortcuts
Shortcut | Action |
---|---|
ctrl + [num] | Toggle nth panel |
ctrl + 0 | Close focused panel |
ctrl + enter | Re-render output. If console visible: run JS in console |
Ctrl + l | Clear the console |
ctrl + / | Toggle comment on selected lines |
ctrl + ] | Indents selected lines |
ctrl + [ | Unindents selected lines |
tab | Code complete & Emmet expand |
ctrl + shift + L | Beautify code in active panel |
ctrl + s | Save & lock current Bin from further changes |
ctrl + shift + s | Open the share options |
ctrl + y | Archive Bin |
Complete list of JS Bin shortcuts |
JS Bin URLs
URL | Action |
---|---|
/ | Show the full rendered output. This content will update in real time as it's updated from the /edit url. |
/edit | Edit the current bin |
/watch | Follow a Code Casting session |
/embed | Create an embeddable version of the bin |
/latest | Load the very latest bin (/latest goes in place of the revision) |
/[username]/last | View the last edited bin for this user |
/[username]/last/edit | Edit the last edited bin for this user |
/[username]/last/watch | Follow the Code Casting session for the latest bin for this user |
/quiet | Remove analytics and edit button from rendered output |
.js | Load only the JavaScript for a bin |
.css | Load only the CSS for a bin |
Except for username prefixed urls, the url may start with http://jsbin.com/abc and the url fragments can be added to the url to view it differently. |