]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/stylesheets/common.scss
Merge remote-tracking branch 'upstream/pull/5391'
[rails.git] / app / assets / stylesheets / common.scss
index d551462b2202ec34defa80b70c13be334e08553f..323f60e08c192a91d2934f5e2309c1841591f357 100644 (file)
@@ -1,6 +1,5 @@
 @use "sass:map";
 @import "parameters";
-@import "browse";
 @import "bootstrap";
 @import "rails_bootstrap_forms";
 
@@ -10,6 +9,7 @@
 
 body {
   font-size: $typeheight;
+  --dark-mode-map-filter: brightness(.8);
 }
 
 time[title] {
@@ -70,6 +70,28 @@ time[title] {
   }
 }
 
+/* Utility for delayed loading spinner */
+
+.delayed-fade-in {
+  animation: 300ms linear forwards delayed-fade-in;
+}
+
+@keyframes delayed-fade-in {
+  0%   { opacity: 0 }
+  66%  { opacity: 0 }
+  100% { opacity: 1 }
+}
+
+/* Bootstrap close button overrides for nested light/dark themes */
+
+[data-bs-theme="dark"] .btn-close {
+  filter: var(--bs-btn-close-white-filter);
+}
+
+[data-bs-theme="light"] .btn-close {
+  filter: none;
+}
+
 /* Rules for the header */
 
 #menu-icon {
@@ -119,7 +141,7 @@ header {
 }
 
 nav.primary {
-  & > .btn-group .btn-outline-primary {
+  #edit_tab .btn-outline-primary {
     @include button-outline-variant($green, $color-hover: $white, $active-color: $white);
   }
 
@@ -195,11 +217,13 @@ body.small-nav {
     .search_forms {
       display: block;
     }
+
+    .username {
+      max-width: unset;
+    }
   }
 
-  #sidebar .search_forms,
-  #edit_tab,
-  #export_tab {
+  #sidebar .search_forms {
     display: none;
   }
 
@@ -207,7 +231,7 @@ body.small-nav {
     margin-right: 0;
     padding: 0;
 
-    .btn-group {
+    #edit_tab {
       width: 100%;
       padding: 10px;
     }
@@ -368,6 +392,14 @@ body.small-nav {
     .leaflet-marker-draggable {
       cursor: move;
     }
+
+    .query-marker {
+      animation: 1500ms forwards query-marker-fade;
+
+      @keyframes query-marker-fade {
+        to { opacity: 0 }
+      }
+    }
   }
 
   #map-ui {
@@ -474,17 +506,33 @@ body.small-nav {
 }
 
 @include color-mode(dark) {
+  .leaflet-container .leaflet-control-attribution a {
+    color: var(--bs-link-color);
+  }
+
+  .leaflet-control-scale-line {
+    border-color: rgba(var(--bs-light-rgb), .75) !important;
+  }
+}
+
+@mixin dark-map-color-scheme {
   .leaflet-tile-container,
   .mapkey-table-entry td:first-child > * {
-    filter: brightness(.8);
+    filter: var(--dark-mode-map-filter);
   }
 
-  .leaflet-control-attribution a {
-    color: var(--bs-link-color);
+  .leaflet-tile-container .leaflet-tile {
+    filter: none;
   }
+}
 
-  .leaflet-control-scale-line {
-    @extend .border-light, .border-opacity-75;
+body[data-map-theme="dark"] {
+  @include dark-map-color-scheme;
+}
+
+@include color-mode(dark) {
+  body:not([data-map-theme]) {
+    @include dark-map-color-scheme;
   }
 }
 
@@ -904,13 +952,18 @@ div.secondary-actions {
   }
 }
 
-/* Rules for block pages */
+/* Rules for tables with usernames */
 
+.messages-table .username,
 #block_list .username {
   max-width: 20em;
 }
 
-/* Rules for tabs inside secondary background sections */
+/* Rules for navigation tabs */
+
+.nav-tabs .username {
+  max-width: 20em;
+}
 
 .bg-body-secondary .nav-tabs {
   --bs-border-color: var(--bs-secondary-border-subtle);
@@ -933,30 +986,20 @@ img.trace_image {
 
 /* Rules for map sidebar icons */
 
-.browse-section {
-  .node::before,
-  .way::before,
-  .relation::before {
-    display: inline-block;
-    width: 25px;
-    margin-left: -25px;
-  }
+.browse-section .browse-element-list {
+  line-height: 1.25rem;
 
-  .node, .way, .relation {
-    margin-left: 25px;
+  .browse-icon {
+    height: 1.25rem;
   }
-}
 
-@each $class, $item in $map-sidebar-icons {
-  .browse-section #{$class}::before {
-    content: image-url('browse/#{map.get($item, "filename")}');
+  .d-flex > .browse-icon {
+    height: max(20px, 1.25rem);
   }
 
-  @if map.get($item, "invert") {
-    @include color-mode(dark) {
-      .browse-section #{$class}::before {
-        filter: invert(.8) hue-rotate(180deg);
-      }
+  @include color-mode(dark) {
+    .browse-icon-invertible {
+      filter: invert(.8) hue-rotate(180deg);
     }
   }
 }