add an indicator when login fails
[lantea.git] / style / lantea.css
index e7151f21b26b5e838eb977642aeb9d8d559c52d0..dbc28b0810f55ffd3cb5b27ee96f5c31331339dd 100644 (file)
 body {
   font-family: sans-serif;
   margin: 0;
+  background: url("loading.png") repeat;
 }
 
 h1 {
   display: none;
 }
 
-#overlayArea {
+.hidden {
+  display: none;
+}
+
+.debugHide {
+  display: none;
+}
+
+/* Main window UI areas */
+#map, #track {
+  position: fixed;
+  border: 0;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+
+#map {
+  z-index: 1;
+}
+
+#track {
+  z-index: 3;
+}
+
+.autoFade {
   position: absolute;
+  z-index: 5;
+  transition-property: opacity;
+  transition-duration: .2s;
+}
+
+.autoFade.hidden {
+  opacity: 0;
+  transition-duration: 1s;
+  display: block;
+}
+
+#menuArea {
   /* width: 30em; */
   left: 1%;
   top: 1em;
-  z-index: 5;
 }
 
-#overlayArea:-moz-system-metric(touch-enabled) {
-  font-size: 3mozmm;
+#zoomArea {
+  right: 1%;
+  top: 1em;
+  text-align: center;
+}
+
+.autoFade > input[type="button"],
+.autoFade > .controlButton {
+  font-size: 1.2em;
+  font-weight: bold;
+  width: 2em;
+  height: 2em;
+  border-radius: 2em;
+  background-color: rgba(255, 255, 255, .25);
+  background-image: radial-gradient(circle 1.5em, #FFFFFF, transparent);
+  color: #0000FF;
+  border: none;
+  padding: 0;
+  margin: 0;
 }
 
-#overlayArea input[type="button"]:-moz-system-metric(touch-enabled),
-#overlayArea select:-moz-system-metric(touch-enabled) {
-  font-size: 2.5mozmm;
+#zoomArea > input[type="button"] {
+  border: 2px solid #0000FF;
 }
 
-#zoomLevel {
+.autoFade > input[type="button"]:hover,
+.autoFade > .controlButton:hover {
   background-color: rgba(255, 255, 255, .8);
-  border-radius: 3px;
-  padding: 0 3px;
 }
 
+.autoFade > input[type="button"]:active,
+.autoFade > .controlButton:active {
+  background-color: rgba(255, 255, 127, .8);
+}
 
-#settingsArea,
-#trackArea {
-  display: none;
-  background-color: rgba(255, 255, 255, .8);
-  border: 0;
-  border-radius: 5px;
+.autoFade > input[type="button"]:focus,
+.autoFade > .controlButton:focus {
+  background-color: rgba(255, 255, 255, .5);
 }
 
-#settingsArea > legend,
-#trackArea > legend {
-  display: none;
-  background-color: rgba(255, 255, 255, .8);
-  border-radius: 3px;
+#fullscreenArea {
+  right: 1%;
+  bottom: 2em;
+  text-align: center;
 }
 
-#map {
-  border: 0;
-  top: 1px;
-  left: 1px;
-  right: 1px;
-  bottom: 1px;
-  z-index: 1;
+#zoomLevel {
+  /* background-color: rgba(255, 255, 255, .8); */
+  background-image: radial-gradient(circle 1.5em, #FFFFFF, transparent);
+  border-radius: .5em;
+  padding: .5em .2em;
+  margin: 2px 0;
 }
 
-#debug {
+#action {
   position: absolute;
   bottom: 5px;
   left: .5em;
@@ -70,16 +122,15 @@ h1 {
   padding: 0 3px;
 }
 
-.debugHide {
-  display: none;
+#actionimg {
+  vertical-align: text-bottom;
 }
 
 #copyright {
-  position: absolute;
   bottom: 5px;
   right: .5em;
   margin: 0;
-  font-size: small;
+  font-size: .8em;
   opacity: .66;
   z-index: 2;
   background-color: rgba(255, 255, 255, 1);
@@ -87,9 +138,390 @@ h1 {
   padding: 0 3px;
 }
 
