hugvey/www/css/styles.css

420 lines
10 KiB
CSS

@-webkit-keyframes sk-scaleout {
0% {
-webkit-transform: scale(0); }
100% {
-webkit-transform: scale(1);
opacity: 0; } }
@keyframes sk-scaleout {
0% {
-webkit-transform: scale(0);
transform: scale(0); }
100% {
-webkit-transform: scale(1);
transform: scale(1);
opacity: 0; } }
body {
font-family: "Noto Sans", sans-serif;
margin: 0;
font-size: 10pt; }
body.dark {
background-color: #333;
color: #777; }
body.dark #story line {
marker-end: url("#arrowHeadWhite");
stroke: white; }
body.dark #status .hugvey {
color: #333; }
body.dark #timeline {
background: #444; }
.btn, input[type="submit"] {
display: inline-block;
cursor: pointer;
background: #345;
padding: 5px;
color: white;
border-radius: 3px;
margin-right: 5px;
white-space: nowrap;
border: none; }
.btn:hover, input[type="submit"]:hover {
background: #666; }
.btn.loading:after {
display: inline-block;
content: '';
width: 15px;
height: 15px;
background-color: white;
border-radius: 100%;
-webkit-animation: sk-scaleout 1.0s infinite ease-in-out;
animation: sk-scaleout 1.0s infinite ease-in-out; }
input[type="number"] {
width: 80px;
text-align: right; }
@keyframes dash-animation {
to {
stroke-dashoffset: -1000; } }
img.icon {
height: .9em;
width: .9em; }
#interface {
display: flex;
flex-direction: row;
height: 100vh;
width: 100vw; }
#interface #audioFiles, #interface #configuration {
position: absolute;
top: 30%;
left: 30%;
right: 30%;
bottom: 30%;
background: #ccc;
overflow: auto; }
#status {
display: flex;
flex-direction: row;
flex-wrap: wrap;
width: 380px;
height: 100%;
overflow-y: scroll; }
.panopticon #status {
width: 80%; }
#status > div {
width: 33.3333333%;
height: 200px;
border: solid 1px;
box-sizing: border-box;
position: relative;
padding: 5px; }
#status > div#overview {
width: calc(100% / 3 * 2); }
#status > div#overview #languages {
color: #ccc;
list-style: none;
padding: 0; }
#status .counts dd, #status .counts dt {
display: inline-block;
width: 30px;
overflow: hidden;
text-overflow: ellipsis;
margiN: 0; }
#status .counts dd:hover, #status .counts dt:hover {
width: auto; }
#status .hugvey {
background-image: linear-gradient(to top, #587457, #35a589);
color: white;
display: flex;
flex-direction: column;
justify-content: center;
width: 120px;
flex-grow: 1; }
.panopticon #status .hugvey {
width: 160px; }
#status .hugvey h1 {
text-align: center;
margin: 0;
font-weight: normal;
position: absolute;
left: 5px;
top: 5px;
font-size: 150%; }
#status .hugvey h1 .light_id-hv_id {
font-size: 75%; }
#status .hugvey .status {
font-style: italic;
color: gray;
position: absolute;
top: 10px;
right: 5px; }
#status .hugvey .light {
position: absolute;
bottom: 3px;
right: 3px; }
#status .hugvey .light input {
width: 4.2em;
font-size: 20px; }
#status .hugvey .stats .count {
display: inline-block;
margin-right: 10px; }
#status .hugvey.hugvey--off {
background-image: linear-gradient(to top, #575d74, #3572a5); }
#status .hugvey.hugvey--off .status {
text-align: center; }
#status .hugvey.hugvey--gone {
background-image: linear-gradient(to top, orange, #ce5c00); }
#status .hugvey.hugvey--loading {
background-image: linear-gradient(to top, #576074, #3581a5); }
#status .hugvey.hugvey--loading .status {
color: white; }
#status .hugvey.hugvey--blocked {
background-image: linear-gradient(to top, #888a85, #555753); }
#status .hugvey.hugvey--available {
background-image: linear-gradient(to top, #888a85, #e2f04a); }
#status .hugvey.hugvey--available .status {
color: darkgreen; }
#status .hugvey.hugvey--paused {
background-image: linear-gradient(to top, #587457, #e2f04a); }
#story {
position: relative;
width: calc(100% - 380px); }
#story.en-GB {
background: #02547e; }
#story.fr-FR {
background: #5a434d; }
#story.de-DE {
background: slategray; }
#story #controls {
position: absolute;
top: 5px;
left: 5px;
white-space: nowrap; }
#story #controls.hidden {
display: none; }
#story svg#graph {
width: 100%;
height: 100%;
cursor: grab; }
#story svg#graph:active {
cursor: grabbing; }
#story svg#graph .beenHit circle {
stroke: #0f0;
stroke-width: 25px; }
#story svg#graph line.beenHit {
stroke: #0f0; }
#story circle {
cursor: pointer;
fill: #77618e; }
#story .startMsg circle {
fill: lightseagreen !important; }
#story .chapterStartMsg circle {
transform: scale(1.5);
fill: white !important; }
#story .chapterStartMsg text {
fill: black; }
#story .orphanedMsg {
fill: lightcoral !important; }
#story text {
text-anchor: middle;
font-size: 11pt;
font-family: sans-serif;
fill: white; }
#story text.msg_id {
transform: translateY(-20px);
opacity: .5; }
#story text.msg_txt {
font-weight: bold; }
#story line {
marker-end: url("#arrowHead");
stroke-width: 5px;
stroke: black; }
#story line.link--noconditions {
stroke-dasharray: 5 4;
stroke: red; }
#story line.dir-highlight {
stroke-dasharray: 5;
animation: dash-animation 20s infinite linear;
stroke-width: 3px; }
#story label::after {
content: '';
clear: both;
display: block; }
#story label {
width: 100%;
font-weight: bold;
display: block;
margin: 0 -10px;
padding: 5px 10px; }
#story label input, #story label select, #story label .label-value, #story label .label-unit {
float: right; }
#story label:nth-child(odd) {
background-color: rgba(255, 255, 255, 0.3); }
#story #msg {
position: absolute;
top: 0;
right: 0;
width: 385px;
max-height: 100%;
overflow-y: auto; }
#story #msg .directions h3 {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
margin-right: 5em; }
#story #msg .msg__info, #story #msg .directions > div {
padding: 10px;
margin-bottom: 10px;
background: lightgray; }
#story #msg .msg__info.btn, #story #msg .directions > div.btn {
background: darkblue; }
#story #msg h1 {
margin: 0; }
#story #msg .msg__info .btn--delete-mss {
position: absolute;
top: 15px;
right: 10px; }
#story #msg .play {
text-align: center; }
#story #msg .direction {
position: relative; }
#story #msg .direction h3 {
margin-top: 0; }
#story #msg .direction .btn--delete {
position: absolute;
top: 5px;
right: 0px; }
#story #msg #diversions .diversion {
background: pink; }
#story #nodes g:hover circle,
#story .selectedMsg circle {
stroke: lightgreen;
stroke-width: 27; }
#story .diversion circle {
fill: pink !important; }
#story .controlDown #nodes g:hover circle,
#story .secondaryMsg circle {
stroke: lightgreen;
stroke-width: 5;
stroke-dasharray: 10 3; }
#story .condition {
position: relative; }
#story .condition h4 {
text-align: center; }
#story .condition.condition--add h4 {
margin: 0; }
#story .condition.condition--add h4 + div {
margin-top: 10px; }
#story .condition + .condition::before {
content: "OR";
display: block;
border-bottom: solid 2px;
height: 10px;
margin-bottom: 15px;
text-align: center;
text-shadow: 2px 2px 2px lightgray,-2px 2px 2px lightgray,2px -2px 2px lightgray,-2px -2px 2px lightgray; }
#story .condition + .condition .btn--delete {
margin-top: 20px; }
.flag-icon {
background-size: contain;
background-position: 50%;
background-repeat: no-repeat;
position: relative;
display: inline-block;
width: 2.66667em;
line-height: 2em; }
.flag-icon:before {
content: '\00a0'; }
.flag-icon.flag-icon-squared {
width: 2em; }
.flag-icon.en-GB {
background-image: url("/images/gb.svg"); }
.flag-icon.de-DE {
background-image: url("/images/de.svg"); }
.flag-icon.fr-FR {
background-image: url("/images/fr.svg"); }
.flag-icon.fr-FR2 {
background-image: url("/images/fr2.svg"); }
.flag-icon.ru-RU {
background-image: url("/images/ru.svg"); }
.flag-icon.ru-RU2 {
background-image: url("/images/ru2.svg"); }
.flag-icon.nl-NL {
background-image: url("/images/nl.svg"); }
.divToggle {
cursor: pointer; }
.divToggle:hover {
text-decoration: underline; }
.divToggle.opened + div {
display: block; }
.divToggle + div {
display: none; }
body.showTimeline #toggleTimeline {
background-color: pink; }
#timeline {
position: absolute;
left: 380px;
right: 0;
top: 0;
bottom: 0;
background: #eee;
pointer-events: none;
opacity: 0;
overflow: auto; }
body.showTimeline #timeline {
opacity: 1;
pointer-events: auto; }
#timeline .vis-item.message {
background: lightgray; }
#timeline .vis-item.message.vis-range {
background-color: darkgray;
border-color: green; }
#timeline .vis-item.speech {
background-color: greenyellow;
border-color: green; }
#timeline .vis-text, #timeline .vis-labelset .vis-label {
color: #999; }
#timeline .vis-dot.WARNING {
width: 10px;
height: 10px;
background: yellow;
border-color: yellow;
border-radius: 15px; }
#timeline .vis-dot.ERROR {
width: 20px;
height: 20px;
background: orange;
border-color: orangered;
border-radius: 15px; }
#timeline .vis-dot.CRITICAL {
width: 30px;
height: 30px;
background: red;
border-color: darkred;
border-radius: 15px; }
#logbook {
width: 20%;
padding: 10px;
color: #999;
height: 100%;
overflow-y: auto; }
#logbook .log {
margin-bottom: 10px; }
#logbook .time {
color: #666; }
#logbook .content .origin {
padding-right: 10px;
color: orange; }
#logbook .content .extra {
color: #555; }
#variables {
position: absolute;
bottom: 0;
left: 0;
color: white; }
#variables .name {
font-weight: bold; }
#variables .name::after {
content: " - "; }
.loop_time {
cursor: pointer; }
#time_update {
display: none; }
#time_update.visible {
display: block; }