mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 13:17:41 +00:00
680 lines
12 KiB
CSS
680 lines
12 KiB
CSS
/*
|
|
* Copyright (C) 2013 Glyptodon LLC
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
body.client {
|
|
background: black;
|
|
font-family: FreeSans, Helvetica, Arial, sans-serif;
|
|
padding: 0;
|
|
margin: 0;
|
|
overflow: hidden;
|
|
}
|
|
|
|
img {
|
|
border: none;
|
|
}
|
|
|
|
.software-cursor {
|
|
cursor: url('images/mouse/blank.gif'),url('images/mouse/blank.cur'),default;
|
|
overflow: hidden;
|
|
cursor: none;
|
|
}
|
|
|
|
.guac-error .software-cursor {
|
|
cursor: default;
|
|
}
|
|
|
|
* {
|
|
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
|
}
|
|
|
|
.event-target {
|
|
position: fixed;
|
|
opacity: 0;
|
|
}
|
|
|
|
div.main {
|
|
overflow: auto;
|
|
position: fixed;
|
|
top: 0;
|
|
bottom: 0;
|
|
right: 0;
|
|
left: 0;
|
|
}
|
|
|
|
div.displayOuter {
|
|
height: 100%;
|
|
width: 100%;
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
display: table;
|
|
}
|
|
|
|
div.displayMiddle {
|
|
width: 100%;
|
|
display: table-cell;
|
|
vertical-align: middle;
|
|
text-align: center;
|
|
}
|
|
|
|
div.display {
|
|
display: inline-block;
|
|
}
|
|
|
|
div.display * {
|
|
position: relative;
|
|
}
|
|
|
|
div.display > * {
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
div.magnifier-background {
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
z-index: 1;
|
|
overflow: hidden;
|
|
}
|
|
|
|
div.magnifier {
|
|
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
|
|
box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.75);
|
|
width: 50%;
|
|
height: 50%;
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
.pan-overlay,
|
|
.type-overlay {
|
|
position: fixed;
|
|
left: 0;
|
|
top: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
z-index: 1;
|
|
}
|
|
|
|
.pan-overlay .indicator {
|
|
position: fixed;
|
|
background-size: 32px 32px;
|
|
-moz-background-size: 32px 32px;
|
|
-webkit-background-size: 32px 32px;
|
|
-khtml-background-size: 32px 32px;
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.pan-overlay .indicator.up {
|
|
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 32px;
|
|
|
|
background-image: url('images/arrows/arrows-u.png');
|
|
|
|
}
|
|
|
|
.pan-overlay .indicator.down {
|
|
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 32px;
|
|
|
|
background-image: url('images/arrows/arrows-d.png');
|
|
|
|
}
|
|
|
|
.pan-overlay .indicator.left {
|
|
|
|
top: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
width: 32px;
|
|
|
|
background-image: url('images/arrows/arrows-l.png');
|
|
|
|
}
|
|
|
|
.pan-overlay .indicator.right {
|
|
|
|
top: 0;
|
|
bottom: 0;
|
|
right: 0;
|
|
width: 32px;
|
|
|
|
background-image: url('images/arrows/arrows-r.png');
|
|
|
|
}
|
|
|
|
/* Viewport Clone */
|
|
|
|
div#viewportClone {
|
|
display: table;
|
|
height: 100%;
|
|
width: 100%;
|
|
position: fixed;
|
|
left: 0;
|
|
top: 0;
|
|
|
|
visibility: hidden;
|
|
}
|
|
|
|
@keyframes show-dialog {
|
|
0% {transform: scale(0.75); }
|
|
100% {transform: scale(1); }
|
|
}
|
|
|
|
@-webkit-keyframes show-dialog {
|
|
0% {-webkit-transform: scale(0.75); }
|
|
100% {-webkit-transform: scale(1); }
|
|
}
|
|
|
|
.dialog {
|
|
|
|
animation-name: show-dialog;
|
|
animation-timing-function: linear;
|
|
animation-duration: 0.125s;
|
|
-webkit-animation-name: show-dialog;
|
|
-webkit-animation-timing-function: linear;
|
|
-webkit-animation-duration: 0.125s;
|
|
|
|
max-width: 75%;
|
|
max-height: none;
|
|
width: 4in;
|
|
-moz-border-radius: 0.2em;
|
|
-webkit-border-radius: 0.2em;
|
|
-khtml-border-radius: 0.2em;
|
|
border-radius: 0.2em;
|
|
|
|
padding: 0.5em;
|
|
text-align: left;
|
|
|
|
}
|
|
|
|
.guac-error .dialog {
|
|
background: #FDD;
|
|
border: 1px solid #964040;
|
|
}
|
|
|
|
.dialog .title {
|
|
font-size: 1.1em;
|
|
font-weight: bold;
|
|
border-bottom: 1px solid black;
|
|
margin-bottom: 0.5em;
|
|
}
|
|
|
|
.dialog .status, .dialog .countdown, .dialog .reconnect {
|
|
margin: 0;
|
|
padding: 0.5em;
|
|
font-size: 0.8em;
|
|
}
|
|
|
|
.dialog .reconnect {
|
|
display: none;
|
|
}
|
|
|
|
.guac-error .dialog .reconnect {
|
|
display: block;
|
|
text-align: center;
|
|
}
|
|
|
|
p.hint {
|
|
|
|
border: 0.25em solid rgba(255, 255, 255, 0.25);
|
|
background: black;
|
|
opacity: 0.75;
|
|
|
|
color: white;
|
|
|
|
max-width: 10em;
|
|
padding: 1em;
|
|
margin: 1em;
|
|
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
|
|
box-shadow: 0.25em 0.25em 0.25em rgba(0, 0, 0, 0.75);
|
|
|
|
}
|
|
|
|
#notificationArea {
|
|
position: fixed;
|
|
right: 0.5em;
|
|
bottom: 0.5em;
|
|
max-width: 25%;
|
|
min-width: 10em;
|
|
}
|
|
|
|
.notification {
|
|
|
|
font-size: 0.7em;
|
|
text-align: center;
|
|
|
|
border: 1px solid rgba(0, 0, 0, 0.75);
|
|
-moz-border-radius: 0.2em;
|
|
-webkit-border-radius: 0.2em;
|
|
-khtml-border-radius: 0.2em;
|
|
border-radius: 0.2em;
|
|
background: white;
|
|
|
|
color: black;
|
|
|
|
padding: 0.5em;
|
|
margin: 1em;
|
|
overflow: hidden;
|
|
|
|
box-shadow: 0.1em 0.1em 0.2em rgba(0, 0, 0, 0.25);
|
|
|
|
}
|
|
|
|
.notification div {
|
|
display: inline-block;
|
|
text-align: left;
|
|
}
|
|
|
|
.notification .title-bar {
|
|
display: block;
|
|
white-space: nowrap;
|
|
font-weight: bold;
|
|
|
|
border-bottom: 1px solid black;
|
|
padding-bottom: 0.5em;
|
|
margin-bottom: 0.5em;
|
|
}
|
|
|
|
.notification .title-bar * {
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.notification .close {
|
|
|
|
background: url('images/action-icons/guac-close.png');
|
|
background-size: 10px 10px;
|
|
-moz-background-size: 10px 10px;
|
|
-webkit-background-size: 10px 10px;
|
|
-khtml-background-size: 10px 10px;
|
|
|
|
width: 10px;
|
|
height: 10px;
|
|
|
|
float: right;
|
|
cursor: pointer;
|
|
|
|
}
|
|
|
|
@keyframes progress {
|
|
from {background-position: 0px 0px;}
|
|
to {background-position: 64px 0px;}
|
|
}
|
|
|
|
@-webkit-keyframes progress {
|
|
from {background-position: 0px 0px;}
|
|
to {background-position: 64px 0px;}
|
|
}
|
|
|
|
.notification .caption,
|
|
.download.notification .caption {
|
|
width: 100%;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.upload.notification .status,
|
|
.download.notification .status {
|
|
color: red;
|
|
font-size: 1em;
|
|
padding: 1em;
|
|
}
|
|
|
|
.download.notification .progress,
|
|
.upload.notification .progress,
|
|
.download.notification .download {
|
|
|
|
margin-top: 1em;
|
|
margin-left: 0.75em;
|
|
padding: 0.25em;
|
|
min-width: 5em;
|
|
|
|
border: 1px solid gray;
|
|
-moz-border-radius: 0.2em;
|
|
-webkit-border-radius: 0.2em;
|
|
-khtml-border-radius: 0.2em;
|
|
border-radius: 0.2em;
|
|
|
|
text-align: center;
|
|
float: right;
|
|
|
|
position: relative;
|
|
|
|
}
|
|
|
|
.upload.notification .progress {
|
|
float: none;
|
|
width: 80%;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
.download.notification .progress div,
|
|
.upload.notification .progress div {
|
|
position: relative;
|
|
}
|
|
|
|
.download.notification .progress .bar,
|
|
.upload.notification .progress .bar {
|
|
background: #A3D655;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
height: 100%;
|
|
width: 0;
|
|
box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.5),
|
|
inset -1px -1px 0 rgba( 0, 0, 0, 0.1),
|
|
1px 1px 0 gray;
|
|
}
|
|
|
|
.upload.notification .progress,
|
|
.download.notification .progress {
|
|
|
|
background: #C2C2C2 url('images/progress.png');
|
|
background-size: 16px 16px;
|
|
-moz-background-size: 16px 16px;
|
|
-webkit-background-size: 16px 16px;
|
|
-khtml-background-size: 16px 16px;
|
|
|
|
animation-name: progress;
|
|
animation-duration: 2s;
|
|
animation-timing-function: linear;
|
|
animation-iteration-count: infinite;
|
|
|
|
-webkit-animation-name: progress;
|
|
-webkit-animation-duration: 2s;
|
|
-webkit-animation-timing-function: linear;
|
|
-webkit-animation-iteration-count: infinite;
|
|
|
|
}
|
|
|
|
.download.notification .download {
|
|
background: rgb(16, 87, 153);
|
|
cursor: pointer;
|
|
}
|
|
|
|
#preload {
|
|
visibility: hidden;
|
|
position: absolute;
|
|
left: 0;
|
|
right: 0;
|
|
width: 0;
|
|
height: 0;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* Menu */
|
|
|
|
#menu {
|
|
overflow: auto;
|
|
position: fixed;
|
|
top: 0;
|
|
bottom: 0;
|
|
max-width: 100%;
|
|
width: 480px;
|
|
background: #EEE;
|
|
box-shadow: inset -1px 0 2px white, 1px 0 2px black;
|
|
z-index: 10;
|
|
-webkit-transition: left 0.125s, opacity 0.125s;
|
|
-moz-transition: left 0.125s, opacity 0.125s;
|
|
-ms-transition: left 0.125s, opacity 0.125s;
|
|
-o-transition: left 0.125s, opacity 0.125s;
|
|
transition: left 0.125s, opacity 0.125s;
|
|
}
|
|
|
|
#menu .content {
|
|
padding: 1em;
|
|
}
|
|
|
|
#menu .content > * {
|
|
margin: 1em 0;
|
|
}
|
|
|
|
#menu, #menu.closed {
|
|
left: -480px;
|
|
opacity: 0;
|
|
}
|
|
|
|
#menu.open {
|
|
left: 0px;
|
|
opacity: 1;
|
|
}
|
|
|
|
#clipboard-settings textarea {
|
|
width: 100%;
|
|
border: 1px solid #AAA;
|
|
-moz-border-radius: 0.25em;
|
|
-webkit-border-radius: 0.25em;
|
|
-khtml-border-radius: 0.25em;
|
|
border-radius: 0.25em;
|
|
white-space: pre;
|
|
display: block;
|
|
}
|
|
|
|
#mouse-settings .choice {
|
|
text-align: center;
|
|
}
|
|
|
|
#mouse-settings .choice .figure {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
max-width: 80%;
|
|
}
|
|
|
|
#keyboard-settings .caption {
|
|
font-size: 0.9em;
|
|
margin-left: 2em;
|
|
margin-right: 2em;
|
|
}
|
|
|
|
#mouse-settings .figure .caption {
|
|
text-align: center;
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
#mouse-settings .figure img {
|
|
display: block;
|
|
max-width: 100%;
|
|
margin: 1em auto;
|
|
}
|
|
|
|
#menu h3 {
|
|
|
|
background: rgba(0, 0, 0, 0.4);
|
|
|
|
padding: 0.25em 0.5em;
|
|
margin: 0;
|
|
font-size: 1em;
|
|
|
|
color: white;
|
|
font-weight: bold;
|
|
|
|
}
|
|
|
|
#keyboard-settings .figure {
|
|
float: right;
|
|
max-width: 30%;
|
|
margin: 1em;
|
|
}
|
|
|
|
#keyboard-settings .figure img {
|
|
max-width: 100%;
|
|
}
|
|
|
|
#zoom-settings {
|
|
text-align: center;
|
|
}
|
|
|
|
#zoom-out, #zoom-in, #zoom-state {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
#zoom-out, #zoom-in {
|
|
max-width: 3em;
|
|
border: 1px solid rgba(0, 0, 0, 0.5);
|
|
background: rgba(0, 0, 0, 0.1);
|
|
border-radius: 2em;
|
|
margin: 0.5em;
|
|
cursor: pointer;
|
|
}
|
|
|
|
#zoom-out img, #zoom-in img {
|
|
max-width: 100%;
|
|
opacity: 0.5;
|
|
}
|
|
|
|
#zoom-out:hover, #zoom-in:hover {
|
|
border: 1px solid rgba(0, 0, 0, 1);
|
|
background: #CDA;
|
|
}
|
|
|
|
#zoom-out:hover img, #zoom-in:hover img {
|
|
opacity: 1;
|
|
}
|
|
|
|
#zoom-state {
|
|
font-size: 2em;
|
|
}
|
|
|
|
#text-input {
|
|
display: none;
|
|
position: absolute;
|
|
|
|
border-top: 1px solid rgba(0, 0, 0, 0.5);
|
|
background: #CDA;
|
|
|
|
}
|
|
|
|
#text-input-field,
|
|
#text-input-buttons {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
#text-input-field {
|
|
width: 30%;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
#text-input-buttons {
|
|
width: 70%;
|
|
text-align: right;
|
|
}
|
|
|
|
#target {
|
|
|
|
border: none;
|
|
border-radius: 0;
|
|
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
font-size: 12pt;
|
|
width: 100%;
|
|
height: auto;
|
|
resize: none;
|
|
outline: none;
|
|
|
|
margin: 0;
|
|
padding: 0.25em;
|
|
padding-left: 0;
|
|
background: #CDA;
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
#text-input.open {
|
|
display: block;
|
|
}
|
|
|
|
#sent-history {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
padding: 0.25em;
|
|
padding-right: 0;
|
|
}
|
|
|
|
#sent-history .sent-text {
|
|
display: inline-block;
|
|
vertical-align: baseline;
|
|
white-space: pre;
|
|
font-size: 12pt;
|
|
|
|
animation: fadeout 1s linear;
|
|
-webkit-animation: fadeout 1s linear;
|
|
opacity: 0;
|
|
}
|
|
|
|
#text-input-buttons button {
|
|
border: 1px solid rgba(0, 0, 0, 0.5);
|
|
background: none;
|
|
color: black;
|
|
box-shadow: none;
|
|
text-shadow: none;
|
|
padding: 0.25em;
|
|
max-width: 20%;
|
|
margin: 0.1em;
|
|
min-width: 3em;
|
|
}
|
|
|
|
#text-input-buttons button:active,
|
|
#text-input-buttons button.pressed {
|
|
border: 1px solid rgba(255, 255, 255, 0.5);
|
|
background: rgba(0, 0, 0, 0.75);
|
|
color: white;
|
|
}
|
|
|
|
.notification.message {
|
|
background: #DFD;
|
|
animation: fadein 0.125s linear, fadeout 2s 3s linear;
|
|
-webkit-animation: fadein 0.125s linear, fadeout 2s 3s linear;
|
|
}
|
|
|
|
.notification.message .caption {
|
|
vertical-align: middle;
|
|
white-space: normal;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|