{
className="view-switcher"
id="view-switcher"
role="group"
- style={
- sticky
- ? {
- height: '100%',
- left: 0,
- position: 'absolute',
- width: '100%'
- }
- : {}
- }
>
diff --git a/lib/components/mobile/mobile.css b/lib/components/mobile/mobile.css
index b1197cfbd..77a8ef225 100644
--- a/lib/components/mobile/mobile.css
+++ b/lib/components/mobile/mobile.css
@@ -3,29 +3,26 @@
}
.otp .mobile-bottom-button-container {
- position: fixed;
bottom: 0;
- right: 0;
- left: 0;
height: 40px;
+ left: 0;
+ position: fixed;
+ right: 0;
}
/* Navbar settings */
.otp.mobile .navbar {
- margin-bottom: 0;
border: none;
+ margin-bottom: 0;
}
.otp .navbar .mobile-header {
align-items: center;
display: flex;
- height: 50px;
+ height: 100%;
justify-content: center;
- left: 50px;
max-width: 90%;
- position: fixed;
- right: 50px;
text-align: center;
}
@@ -38,7 +35,6 @@
@media (max-width: 768px) {
.otp .navbar .mobile-header-text {
- margin-top: 2px;
word-break: break-all;
}
}
@@ -56,138 +52,132 @@
border: none;
color: white;
font-size: 18px;
- left: 7px;
- position: fixed;
}
.otp .navbar .mobile-close {
- position: fixed;
- top: 4px;
- right: 6px;
color: white;
font-size: 18px;
-}
-
-.otp .navbar-brand {
- padding: 7px 10px;
+ position: fixed;
+ right: 6px;
+ top: 4px;
}
/* Welcome screen */
.otp.mobile .welcome-location {
- position: fixed;
- top: 50px;
+ height: 60px;
left: 0;
+ position: fixed;
right: 0;
- height: 60px;
+ top: 50px;
}
.otp.mobile .welcome-map {
- position: fixed;
- top: 110px;
+ bottom: 0;
left: 0;
+ position: fixed;
right: 0;
- bottom: 0;
+ top: 110px;
}
/* Location search screen */
.otp.mobile .location-search {
- position: fixed;
- top: 50px;
+ bottom: 0;
left: 0;
+ position: fixed;
right: 0;
- bottom: 0;
+ top: 50px;
}
/* Main search screen */
.otp.mobile .search-settings {
- position: fixed;
- top: 50px;
+ box-shadow: 3px 0px 12px #00000052;
+ height: 250px;
left: 0;
+ position: fixed;
right: 0;
- height: 250px;
- box-shadow: 3px 0px 12px #00000052;
+ top: 50px;
}
.otp.mobile .search-map {
- position: fixed;
- top: 300px;
+ bottom: 0;
left: 0;
+ position: fixed;
right: 0;
- bottom: 0;
+ top: 300px;
}
/* Batch routing search screen */
.otp.mobile .batch-search-map {
- position: fixed;
- top: 282px;
+ bottom: 0;
left: 0;
+ position: fixed;
right: 0;
- bottom: 0;
+ top: 282px;
}
/* Detailed options screen */
.otp.mobile .options-main-content {
- position: fixed;
- top: 50px;
- left: 0;
- right: 0;
bottom: 55px;
- overflow-y: auto;
+ left: 0;
overflow-x: hidden;
+ overflow-y: auto;
+ position: fixed;
+ right: 0;
+ top: 50px;
}
.otp.mobile .options-lower-tray {
- position: fixed;
+ bottom: 0;
height: 55px;
left: 0;
+ position: fixed;
right: 0;
- bottom: 0;
}
/* Results screen: normal display */
.otp.mobile .mobile-narrative-header {
- position: fixed;
- height: 40px;
- left: 0;
- right: 0;
background-color: #444;
color: #fff;
- text-align: center;
font-size: 20px;
font-weight: 500;
+ height: 40px;
+ left: 0;
+ position: fixed;
+ right: 0;
+ text-align: center;
}
.otp.mobile .mobile-narrative-container {
- position: fixed;
bottom: 20px;
- right: 0;
left: 0;
padding: 8px 12px;
+ position: fixed;
+ right: 0;
}
.otp.mobile .dots-container {
- position: fixed;
bottom: 0;
- right: 0;
- left: 0;
height: 20px;
+ left: 0;
+ position: fixed;
+ right: 0;
text-align: center;
}
.otp.mobile .dots-container .dot {
+ background-color: #ddd;
+ border-radius: 4px;
display: inline-block;
- width: 8px;
height: 8px;
- border-radius: 4px;
- background-color: #ddd;
margin: 0px 3px;
vertical-align: 2px;
+ width: 8px;
}
.otp.mobile .dots-container .dot.active {
@@ -195,64 +185,64 @@
}
.otp.mobile .results-map {
- position: fixed;
- top: 100px;
+ bottom: 140px;
left: 0;
+ position: fixed;
right: 0;
- bottom: 140px;
+ top: 100px;
}
/* Results screen: error display */
.otp.mobile .results-error-map {
- position: fixed;
- top: 100px;
+ height: 200px;
left: 0;
+ position: fixed;
right: 0;
- height: 200px;
+ top: 100px;
}
.otp.mobile .results-error-message {
- position: fixed;
- left: 0;
- right: 0;
bottom: 0;
+ left: 0;
padding-top: 12px;
+ position: fixed;
+ right: 0;
}
/* User Settings */
.otp.mobile .user-settings {
- box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
background-color: white;
- position: fixed;
- left: 0;
- right: 0;
+ border-radius: 5px;
bottom: 0;
- margin-bottom: 18px;
+ box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
height: 165px;
- z-index: 999999;
+ left: 0;
+ margin-bottom: 18px;
overflow-y: scroll;
- border-radius: 5px;
+ position: fixed;
+ right: 0;
+ z-index: 999999;
}
/* Stop/Trip/Route Viewer screens */
.otp.mobile .viewer-container {
- position: fixed;
- top: 250px;
bottom: 0;
left: 0;
- right: 0;
overflow-y: auto;
+ position: fixed;
+ right: 0;
+ top: 250px;
}
.otp.mobile .viewer-map {
- position: fixed;
- top: 50px;
+ height: 200px;
left: 0;
+ position: fixed;
right: 0;
- height: 200px;
+ top: 50px;
}
.otp.mobile .route-viewer-header {
diff --git a/lib/components/narrative/loading.tsx b/lib/components/narrative/loading.tsx
index 6761eeae4..9b4749382 100644
--- a/lib/components/narrative/loading.tsx
+++ b/lib/components/narrative/loading.tsx
@@ -10,7 +10,7 @@ type Props = {
const Loading = ({ extraSmall, small }: Props): JSX.Element => {
return (
-
+
diff --git a/lib/components/narrative/styled.js b/lib/components/narrative/styled.js
index 9ca966693..8381eef24 100644
--- a/lib/components/narrative/styled.js
+++ b/lib/components/narrative/styled.js
@@ -14,6 +14,11 @@ export const NarrativeItinerariesContainer = styled.div`
display: flex;
flex-direction: column;
height: 100%;
+
+ // Prevent the loading spinner from clipping the top of the container
+ .loading-container {
+ margin-top: 25px;
+ }
`
export const ULContainer = styled.ul`
diff --git a/lib/components/user/nav-login-button.css b/lib/components/user/nav-login-button.css
index 3bb007cb1..417c18a36 100644
--- a/lib/components/user/nav-login-button.css
+++ b/lib/components/user/nav-login-button.css
@@ -13,11 +13,6 @@
min-width: 0px;
}
-.otp.mobile .navbar .container-fluid .locale-selector-and-login {
- position: fixed;
- right: 0;
- top: 0;
-}
.otp.mobile .navbar .container-fluid .locale-selector-and-login > li {
display: inline-block;
}
@@ -26,10 +21,10 @@
}
.navBarItem p {
- padding: 5px 15px;
- margin: 0;
- font-weight: 600;
font-size: 16px;
+ font-weight: 600;
+ margin: 0;
+ padding: 5px 15px;
}
.navBarItem ul {
@@ -50,5 +45,8 @@
}
#user-selector-label {
background-color: transparent;
+ border: 0;
+ color: white;
+ height: 50px;
}
}
diff --git a/lib/components/viewers/styled.ts b/lib/components/viewers/styled.ts
index 5509975be..8a870a84e 100644
--- a/lib/components/viewers/styled.ts
+++ b/lib/components/viewers/styled.ts
@@ -50,7 +50,7 @@ export const PatternContainer = styled.div`
& > span {
width: 85%;
- button {
+ button#headsign-selector-label {
align-items: center;
display: flex;
justify-content: space-between;
@@ -69,10 +69,10 @@ export const StopContainer = styled.ol`
color: ${(props) => props?.textColor || DARK_TEXT_GREY};
background-color: ${(props) => props?.backgroundColor || '#fff'};
overflow-y: scroll;
- height: 100%;
- /* 100px bottom padding is needed to ensure all stops
- are shown when browsers don't calculate 100% sensibly */
- padding: 15px 0 100px;
+ /* Calculate the height of the container a little short to ensure all stops
+ are shown when browsers don't calculate 100% sensibly. */
+ height: calc(100% - 140px);
+ padding: 15px 0 0px;
`
export const StopLink = styled.button`
color: ${(props) => props?.textColor + 'da' || DARK_TEXT_GREY};