switch to transform instead of left for making the transition way more performant...
[lantea.git] / style / lantea.css
index 47d0f5b272f6a329c3f1fa4d88dc482d0b40aa87..f1785fdddd4e187758d116e7796381f108aaf81e 100644 (file)
@@ -27,16 +27,19 @@ h1 {
 }
 
 #dialogArea:-moz-system-metric(touch-enabled),
-.overlayArea:-moz-system-metric(touch-enabled) {
+.overlayArea:-moz-system-metric(touch-enabled),
+.menuDrawer:-moz-system-metric(touch-enabled) {
   font-size: 3mozmm;
 }
 
-#dialogArea input[type="button"]:-moz-system-metric(touch-enabled),
-#dialogArea input[type="text"]:-moz-system-metric(touch-enabled),
-#dialogArea select:-moz-system-metric(touch-enabled),
-.overlayArea input[type="button"]:-moz-system-metric(touch-enabled),
-.overlayArea select:-moz-system-metric(touch-enabled) {
-  font-size: 3mozmm;
+#dialogArea input[type="button"],
+#dialogArea input[type="text"],
+#dialogArea select,
+.overlayArea input[type="button"],
+.overlayArea select,
+.menuDrawer input[type="button"],
+.menuDrawer select {
+  font-size: inherit;
 }
 
 #menuArea {
@@ -52,7 +55,9 @@ h1 {
 }
 
 #zoomArea > input[type="button"],
-#fullscreenArea > input[type="button"] {
+#fullscreenArea > input[type="button"],
+#trackButton,
+#settingsButton {
   font-size: 1.2em;
   font-weight: bold;
   width: 2em;
@@ -69,17 +74,23 @@ h1 {
 }
 
 #zoomArea > input[type="button"]:hover,
-#fullscreenArea > input[type="button"]:hover {
+#fullscreenArea > input[type="button"]:hover,
+#trackButton:hover,
+#settingsButton:hover {
   background-color: rgba(255, 255, 255, .8);
 }
 
 #zoomArea > input[type="button"]:active,
-#fullscreenArea > input[type="button"]:active {
+#fullscreenArea > input[type="button"]:active,
+#trackButton:active,
+#settingsButton:active {
   background-color: rgba(255, 255, 127, .8);
 }
 
 #zoomArea > input[type="button"]:focus,
-#fullscreenArea > input[type="button"]:focus {
+#fullscreenArea > input[type="button"]:focus,
+#trackButton:focus,
+#settingsButton:focus {
   background-color: rgba(255, 255, 255, .5);
 }
 
@@ -97,21 +108,163 @@ h1 {
   margin: 2px 0;
 }
 
-#settingsArea,
-#trackArea {
-  display: none;
-  background-color: rgba(255, 255, 255, .8);
+.menuDrawer {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  transform: translateX(calc(-40ch - 1ch)); /* account for padding */
+  width: 40ch;
+  max-width: 95%; /* make sure we don't overflow the screen */
+  background-color: rgba(15, 15, 15, .9);
+  color: #CCCCCC;
   border: 0;
-  border-radius: 5px;
+  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);
 }
 
-#settingsArea > legend,
-#trackArea > legend {
+@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;
+}
+
+/* Custom checkbox design */
+.menuDrawer input[type="checkbox"] {
   display: none;
-  background-color: rgba(255, 255, 255, .8);
+}
+
+.menuDrawer 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;
+}
+
+.menuDrawer input[type="checkbox"]:hover + label:before {
+  background-color: rgba(204, 204, 204, .4);
+  border: 1px solid #FFFFFF;
+}
+.menuDrawer input[type="checkbox"]:hover + label {
+  color: #FFFFFF;
+  position:relative;
+  height: 1.2em;
+}
+
+.menuDrawer input[type="checkbox"]:active + label:before {
+  background-color: rgba(204, 204, 255, .3);
+  border: 1px solid #FFCCAA;
+}
+.menuDrawer input[type="checkbox"]:active + label {
+  color: #FFCCAA;
+}
+
+.menuDrawer input[type="checkbox"]:checked + label:before {
+  content: '\2714'; /* tick mark */
+}
+
+/* Custom button design */
+.menuDrawer input[type="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;
+}
+
+.menuDrawer input[type="button"]:hover {
+  background-color: rgba(204, 204, 204, .4);
+  border: 1px solid #FFFFFF;
+}
+
+.menuDrawer input[type="button"]: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 */
+.menuDrawer 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;
 }
 
+.menuDrawer select:hover {
+  background-color: rgba(204, 204, 204, .4);
+  border: 1px solid #FFFFFF;
+}
+
+.menuDrawer select:active {
+  background-color: rgba(204, 204, 255, .3);
+  color: #FFCCAA;
+}
+
+.menuDrawer option:checked:not(:hover) {
+  background-color: rgba(204, 204, 204, .1);
+}
+
+.menuDrawer option:hover {
+  background-color: #CCCCCC;
+  color: #404040;
+}
+
 #trackData {
   margin: 0;
 }
@@ -212,15 +365,15 @@ h1 {
     font-size: 10px;
   }
   #menuArea {
-    top: 1px;
-    left: 1px;
+    top: 2px;
+    left: 2px;
   }
   #zoomArea {
-    top: 1px;
-    right: 1px;
+    top: 2px;
+    right: 2px;
   }
   #fullscreenArea {
-    right: 1px;
+    right: 2px;
     bottom: 20px;
   }
   #copyright {