+#copyright.hidden {
+  opacity: 0;
+  display: block;
+}
+
+.overlayArea:-moz-system-metric(touch-enabled),
+.menuDrawer:-moz-system-metric(touch-enabled) {
+  font-size: 3mozmm;
+}
+
+.overlayArea input[type="button"],
+.overlayArea button,
+.overlayArea select,
+.menuDrawer input[type="button"],
+.menuDrawer button,
+.menuDrawer input[type="text"],
+.menuDrawer input[type="number"],
+.menuDrawer select {
+  font-size: inherit;
+}
+
+/* Menu Drawers */
+.menuDrawer {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  overflow: auto;
+  transform: translateX(calc(-40ch - 1ch)); /* account for padding */
+  width: 40ch;
+  max-width: 95%; /* make sure we don't overflow the screen */
+  border: 0;
+  padding: 0 .5ch; /* account for legend */
+  margin: 0;
+  z-index: 10;
+  transition-property: transform;
+  transition-duration: 1s;
+  transition-timing-function: ease;
+}
+
+.menuDrawer:not(.hidden) {
+  transform: translateX(0);
+}
+
+@media screen and (max-width: 330px) {
+  .menuDrawer {
+    left: calc(-300px - 1ch); /* account for padding */
+    width: 300px;
+  }
+}
+
+.menuDrawer p {
+  margin: .5em 0;
+}
+
+/* Menu title */
+.menuDrawer > h2 {
+  font-size: 1.2em;
+  font-weight: bold;
+  margin: .5em 0;
+  background-color: #CCCCCC;
+  color: #404040;
+  border-radius: 3px;
+  padding: 2px;
+}
+
+.menuDrawer > h2 > img {
+  vertical-align: text-top;
+  height: 1.2em;
+}
+
+/* For optical conveniece, display an "x" for closing. */
+.menuDrawer > h2:after {
+  content: '\00D7'; /* multiplication sign */
+  display: inline-block;
+  vertical-align: text-top;
+  float: right;
+  margin-top: 0;
+  margin-right: .2em;
+  font-size: .75em;
+}
+
+.dialogHelp {
+  margin: .5em 0;
+  font-size: .8em;
+  opacity: .66;
+}
+
+#trackData {
+  margin: 0;
+}
+
+#trackDialogArea {
+  border-top: 2px solid;
+  border-bottom: 2px solid;
+  padding: 3px 0;
+}
+
+#uploadDesc {
+  max-width: 95%;
+}
+
+/* Secondary UI: menu drawers, full screen overlays, etc. */
+.secondaryUI {
+  background-color: rgba(15, 15, 15, .9);
+  color: #CCCCCC;
+}
+
+/* Custom checkbox design */
+.secondaryUI input[type="checkbox"] {
+  display: none;
+}
+
+.secondaryUI input[type="checkbox"] + label:before {
+  content: '\00A0'; /* non-breaking space */
+  display: inline-block;
+  width: 1.2em;
+  height: 1.2em;
+  margin-right: .3em;
+  text-align: center;
+  vertical-align: middle;
+  background-color: rgba(204, 204, 204, .2);
+  border: 1px solid #CCCCCC;
+  border-radius: 3px;
+}
 
