A console for the Web written completely in JavaScript. The console supports Web versions of Linux commands.
A Pen by Andrew M Barfield on CodePen.
A console for the Web written completely in JavaScript. The console supports Web versions of Linux commands.
A Pen by Andrew M Barfield on CodePen.
| <html> | |
| <head> | |
| <meta charset="utf-8" /> | |
| <meta http-equiv="X-UA-Compatible" content="chrome=1" /> | |
| <title>HTML5 Web Terminal</title> | |
| <link href="https://fonts.googleapis.com/css?family=Inconsolata" | |
| rel="stylesheet" type="text/css" /> | |
| </head> | |
| <body> | |
| <div id="container"> | |
| <output></output> | |
| <div id="input-line" class="input-line"> | |
| <div class="prompt"></div><div><input class="cmdline" autofocus /></div> | |
| </div> | |
| </div> | |
| <!--<script src="http://www.codehelper.io/api/ips/?js"></script>--> | |
| <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script> | |
| <script src="https://s.codepen.io/AndrewBarfield/pen/LEbPJx.js"></script> | |
| <div class="clock-container"> | |
| <svg viewBox="0 0 100 100"> | |
| <circle cx="50" cy="50" r="45"/> | |
| <g> | |
| <rect class="hour" x="47.5" y="12.5" width="5" height="40" rx="2.5" ry="2.55" /> | |
| <rect class="min" x="48.5" y="12.5" width="3" height="40" rx="2" ry="2"/> | |
| <line class="sec" x1="50" y1="50" x2="50" y2="16" /> | |
| </g> | |
| </svg> | |
| </div> | |
| </body> | |
| </html> |
| $(function() { | |
| // Set the command-line prompt to include the user's IP Address | |
| //$('.prompt').html('[' + codehelper_ip["IP"] + '@HTML5] # '); | |
| $('.prompt').html('[user@HTML5] # '); | |
| // Initialize a new terminal object | |
| var term = new Terminal('#input-line .cmdline', '#container output'); | |
| term.init(); | |
| // Update the clock every second | |
| setInterval(function() { | |
| function r(cls, deg) { | |
| $('.' + cls).attr('transform', 'rotate('+ deg +' 50 50)') | |
| } | |
| var d = new Date() | |
| r("sec", 6*d.getSeconds()) | |
| r("min", 6*d.getMinutes()) | |
| r("hour", 30*(d.getHours()%12) + d.getMinutes()/2) | |
| }, 1000); | |
| }); |
| ::selection { | |
| background: #FF5E99; | |
| } | |
| html, body { | |
| width: 100%; | |
| height: 100%; | |
| margin: 0; | |
| } | |
| body { | |
| font-size: 11pt; | |
| font-family: Inconsolata, monospace; | |
| color: white; | |
| background-color: black; | |
| } | |
| #container { | |
| padding: .1em 1.5em 1em 1em; | |
| } | |
| #container output { | |
| clear: both; | |
| width: 100%; | |
| } | |
| #container output h3 { | |
| margin: 0; | |
| } | |
| #container output pre { | |
| margin: 0; | |
| } | |
| .input-line { | |
| display: -webkit-box; | |
| -webkit-box-orient: horizontal; | |
| -webkit-box-align: stretch; | |
| display: -moz-box; | |
| -moz-box-orient: horizontal; | |
| -moz-box-align: stretch; | |
| display: box; | |
| box-orient: horizontal; | |
| box-align: stretch; | |
| clear: both; | |
| } | |
| .input-line > div:nth-child(2) { | |
| -webkit-box-flex: 1; | |
| -moz-box-flex: 1; | |
| box-flex: 1; | |
| } | |
| .prompt { | |
| white-space: nowrap; | |
| color: #96b38a; | |
| margin-right: 7px; | |
| display: -webkit-box; | |
| -webkit-box-pack: center; | |
| -webkit-box-orient: vertical; | |
| display: -moz-box; | |
| -moz-box-pack: center; | |
| -moz-box-orient: vertical; | |
| display: box; | |
| box-pack: center; | |
| box-orient: vertical; | |
| -webkit-user-select: none; | |
| -moz-user-select: none; | |
| user-select: none; | |
| } | |
| .cmdline { | |
| outline: none; | |
| background-color: transparent; | |
| margin: 0; | |
| width: 100%; | |
| font: inherit; | |
| border: none; | |
| color: inherit; | |
| } | |
| .ls-files { | |
| height: 45px; | |
| -webkit-column-width: 100px; | |
| -moz-column-width: 100px; | |
| -o-column-width: 100px; | |
| column-width: 100px; | |
| } | |
| /************************************************************/ | |
| /* SVG Clock */ | |
| /************************************************************/ | |
| .clock-container { | |
| display: none /*inline-block*/; | |
| position: relative; | |
| width: 200px; | |
| vertical-align: middle; | |
| overflow: hidden; | |
| } | |
| .clock-container > svg > circle { | |
| stroke-width: 2px; | |
| stroke: #fff; | |
| } | |
| .hour, .min, .sec { | |
| stroke-width: 1px; | |
| fill: #333; | |
| stroke: #555; | |
| } | |
| .sec { | |
| stroke: #f55; | |
| } | |