1
0
Fork 0
This repository has been archived on 2024-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
cyberplanificateur/app/static/sass/main.scss

1916 lines
No EOL
31 KiB
SCSS

@import 'libs/vars';
@import 'libs/functions';
@import 'libs/mixins';
@import 'libs/vendor';
@import 'libs/breakpoints';
@import 'libs/html-grid';
@import 'font-awesome.min.css';
@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,400italic,600,600italic,800,800italic');
/*
Spectral by HTML5 UP
html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/
// Breakpoints.
@include breakpoints((
xlarge: ( 1281px, 1680px ),
large: ( 981px, 1280px ),
medium: ( 737px, 980px ),
small: ( 481px, 736px ),
xsmall: ( null, 480px ),
));
// Reset.
// Based on meyerweb.com/eric/tools/css/reset (v2.0 | 20110126 | License: public domain)
html, body, div, span, applet, object,
iframe, h1, h2, h3, h4, h5, h6, p, blockquote,
pre, a, abbr, acronym, address, big, cite,
code, del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var, b,
u, i, center, dl, dt, dd, ol, ul, li, fieldset,
form, label, legend, table, caption, tbody,
tfoot, thead, tr, th, td, article, aside,
canvas, details, embed, figure, figcaption,
footer, header, hgroup, menu, nav, output, ruby,
section, summary, time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style:none;
}
blockquote, q {
quotes: none;
&:before,
&:after {
content: '';
content: none;
}
}
table {
border-collapse: collapse;
border-spacing: 0;
}
body {
-webkit-text-size-adjust: none;
}
mark {
background-color: transparent;
color: inherit;
}
input::-moz-focus-inner {
border: 0;
padding: 0;
}
input, select, textarea {
-moz-appearance: none;
-webkit-appearance: none;
-ms-appearance: none;
appearance: none;
}
/* Basic */
@-ms-viewport {
width: device-width;
}
// Set box model to border-box.
// Based on css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
body {
background: _palette(bg);
// Stops initial animations until page loads.
&.is-preload {
*, *:before, *:after {
@include vendor('animation', 'none !important');
@include vendor('transition', 'none !important');
}
}
}
body, input, select, textarea {
color: _palette(fg);
font-family: _font(family);
font-size: 15pt;
font-weight: _font(weight);
letter-spacing: _size(letter-spacing);
line-height: 1.65em;
@include breakpoint('<=xlarge') {
font-size: 13pt;
}
@include breakpoint('<=large') {
font-size: 12pt;
}
@include breakpoint('<=small') {
font-size: 11pt;
letter-spacing: _size(letter-spacing) * 0.5;
}
}
a {
@include vendor('transition', ('color #{_duration(transitions)} ease', 'border-bottom-color #{_duration(transitions)} ease'));
border-bottom: dotted 1px;
color: inherit;
text-decoration: none;
&:hover {
border-bottom-color: transparent;
}
}
strong, b {
color: _palette(fg-bold);
font-weight: _font(weight-bold);
}
em, i {
font-style: italic;
}
p {
margin: 0 0 _size(element-margin) 0;
}
h1, h2, h3, h4, h5, h6 {
color: _palette(fg-bold);
font-weight: _font(weight-extrabold);
letter-spacing: _size(letter-spacing-alt);
line-height: 1em;
margin: 0 0 (_size(element-margin) * 0.5) 0;
text-transform: uppercase;
a {
color: inherit;
text-decoration: none;
}
}
h2 {
font-size: 1.35em;
line-height: 1.75em;
@include breakpoint('<=small') {
font-size: 1.1em;
line-height: 1.65em;
}
}
h3 {
font-size: 1.15em;
line-height: 1.75em;
@include breakpoint('<=small') {
font-size: 1em;
line-height: 1.65em;
}
}
h4 {
font-size: 1em;
line-height: 1.5em;
}
h5 {
font-size: 0.8em;
line-height: 1.5em;
}
h6 {
font-size: 0.7em;
line-height: 1.5em;
}
sub {
font-size: 0.8em;
position: relative;
top: 0.5em;
}
sup {
font-size: 0.8em;
position: relative;
top: -0.5em;
}
hr {
border: 0;
border-bottom: solid 2px _palette(border);
margin: (_size(element-margin) * 1.5) 0;
&.major {
margin: (_size(element-margin) * 2.25) 0;
}
}
blockquote {
border-left: solid 4px _palette(border);
font-style: italic;
margin: 0 0 _size(element-margin) 0;
padding: 0.5em 0 0.5em 2em;
}
code {
background: _palette(border-bg);
border-radius: 3px;
font-family: _font(family-fixed);
font-size: 0.9em;
letter-spacing: 0;
margin: 0 0.25em;
padding: 0.25em 0.65em;
}
pre {
-webkit-overflow-scrolling: touch;
font-family: _font(family-fixed);
font-size: 0.9em;
margin: 0 0 _size(element-margin) 0;
code {
display: block;
line-height: 1.75em;
padding: 1em 1.5em;
overflow-x: auto;
}
}
.align-left {
text-align: left;
}
.align-center {
text-align: center;
}
.align-right {
text-align: right;
}
/* Row */
.row {
@include html-grid(1.5em);
@include breakpoint('<=xlarge') {
@include html-grid(1.5em, 'xlarge');
}
@include breakpoint('<=large') {
@include html-grid(1.5em, 'large');
}
@include breakpoint('<=medium') {
@include html-grid(1.5em, 'medium');
}
@include breakpoint('<=small') {
@include html-grid(1.5em, 'small');
}
@include breakpoint('<=xsmall') {
@include html-grid(1.5em, 'xsmall');
}
}
/* Section/Article */
section, article {
&.special {
text-align: center;
}
}
header {
p {
color: _palette(fg-light);
position: relative;
top: -0.25em;
}
h2 + p {
}
h3 + p {
font-size: 1.1em;
}
h4 + p,
h5 + p,
h6 + p {
font-size: 0.9em;
}
&.major {
margin: 0 0 (_size(element-margin) * 1.75) 0;
h2, h3, h4, h5, h6 {
border-bottom: solid 2px _palette(border);
display: inline-block;
padding-bottom: 1em;
position: relative;
&:after {
content: '';
display: block;
height: 1px;
}
}
p {
color: _palette(fg);
top: 0;
}
@include breakpoint('<=small') {
margin: 0 0 _size(element-margin) 0;
}
}
@include breakpoint('<=medium') {
br {
display: none;
}
}
}
/* Form */
form {
margin: 0 0 _size(element-margin) 0;
}
label {
color: _palette(fg-bold);
display: block;
font-size: 0.9em;
font-weight: _font(weight-bold);
margin: 0 0 (_size(element-margin) * 0.5) 0;
}
input[type="text"],
input[type="password"],
input[type="email"],
select,
textarea {
@include vendor('appearance', 'none');
background-color: _palette(border-bg);
border-radius: 3px;
border: none;
color: inherit;
display: block;
outline: 0;
padding: 0 1em;
text-decoration: none;
width: 100%;
&:invalid {
box-shadow: none;
}
&:focus {
box-shadow: 0 0 0 2px _palette(accent1, bg);
}
}
select {
background-size: 1.25em;
background-repeat: no-repeat;
background-position: calc(100% - 1em) center;
height: _size(element-height);
padding-right: _size(element-height);
text-overflow: ellipsis;
&:focus {
&::-ms-value {
background-color: transparent;
}
}
&::-ms-expand {
display: none;
}
}
input[type="text"],
input[type="password"],
input[type="email"],
select {
height: _size(element-height);
}
textarea {
padding: 0.75em 1em;
}
input[type="checkbox"],
input[type="radio"], {
@include vendor('appearance', 'none');
display: block;
float: left;
margin-right: -2em;
opacity: 0;
width: 1em;
z-index: -1;
& + label {
@include icon;
color: _palette(fg);
cursor: pointer;
display: inline-block;
font-size: 1em;
font-weight: _font(weight);
padding-left: (_size(element-height) * 0.6) + 0.75em;
padding-right: 0.75em;
position: relative;
&:before {
background: _palette(border-bg);
border-radius: 3px;
content: '';
display: inline-block;
height: (_size(element-height) * 0.6);
left: 0;
line-height: (_size(element-height) * 0.575);
position: absolute;
text-align: center;
top: 0;
width: (_size(element-height) * 0.6);
}
}
&:checked + label {
&:before {
background: _palette(bg);
color: _palette(fg-bold);
content: '\f00c';
}
}
&:focus + label {
&:before {
box-shadow: 0 0 0 2px _palette(accent1, bg);
}
}
}
input[type="checkbox"] {
& + label {
&:before {
border-radius: 3px;
}
}
}
input[type="radio"] {
& + label {
&:before {
border-radius: 100%;
}
}
}
::-webkit-input-placeholder {
color: _palette(fg-light) !important;
opacity: 1.0;
}
:-moz-placeholder {
color: _palette(fg-light) !important;
opacity: 1.0;
}
::-moz-placeholder {
color: _palette(fg-light) !important;
opacity: 1.0;
}
:-ms-input-placeholder {
color: _palette(fg-light) !important;
opacity: 1.0;
}
/* Box */
.box {
border-radius: 3px;
border: solid 2px _palette(border);
margin-bottom: _size(element-margin);
padding: 1.5em;
> :last-child,
> :last-child > :last-child,
> :last-child > :last-child > :last-child {
margin-bottom: 0;
}
&.alt {
border: 0;
border-radius: 0;
padding: 0;
}
}
/* Icon */
.icon {
@include icon;
border-bottom: none;
position: relative;
> .label {
display: none;
}
&.major {
@include vendor('transform', 'rotate(-45deg)');
border-radius: 3px;
border: solid 2px _palette(border);
display: inline-block;
font-size: 1.35em;
height: calc(3em + 2px);
line-height: 3em;
text-align: center;
width: calc(3em + 2px);
&:before {
@include vendor('transform', 'rotate(45deg)');
display: inline-block;
font-size: 1.5em;
}
@include breakpoint('<=small') {
font-size: 1em;
}
}
&.style1 {
color: _palette(accent2, bg);
}
&.style2 {
color: _palette(accent3, bg);
}
&.style3 {
color: _palette(accent4, bg);
}
}
/* Image */
.image {
border-radius: 3px;
border: 0;
display: inline-block;
position: relative;
img {
border-radius: 3px;
display: block;
}
&.left {
float: left;
margin: 0 2em 2em 0;
top: 0.25em;
}
&.right {
float: right;
margin: 0 0 2em 2em;
top: 0.25em;
}
&.left,
&.right {
max-width: 40%;
img {
width: 100%;
}
}
&.fit {
display: block;
margin: 0 0 _size(element-margin) 0;
width: 100%;
img {
width: 100%;
}
}
}
/* List */
ol {
list-style: decimal;
margin: 0 0 _size(element-margin) 0;
padding-left: 1.25em;
li {
padding-left: 0.25em;
}
}
ul {
list-style: disc;
margin: 0 0 _size(element-margin) 0;
padding-left: 1em;
li {
padding-left: 0.5em;
}
&.alt {
list-style: none;
padding-left: 0;
li {
border-top: solid 1px _palette(border);
padding: 0.5em 0;
&:first-child {
border-top: 0;
padding-top: 0;
}
}
}
}
dl {
margin: 0 0 _size(element-margin) 0;
}
/* Actions */
ul.actions {
@include vendor('display', 'flex');
cursor: default;
list-style: none;
margin-left: (_size(element-margin) * -0.5);
padding-left: 0;
li {
padding: 0 0 0 (_size(element-margin) * 0.5);
vertical-align: middle;
}
&.special {
@include vendor('justify-content', 'center');
width: 100%;
margin-left: 0;
li {
&:first-child {
padding-left: 0;
}
}
}
&.stacked {
@include vendor('flex-direction', 'column');
margin-left: 0;
li {
padding: (_size(element-margin) * 0.5) 0 0 0;
&:first-child {
padding-top: 0;
}
}
}
&.fit {
width: calc(100% + #{_size(element-margin) * 0.5});
li {
@include vendor('flex-grow', '1');
@include vendor('flex-shrink', '1');
width: 100%;
> * {
width: 100%;
}
}
&.stacked {
width: 100%;
}
}
@include breakpoint('<=xsmall') {
&:not(.fixed) {
@include vendor('flex-direction', 'column');
margin-left: 0;
width: 100% !important;
li {
@include vendor('flex-grow', '1');
@include vendor('flex-shrink', '1');
padding: (_size(element-margin) * 0.5) 0 0 0;
text-align: center;
width: 100%;
> * {
width: 100%;
}
&:first-child {
padding-top: 0;
}
input[type="submit"],
input[type="reset"],
input[type="button"],
button,
.button {
width: 100%;
&.icon {
&:before {
margin-left: -0.5em;
}
}
}
}
}
}
}
/* Icons */
ul.icons {
cursor: default;
list-style: none;
padding-left: 0;
li {
display: inline-block;
padding: 0 1em 0 0;
&:last-child {
padding-right: 0 !important;
}
}
&.major {
padding: 1em 0;
li {
padding-right: 3.5em;
@include breakpoint('<=small') {
padding: 0 1em !important;
}
}
}
}
/* Table */
.table-wrapper {
-webkit-overflow-scrolling: touch;
overflow-x: auto;
}
table {
margin: 0 0 _size(element-margin) 0;
width: 100%;
tbody {
tr {
border: solid 1px _palette(border);
border-left: 0;
border-right: 0;
&:nth-child(2n + 1) {
background-color: _palette(border-bg);
}
}
}
td {
padding: 0.75em 0.75em;
}
th {
color: _palette(fg-bold);
font-size: 0.9em;
font-weight: _font(weight-bold);
padding: 0 0.75em 0.75em 0.75em;
text-align: left;
}
thead {
border-bottom: solid 2px _palette(border);
}
tfoot {
border-top: solid 2px _palette(border);
}
&.alt {
border-collapse: separate;
tbody {
tr {
td {
border: solid 1px _palette(border);
border-left-width: 0;
border-top-width: 0;
&:first-child {
border-left-width: 1px;
}
}
&:first-child {
td {
border-top-width: 1px;
}
}
}
}
thead {
border-bottom: 0;
}
tfoot {
border-top: 0;
}
}
}
/* Button */
input[type="submit"],
input[type="reset"],
input[type="button"],
button,
.button {
@include vendor('appearance', 'none');
@include vendor('transition', ('background-color #{_duration(transitions)} ease-in-out', 'color #{_duration(transitions)} ease-in-out'));
background-color: transparent;
border-radius: 3px;
border: 0;
box-shadow: inset 0 0 0 2px _palette(border);
color: _palette(fg-bold);
cursor: pointer;
display: inline-block;
font-size: 0.8em;
font-weight: _font(weight-bold);
height: 3.125em;
letter-spacing: _size(letter-spacing-alt);
line-height: 3.125em;
max-width: 30em;
padding: 0 2.75em;
text-align: center;
text-decoration: none;
text-transform: uppercase;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
&:hover {
background-color: _palette(border-bg);
}
&:active {
background-color: _palette(border2-bg);
}
&.icon {
&:before {
margin-right: 0.5em;
}
}
&.fit {
width: 100%;
}
&.small {
font-size: 0.8em;
}
&.large {
font-size: 1.35em;
}
&.primary {
background-color: _palette(accent6, bg);
box-shadow: none !important;
color: _palette(accent6, fg-bold) !important;
&:hover {
background-color: lighten(_palette(accent6, bg), 5) !important;
}
&:active {
background-color: darken(_palette(accent6, bg), 5) !important;
}
}
&.disabled,
&:disabled {
@include vendor('pointer-events', 'none');
opacity: 0.25;
}
@include breakpoint('<=small') {
height: 3.75em;
line-height: 3.75em;
}
}
/* Features */
.features {
@include vendor('display', 'flex');
@include vendor('flex-wrap', 'wrap');
@include vendor('justify-content', 'center');
list-style: none;
padding: 0;
width: 100%;
li {
@include padding(4em, 4em, (0,0,0,2em));
display: block;
position: relative;
text-align: left;
width: 50%;
@for $i from 1 through _misc(max-features) {
$j: 0.035 * $i;
&:nth-child(#{$i}) {
background-color: rgba(0,0,0, $j);
}
}
&:before {
display: block;
color: _palette(accent2, bg);
position: absolute;
left: 1.75em;
top: 2.75em;
font-size: 1.5em;
}
&:nth-child(1) {
border-top-left-radius: 3px;
}
&:nth-child(2) {
border-top-right-radius: 3px;
}
&:nth-last-child(1) {
border-bottom-right-radius: 3px;
}
&:nth-last-child(2) {
border-bottom-left-radius: 3px;
}
@include breakpoint('<=medium') {
@include padding(3em, 2em);
text-align: center;
&:before {
left: 0;
margin: 0 0 (_size(element-margin) * 0.5) 0;
position: relative;
top: 0;
}
}
@include breakpoint('<=small') {
@include padding(3em, 0);
background-color: transparent !important;
border-top: solid 2px _palette(border);
width: 100%;
&:first-child {
border-top: 0;
}
}
}
}
/* Spotlight */
.spotlight {
@include vendor('align-items', 'center');
@include vendor('display', 'flex');
.image {
@include vendor('order', '1');
border-radius: 0;
width: 40%;
img {
border-radius: 0;
width: 100%;
}
}
.content {
@include padding(2em, 4em);
@include vendor('order', '2');
max-width: 48em;
width: 60%;
}
&:nth-child(2n) {
@include vendor('flex-direction', 'row-reverse');
}
@for $i from 1 through _misc(max-spotlights) {
$j: 0.075 * $i;
&:nth-child(#{$i}) {
background-color: rgba(0,0,0, $j);
}
}
@include breakpoint('<=large') {
.image {
width: 45%;
}
.content {
width: 55%;
}
}
@include breakpoint('<=medium') {
display: block;
br {
display: none;
}
.image {
width: 100%;
}
.content {
@include padding(4em, 3em);
max-width: none;
text-align: center;
width: 100%;
}
}
@include breakpoint('<=small') {
.content {
@include padding(3em, 2em);
}
}
}
/* Wrapper */
@mixin wrapper($p) {
background-color: _palette($p, bg);
color: _palette($p, fg);
// Basic
strong, b {
color: _palette($p, fg-bold);
}
h2, h3, h4, h5, h6 {
color: _palette($p, fg-bold);
}
hr {
border-color: _palette($p, border);
}
blockquote {
border-color: _palette($p, border);
}
code {
background: _palette($p, border-bg);
}
// Section/Article
header {
p {
color: _palette($p, fg-light);
}
&.major {
h2, h3, h4, h5, h6 {
border-color: _palette($p, border);
}
p {
color: _palette($p, fg);
}
}
}
// Form
label {
color: _palette($p, fg-bold);
}
input[type="text"],
input[type="password"],
input[type="email"],
select,
textarea {
background-color: _palette($p, border-bg);
}
select {
background-image: svg-url("<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'><path d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='#{_palette($p, border)}' /></svg>");
option {
color: _palette($p, fg-bold);
background: _palette($p, bg);
}
}
input[type="checkbox"],
input[type="radio"], {
& + label {
color: _palette($p, fg);
&:before {
background: _palette($p, border-bg);
}
}
&:checked + label {
&:before {
background: _palette($p, fg-bold);
color: _palette($p, bg);
}
}
}
::-webkit-input-placeholder {
color: _palette($p, fg-light) !important;
}
:-moz-placeholder {
color: _palette($p, fg-light) !important;
}
::-moz-placeholder {
color: _palette($p, fg-light) !important;
}
:-ms-input-placeholder {
color: _palette($p, fg-light) !important;
}
.formerize-placeholder {
color: _palette($p, fg-light) !important;
}
// Icon
.icon {
&.major {
border-color: _palette($p, border);
}
}
// List
ul {
&.alt {
li {
border-color: _palette($p, border);
}
}
}
// Table
table {
tbody {
tr {
border-color: _palette($p, border);
&:nth-child(2n + 1) {
background-color: _palette($p, border-bg);
}
}
}
th {
color: _palette($p, fg-bold);
}
thead {
border-color: _palette($p, border);
}
tfoot {
border-color: _palette($p, border);
}
&.alt {
tbody {
tr {
td {
border-color: _palette($p, border);
}
}
}
}
}
// Button
input[type="submit"],
input[type="reset"],
input[type="button"],
button,
.button {
box-shadow: inset 0 0 0 2px _palette($p, border);
color: _palette($p, fg-bold);
&:hover {
background-color: _palette($p, border-bg);
}
&:active {
background-color: _palette($p, border2-bg);
}
}
// Features
.features {
li {
@include breakpoint('<=small') {
border-top-color: _palette($p, border);
}
}
}
}
.wrapper {
@include padding(6em, 0);
> .inner {
width: 60em;
margin: 0 auto;
@include breakpoint('<=large') {
width: 90%;
}
@include breakpoint('<=medium') {
width: 100%;
}
}
&.alt {
padding: 0;
}
&.style1 {
@include wrapper(accent1);
}
&.style2 {
background-color: _palette(bg);
}
&.style3 {
@include wrapper(accent5);
}
&.style4 {
background-color: transparent;
}
&.style5 {
@include wrapper(accent7);
}
@include breakpoint('<=medium') {
@include padding(4em, 3em);
}
@include breakpoint('<=small') {
@include padding(3em, 2em);
}
}
/* Page Wrapper + Menu */
#page-wrapper {
@include vendor('transition', 'opacity #{_duration(menu)} ease');
opacity: 1;
padding-top: 3em;
&:before {
background: rgba(0,0,0,0);
content: '';
display: block;
display: none;
height: 100%;
left: 0;
position: fixed;
top: 0;
width: 100%;
z-index: _misc(z-index-base) + 1;
}
}
#menu {
@include vendor('transform', 'translateX(20em)');
@include vendor('transition', 'transform #{_duration(menu)} ease');
-webkit-overflow-scrolling: touch;
background: _palette(accent1, bg);
color: _palette(accent1, fg-bold);
height: 100%;
max-width: 80%;
overflow-y: auto;
padding: 3em 2em;
position: fixed;
right: 0;
top: 0;
width: 20em;
z-index: _misc(z-index-base) + 2;
ul {
list-style: none;
padding: 0;
> li {
border-top: solid 1px _palette(accent1, border);
margin: 0.5em 0 0 0;
padding: 0.5em 0 0 0;
&:first-child {
border-top: 0 !important;
margin-top: 0 !important;
padding-top: 0 !important;
}
> a {
border: 0;
color: inherit;
display: block;
font-size: 0.8em;
letter-spacing: _size(letter-spacing-alt);
outline: 0;
text-decoration: none;
text-transform: uppercase;
@include breakpoint('<=small') {
line-height: 3em;
}
}
}
}
.close {
background-image: url('images/close.svg');
background-position: 4.85em 1em;
background-repeat: no-repeat;
border: 0;
cursor: pointer;
display: block;
height: 3em;
position: absolute;
right: 0;
top: 0;
vertical-align: middle;
width: 7em;
}
@include breakpoint('<=small') {
padding: 3em 1.5em;
}
}
body.is-menu-visible {
#page-wrapper {
opacity: 0.35;
&:before {
display: block;
}
}
#menu {
@include vendor('transform', 'translateX(0)');
}
}
/* Header */
#header {
@include vendor('transition', 'background-color #{_duration(transitions)} ease');
background: _palette(bg);
height: 3em;
left: 0;
line-height: 3em;
position: fixed;
top: 0;
width: 100%;
z-index: _misc(z-index-base);
h1 {
@include vendor('transition', 'opacity #{_duration(transitions)} ease');
height: inherit;
left: 1.25em;
line-height: inherit;
position: absolute;
top: 0;
a {
border: 0;
display: block;
height: inherit;
line-height: inherit;
@include breakpoint('<=small') {
font-size: 0.8em;
}
}
}
nav {
height: inherit;
line-height: inherit;
position: absolute;
right: 0;
top: 0;
> ul {
list-style: none;
margin: 0;
padding: 0;
white-space: nowrap;
> li {
display: inline-block;
padding: 0;
> a {
border: 0;
color: _palette(fg-bold);
display: block;
font-size: 0.8em;
letter-spacing: _size(letter-spacing-alt);
padding: 0 1.5em;
text-transform: uppercase;
&.menuToggle {
outline: 0;
position: relative;
&:after {
background-image: url('images/bars.svg');
background-position: right center;
background-repeat: no-repeat;
content: '';
display: inline-block;
height: 3.75em;
vertical-align: top;
width: 2em;
}
@include breakpoint('<=small') {
padding: 0 1.5em;
span {
display: none;
}
}
}
@include breakpoint('<=small') {
padding: 0 0 0 1.5em;
}
}
&:first-child {
margin-left: 0;
}
}
}
}
&.alt {
background: transparent;
h1 {
@include vendor('pointer-events', 'none');
opacity: 0;
}
}
}
/* Banner */
#banner {
@include vendor('display', 'flex');
@include vendor('flex-direction', 'column');
@include vendor('justify-content', 'center');
cursor: default;
height: 100vh;
min-height: 35em;
overflow: hidden;
position: relative;
text-align: center;
h2 {
@include vendor('transform', 'scale(1)');
@include vendor('transition', ('transform 0.5s ease', 'opacity 0.5s ease'));
display: inline-block;
font-size: 1.75em;
opacity: 1;
padding: 0.35em 1em;
position: relative;
z-index: 1;
&:before, &:after {
@include vendor('transition', 'width 0.85s ease');
@include vendor('transition-delay', '0.25s');
background: _palette(fg-bold);
content: '';
display: block;
height: 2px;
position: absolute;
width: 100%;
}
&:before {
top: 0;
left: 0;
}
&:after {
bottom: 0;
right: 0;
}
}
p {
letter-spacing: _size(letter-spacing-alt);
text-transform: uppercase;
a {
color: inherit;
}
}
.more {
@include vendor('transition', ('transform 0.75s ease', 'opacity 0.75s ease'));
@include vendor('transition-delay', '3.5s');
@include vendor('transform', 'translateY(0)');
border: none;
bottom: 0;
color: inherit;
font-size: 0.8em;
height: 8.5em;
left: 50%;
letter-spacing: _size(letter-spacing-alt);
margin-left: -8.5em;
opacity: 1;
outline: 0;
padding-left: _size(letter-spacing-alt);
position: absolute;
text-align: center;
text-transform: uppercase;
width: 16em;
z-index: 1;
&:after {
background-image: url('images/arrow.svg');
background-position: center;
background-repeat: no-repeat;
background-size: contain;
bottom: 4em;
content: '';
display: block;
height: 1.5em;
left: 50%;
margin: 0 0 0 -0.75em;
position: absolute;
width: 1.5em;
}
}
&:after {
@include vendor('pointer-events', 'none');
@include vendor('transition', 'opacity #{_duration(fadein)} ease-in-out');
@include vendor('transition-delay', '1.25s');
content: '';
background: _palette(bg);
display: block;
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
opacity: 0;
}
@include breakpoint('<=small') {
@include padding(7em, 3em);
height: auto;
min-height: 0;
h2 {
font-size: 1.25em;
}
br {
display: none;
}
.more {
display: none;
}
}
}
body.is-preload {
#banner {
h2 {
@include vendor('transform', 'scale(0.95)');
opacity: 0;
&:before, &:after {
width: 0;
}
}
.more {
@include vendor('transform', 'translateY(8.5em)');
opacity: 0;
}
&:after {
opacity: 1;
}
}
}
/* CTA */
#cta {
.inner {
@include vendor('display', 'flex');
max-width: 45em;
header {
@include vendor('order', '1');
padding-right: 3em;
width: 70%;
p {
color: inherit;
}
}
.actions {
@include vendor('order', '2');
width: 30%;
}
@include breakpoint('<=medium') {
display: block;
text-align: center;
header {
padding-right: 0;
width: 100%;
}
.actions {
margin-left: auto;
margin-right: auto;
max-width: 20em;
width: 100%;
}
}
@include breakpoint('<=small') {
.actions {
max-width: none;
}
}
}
}
/* Main */
#main {
> header {
@include padding(12em, 0);
@include vendor('background-image', ('linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5))', 'url("../../images/banner.jpg")'));
background-attachment: fixed;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
text-align: center;
h2 {
font-size: 1.75em;
margin: 0 0 (_size(element-margin) * 0.25) 0;
}
p {
color: inherit;
letter-spacing: _size(letter-spacing-alt);
text-transform: uppercase;
top: 0;
a {
color: inherit;
}
}
@include breakpoint('<=xlarge') {
@include padding(10em, 0);
}
@include breakpoint('<=large') {
@include padding(8em, 3em);
}
@include breakpoint('<=medium') {
@include padding(10em, 3em);
}
@include breakpoint('<=small') {
@include padding(5em, 3em);
h2 {
font-size: 1.25em;
margin: 0 0 (_size(element-margin) * 0.5) 0;
}
}
}
}
body.is-mobile {
#main {
> header {
background-attachment: scroll;
}
}
}
/* Footer */
#footer {
@include padding(6em, 0);
background-color: darken(_palette(bg), 8);
text-align: center;
.icons {
font-size: 1.25em;
a {
color: _palette(fg-light);
&:hover {
color: _palette(fg);
}
}
}
.copyright {
color: _palette(fg-light);
font-size: 0.8em;
letter-spacing: _size(letter-spacing-alt);
list-style: none;
padding: 0;
text-transform: uppercase;
li {
border-left: solid 1px _palette(fg-light);
display: inline-block;
line-height: 1em;
margin-left: 1em;
padding-left: 1em;
&:first-child {
border-left: 0;
margin-left: 0;
padding-left: 0;
}
a {
color: inherit;
&:hover {
color: _palette(fg);
}
}
@include breakpoint('<=xsmall') {
border: 0;
display: block;
line-height: 1.65em;
margin: 0;
padding: 0.5em 0;
}
}
}
@include breakpoint('<=medium') {
@include padding(4em, 3em);
}
@include breakpoint('<=small') {
@include padding(3em, 2em);
}
}
/* Landing */
body.landing {
#page-wrapper {
@include vendor('background-image', ('linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5))', 'url("../../images/banner.jpg")'));
background-attachment: fixed;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
padding-top: 0;
}
#footer {
background-color: darken(transparentize(_palette(bg), 0.1), 8);
}
}
body.is-mobile {
&.landing {
#page-wrapper {
background: none;
}
#banner,
.wrapper.style4 {
@include vendor('background-image', ('linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5))', 'url("../../images/banner.jpg")'));
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
}
#footer {
background-color: darken(_palette(bg), 8);
}
}
}