-@media screen and (max-width: 500px) {
+.secondaryUI input[type="checkbox"]:hover + label:before {
+  background-color: rgba(204, 204, 204, .4);
+  border: 1px solid #FFFFFF;
+}
+.secondaryUI input[type="checkbox"]:hover + label {
+  color: #FFFFFF;
+  position:relative;
+  height: 1.2em;
+}
+
+.secondaryUI input[type="checkbox"]:active + label:before {
+  background-color: rgba(204, 204, 255, .3);
+  border: 1px solid #FFCCAA;
+}
+.secondaryUI input[type="checkbox"]:active + label {
+  color: #FFCCAA;
+}
+
+.secondaryUI input[type="checkbox"]:checked + label:before {
+  content: '\2714'; /* tick mark */
+}
+
+/* Custom button design */
+.secondaryUI input[type="button"],
+.secondaryUI button {
+  text-align: center;
+  vertical-align: middle;
+  background-image: none;
+  background-color: rgba(204, 204, 204, .2);
+  color: #CCCCCC;
+  padding: 1px .5em;
+  border: 1px solid #CCCCCC;
+  border-radius: 3px;
+}
+
+.secondaryUI input[type="button"]:disabled,
+.secondaryUI button:disabled {
+  background-color: rgba(204, 204, 204, .1);
+  color: rgba(204, 204, 204, .5);
+  border: 1px solid rgba(255, 255, 255, .5);
+}
+
+.secondaryUI input[type="button"]:not(:disabled):hover,
+.secondaryUI button:not(:disabled):hover {
+  background-color: rgba(204, 204, 204, .4);
+  border: 1px solid #FFFFFF;
+}
+
+.secondaryUI input[type="button"]:not(:disabled):active,
+.secondaryUI button:not(:disabled):active {
+  background-color: rgba(204, 204, 255, .3);
+  color: #FFCCAA;
+  padding-top: 2px;
+  padding-right: calc(.5em - 1px);
+  padding-bottom: 0;
+  padding-left: calc(.5em + 1px);
+}
+
+/* Custom select design */
+.secondaryUI select {
+  text-align: left;
+  vertical-align: middle;
+  background-image: none;
+  background-color: rgba(204, 204, 204, .2);
+  color: #CCCCCC;
+  padding: 0 .5em;
+  border: 1px solid #CCCCCC;
+  border-radius: 3px;
+}
+
+.secondaryUI select:hover {
+  background-color: rgba(204, 204, 204, .4);
+  border: 1px solid #FFFFFF;
+}
+
+.secondaryUI select:active {
+  background-color: rgba(204, 204, 255, .3);
+  color: #FFCCAA;
+}
+
+.secondaryUI option:checked:not(:hover) {
+  background-color: rgba(204, 204, 204, .1);
+}
+
+.secondaryUI option:hover {
+  background-color: #CCCCCC;
+  color: #404040;
+}
+
+/* Custom textbox design */
+.secondaryUI input[type="text"],
+.secondaryUI input[type="number"] {
+  font-size: 1em;
+  vertical-align: middle;
+  background-image: none;
+  background-color: rgba(204, 204, 204, .7);
+  color: #404040;
+  padding: 1px .5em;
+  border: 1px solid #CCCCCC;
+  border-radius: 3px;
+}
+
+.secondaryUI input[type="text"] {
+  text-align: left;
+}
+
+.secondaryUI input[type="number"] {
+  text-align: right;
+}
+
+.secondaryUI input[type="text"]:disabled,
+.secondaryUI input[type="number"]:disabled {
+  background-color: rgba(204, 204, 204, .1);
+  color: rgba(204, 204, 204, .5);
+  border: 1px solid rgba(255, 255, 255, .5);
+}
+
+.secondaryUI input[type="text"]:not(:disabled):hover,
+.secondaryUI input[type="number"]:not(:disabled):hover {
+  border: 1px solid #FFFFFF;
+}
+
+.secondaryUI input[type="text"]:not(:disabled):focus,
+.secondaryUI input[type="number"]:not(:disabled):focus {
+  background-color: rgba(204, 204, 255, .8);
+  border: 1px solid #FFFFFF;
+  color: #202020;
+}
+
+/* custom style for paragraphs and links */
+.secondaryUI p.subTitle {
+  margin: .75em 0 .5em;
+  font-weight: bold;
+}
+
+.secondaryUI a:link {
+  color: #DDDDDD;
+}
+
+.secondaryUI a:visited {
+  color: #AAAAAA;
+}
+
+.secondaryUI a:hover {
+  color: #FFFFFF;
+}
+
+#loginerror {
+  color: red;
+  font-weight: bold;
+  padding: .5em;
+}
+
+/* dialog area - for loading error and welcome messages */
+#dialogArea {
+  position: absolute;
+  top: 20%;
+  right: 0;
+  left: 0;
+  width: 50ch;
+  max-width: 92%;
+  z-index: 10;
+  background-color: rgba(255, 255, 255, .8);
+  border: 0;
+  margin: auto;
+  padding: .5em;
+  border-radius: 5px;
+}
+
+#dialogArea.hidden {
+  top: -1000%;
+  display: block;
+}
+
+.dialogTitle {
+  margin: 0 0 .5em;
+  font-weight: bold;
+}
+
+.dialogButtonLine {
+  text-align: center;
+}
+
+/* full screen overlay - library, etc. */
+.fullScreenOverlay {
+  position: absolute;
+  top: 1%;
+  bottom: 1%;
+  right: 1%;
+  left: 1%;
+  z-index: 10;
+  background-color: rgba(15, 15, 15, 1.0);
+  border: 0;
+  margin: auto;
+  padding: .5em;
+  border-radius: 5px;
+}
+
+.fullScreenOverlay.hidden {
+  top: -1000%;
+  bottom: auto;
+  height: 90%;
+  display: block;
+}
+
+.fullScreenOverlay > .closeButtonContainer {
+  position: absolute;
+  top: 0;
+  right: 0;
+  margin: 0;
+  padding: 0.5em;
+  text-align: right;
+}
+/*
+.fullScreenOverlay > .closeButtonContainer > .closeButton {
+  font-size: 2em;
+}
+*/
+
+.fullScreenOverlay p {
+  margin: 0.5em 0;
+}
+
+.fullScreenOverlay > p:first-child {
+  margin-top: 0;
+  /* leave space for close button */
+  margin-right: 1.5em;
+}
+
+#libTrackList {
+  overflow: auto;
+  /* 2em is top/bottom margin, and one line is shown above and below, with .5em margin each */
+  height: calc(100% - 5em);
+}
+
+#libTrackPages {
+  margin-bottom: 0;
+}
+
+/* small screen media adaptations */
+@media screen and (max-width: 500px),
+       screen and (max-height: 500px) {
   body {
     font-size: 10px;
   }
+  #menuArea {
+    top: 2px;
+    left: 2px;
+  }
+  #zoomArea {
+    top: 2px;
+    right: 2px;
+  }
+  #fullscreenArea {
+    right: 2px;
+    bottom: 20px;
+  }
+  #copyright {
+    bottom: 1px;
+    right: 1px;
+  }
 }