X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/3c5f2469ae7f5f16aa6443a476ec03e34862140a..f95c1433ea0baada896abb49c8645db4980494ee:/app/assets/stylesheets/common.scss diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss index 3e80e66f5..aa8b9d65b 100644 --- a/app/assets/stylesheets/common.scss +++ b/app/assets/stylesheets/common.scss @@ -1,4 +1,6 @@ +@use "sass:map"; @import "parameters"; +@import "browse"; @import "bootstrap"; @import "rails_bootstrap_forms"; @@ -10,26 +12,12 @@ body { font-size: $typeheight; } -p > img { - width: auto; - max-width: 100%; -} - -small, aside { - font-size: 12px; -} - time[title] { text-decoration: underline dotted; } #container { position: relative; } -.small_icon { - vertical-align: middle; - margin-right: $lineheight * 0.25; -} - /* Rules for icons */ .icon { @@ -66,6 +54,24 @@ time[title] { color: $blue; } +/* Bootstrap contextual table classes overrides in dark mode */ + +@include color-mode(dark) { + .table-primary { + --bs-table-bg: rgb(var(--bs-primary-rgb), .25); + } + .table-secondary { + --bs-table-bg: rgb(var(--bs-secondary-rgb), .25); + } + .table-success { + --bs-table-bg: rgb(var(--bs-success-rgb), .25); + } + .table-primary, .table-secondary, .table-success { + --bs-table-color: initial; + border-color: inherit; + } +} + /* Rules for the header */ #menu-icon { @@ -73,7 +79,7 @@ time[title] { position: absolute; top: 0; right: 0; - background: image-url("menu-icon.png") no-repeat; + background: image-url("menu-icon.svg") no-repeat; background-size: 30px 30px; width: 30px; height: 30px; @@ -90,7 +96,6 @@ time[title] { header { height: $headerHeight; position: relative; - z-index: 1001; font-size: 14px; h1, nav, nav > ul, nav > ul > li { @@ -157,10 +162,6 @@ nav.secondary { .nav-link { padding: 0.2rem; } - - #inboxanchor { - background-color: lighten($grey, 10%); - } } nav.primary, nav.secondary { @@ -246,7 +247,7 @@ body.small-nav { /* Utility for styling notification numbers */ .count-number { - background: lighten($green, 30%); + background: transparentize(lighten($green, 25%), .25); color: $gray-800; font-weight: $font-weight-normal; } @@ -329,7 +330,6 @@ body.small-nav { .overlay-sidebar #sidebar { position: absolute; - z-index: 1000; height: auto; overflow: hidden; @@ -396,7 +396,6 @@ body.small-nav { } #map-ui { - z-index: 9999; width: 100%; height: 50%; overflow-y: scroll; @@ -458,8 +457,42 @@ body.small-nav { border-top: 0px !important; } +.leaflet-popup-content-wrapper, .leaflet-popup-tip, +.leaflet-contextmenu, .leaflet-contextmenu-item, +.leaflet-control-attribution, .leaflet-control-scale-line { + @extend .bg-body, .text-body; +} + +.leaflet-control-attribution, .leaflet-control-scale-line { + @extend .bg-opacity-75; + text-shadow: none !important; +} + +.leaflet-contextmenu-item.over { + @extend .bg-body-secondary, .border-secondary, .border-opacity-10; +} + .leaflet-popup-content-wrapper { - border-radius: 4px !important; + @extend .rounded-1; + + a { + color: var(--bs-link-color) !important; + } +} + +@include color-mode(dark) { + .leaflet-tile-container, + .mapkey-table-entry td:first-child > * { + filter: brightness(.8); + } + + .leaflet-control-attribution a { + color: var(--bs-link-color); + } + + .leaflet-control-scale-line { + @extend .border-light, .border-opacity-75; + } } /* Rules for attribution text under the main map shown on printouts */ @@ -516,13 +549,15 @@ header .search_forms, display: none; } +.search_form { + .describe_location { + font-size: 10px; + } +} + /* Rules for search sidebar */ #sidebar .search_results_entry { - ul li.selected { - background: $list-highlight; - } - .search_more .loader { display: none; } @@ -531,7 +566,7 @@ header .search_forms, /* Rules for routing */ div.direction { - background-image: image-url('routing-sprite.png'); + background-image: image-url('routing-sprite.svg'); width: 20px; height: 20px; background-repeat: no-repeat; @@ -552,9 +587,6 @@ td.distance { tr.turn { cursor: pointer; } -tr.turn:hover { - background: $list-highlight; -} .routing_marker { width: 15px; cursor: move; } @@ -566,8 +598,9 @@ tr.turn:hover { #sidebar .changesets { li { - &.selected { background: $list-highlight; } - /* color is derived from changeset bbox fillColor in history.js */ + &.selected { + @extend :hover; + } a.stretched-link > span, a:not(.stretched-link), [title] { position: relative; @@ -601,6 +634,8 @@ tr.turn:hover { .browse-tag-list { table-layout: fixed; white-space: pre-wrap; + word-wrap: break-word; + word-break: break-word; tr:last-child th, tr:last-child td { border-bottom: 0; @@ -614,18 +649,6 @@ tr.turn:hover { .query-results { display: none; - - ul { - li { - &.query-result { - cursor: pointer; - } - - &.selected { - background: $list-highlight; - } - } - } } } @@ -648,16 +671,9 @@ tr.turn:hover { /* Rules for export sidebar */ .export_form { - .export_area_inputs, - .export_button { - text-align: center; - } - .export_area_inputs { - margin-bottom: $spacer; input[type="text"] { width: 100px; - text-align: center; } } @@ -707,6 +723,7 @@ tr.turn:hover { &.new-user-main { background-image: image-url("sign-up-illustration.png"); + background-position-x: 50px; } &.confirm-main { @@ -716,17 +733,6 @@ tr.turn:hover { &.new-user-terms { background-image: image-url("terms-illustration.png"); } - - &.new-user-arm { - height: 110px; - width: 130px; - left: 280px; - top: 180px; - background-image: image-url("sign-up-illustration-arm.png"); - position: absolute; - z-index: 100; - pointer-events: none; - } } [dir=rtl] .header-illustration { @@ -735,6 +741,10 @@ tr.turn:hover { h1 { transform: scaleX(-1); } + + ul { + transform: scaleX(-1); + } } /* Rules for small maps in content areas */ @@ -760,7 +770,6 @@ tr.turn:hover { /* Rules for user popups on maps */ .user_popup { - min-width: 200px; p { padding: 0 0 5px 0; margin: 0 0 0 60px; @@ -802,28 +811,6 @@ tr.turn:hover { } } -/* Rules for messages pages */ - -.messages { - .inbox-row { - background: $offwhite; - } - - .inbox-row-unread td { - background: #CBEEA7; - } -} - -.search_form { - #query { - z-index: 0; - } - - .describe_location { - font-size: 10px; - } -} - /* Rules for user images */ img.user_image { @@ -872,8 +859,7 @@ div.secondary-actions { /* Rules for rich text */ -.richtext, -.prose { +.richtext { code { background: var(--bs-secondary-bg); padding: 2px 3px; @@ -905,28 +891,20 @@ div.secondary-actions { } } -/* Rules for the "Welcome" page */ +/* Rules for the "Welcome" and "Fix the map" pages */ + .site-welcome, .site-fixthemap { .sprite { - background-image: image-url("welcome-sprite.png"); - background-size: 500px 250px; - display: block; - } - - .sprite.small { width: 50px; height: 50px; + background-image: image-url("welcome-sprite.svg"); + background-size: 500px 250px; } .sprite.x { /*rtl:ignore*/ background-position: -50px 0; } - .sprite.term { - margin-right: 10px; - vertical-align: middle; - } - .sprite.node { /*rtl:ignore*/ background-position: -100px 0; } @@ -950,13 +928,10 @@ div.secondary-actions { .sprite.rules { /*rtl:ignore*/ background-position: -350px 0; } - - .icon.note { - background-color: #333; - border-radius: 4px; - } } +/* Rules for the "About" page */ + .site-about #content { .content-inner { max-width: 760px; @@ -1023,6 +998,10 @@ div.secondary-actions { } } +.auth-container { + max-width: 600px; +} + /* Rules for tabs inside secondary background sections */ .bg-body-secondary .nav-tabs { @@ -1031,4 +1010,45 @@ div.secondary-actions { margin-bottom: -1px; } -@import 'browse'; +/* Rules for traces */ + +img.trace_image { + mix-blend-mode: darken; +} + +@include color-mode(dark) { + img.trace_image { + filter: invert(1); + mix-blend-mode: lighten; + } +} + +/* Rules for map sidebar icons */ + +.browse-section { + .node::before, + .way::before, + .relation::before { + display: inline-block; + width: 25px; + margin-left: -25px; + } + + .node, .way, .relation { + margin-left: 25px; + } +} + +@each $class, $item in $map-sidebar-icons { + .browse-section #{$class}::before { + content: image-url('browse/#{map.get($item, "filename")}'); + } + + @if map.get($item, "invert") { + @include color-mode(dark) { + .browse-section #{$class}::before { + filter: invert(.8) hue-rotate(180deg); + } + } + } +}