fleet/website/assets/styles/layout.less
Eric 907ffa8ff1
Website: update sticky homepage header on smaller screens (#6626)
* update homepage mobile styles

* website: update sticky header function

* lint fix
2022-07-12 16:24:15 -05:00

304 lines
5.7 KiB
Plaintext
Vendored

@footer-height: 222px;
@container-md-max-width: 1100px;
[v-cloak] { display: none; }
html, body {
height: 100%;
margin: 0;
}
[purpose='page-wrap'] {
height: 100%;
height: auto !important;//lesshint-disable-line importantRule,duplicateProperty
min-height: 100%;
position: relative;
padding-bottom: @footer-height;
}
[purpose='page-header'] {
// rules for sticky nav transitions
transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 500ms;
// Mobile navigation menu
[purpose='mobile-nav'] {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
pointer-events: none;
background-color: #ffffff;
a:not(.btn) {
width: 100%;
padding: 8px 24px 8px 0px;
margin-bottom: 4px;
font-weight: 700;
color: #212529;
cursor: pointer;
}
hr {
margin-top: 4px;
margin-bottom: 8px;
}
[purpose='mobile-dropdown-toggle'] {
font-weight: 700;
color: @core-fleet-black;
margin-bottom: 0px;
&[aria-expanded='true'] {
color: #6a67fe;
outline: none;
margin-bottom: 4px;
}
}
[purpose='mobile-dropdown'] {
span {
display: inline-flex;
font-weight: bold;
font-size: 12px;
line-height: 24px;
color: @core-fleet-black-50;
margin-bottom: 4px;
}
a {
display: inline-flex;
width: 100%;
padding: 8px 24px 8px 0px;
font-weight: 400;
color: #212529;
white-space: nowrap;
background-color: transparent;
}
a:hover {
color: #6a67fe;
text-decoration: none;
}
}
}
// Header navigation links
[purpose='header-nav'] {
[aria-expanded='true'] {
color: #6a67fe;
outline: none;
}
a:hover {
color: #6a67fe;
text-decoration: none;
}
a:focus {
outline-color: none;
}
[purpose='header-dropdown'] {
box-shadow: 0px 4px 40px rgba(0, 0, 0, 0.4);
border-radius: 8px;
a {
color: @core-fleet-black;
font-weight: 400;
line-height: 20px;
}
a:hover {
color: #6a67fe;
text-decoration: none;
}
}
}
[purpose='header-report-cta'] {
p {
font-size: 14px;
line-height: 20px;
}
a {
font-size: 14px;
line-height: 20px;
font-weight: 700;
text-decoration: underline;
}
}
} // Homepage header styles
&.homepage-header {
z-index: 9999;
position: fixed;
color: #ffffff;
top: 0;
left: 0;
right: 0;
&.sticky {
background-color: #fff;
color: #192147;
.btn.btn-link {
color: #192147;
}
[purpose='header-nav'] {
a {
color: #192147;
}
}
}
[purpose='header-btn'] {
cursor: unset;
font-family: @navigation-font;
font-weight: @bold;
border: 0;
}
[purpose='header-nav'] {
a {
color: #ffffff;
font-weight: @bold;
cursor: pointer;
}
}
[purpose='header-report-cta'] {
background-color: #FFF;
color: #000;
a {
color: #000;
}
}
} // Non-homepage header styles
&.header {
left: 0;
right: 0;
// border-bottom: 1px solid #e2e4ea;
// box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
z-index: 9999;
position: sticky;
top: 0;
background-color: #fff;
.current-page {
color: #6a67fe;
svg {
path {
fill: #6a67fe;
}
}
}
[purpose='header-btn'] {
color: #192147;
cursor: unset;
font-family: @navigation-font;
font-weight: @bold;
}
[purpose='header-nav'] {
a {
color: #192147;
font-weight: @bold;
cursor: pointer;
}
}
[purpose='header-report-cta'] {
background-color: @core-fleet-black;
color: #FFF;
a {
color: #FFF;
}
}
}
// Footer styles
[purpose='page-footer'] {
color: white;
height: @footer-height;
width: 100%;
position: absolute;
left: 0px;
bottom: 0px;
a {
color: white;
}
[purpose='footer-container'] {
padding-left: 40px;
padding-right: 40px;
padding-bottom: 32px;
padding-top: 40px;
}
[purpose='footer-bottom'] {
padding-left: 40px;
padding-right: 70px;
}
[purpose='footer-nav'] {
display: flex;
flex-direction: row;
}
[purpose='legal-nav'] {
padding-left: 16px;
display: inline;
font-size: 11px;
line-height: 18px;
text-decoration: underline;
}
}
// Landing page footer styles
[purpose='landing-footer'] {
height: 60px;
}
body.detected-mobile {
// Above and beyond the media queries below, this selector (which relies on
// `parasails` automatically attaching this class, if appropriate) contains
// styles intended to be activated specifically when loaded from a recognized
// mobile device, regardless of viewport dimensions. This includes tablet
// devices (like the iPad) as well as handset devices (like the iPhone).
// …
}
@media (max-width: 767px) {
[purpose='page-wrap'] {
padding-bottom: 264px;
[purpose='page-footer'] {
height: 264px;
}
}
}
@media (max-width: 575px) {
[purpose='page-wrap'] {
padding-bottom: 371px;
[purpose='page-footer'] {
height: 371px;
}
}
}
@media (max-width: 490px) {
[purpose='page-wrap'] {
padding-bottom: 581px;
[purpose='page-footer'] {
height: 581px;
[purpose='footer-nav'] {
display: block;
}
[purpose='legal-nav'] {
padding-left: 0px;
display: block;
}
}
// Landing page footer styles
[purpose='landing-footer'] {
height: 80px;
}
}
}
// Some utilities for the sticky nav behaviour
.translate-y-0 {
transform: translateY(-235px);
}