terminalizer
Version:
Record your terminal and generate animated gif images or share a web player
190 lines (165 loc) • 10.9 kB
CSS
/**
* Terminalizer
*
* @author Mohammad Fares <faressoft.com@gmail.com>
*/
body {
background-color: white;
margin: 0;
}
#terminal {
display: inline-block;
font-size: 0px;
}
.terminalizer,.terminalizer-player{display:inline-block}.terminalizer .xterm .xterm-viewport{overflow-y:hidden}.terminalizer-frame{position:relative}.terminalizer div{margin:0;padding:0;border:0;outline:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline}.terminalizer-frame.terminalizer-window{border-radius:6px;border:1px solid #b3b3b3;box-shadow:0 0 18px #b3b3b3;margin:18px;overflow:hidden}.terminalizer-frame.terminalizer-window .terminalizer-titlebar{-moz-border-top-left-radius:6px;-moz-border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-webkit-border-top-right-radius:6px;background:#e8e8e8;border-bottom:1px solid #b1aeb1;border-top-left-radius:6px;border-top-right-radius:6px;border-top:1px solid #f3f1f3;color:#3b4247;font-family:Arial,sans-serif;font-size:14px;height:22px;line-height:22px;position:relative;text-align:center;width:100%}.terminalizer-frame.terminalizer-window .terminalizer-titlebar .buttons{left:8px;line-height:0;position:absolute;top:3.5px}.terminalizer-frame.terminalizer-window .terminalizer-titlebar .close-button{-moz-border-radius:50%;-webkit-border-radius:50%;background:#ff5c5c;border-radius:50%;border:1px solid #e33e41;display:inline-block;height:12px;width:12px}.terminalizer-frame.terminalizer-window .terminalizer-titlebar .minimize-button{-moz-border-radius:50%;-webkit-border-radius:50%;background:#ffbd4c;border-radius:50%;border:1px solid #e09e3e;display:inline-block;height:12px;margin-left:4px;width:12px}.terminalizer-frame.terminalizer-window .terminalizer-titlebar .maximize-button{-moz-border-radius:50%;-webkit-border-radius:50%;background:#00ca56;border-radius:50%;border:1px solid #14ae46;display:inline-block;height:12px;margin-left:4px;width:12px}.terminalizer-frame.terminalizer-window .terminalizer-body{background-color:#1d1d1d;padding:10px}.terminalizer-frame.terminalizer-floating{-moz-border-radius:6px;-webkit-border-radius:6px;background-color:#1d1d1d;border-radius:6px;box-shadow:0 0 18px #b3b3b3;margin:18px;overflow:hidden}.terminalizer-frame.terminalizer-floating .terminalizer-titlebar{color:#fff;font-family:Arial,sans-serif;font-size:14px;height:34px;line-height:34px;position:relative;text-align:center;width:100%}.terminalizer-frame.terminalizer-floating .terminalizer-titlebar .buttons{left:13px;line-height:0;position:absolute;top:9px}.terminalizer-frame.terminalizer-floating .terminalizer-titlebar .close-button{-moz-border-radius:50%;-webkit-border-radius:50%;background:#ff5c5c;border-radius:50%;display:inline-block;height:15px;width:15px}.terminalizer-frame.terminalizer-floating .terminalizer-titlebar .minimize-button{-moz-border-radius:50%;-webkit-border-radius:50%;background:#ffbd4c;border-radius:50%;display:inline-block;height:15px;line-height:10px;margin-left:4px;width:15px}.terminalizer-frame.terminalizer-floating .terminalizer-titlebar .maximize-button{-moz-border-radius:50%;-webkit-border-radius:50%;background:#00ca56;border-radius:50%;display:inline-block;height:15px;line-height:10px;margin-left:4px;width:15px}.terminalizer-frame.terminalizer-floating .terminalizer-body{padding:20px}.terminalizer-frame.terminalizer-solid{-moz-border-radius:6px;-webkit-border-radius:6px;background-color:#1d1d1d;border-radius:6px;box-shadow:0 0 18px #b3b3b3;margin:18px;overflow:hidden}.terminalizer-frame.terminalizer-solid .terminalizer-titlebar{color:#fff;font-family:Arial,sans-serif;font-size:14px;position:relative;text-align:center;width:100%}.terminalizer-frame.terminalizer-solid .terminalizer-titlebar .title{margin:15px}.terminalizer-frame.terminalizer-solid .terminalizer-titlebar .buttons,.terminalizer-frame.terminalizer-solid .terminalizer-titlebar .title:empty{display:none}.terminalizer-frame.terminalizer-solid .terminalizer-body{padding:20px}.terminalizer-player{position:relative;font-size:0}.terminalizer-player .controller{background:#45484d;bottom:0;display:none;font-family:Helvetica,Arial,sans-serif;font-size:12px;height:30px;position:absolute;width:100%;z-index:20;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#45484d",endColorstr="#000000",GradientType=0);background:linear-gradient(180deg,#45484d 0,#000);transition:height .2s ease;-webkit-transition:height .2s ease;-moz-transition:height ease .2s;-o-transition:height ease .2s}.terminalizer-player.controls .controller{display:block}.terminalizer-player.playing .controller{height:0;overflow:hidden}.terminalizer-player.playing:hover .controller{height:30px;overflow:hidden}.terminalizer-player .pause,.terminalizer-player .play{fill:#cacaca;float:left;height:30px;line-height:30px;text-align:center;width:40px}.terminalizer-player .pause .icon,.terminalizer-player .play .icon{border-color:transparent transparent transparent #cacaca;box-sizing:border-box;cursor:pointer;display:inline-block;height:15px}.terminalizer-player .pause .icon{border-style:double;border-width:0 0 0 12px;margin-top:7px}.terminalizer-player .play .icon{border-style:solid;border-width:8px 0 8px 13px;margin-top:6px}.terminalizer-player .pause,.terminalizer-player.playing .play{display:none}.terminalizer-player.playing .pause{display:inline-block}.terminalizer-player .timer{color:#cacaca;float:right;line-height:30px;padding:0 10px}.terminalizer-player .progressbar-wrapper{height:30px;line-height:28px;overflow:hidden}.terminalizer-player .progressbar{background-color:#424242;display:inline-block;height:7px;overflow:hidden;width:100%;border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px}.terminalizer-player.started .progressbar{cursor:pointer}.terminalizer-player .progress{background-color:#cacaca;height:7px;position:relative;width:0}.terminalizer-player .cover{cursor:pointer;height:100%;position:absolute;width:100%;z-index:10}.terminalizer-player .start svg{cursor:pointer;fill:#eaeaea;height:130px;left:50%;margin-left:-65px;margin-top:-65px;position:absolute;top:50%;width:130px;z-index:20;filter:drop-shadow(10px 10px 15px rgba(0,0,0,.4));-webkit-filter:drop-shadow(10px 10px 15px rgba(0,0,0,.4))}.terminalizer-player.small .start svg{height:60px;margin-left:-30px;margin-top:-30px;width:60px}.terminalizer-player.framed .start svg{transform:translateY(8px);-webkit-transform:translateY(8px);-moz-transform:translateY(8px);-o-transform:translateY(8px);-ms-transform:translateY(8px)}.terminalizer-player .cover:hover+.start svg,.terminalizer-player .start:hover svg{fill:#fff}.terminalizer-player.started .cover,.terminalizer-player.started .start{display:none}.terminalizer-player .terminalizer-watermark{z-index:99999}
/**
* Copyright (c) 2014 The xterm.js authors. All rights reserved.
* Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
* https://github.com/chjj/term.js
* @license MIT
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* Originally forked from (with the author's permission):
* Fabrice Bellard's javascript vt100 for jslinux:
* http://bellard.org/jslinux/
* Copyright (c) 2011 Fabrice Bellard
* The original design remains. The terminal itself
* has been extended to include xterm CSI codes, among
* other features.
*/
/**
* Default styles for xterm.js
*/
.xterm {
font-feature-settings: "liga" 0;
position: relative;
user-select: none;
-ms-user-select: none;
-webkit-user-select: none;
}
.xterm.focus,
.xterm:focus {
outline: none;
}
.xterm .xterm-helpers {
position: absolute;
top: 0;
/**
* The z-index of the helpers must be higher than the canvases in order for
* IMEs to appear on top.
*/
z-index: 10;
}
.xterm .xterm-helper-textarea {
/*
* HACK: to fix IE's blinking cursor
* Move textarea out of the screen to the far left, so that the cursor is not visible.
*/
position: absolute;
opacity: 0;
left: -9999em;
top: 0;
width: 0;
height: 0;
z-index: -10;
/** Prevent wrapping so the IME appears against the textarea at the correct position */
white-space: nowrap;
overflow: hidden;
resize: none;
}
.xterm .composition-view {
/* TODO: Composition position got messed up somewhere */
background: #000;
color: #FFF;
display: none;
position: absolute;
white-space: nowrap;
z-index: 1;
}
.xterm .composition-view.active {
display: block;
}
.xterm .xterm-viewport {
/* On OS X this is required in order for the scroll bar to appear fully opaque */
background-color: #000;
overflow-y: scroll;
cursor: default;
position: absolute;
right: 0;
left: 0;
top: 0;
bottom: 0;
}
.xterm .xterm-screen {
position: relative;
}
.xterm .xterm-screen canvas {
position: absolute;
left: 0;
top: 0;
}
.xterm .xterm-scroll-area {
visibility: hidden;
}
.xterm-char-measure-element {
display: inline-block;
visibility: hidden;
position: absolute;
top: 0;
left: -9999em;
line-height: normal;
}
.xterm {
cursor: text;
}
.xterm.enable-mouse-events {
/* When mouse events are enabled (eg. tmux), revert to the standard pointer cursor */
cursor: default;
}
.xterm.xterm-cursor-pointer {
cursor: pointer;
}
.xterm.column-select.focus {
/* Column selection mode */
cursor: crosshair;
}
.xterm .xterm-accessibility,
.xterm .xterm-message {
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
z-index: 100;
color: transparent;
}
.xterm .live-region {
position: absolute;
left: -9999px;
width: 1px;
height: 1px;
overflow: hidden;
}
.xterm-dim {
opacity: 0.5;
}
.xterm-underline {
text-decoration: underline;
}