mirror of
https://github.com/HSLdevcom/digitransit-ui
synced 2025-07-27 15:05:15 +02:00
1600 lines
28 KiB
SCSS
1600 lines
28 KiB
SCSS
@import '~leaflet/dist/leaflet.css';
|
|
|
|
$small-map-height: 10rem;
|
|
$stop-thin-opacity: 0.2;
|
|
$top-bar-height: 64px;
|
|
|
|
div.map {
|
|
max-height: 100%;
|
|
position: relative;
|
|
|
|
.leaflet-container .leaflet-control-attribution {
|
|
height: 22px;
|
|
opacity: 0.7;
|
|
border-radius: 11px;
|
|
background-color: #fff;
|
|
margin: 10px;
|
|
position: relative;
|
|
top: -5px;
|
|
}
|
|
|
|
.leaflet-container .leaflet-popup-close-button {
|
|
color: $primary-color;
|
|
font-size: 25px;
|
|
font-weight: 100;
|
|
width: 32px;
|
|
height: 32px;
|
|
top: 12px;
|
|
right: 4px;
|
|
padding: 0;
|
|
}
|
|
|
|
.leaflet-container .leaflet-control-attribution a {
|
|
height: 11px;
|
|
font-family: $font-family;
|
|
font-size: 11px;
|
|
font-weight: normal;
|
|
font-stretch: normal;
|
|
font-style: normal;
|
|
line-height: normal;
|
|
letter-spacing: -0.7px;
|
|
text-align: right;
|
|
color: #666;
|
|
vertical-align: -3px;
|
|
}
|
|
}
|
|
|
|
.below-map {
|
|
overflow: auto;
|
|
}
|
|
|
|
.mobile {
|
|
.map {
|
|
div.leaflet-control-scale.leaflet-control {
|
|
margin-right: 15px;
|
|
}
|
|
|
|
z-index: index($zindex, map-container);
|
|
}
|
|
|
|
.drawer-container {
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow-y: scroll;
|
|
scrollbar-width: none;
|
|
height: 100%;
|
|
position: absolute;
|
|
width: 100%;
|
|
|
|
.drawer-padding {
|
|
flex-grow: 1;
|
|
flex-shrink: 0;
|
|
flex-basis: 90%;
|
|
width: 0;
|
|
}
|
|
|
|
.drawer-content {
|
|
flex-grow: 0;
|
|
flex-shrink: 0;
|
|
flex-basis: 50vh;
|
|
background: white;
|
|
position: relative;
|
|
z-index: index($zindex, mobile-drawer);
|
|
|
|
&.fit-content {
|
|
flex-basis: fit-content;
|
|
}
|
|
|
|
.drag-line {
|
|
width: 48px;
|
|
height: 4px;
|
|
border-radius: 2px;
|
|
background-color: #ddd;
|
|
display: block;
|
|
z-index: index($zindex, mobile-drawer-drag-line);
|
|
margin: auto;
|
|
position: relative;
|
|
top: -5px;
|
|
}
|
|
|
|
.content-container {
|
|
position: relative;
|
|
top: -15px;
|
|
box-shadow: 0 -10px 10px -10px rgba(0, 0, 0, 0.3);
|
|
border-radius: 15px 15px 0 0;
|
|
padding-top: 15px;
|
|
background-color: white;
|
|
}
|
|
}
|
|
}
|
|
|
|
.overlay-mover {
|
|
z-index: 401;
|
|
position: absolute;
|
|
width: 100%;
|
|
bottom: 10%;
|
|
transition: transform 0.1s;
|
|
}
|
|
|
|
.map .leaflet-bottom {
|
|
bottom: 10%;
|
|
transition: transform 0.1s;
|
|
|
|
.leaflet-control-attribution {
|
|
background-color: rgba(0, 0, 0, 0);
|
|
}
|
|
}
|
|
|
|
.map-with-tracking-buttons {
|
|
right: 15px;
|
|
bottom: 45px;
|
|
}
|
|
|
|
.back-button {
|
|
.icon-holder,
|
|
.icon-holder:focus,
|
|
.icon-holder:hover {
|
|
padding: 0.55em 0.2em 0 0 !important;
|
|
font-size: 16px;
|
|
z-index: index($zindex, map-buttons);
|
|
background: white;
|
|
height: 2.5em;
|
|
width: 2.5em;
|
|
border-radius: 50%;
|
|
box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.2);
|
|
left: 20px;
|
|
top: 25px;
|
|
|
|
button {
|
|
outline: none;
|
|
}
|
|
|
|
.icon-container {
|
|
height: inherit;
|
|
}
|
|
}
|
|
}
|
|
|
|
.location-popup-wrapper {
|
|
.zone-icon-container {
|
|
margin-bottom: 15px;
|
|
}
|
|
}
|
|
}
|
|
|
|
div.map.small {
|
|
min-height: $small-map-height;
|
|
}
|
|
|
|
div.map.full {
|
|
position: relative;
|
|
min-height: $small-map-height;
|
|
max-height: 100%;
|
|
flex-grow: 1;
|
|
flex-basis: 0;
|
|
}
|
|
|
|
div.below-map {
|
|
height: calc(100% - #{$small-map-height});
|
|
}
|
|
|
|
div.leaflet-bottom.leaflet-right div.leaflet-control-zoom {
|
|
width: 36px;
|
|
height: 73px;
|
|
border-radius: 5px;
|
|
background-color: #fff;
|
|
margin-right: 30px;
|
|
margin-bottom: 24px;
|
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
|
|
|
|
&.leaflet-bar {
|
|
border: none;
|
|
}
|
|
|
|
.icon {
|
|
font-size: 18px;
|
|
}
|
|
|
|
a {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-around;
|
|
width: 36px;
|
|
height: 36px;
|
|
line-height: 18px;
|
|
font-size: 18px;
|
|
color: $primary-color;
|
|
}
|
|
}
|
|
|
|
.map .leaflet-bottom {
|
|
z-index: $leaflet-overlay;
|
|
bottom: 0.5em;
|
|
|
|
@media print {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
div.leaflet-container {
|
|
position: absolute;
|
|
flex: 1;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: none;
|
|
z-index: index($zindex, map-container);
|
|
|
|
@include font-map-container;
|
|
|
|
.leaflet-marker-icon {
|
|
@include font-narrow-medium;
|
|
}
|
|
}
|
|
|
|
.select-from-map {
|
|
height: calc(100vh - 36px);
|
|
}
|
|
|
|
div.current-location-marker > span > svg.icon {
|
|
font-size: 40px;
|
|
color: $current-location-color;
|
|
}
|
|
|
|
.tripMap div.leaflet-marker-icon.place,
|
|
.summary-map div.leaflet-marker-icon.place {
|
|
display: none;
|
|
}
|
|
|
|
div.leaflet-marker-icon.from,
|
|
div.leaflet-marker-icon.place,
|
|
div.leaflet-marker-icon.to,
|
|
div.leaflet-marker-icon.via,
|
|
div.leaflet-marker-icon.map-subway-entrance-info-icon-metro,
|
|
div.leaflet-marker-icon.parking {
|
|
> span > svg.icon {
|
|
width: auto;
|
|
height: auto;
|
|
}
|
|
}
|
|
|
|
div.leaflet-marker-icon.via {
|
|
color: $black;
|
|
}
|
|
|
|
div.leaflet-marker-icon.vehicle-icon {
|
|
> span > svg.icon {
|
|
width: 1.5em;
|
|
height: 1.5em;
|
|
}
|
|
}
|
|
|
|
.map-with-tracking-buttons {
|
|
z-index: 401;
|
|
bottom: 192px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
right: 30px;
|
|
max-width: calc(100% - 2em);
|
|
position: absolute;
|
|
|
|
[role='button'] {
|
|
max-height: 36px;
|
|
max-width: 36px;
|
|
cursor: pointer;
|
|
|
|
&:hover {
|
|
background: $button-hover-color;
|
|
}
|
|
}
|
|
|
|
& > * {
|
|
z-index: index($zindex, map-buttons);
|
|
}
|
|
|
|
& > *:not(:first-child) {
|
|
margin-left: 0.5em;
|
|
}
|
|
|
|
&.roomForZoomControl {
|
|
margin-left: 48px;
|
|
}
|
|
}
|
|
|
|
.toggle-positioning-container {
|
|
background-color: $white;
|
|
padding: 6px;
|
|
border-radius: 5px;
|
|
line-height: 0.5;
|
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
.cookie-settings-button {
|
|
&,
|
|
&:hover,
|
|
&:active,
|
|
&:focus {
|
|
z-index: index($zindex, map-buttons);
|
|
position: absolute;
|
|
bottom: 20px;
|
|
left: 15px;
|
|
background: $primary-color;
|
|
border-radius: 50px;
|
|
font-weight: 325;
|
|
display: flex;
|
|
font-size: 12px;
|
|
color: white;
|
|
padding: 5px 10px;
|
|
letter-spacing: -0.3px;
|
|
}
|
|
}
|
|
|
|
.map-routing-button {
|
|
display: flex;
|
|
justify-content: space-evenly;
|
|
align-items: flex-start;
|
|
padding: 7px 10px 5px 10px;
|
|
position: absolute;
|
|
min-width: 10.375em;
|
|
height: 2.125em;
|
|
right: 15px;
|
|
top: 25px;
|
|
z-index: 3;
|
|
background: #fff;
|
|
color: $primary-color;
|
|
font-weight: $font-weight-medium;
|
|
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
|
|
border-radius: 8px;
|
|
|
|
&:hover {
|
|
color: $primary-color;
|
|
background: darken($color: #fff, $amount: 10);
|
|
}
|
|
|
|
&:focus {
|
|
background: #fff;
|
|
outline: 1px solid black;
|
|
color: $primary-color;
|
|
}
|
|
|
|
.map-routing-button-icon {
|
|
color: $primary-color;
|
|
margin: 3px 5px 0 0;
|
|
}
|
|
}
|
|
|
|
.map-routing-modal-overlay {
|
|
position: fixed;
|
|
height: 100%;
|
|
width: 100%;
|
|
top: 0;
|
|
left: 0;
|
|
background-color: rgba(0, 0, 0, 0.2);
|
|
z-index: 1000;
|
|
}
|
|
|
|
.map-routing-modal {
|
|
z-index: 999;
|
|
position: absolute;
|
|
left: 50%;
|
|
top: 50%;
|
|
background: #fff;
|
|
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
|
|
border-radius: 5px;
|
|
width: 100%;
|
|
transform: translate(-50%, -50%);
|
|
max-width: 335px;
|
|
padding: 35px 20px 20px 20px;
|
|
|
|
.map-routing-modal-header {
|
|
font-family: $heading-font-family;
|
|
font-size: $font-size-large;
|
|
font-weight: $font-weight-medium;
|
|
margin: 0 0 20px;
|
|
display: flex;
|
|
align-items: center;
|
|
letter-spacing: -0.3px;
|
|
color: #333;
|
|
}
|
|
|
|
.map-routing-modal-button-container {
|
|
border: 1px solid #ddd;
|
|
box-sizing: border-box;
|
|
border-radius: 8px;
|
|
width: 295px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
|
|
.map-routing-modal-button {
|
|
width: 100%;
|
|
height: 50px;
|
|
background: #fff;
|
|
font-weight: $font-weight-medium;
|
|
color: $primary-color;
|
|
padding-left: 20px;
|
|
text-align: left;
|
|
}
|
|
|
|
.map-routing-modal-button:nth-of-type(2) {
|
|
border-top: 1px solid #ddd;
|
|
border-bottom: 1px solid #ddd;
|
|
}
|
|
}
|
|
}
|
|
|
|
.icon-mapMarker-toggle-positioning {
|
|
font-size: 24px;
|
|
}
|
|
|
|
.vehicle-popup {
|
|
left: -19px !important;
|
|
|
|
.route-header {
|
|
height: 5em;
|
|
border: none;
|
|
|
|
h1 {
|
|
display: flex;
|
|
padding: 0.5em;
|
|
margin: 0;
|
|
font-family: $font-family-narrow;
|
|
font-size: $font-size-xlarge;
|
|
}
|
|
}
|
|
|
|
.leaflet-popup-content-wrapper {
|
|
border-radius: $border-radius;
|
|
padding: 0;
|
|
margin-bottom: 5px;
|
|
}
|
|
|
|
.leaflet-popup-content {
|
|
margin: 0;
|
|
width: 18rem !important;
|
|
|
|
&.leaflet-popup-scrolled {
|
|
overflow: inherit;
|
|
}
|
|
|
|
.card-sub-header {
|
|
display: flex;
|
|
}
|
|
}
|
|
|
|
.card {
|
|
border: none;
|
|
|
|
> a {
|
|
display: block;
|
|
}
|
|
|
|
hr {
|
|
height: 1px;
|
|
color: #ddd;
|
|
background: #ddd;
|
|
font-size: 0;
|
|
border: 0;
|
|
}
|
|
|
|
.card-row .no-margin:last-child hr {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.card-header {
|
|
border-radius: $border-radius;
|
|
}
|
|
|
|
.bottom {
|
|
@include font-medium;
|
|
|
|
font-size: $font-size-small;
|
|
line-height: $line-height-normal;
|
|
color: $link-color;
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: center;
|
|
margin: 0;
|
|
border-bottom-left-radius: 3px;
|
|
border-bottom-right-radius: 3px;
|
|
background: $background-color;
|
|
border-top: solid 1px #ddd;
|
|
|
|
div,
|
|
a,
|
|
button {
|
|
display: block;
|
|
padding: 0.5em 12px;
|
|
flex-grow: 1;
|
|
text-align: center;
|
|
text-decoration: none;
|
|
|
|
&:first-child {
|
|
border-right: 1px solid $light-gray;
|
|
}
|
|
}
|
|
}
|
|
|
|
.leaflet-popup-tip-container {
|
|
margin: -5px 5px;
|
|
left: 0;
|
|
|
|
.leaflet-popup-tip {
|
|
background: $background-color;
|
|
}
|
|
}
|
|
}
|
|
|
|
.location-popup-wrapper {
|
|
display: flex;
|
|
flex-direction: column;
|
|
font-size: 16px;
|
|
margin: 15px 14px 10px;
|
|
|
|
.location-address {
|
|
font-size: 0.9375em;
|
|
font-weight: $font-weight-medium;
|
|
}
|
|
|
|
.location-place {
|
|
margin-top: 4px;
|
|
font-size: 0.8125em;
|
|
display: flex;
|
|
flex-direction: row;
|
|
|
|
.zone-icon-container {
|
|
margin-left: 6px;
|
|
}
|
|
|
|
.circle {
|
|
padding: 0 3px 0 2px;
|
|
|
|
&.A {
|
|
padding: 0 3px 0 3px;
|
|
}
|
|
|
|
&.B {
|
|
padding: 0 3px 0 2.5px;
|
|
}
|
|
|
|
&.D {
|
|
padding: 0 3px 0 3px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.popup {
|
|
.route-header {
|
|
height: auto;
|
|
border: none;
|
|
}
|
|
|
|
.leaflet-popup-content-wrapper {
|
|
box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.2);
|
|
padding: 0;
|
|
margin-bottom: 5px;
|
|
border-radius: 5px;
|
|
}
|
|
|
|
.leaflet-popup-content {
|
|
margin: 0;
|
|
|
|
&.leaflet-popup-scrolled {
|
|
overflow: inherit;
|
|
height: auto !important;
|
|
}
|
|
}
|
|
|
|
.card {
|
|
border: none;
|
|
border-radius: 4px;
|
|
|
|
> a {
|
|
display: block;
|
|
}
|
|
|
|
hr {
|
|
height: 1px;
|
|
color: #ddd;
|
|
background: #ddd;
|
|
font-size: 0;
|
|
border: 0;
|
|
}
|
|
|
|
.card-row .no-margin:last-child hr {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.card.no-margin {
|
|
margin: 0;
|
|
}
|
|
|
|
.card-header {
|
|
border-radius: $border-radius;
|
|
}
|
|
|
|
.bottom {
|
|
@include font-medium;
|
|
|
|
font-size: 16px;
|
|
line-height: $line-height-normal;
|
|
color: $link-color;
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: center;
|
|
margin: 0 10px 10px;
|
|
border-radius: 5px;
|
|
background: $white;
|
|
border: solid 1px #ddd;
|
|
|
|
div,
|
|
a,
|
|
button {
|
|
height: 26px;
|
|
min-width: 100px;
|
|
display: flex;
|
|
font-size: 0.8125em;
|
|
justify-content: center;
|
|
align-items: center;
|
|
flex-grow: 1;
|
|
text-align: center;
|
|
text-decoration: none;
|
|
border-left: 1px solid $light-gray;
|
|
|
|
&:first-child {
|
|
border-left: none;
|
|
}
|
|
}
|
|
|
|
button {
|
|
@include font-medium;
|
|
}
|
|
}
|
|
|
|
.leaflet-popup-tip-container {
|
|
margin-top: -6px;
|
|
|
|
.leaflet-popup-tip {
|
|
width: 15px;
|
|
height: 15px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.single-popup {
|
|
.leaflet-popup-content {
|
|
width: 320px;
|
|
}
|
|
}
|
|
|
|
.narrow-popup {
|
|
.leaflet-popup-content {
|
|
width: 220px;
|
|
}
|
|
}
|
|
|
|
.choice-popup {
|
|
.leaflet-popup-content {
|
|
min-width: 240px;
|
|
width: max-content;
|
|
}
|
|
}
|
|
|
|
.leaflet-popup-content-wrapper,
|
|
.leaflet-popup-tip {
|
|
box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
div.origin-popup {
|
|
font-size: $font-size-xxsmall;
|
|
cursor: pointer;
|
|
min-width: 15em;
|
|
left: -21px !important;
|
|
|
|
.origin-popup-header {
|
|
@include font-medium;
|
|
|
|
text-transform: uppercase;
|
|
color: $link-color;
|
|
width: 90%;
|
|
margin-bottom: 3px;
|
|
|
|
.icon {
|
|
margin: 0 0 -2px 8px;
|
|
font-size: $font-size-small;
|
|
}
|
|
}
|
|
|
|
.leaflet-popup-content-wrapper {
|
|
border-radius: $border-radius;
|
|
padding: 0;
|
|
overflow: hidden;
|
|
|
|
.leaflet-popup-content {
|
|
margin: 12px 8px 8px 8px;
|
|
|
|
svg.right-arrow {
|
|
height: 9px;
|
|
}
|
|
|
|
.card-code {
|
|
margin-right: 5px;
|
|
padding: 2px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.origin-popup-name {
|
|
@include font-book;
|
|
|
|
height: 1.5em;
|
|
width: 200px;
|
|
text-transform: none;
|
|
color: $black;
|
|
font-size: $font-size-small;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.shade-to-white {
|
|
background-image: linear-gradient(to left, white, rgba(255, 255, 255, 0));
|
|
width: 2em;
|
|
height: 1.5em;
|
|
position: absolute;
|
|
right: 0;
|
|
top: 2em;
|
|
}
|
|
|
|
.leaflet-popup-tip-container {
|
|
position: relative;
|
|
left: 0;
|
|
margin: 0 0;
|
|
}
|
|
}
|
|
|
|
.vehicle-number-container-v-map {
|
|
position: relative;
|
|
bottom: 40px;
|
|
left: 41px;
|
|
|
|
.vehicle-number-map {
|
|
margin-right: 1.5em;
|
|
margin-left: 0.3em;
|
|
mask-image: none;
|
|
max-width: none;
|
|
}
|
|
}
|
|
|
|
.route-header {
|
|
.route-header-trip {
|
|
position: relative;
|
|
height: 1.5em;
|
|
margin-top: 0.2em;
|
|
margin-left: 1.5em;
|
|
font-size: 70%;
|
|
padding: 0.1em 0.4em;
|
|
border: solid 1px $light-gray;
|
|
border-radius: $border-radius;
|
|
color: $gray;
|
|
}
|
|
}
|
|
|
|
.map .stop-halo {
|
|
fill: #fff;
|
|
fill-opacity: 1;
|
|
}
|
|
|
|
.map .stop {
|
|
stroke: currentcolor;
|
|
stroke-opacity: 1;
|
|
fill: #fff;
|
|
fill-opacity: 1;
|
|
}
|
|
|
|
.map .icon.stop-marker {
|
|
width: auto;
|
|
height: auto;
|
|
}
|
|
|
|
/* BEWARE! This is an ugly hack.
|
|
* It so happens that firefox will not allow SVG clicks to bubble to DOM if pointer-events: none is not set.
|
|
* If we set pointer-events: none for all browsers, then we lose "pointer cursor" for all browsers.
|
|
* This css selector targets only firefox: https://css-tricks.com/snippets/css/css-hacks-targeting-firefox/
|
|
*/
|
|
@-moz-document url-prefix() {
|
|
.map .stop {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.map .stop-halo {
|
|
pointer-events: none;
|
|
}
|
|
}
|
|
|
|
.map .thin .stop,
|
|
.map .thin .stop-small {
|
|
stroke-opacity: $stop-thin-opacity;
|
|
fill-opacity: $stop-thin-opacity;
|
|
}
|
|
|
|
.map .stop-small {
|
|
stroke: #fff;
|
|
stroke-opacity: 1;
|
|
fill: currentcolor;
|
|
fill-opacity: 1;
|
|
}
|
|
|
|
.map .icon.mode-icon {
|
|
height: 100%;
|
|
width: 100%;
|
|
}
|
|
|
|
.map svg use {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.map .thin .stop-small {
|
|
stroke-opacity: $stop-thin-opacity;
|
|
fill-opacity: $stop-thin-opacity;
|
|
}
|
|
|
|
.map .arrow-bottomLeft {
|
|
display: flex;
|
|
align-items: center;
|
|
min-width: 50px;
|
|
height: 18px;
|
|
|
|
&.only-icon {
|
|
min-width: 0;
|
|
}
|
|
|
|
.wide {
|
|
min-width: 64px;
|
|
}
|
|
|
|
.map-route-icon {
|
|
border: none;
|
|
font-size: 18px;
|
|
}
|
|
|
|
div {
|
|
@include font-narrow-medium;
|
|
|
|
border-radius: 3px;
|
|
height: 18px;
|
|
width: 100%;
|
|
margin-left: -50%;
|
|
margin-top: -9px;
|
|
display: flex;
|
|
position: relative;
|
|
left: -65%;
|
|
top: 100%;
|
|
white-space: nowrap;
|
|
background-color: var(--background-color);
|
|
|
|
.map-route-number {
|
|
width: calc(100% - 18px);
|
|
display: flex;
|
|
justify-content: center;
|
|
padding-right: 3px;
|
|
color: $white;
|
|
}
|
|
|
|
&::before {
|
|
content: '';
|
|
width: 0;
|
|
height: 0;
|
|
position: absolute;
|
|
border-left: 0 solid var(--background-color);
|
|
border-right: 15px solid transparent;
|
|
border-top: 0 solid transparent;
|
|
border-bottom: 15px solid var(--background-color);
|
|
right: -10px;
|
|
top: -14px;
|
|
transform: skewX(-60deg);
|
|
}
|
|
}
|
|
}
|
|
|
|
.map .arrow-bottomLeft.only-icon div::before {
|
|
border-right: 10px solid transparent;
|
|
}
|
|
|
|
.map .arrow-bottomRight {
|
|
display: flex;
|
|
align-items: center;
|
|
min-width: 50px;
|
|
height: 18px;
|
|
|
|
&.only-icon {
|
|
min-width: 0;
|
|
}
|
|
|
|
.wide {
|
|
min-width: 64px;
|
|
}
|
|
|
|
.map-route-icon {
|
|
border: none;
|
|
font-size: 18px;
|
|
}
|
|
|
|
div {
|
|
@include font-narrow-medium;
|
|
|
|
border-radius: 3px;
|
|
height: 18px;
|
|
width: 100%;
|
|
margin-left: -50%;
|
|
margin-top: -9px;
|
|
display: flex;
|
|
position: relative;
|
|
left: 65%;
|
|
top: 100%;
|
|
white-space: nowrap;
|
|
background-color: var(--background-color);
|
|
|
|
.map-route-number {
|
|
width: calc(100% - 18px);
|
|
display: flex;
|
|
justify-content: center;
|
|
padding-right: 3px;
|
|
color: $white;
|
|
}
|
|
|
|
&::before {
|
|
content: '';
|
|
width: 0;
|
|
height: 0;
|
|
position: absolute;
|
|
border-left: 0 solid var(--background-color);
|
|
border-right: 15px solid transparent;
|
|
border-top: 0 solid transparent;
|
|
border-bottom: 15px solid var(--background-color);
|
|
top: -14px;
|
|
transform: skewX(40deg);
|
|
}
|
|
}
|
|
}
|
|
|
|
.map .arrow-bottomRight.only-icon div::before {
|
|
border-right: 9px solid transparent;
|
|
}
|
|
|
|
.map .arrow-topRight {
|
|
display: flex;
|
|
align-items: center;
|
|
min-width: 50px;
|
|
height: 18px;
|
|
|
|
&.only-icon {
|
|
min-width: 0;
|
|
}
|
|
|
|
.wide {
|
|
min-width: 64px;
|
|
}
|
|
|
|
.map-route-icon {
|
|
border: none;
|
|
font-size: 18px;
|
|
}
|
|
|
|
div {
|
|
@include font-narrow-medium;
|
|
|
|
border-radius: 3px;
|
|
height: 18px;
|
|
width: 100%;
|
|
margin-left: -50%;
|
|
margin-top: -9px;
|
|
display: flex;
|
|
position: relative;
|
|
left: 65%;
|
|
top: -130%;
|
|
white-space: nowrap;
|
|
background-color: var(--background-color);
|
|
|
|
.map-route-number {
|
|
width: calc(100% - 18px);
|
|
display: flex;
|
|
justify-content: center;
|
|
padding-right: 3px;
|
|
color: $white;
|
|
}
|
|
|
|
&::before {
|
|
content: '';
|
|
width: 0;
|
|
height: 0;
|
|
position: absolute;
|
|
border-right: 0 solid var(--background-color);
|
|
border-left: 15px solid transparent;
|
|
border-bottom: 0 solid transparent;
|
|
border-top: 15px solid var(--background-color);
|
|
top: 15px;
|
|
transform: skewX(120deg);
|
|
right: 42px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.map .arrow-topRight.only-icon div::before {
|
|
border-left: 15px solid transparent;
|
|
right: 11px;
|
|
}
|
|
|
|
.map .arrow-topLeft {
|
|
display: flex;
|
|
align-items: center;
|
|
min-width: 50px;
|
|
height: 18px;
|
|
|
|
&.only-icon {
|
|
min-width: 0;
|
|
}
|
|
|
|
.wide {
|
|
min-width: 64px;
|
|
}
|
|
|
|
.map-route-icon {
|
|
border: none;
|
|
font-size: 18px;
|
|
}
|
|
|
|
div {
|
|
@include font-narrow-medium;
|
|
|
|
border-radius: 3px;
|
|
height: 18px;
|
|
width: 100%;
|
|
margin-left: -50%;
|
|
margin-top: -9px;
|
|
display: flex;
|
|
position: relative;
|
|
left: -70%;
|
|
top: -130%;
|
|
white-space: nowrap;
|
|
background-color: var(--background-color);
|
|
|
|
.map-route-number {
|
|
width: calc(100% - 18px);
|
|
display: flex;
|
|
justify-content: center;
|
|
padding-right: 3px;
|
|
color: $white;
|
|
}
|
|
|
|
&::before {
|
|
content: '';
|
|
width: 0;
|
|
height: 0;
|
|
position: absolute;
|
|
border-right: 0 solid var(--background-color);
|
|
border-left: 15px solid transparent;
|
|
border-bottom: 0 solid transparent;
|
|
border-top: 15px solid var(--background-color);
|
|
top: 15px;
|
|
transform: skewX(45deg);
|
|
right: -5px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.map .legmarker {
|
|
display: flex;
|
|
align-items: center;
|
|
min-width: 50px;
|
|
height: 18px;
|
|
|
|
&.only-icon {
|
|
min-width: 0;
|
|
align-items: normal;
|
|
}
|
|
|
|
.wide {
|
|
min-width: 64px;
|
|
}
|
|
|
|
&.speech-bubble-topRight {
|
|
background-color: transparent;
|
|
|
|
div {
|
|
box-shadow: -8px 9px 8px 0 rgba(0, 0, 0, 0.3);
|
|
|
|
@include font-medium;
|
|
|
|
font-size: 15px;
|
|
border-radius: 8px;
|
|
height: 30px;
|
|
padding: 0 7px;
|
|
background-color: $white;
|
|
margin: 0;
|
|
line-height: 2;
|
|
position: relative;
|
|
left: 15%;
|
|
top: -35px;
|
|
}
|
|
|
|
::before {
|
|
content: '';
|
|
width: 0;
|
|
height: 0;
|
|
position: absolute;
|
|
border-left: 0 solid transparent;
|
|
border-right: 15px solid #fff;
|
|
border-top: 0 solid #fff;
|
|
border-bottom: 15px solid transparent;
|
|
left: -12px;
|
|
bottom: -11px;
|
|
transform: skewX(-60deg);
|
|
box-shadow: #333;
|
|
}
|
|
}
|
|
|
|
&.speech-bubble-topLeft {
|
|
background-color: transparent;
|
|
|
|
div {
|
|
box-shadow: 7px 10px 11px 0 rgba(0, 0, 0, 0.3);
|
|
|
|
@include font-medium;
|
|
|
|
font-size: 15px;
|
|
border-radius: 8px;
|
|
height: 30px;
|
|
padding: 0 7px;
|
|
background-color: $white;
|
|
margin: 0;
|
|
line-height: 2;
|
|
position: relative;
|
|
left: -110%;
|
|
top: -35px;
|
|
}
|
|
|
|
::before {
|
|
content: '';
|
|
width: 0;
|
|
height: 0;
|
|
position: absolute;
|
|
border-left: 0 solid transparent;
|
|
border-right: 15px solid #fff;
|
|
border-top: 0 solid #fff;
|
|
border-bottom: 15px solid transparent;
|
|
left: 95px;
|
|
bottom: -11px;
|
|
transform: skewX(30deg);
|
|
}
|
|
}
|
|
|
|
&.speech-bubble-bottomLeft {
|
|
div {
|
|
box-shadow: 10px -5px 17px 0 rgba(0, 0, 0, 0.3);
|
|
|
|
@include font-medium;
|
|
|
|
font-size: 15px;
|
|
border-radius: 8px;
|
|
height: 30px;
|
|
padding: 0 7px;
|
|
background-color: $white;
|
|
margin: 0;
|
|
line-height: 2;
|
|
position: relative;
|
|
left: calc(-100% - 10px);
|
|
top: 90%;
|
|
}
|
|
|
|
::before {
|
|
content: '';
|
|
width: 0;
|
|
height: 0;
|
|
position: absolute;
|
|
border-left: 0 solid #fff;
|
|
border-right: 15px solid transparent;
|
|
border-top: 0 solid transparent;
|
|
border-bottom: 15px solid #fff;
|
|
right: -10px;
|
|
top: -11px;
|
|
transform: skewX(-60deg);
|
|
}
|
|
}
|
|
|
|
&.speech-bubble-bottomRight {
|
|
div {
|
|
box-shadow: -10px -7px 12px 0 rgba(0, 0, 0, 0.3);
|
|
|
|
@include font-medium;
|
|
|
|
font-size: 15px;
|
|
border-radius: 8px;
|
|
height: 30px;
|
|
padding: 0 7px;
|
|
background-color: $white;
|
|
margin: 0;
|
|
line-height: 2;
|
|
position: relative;
|
|
left: 15px;
|
|
top: 90%;
|
|
}
|
|
|
|
::before {
|
|
content: '';
|
|
width: 0;
|
|
height: 0;
|
|
position: absolute;
|
|
border-left: 0 solid #fff;
|
|
border-right: 15px solid transparent;
|
|
border-top: 0 solid transparent;
|
|
border-bottom: 15px solid #fff;
|
|
right: 95px;
|
|
top: -11px;
|
|
transform: skewX(-140deg);
|
|
}
|
|
}
|
|
|
|
.map-route-icon {
|
|
border: none;
|
|
font-size: 18px;
|
|
}
|
|
|
|
div {
|
|
@include font-narrow-medium;
|
|
|
|
background-color: var(--background-color);
|
|
border-radius: 3px;
|
|
height: 18px;
|
|
width: 100%;
|
|
margin-left: -50%;
|
|
margin-top: -9px;
|
|
display: flex;
|
|
white-space: nowrap;
|
|
|
|
.map-route-number {
|
|
width: calc(100% - 18px);
|
|
display: flex;
|
|
justify-content: center;
|
|
padding-right: 3px;
|
|
color: $white;
|
|
}
|
|
}
|
|
}
|
|
|
|
.map .leg-halo {
|
|
stroke: #fff;
|
|
stroke-opacity: 1;
|
|
|
|
&.opaque {
|
|
stroke: currentcolor;
|
|
stroke-opacity: 0.5;
|
|
}
|
|
|
|
&.walk,
|
|
&.bicycle_walk,
|
|
&.citybike_walk {
|
|
stroke-linecap: round;
|
|
stroke-dasharray: 0.1 11;
|
|
}
|
|
}
|
|
|
|
.map .leg {
|
|
stroke-opacity: 1;
|
|
|
|
&.opaque {
|
|
stroke: #fff;
|
|
stroke-opacity: 0.4;
|
|
}
|
|
|
|
&.walk,
|
|
&.bicycle_walk,
|
|
&.citybike_walk {
|
|
stroke: round;
|
|
stroke-dasharray: 0.1 11;
|
|
}
|
|
}
|
|
|
|
.map .thin {
|
|
stroke-opacity: 0.5;
|
|
}
|
|
|
|
.map-line.ferry-external.leg {
|
|
color: $external-feed-map-color;
|
|
}
|
|
|
|
.map-line.taxi-external.leg {
|
|
color: $external-feed-map-color;
|
|
}
|
|
|
|
.map-line.scooter.leg {
|
|
color: $scooter-map-color;
|
|
}
|
|
|
|
.map-line.walk-inside.leg {
|
|
color: #fff;
|
|
stroke: round;
|
|
stroke-dasharray: 0.1 11;
|
|
}
|
|
|
|
.leg-halo.walk-inside.map-line {
|
|
stroke: $walk-inside-color;
|
|
}
|
|
|
|
/* Fix to default leaflet behavior */
|
|
.leaflet-map-pane svg {
|
|
position: relative;
|
|
|
|
&.icon-badge {
|
|
transform: translate(-0.5em, -2.5em);
|
|
border-radius: 50%;
|
|
|
|
> .badge-circle {
|
|
stroke-width: 14%;
|
|
}
|
|
}
|
|
}
|
|
|
|
div.map-click-prevent-overlay {
|
|
position: absolute;
|
|
top: 0;
|
|
height: 100%;
|
|
width: 100%;
|
|
z-index: 801;
|
|
}
|
|
|
|
div.leaflet-control-scale.leaflet-control {
|
|
// front page
|
|
margin-right: 30px;
|
|
margin-bottom: 20px;
|
|
cursor: grab;
|
|
}
|
|
|
|
.map.full .leaflet-control-scale.leaflet-control {
|
|
// stop & ininerary page mobile
|
|
margin-right: 60px;
|
|
margin-bottom: 20px;
|
|
cursor: grab;
|
|
}
|
|
|
|
.desktop .map.full .leaflet-control-scale.leaflet-control {
|
|
// stop & ininerary page mobile
|
|
margin-right: 20px;
|
|
margin-bottom: 20px;
|
|
cursor: grab;
|
|
}
|
|
|
|
.desktop .map {
|
|
border-left: 1px solid rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
div.leaflet-control-scale-line {
|
|
text-align: right;
|
|
margin-bottom: -4px;
|
|
cursor: grab;
|
|
background: rgba(255, 255, 255, 0);
|
|
border: none;
|
|
}
|
|
|
|
.leaflet-control-scale::after {
|
|
content: '';
|
|
display: block;
|
|
border-bottom: 1px solid #888;
|
|
border-left: 1px solid #888;
|
|
border-right: 1px solid #888;
|
|
height: 4px;
|
|
background: none;
|
|
cursor: grab;
|
|
}
|
|
|
|
.smallspinner {
|
|
div.spinner-loader {
|
|
width: $spinner-size * 0.5;
|
|
height: $spinner-size * 0.5;
|
|
}
|
|
}
|
|
|
|
.leaflet-tooltip.geoJsonText {
|
|
direction: 'center';
|
|
box-shadow: none;
|
|
border: none;
|
|
background: transparent;
|
|
cursor: none;
|
|
|
|
// interactive: false;
|
|
font-size: 50px;
|
|
color: $primary-color;
|
|
}
|
|
|
|
.leaflet-popup.geoJsonPopup {
|
|
@include font-medium;
|
|
|
|
.leaflet-popup-content-wrapper {
|
|
border-radius: $border-radius;
|
|
}
|
|
}
|
|
|
|
.select-from-map-confirm-button {
|
|
position: absolute;
|
|
z-index: 3000;
|
|
height: 50px;
|
|
width: 60%;
|
|
border-radius: 25px;
|
|
bottom: 15%;
|
|
background-color: var(--color);
|
|
font-family: $button-font-family;
|
|
font-size: 18px;
|
|
font-weight: $font-weight-medium;
|
|
font-stretch: normal;
|
|
font-style: normal;
|
|
line-height: normal;
|
|
letter-spacing: -0.6px;
|
|
text-align: center;
|
|
color: #fff;
|
|
max-width: 300px;
|
|
|
|
&:hover {
|
|
border-color: var(--hover-color);
|
|
background-color: var(--hover-color);
|
|
color: #fff;
|
|
}
|
|
|
|
&.select-from-map-confirm-button[disabled]:hover {
|
|
background-color: #bbb;
|
|
opacity: 1;
|
|
}
|
|
|
|
&.disabled {
|
|
background-color: #bbb;
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.leaflet-marker-icon > svg {
|
|
position: absolute;
|
|
border-radius: 50%;
|
|
border: solid 1px $white;
|
|
}
|
|
|
|
.z-1,
|
|
.zundefined {
|
|
img.leaflet-marker-icon.icon-zone.leaflet-zoom-animated {
|
|
width: 30px;
|
|
height: 30px;
|
|
margin-top: -15px;
|
|
margin-left: -15px;
|
|
}
|
|
}
|
|
|
|
.z1,
|
|
.z2,
|
|
.z3,
|
|
.z4,
|
|
.z5 {
|
|
img.leaflet-marker-icon.icon-zone.leaflet-zoom-animated {
|
|
width: 6px;
|
|
height: 6px;
|
|
margin-top: -3px;
|
|
margin-left: -3px;
|
|
}
|
|
}
|
|
|
|
.z6 {
|
|
img.leaflet-marker-icon.icon-zone.leaflet-zoom-animated {
|
|
width: 8px;
|
|
height: 8px;
|
|
margin-top: -4px;
|
|
margin-left: -4px;
|
|
}
|
|
}
|
|
|
|
.z7 {
|
|
img.leaflet-marker-icon.icon-zone.leaflet-zoom-animated {
|
|
width: 10px;
|
|
height: 10px;
|
|
margin-top: -5px;
|
|
margin-left: -5px;
|
|
}
|
|
}
|
|
|
|
.z8 {
|
|
img.leaflet-marker-icon.icon-zone.leaflet-zoom-animated {
|
|
width: 14px;
|
|
height: 14px;
|
|
margin-top: -7px;
|
|
margin-left: -7px;
|
|
}
|
|
}
|
|
|
|
.z9 {
|
|
img.leaflet-marker-icon.icon-zone.leaflet-zoom-animated {
|
|
width: 16px;
|
|
height: 16px;
|
|
margin-top: -8px;
|
|
margin-left: -8px;
|
|
}
|
|
}
|
|
|
|
.z10 {
|
|
img.leaflet-marker-icon.icon-zone.leaflet-zoom-animated {
|
|
width: 20px;
|
|
height: 20px;
|
|
margin-top: -10px;
|
|
margin-left: -10px;
|
|
}
|
|
}
|
|
|
|
.z11 {
|
|
img.leaflet-marker-icon.icon-zone.leaflet-zoom-animated {
|
|
width: 22px;
|
|
height: 22px;
|
|
margin-top: -11px;
|
|
margin-left: -11px;
|
|
}
|
|
}
|
|
|
|
.z12 {
|
|
img.leaflet-marker-icon.icon-zone.leaflet-zoom-animated {
|
|
width: 26px;
|
|
height: 26px;
|
|
margin-top: -13px;
|
|
margin-left: -13px;
|
|
}
|
|
}
|
|
|
|
.z13 {
|
|
img.leaflet-marker-icon.icon-zone.leaflet-zoom-animated {
|
|
width: 31px;
|
|
height: 31px;
|
|
margin-top: -15px;
|
|
margin-left: -15px;
|
|
}
|
|
}
|
|
|
|
.z14 {
|
|
img.leaflet-marker-icon.icon-zone.leaflet-zoom-animated {
|
|
width: 34px;
|
|
height: 34px;
|
|
margin-top: -17px;
|
|
margin-left: -17px;
|
|
}
|
|
}
|
|
|
|
.z15 {
|
|
img.leaflet-marker-icon.icon-zone.leaflet-zoom-animated {
|
|
width: 40px;
|
|
height: 40px;
|
|
margin-top: -20px;
|
|
margin-left: -20px;
|
|
}
|
|
}
|
|
|
|
.z16 {
|
|
img.leaflet-marker-icon.icon-zone.leaflet-zoom-animated {
|
|
width: 44px;
|
|
height: 44px;
|
|
margin-top: -22;
|
|
margin-left: -22px;
|
|
}
|
|
}
|
|
|
|
.z17 {
|
|
img.leaflet-marker-icon.icon-zone.leaflet-zoom-animated {
|
|
width: 48px;
|
|
height: 48px;
|
|
margin-top: -24px;
|
|
margin-left: -24px;
|
|
}
|
|
}
|
|
|
|
.z18,
|
|
.z19,
|
|
.z20,
|
|
.z21,
|
|
.z22 {
|
|
img.leaflet-marker-icon.icon-zone.leaflet-zoom-animated {
|
|
width: 54px;
|
|
height: 54px;
|
|
margin-top: -27px;
|
|
margin-left: -27px;
|
|
}
|
|
}
|