add custom style for buttons, checkboxes and selects in menu drawer
authorRobert Kaiser <kairo@kairo.at>
Sun, 7 Jun 2015 12:55:57 +0000 (14:55 +0200)
committerRobert Kaiser <kairo@kairo.at>
Sun, 7 Jun 2015 12:55:57 +0000 (14:55 +0200)
TODO
index.html
manifest.appcache
style/lantea.css

diff --git a/TODO b/TODO
index 201e3a4..dd05f02 100644 (file)
--- a/TODO
+++ b/TODO
@@ -7,8 +7,8 @@ Required:
 ** Pre-cache tiles in adjacent areas and possibly zoom levels
 *** Feature to download all maps up to a certain resolution for some area around the current point
 * Improve texture cleaning algorithm
+* See if we can secure OSM login (investigate OAuth)
 * UI improvements (non-map):
-** Override native style of buttons etc. in drawers with a more app-y look
 ** Show a notification when we are loading tiles or saved data
 ** Display movement speed
 ** Display location accuracy
index 45912db..f5509cd 100644 (file)
 
 <div id="trackArea" class="menuDrawer hidden">
 <h2 onclick="toggleTrackArea();">
-<image src="style/track.svg" alt=""> Track</h2>
+<image src="style/track.svg" alt=""> Track
+</h2>
 <p id="trackData"><span id="trackLength">0</span> km,
-<span id="trackDuration">0</span> min</p>
+<span id="trackDuration">0</span> min
+</p>
+<p>
 <input type="button" id="saveTrackButton" value="Save"
        onclick="saveTrack();">
 <input type="button" id="dumpTrackButton" value="Dump"
 <input type="button" id="uploadTrackButton" value="Upload" disabled="true"
        onclick="showUploadDialog();">
 <input type="button" id="clearTrackButton" value="Clear"
-       onclick="clearTrack();"><br/>
+       onclick="clearTrack();">
+</p>
+<p>
 <input type="checkbox" id="trackCheckbox"
        onchange="setTracking(this);">
 <label for="trackCheckbox">Enable tracking</label><br/>
+</p>
+<p>
 <input type="checkbox" id="centerCheckbox"
        onchange="setCentering(this);">
 <label for="centerCheckbox">Center Map</label><br/>
+</p>
 </div>
 
 <div id="settingsArea" class="menuDrawer hidden">
 <h2 onclick="toggleSettings();">
-<image src="style/settings.svg" alt=""> Settings</h2>
+<image src="style/settings.svg" alt=""> Settings
+</h2>
+<p>
 <label for="mapSelector">Map style:</label>
 <select id="mapSelector" onchange="setMapStyle();">
 <!-- option value="osm_mapnik">OpenStreetMap (Mapnik)</option -->
 </select>
-<br/>
+</p>
+<p>
 <input type="button" id="clearCacheButton" value="Clear Cached Maps"
        onclick="gTileService.clearDB();">
+</p>
 <div id="uploadSettingsArea" class="debugHide">
 <p class="settingsSubTitle">OpenStreetMap Track Upload:</p>
 <label for="uploadUser">User name:</label>
index b2f6114..bfdf744 100644 (file)
@@ -1,6 +1,6 @@
 CACHE MANIFEST
 
-# 2015-06-06
+# 2015-06-07
 index.html
 manifest.webapp
 js/map.js
index 19b8af0..fd7ff62 100644 (file)
@@ -32,14 +32,14 @@ h1 {
   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),
-.menuDrawer input[type="button"]:-moz-system-metric(touch-enabled),
-.menuDrawer 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 {
@@ -136,11 +136,16 @@ h1 {
   }
 }
 
+.menuDrawer > p {
+  margin: .5em 0;
+}
+
+/* Menu title */
 .menuDrawer > h2 {
   font-size: 1.2em;
   font-weight: bold;
   margin: .5em 0;
-  background-color: rgba(255, 255, 255, .8);
+  background-color: #CCCCCC;
   color: #404040;
   border-radius: 3px;
   padding: 2px;
@@ -151,6 +156,103 @@ h1 {
   height: 1.2em;
 }
 
+/* Custom checkbox design */
+.menuDrawer input[type="checkbox"] {
+  display: none;
+}
+
+.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;
 }