X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/98bfaace9aeba7fb387596cc16b2e661506173c6..0c13214cd07416fbc4f8c9e20a827a3ae227842f:/app/assets/stylesheets/common.scss diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss index 40392cdae..a1cae7a36 100644 --- a/app/assets/stylesheets/common.scss +++ b/app/assets/stylesheets/common.scss @@ -2,34 +2,6 @@ @import "bootstrap"; @import "rails_bootstrap_forms"; -/* Bootstrap + r2 fixes */ - -:root[dir=rtl] { - .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow { - /* no-r2 */ - right: unset !important; - left: calc(-1 * var(--bs-tooltip-arrow-height)) !important; - - &::before { - /* no-r2 */ - left: unset !important; - right: -1px !important; - } - } - - .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow { - /* no-r2 */ - left: unset !important; - right: calc(-1 * var(--bs-tooltip-arrow-height)) !important; - - &::before { - /* no-r2 */ - right: unset !important; - left: -1px !important; - } - } -} - /* Styles common to large and small screens */ /* Default rules for the body of every page */ @@ -47,6 +19,10 @@ small, aside { font-size: 12px; } +time[title] { + text-decoration: underline dotted; +} + #container { position: relative; } .small_icon { @@ -54,10 +30,6 @@ small, aside { margin-right: $lineheight * 0.25; } -[dir=rtl] { /* no-r2 */ text-align: right; } - -[dir=ltr] { /* no-r2 */ text-align: left; } - /* Rules for icons */ .icon { @@ -65,29 +37,28 @@ small, aside { vertical-align: top; width: 20px; height: 20px; - background: transparent image-url("sprite.png") no-repeat 0 0; - background-image: image-url("sprite.svg"); + background: transparent image-url("sprite.svg") no-repeat 0 0; text-indent: -9999px; overflow: hidden; } -.icon.search { /* no-r2 */ background-position: 0 0; } -.icon.donate { /* no-r2 */ background-position: -20px 0; } -.icon.zoomin { /* no-r2 */ background-position: -40px 0; } -.icon.zoomout { /* no-r2 */ background-position: -60px 0; } -.icon.geolocate { /* no-r2 */ background-position: -80px 0; } -.active .icon.geolocate { /* no-r2 */ background-position: -80px -20px; } -.icon.layers { /* no-r2 */ background-position: -100px 0; } -.icon.key { /* no-r2 */ background-position: -120px 0; } -.icon.share { /* no-r2 */ background-position: -140px 0; } -.icon.clipboard { /* no-r2 */ background-position: -160px 0; } -.icon.link { /* no-r2 */ background-position: -180px 0; } -.icon.close { /* no-r2 */ background-position: -200px 0; } -.icon.close:hover { /* no-r2 */ background-position: -200px -20px; } -.icon.check { /* no-r2 */ background-position: -220px 0; } -.icon.note { /* no-r2 */ background-position: -240px 0; } -.icon.note.grey { /* no-r2 */ background-position: -240px -20px; } -.icon.query { /* no-r2 */ background-position: -260px 0; } +.icon.search { /*rtl:ignore*/ background-position: 0 0; } +.icon.donate { /*rtl:ignore*/ background-position: -20px 0; } +.icon.zoomin { /*rtl:ignore*/ background-position: -40px 0; } +.icon.zoomout { /*rtl:ignore*/ background-position: -60px 0; } +.icon.geolocate { /*rtl:ignore*/ background-position: -80px 0; } +.active .icon.geolocate { /*rtl:ignore*/ background-position: -80px -20px; } +.icon.layers { /*rtl:ignore*/ background-position: -100px 0; } +.icon.key { /*rtl:ignore*/ background-position: -120px 0; } +.icon.share { /*rtl:ignore*/ background-position: -140px 0; } +.icon.clipboard { /*rtl:ignore*/ background-position: -160px 0; } +.icon.link { /*rtl:ignore*/ background-position: -180px 0; } +.icon.close { /*rtl:ignore*/ background-position: -200px 0; } +.icon.close:hover { /*rtl:ignore*/ background-position: -200px -20px; } +.icon.check { /*rtl:ignore*/ background-position: -220px 0; } +.icon.note { /*rtl:ignore*/ background-position: -240px 0; } +.icon.note.grey { /*rtl:ignore*/ background-position: -240px -20px; } +.icon.query { /*rtl:ignore*/ background-position: -260px 0; } /* Utility for de-emphasizing content */ @@ -95,21 +66,13 @@ small, aside { color: $blue; } -/* Rules for borders */ -/* These add additional colours to those provided by bootstrap */ -.border-grey { - border-color: $grey !important; -} - -.border-lightgrey { - border-color: $lightgrey !important; -} - /* Rules for the header */ #menu-icon { display: none; - float: right; + position: absolute; + top: 0; + right: 0; background: image-url("menu-icon.png") no-repeat; background-size: 30px 30px; width: 30px; @@ -118,6 +81,12 @@ small, aside { opacity: 0.6; } +@include color-mode(dark) { + #menu-icon { + filter: invert(1); + } +} + header { height: $headerHeight; position: relative; @@ -133,10 +102,6 @@ header { padding: $lineheight * 0.5; } - h1, nav.primary { - float: left; - } - img.logo { margin-top: -2px; } @@ -150,8 +115,11 @@ header { .btn { font-size: 14px; } -} + nav.primary { + margin-right: auto; + } +} nav.primary { & > .btn-group .btn-outline-primary { @@ -186,16 +154,8 @@ nav.primary { } nav.secondary { - position: absolute; - right: 0; - .nav-link { padding: 0.2rem; - color: $darkgrey; - } - - > ul li.current a { - color: darken($darkgrey, 25%); } #inboxanchor { @@ -230,18 +190,10 @@ body.small-nav { display: block; } - nav.primary, - nav.secondary { - float: none !important; - position: relative; - display: block; - clear: both; - } - header { + flex-direction: column; height: auto; min-height: $headerHeight; - background: #fff; &.closed nav { display: none; @@ -259,28 +211,9 @@ body.small-nav { } nav.primary { + margin-right: 0; padding: 0; - ul, li { - border: none; - border-radius: 0; - width: 100%; - } - - ul { - border-top: 1px solid #eee; - li { - border-bottom: 1px solid #eee; - border-right: none; - > a { - border-radius: 0; - width: 100%; - text-align: center; - font-size: 15px; - } - } - } - .btn-group { width: 100%; padding: 10px; @@ -318,14 +251,6 @@ body.small-nav { font-weight: $font-weight-normal; } -/* Rules for the message shown in place of the map when javascript is disabled */ - -#noscript { - z-index: 20000000; - margin-left: 400px; - margin-top: 50px; -} - /* Rules for Leaflet maps */ .leaflet-top.leaflet-right, @@ -396,19 +321,10 @@ body.small-nav { #sidebar { float: left; width: $sidebarWidth; - background: #fff; #sidebar_loader { display: none; } - - #sidebar_content { - padding: $spacer; - } - - > div { - position: relative; - } } .overlay-sidebar #sidebar { @@ -432,11 +348,6 @@ body.small-nav { .welcome { display: none; - - p { - font-size: 110%; - font-weight: 300; - } } #banner { @@ -446,11 +357,6 @@ body.small-nav { display: block; width: $sidebarWidth; } - - button.btn-close { - background-color: rgba(255, 255, 255, 0.5); - opacity: 1.0; - } } #map { @@ -476,7 +382,6 @@ body.small-nav { float: right; width: 250px; height: 100%; - background: white; overflow: auto; .section { @@ -518,43 +423,14 @@ body.small-nav { } .layers-ui { - .base-layers { - .leaflet-container { - width: 100%; - height: 50px; - cursor: pointer; - } + .base-layers > * { + height: 56px; - li { - overflow: hidden; - border-radius: 3px; - border: 2px solid #fff; - margin-bottom: 8px; - position: relative; - transition: border-color 0.08s ease-in; - - label { - position: absolute; - top: 0; - left: 0; - padding: 2px 6px; - border-bottom-right-radius: 3px; - cursor: pointer; - font-weight: 600; - font-size: 16px; - text-stroke: 2px #fff; - background: rgba(255,255,255,.9); - z-index: 1000; - input[type="radio"] { - display: none; - } - } - - &.active { border-color: darken($green, 10%); } - &:hover { - border-color: $grey; - &.active { border-color: darken($green, 20%); } - } + > .btn { + --bs-btn-border-color: var(--bs-body-bg); + } + > .btn:hover { + --bs-btn-border-color: var(--bs-primary-border-subtle); } } @@ -603,10 +479,6 @@ body.small-nav { margin-left: auto; margin-right: auto; } - - > div { - padding: $spacer; - } } /* Temporary label size override until we remove site-wide font customisation */ @@ -649,16 +521,6 @@ header .search_forms, display: none; } -/* Rules for the map key which appears in the popout sidebar */ - -#mapkey { - .mapkey-table-key img { - display: block; - margin-left: auto; - margin-right: auto; - } -} - /* Rules for search sidebar */ #sidebar .search_results_entry { @@ -683,6 +545,12 @@ div.direction { div.direction.i#{$i} { background-position: #{($i)*-20}px 0px; } } +@include color-mode(dark) { + div.direction { + filter: invert(1); + } +} + td.distance { font-size: x-small; } @@ -736,52 +604,12 @@ tr.turn:hover { } .browse-tag-list { - background-color: $offwhite; table-layout: fixed; - border-collapse: separate; - border-spacing: 0; - width: 100%; - margin-bottom: $spacer; - - th, td { - border-bottom: 1px solid $grey; - } + white-space: pre-wrap; tr:last-child th, tr:last-child td { border-bottom: 0; } - - .browse-tag-k, - .browse-tag-v { - width: 50%; - padding: 6px 10px; - word-wrap: break-word; - white-space: pre-wrap; - } - - .browse-tag-k { - font-weight: 500; - background-color: $offwhite; - } - - .browse-tag-v { - border-left: 1px solid $grey; - background-color: #fff; - } - - .colour-preview-box { - float: right; - width: 14px; - height: 14px; - margin: 4px 0px; - border: 1px solid rgba(0, 0, 0, .1); - // add color via inline css on element: background-color: ; - } - } - - span.action-button:hover { - cursor: pointer; - text-decoration: underline; } .note-description { @@ -816,6 +644,12 @@ tr.turn:hover { } } +/* Force LTR/RTL alignment for placeholder text */ + +.form-control::placeholder { + text-align: left; +} + /* Rules for export sidebar */ .export_form { @@ -833,18 +667,15 @@ tr.turn:hover { } .export_boxy { - background: $lightgrey; - - #maxlat { margin-top: -1px; } + > * { + margin: -1px; + } #minlon { - float: left; - /* no-r2 */ margin-left: -1px; + /*rtl:ignore*/ float: left; } #maxlon { - float: right; - /* no-r2 */ margin-right: -1px; + /*rtl:ignore*/ float: right; } - #minlat { margin-bottom: -1px; } } } @@ -857,19 +688,10 @@ tr.turn:hover { bottom: 0; width: 100%; } - - #map { - height: 100%; - overflow: hidden; - } } /* Rules for non-map content pages */ -.content-heading { - background: $lightgrey; -} - .content-inner { position: relative; max-width: 960px; @@ -920,15 +742,6 @@ tr.turn:hover { } } -#content.maximised { - top: 0; - left: 0; - right: 0; - bottom: 0; - border: 0; - z-index: 2000; -} - /* Rules for small maps in content areas */ .content_map { @@ -967,14 +780,11 @@ tr.turn:hover { height: 400px; display: none; } - .comments { - max-width: 740px; + .diary-comment .col-auto { + width: 62px; } - .diary-comment { - border-top: 1px dashed $grey; - &:first-child { - border-top: 1px solid $grey; - } + .diary-comment .col { + max-width: 690px; } } @@ -1010,8 +820,6 @@ tr.turn:hover { } .search_form { - background-color: $lightgrey; - #query { z-index: 0; } @@ -1021,10 +829,6 @@ tr.turn:hover { } } -.directions_form { - background-color: $lightgrey; -} - /* Rules for user images */ img.user_image { @@ -1038,10 +842,9 @@ img.user_thumbnail { } img.user_thumbnail_tiny { - width: auto; - height: auto; - max-width: 25px; - max-height: 25px; + width: 25px; + height: 25px; + object-fit: contain; } /* General styles for action lists / subnavs */ @@ -1077,12 +880,12 @@ div.secondary-actions { .richtext, .prose { code { - background: $lightgrey; + background: var(--bs-secondary-bg); padding: 2px 3px; } pre { - background: $lightgrey; + background: var(--bs-secondary-bg); padding: 2px 3px; white-space: pre-wrap; @@ -1093,27 +896,20 @@ div.secondary-actions { img { padding: $lineheight; - background-color: $offwhite; + background-color: var(--bs-tertiary-bg); display: block; max-width: 100%; margin: auto; } blockquote { - border-left: $lineheight solid $offwhite; + border-left: $lineheight solid var(--bs-tertiary-bg); padding-left: $lineheight; margin: 0; - color: $darkgrey; + color: var(--bs-secondary-color); } } -/* Rules for the iD editor */ - -.id-embed { - width: 100%; - height: 100%; -} - /* Rules for the "Welcome" page */ .site-welcome, .site-fixthemap { .sprite { @@ -1128,7 +924,7 @@ div.secondary-actions { } .sprite.x { - /* no-r2 */ background-position: -50px 0; + /*rtl:ignore*/ background-position: -50px 0; } .sprite.term { @@ -1137,27 +933,27 @@ div.secondary-actions { } .sprite.node { - /* no-r2 */ background-position: -100px 0; + /*rtl:ignore*/ background-position: -100px 0; } .sprite.way { - /* no-r2 */ background-position: -150px 0; + /*rtl:ignore*/ background-position: -150px 0; } .sprite.tag { - /* no-r2 */ background-position: -200px 0; + /*rtl:ignore*/ background-position: -200px 0; } .sprite.editor { - /* no-r2 */ background-position: -250px 0; + /*rtl:ignore*/ background-position: -250px 0; } .sprite.question { - /* no-r2 */ background-position: -300px 0; + /*rtl:ignore*/ background-position: -300px 0; } .sprite.rules { - /* no-r2 */ background-position: -350px 0; + /*rtl:ignore*/ background-position: -350px 0; } .icon.note { @@ -1167,8 +963,6 @@ div.secondary-actions { } .site-about #content { - background-color: $lightgrey; - .content-inner { max-width: 760px; } @@ -1208,30 +1002,38 @@ div.secondary-actions { background: 40px 40px image-url('about/sprite.png') no-repeat; &.local { - /* no-r2 */ + /*rtl:ignore*/ background-position: 0px 0px; } &.community { - /* no-r2 */ + /*rtl:ignore*/ background-position: 0px -40px; } &.open { - /* no-r2 */ + /*rtl:ignore*/ background-position: 0px -80px; } &.partners { - /* no-r2 */ + /*rtl:ignore*/ background-position: 0px -120px; } &.infringement { - /* no-r2 */ + /*rtl:ignore*/ background-position: 0px -160px; } &.legal { - /* no-r2 */ + /*rtl:ignore*/ background-position: -45px -160px; } } } +/* Rules for tabs inside secondary background sections */ + +.bg-body-secondary .nav-tabs { + --bs-border-color: var(--bs-secondary-border-subtle); + --bs-secondary-bg: var(--bs-secondary-border-subtle); + margin-bottom: -1px; +} + @import 'browse';