$header-color: #2e2e2e; $text: #3a4145; $link-text: #4a4a4a; $highlighted-link-text: #111; $bg: #3a4145; $arrow-bg: rgba(255, 255, 255, .7); $white: #fff; $page-bg: #3498db; $header-link-color: #ccc; $subtext-color: #666; $footer-color: #3a4145; @mixin respond-to($media) { @if $media == handhelds { @media only screen and (max-width: 767px) { @content; } } @else if $media == medium-screens { @media only screen and (min-width: 768px) and (max-width: 1199px) { @content; } } @else if $media == semi-large-screens { @media only screen and (min-width: 1200px) and (max-width: 1765px) { @content; } } } html { box-sizing: border-box; font-size: 62.5%; height: 100%; max-height: 100%; } * { &:before, &:after { box-sizing: inherit; } } body { color: $text; font-family: 'Lato', sans-serif; font-size: 1.8rem; height: 100%; letter-spacing: .01rem; line-height: 1.75em; max-height: 100%; .post-title { &:not(.post-template) { font-size: 3.6rem; } } &.page-template { .post-title { font-size: 5rem; } } } h1, h2, h3, h4, h5, h6 { font-family: 'Catamaran', sans-serif; line-height: 1.2em; margin: 1.8em 0 0.5em; } a { color: $link-text; transition: color .3s ease; &:hover { color: $highlighted-link-text; } } .site-wrapper { display: flex; flex-direction: column; } /** * =================== * FRONTPAGE DESIGN * =================== */ .header-bg { @include respond-to(handhelds) { height: 110vh; } background: url('../img/bg.png'); background-position: center; background-repeat: no-repeat; background-size: cover; height: 120vh; position: relative; width: 100%; } .header-overlay { @include respond-to(handhelds) { height: 110vh; } background: linear-gradient(180deg, transparent, $page-bg 85%); height: 120vh; left: 0; opacity: 1; position: absolute; right: 0; top: 0; } .below-header { background: $page-bg; position: relative; &:before { border-bottom: 2px solid $white; border-right: 130vw solid $white; border-top: 30vh solid $page-bg; bottom: 0; content: ''; position: absolute; right: 0; width: 0; } } .header-text { height: auto; left: 0; position: absolute; top: 0; width: 100%; z-index: 50; .top-content { @include respond-to(handhelds) { padding: 15vh 5vh 0; } @include respond-to(medium-screens) { padding: 25vh 8vh 0; } color: $white; padding: 35vh 10vw 0; text-align: center; h1 { @include respond-to(handhelds) { font-size: 4em; } font-family: 'Source Sans Pro', sans-serif; font-size: 5em; font-weight: 300; line-height: 1.1em; margin: 0; } h2 { @include respond-to(handhelds) { font-size: 1.2em; } font-family: 'Source Sans Pro', sans-serif; font-size: 1.33em; font-weight: 300; line-height: 1.1em; margin-bottom: 10px; margin-top: 20px; } h4 { @include respond-to(handhelds) { font-size: .9em; } font-family: 'Source Sans Pro', sans-serif; font-size: 1em; font-weight: 300; line-height: 1.4em; margin-top: 30px; } a { margin-top: 60px; } } $top-layer-effect: rgba(0, 0, 0, .15); $layer-effect: #eee; .hidden-content { @include respond-to(handhelds) { width: 95vw; } @include respond-to(semi-large-screens) { width: 80vw; } @include respond-to(medium-screens) { width: 80vw; } margin: auto; margin-top: 10vh; max-width: 1140px; transition: translateZ(0); width: 60vw; } .grid { @include respond-to(handhelds) { margin: 0; padding: 0; } min-width: 0; .col-7-12 { @include respond-to(medium-screens) { width: 100%; } @include respond-to(handhelds) { width: 100%; } } .col-4-12 { @include respond-to(medium-screens) { border-top: 2px dotted $page-bg; margin: 5vh 0 0; padding-top: 5vh; width: 100%; } @include respond-to(handhelds) { border-top: 2px dotted $page-bg; margin: 5vh 0 0; padding-top: 5vh; width: 100%; } } } .cv-box { background: $white; box-shadow: // Top layer 0 1px 1px $top-layer-effect, // Second layer 0 10px 0 -5px $layer-effect, // Second layer shadow 0 10px 1px -4px $top-layer-effect, // Third layer 0 20px 0 -10px $layer-effect, // Third layer shadow 0 20px 1px -9px $top-layer-effect; padding: 30px; transition: translateZ(0); p { font-size: .9em; line-height: 1.5em; margin: 1em 0; } .right { @include respond-to(handhelds) { display: block; font-size: .8em; margin-bottom: 10px; margin-top: -4px; width: 100%; } display: inline-block; float: right; } .subtext { color: $subtext-color; display: block; font-size: .8em; line-height: 1.3em; width: 80%; } .languages { p { font-size: .8em; line-height: 1.5em; margin: 0; padding: 0; } } .profile { h6 { font-size: 1.2em; font-weight: 300; margin: 1em 0 .4em; } p { font-size: .8em; line-height: 1.5em; margin: 0; padding: 0; } .full-width { clear: both; margin-top: 5vh; width: 100%; } .small-footer { color: $subtext-color; } .links { list-style-type: none; margin-bottom: 2.2em; padding: 0; li { font-family: 'Source Sans Pro', sans-serif; font-size: 16px; line-height: 18px; min-height: 22px; padding: 2px 0 0; a { text-decoration: none; &:hover { text-decoration: underline; } } } } } .profile-picture { float: left; margin: 0 20px 20px 0; } h5 { font-family: 'Lato', sans-serif; font-size: 1.8rem; font-weight: 600; line-height: 3rem; margin-bottom: 2vh; } h6 { font-family: 'Lato', sans-serif; font-size: 1.6rem; line-height: 2rem; } } $tag-bg: rgba(255, 255, 255, .3); .tags { color: $white; font-family: 'Source Sans Pro', sans-serif; line-height: 1.1em; margin-top: 10vh; text-align: center; small { font-size: .8em; } ul { @include respond-to(semi-large-screens) { max-width: 50%; } @include respond-to(medium-screens) { max-width: 50%; } @include respond-to(handhelds) { max-width: 80%; } line-height: 3em; list-style: none; margin: auto; max-width: 30vw; padding: 0; } li { background: $tag-bg; border-radius: 5px; display: inline-block; font-size: 16px; line-height: 1.5em; margin: 0 .5vw; padding: 4px 10px; &:hover { opacity: .8; } } a { color: $white; } } } .profile-picture { border-radius: 48px; height: 96px; width: 96px; } .main-header { background: $bg no-repeat center center; background-size: cover; display: table; height: 100vh; overflow: hidden; position: relative; text-align: center; width: 100%; .inner { width: 80%; } } /** * ======================= * FRONT PAGE CONTENT * ======================= */ .scroll-down { @include respond-to(handhelds) { display: none; } animation: bounce 4s 2s infinite; color: $arrow-bg; display: block; font-size: 24px; height: 24px; left: 50%; margin-left: -12px; position: relative; text-align: center; text-decoration: none; transform: rotate(-90deg); transition: translateZ(0); width: 24px; z-index: 100; // Stop the bouncing while hovered &:hover { animation: none; color: $white; } } $button-shadow: rgba(0, 0, 0, .1); .mobile-button { @include respond-to(handhelds) { display: inline-block; } background: $white; box-shadow: 0 8px 15px $button-shadow; color: $page-bg; display: none; font-family: 'Source Sans Pro', sans-serif; font-size: .9em; line-height: 1.2em; padding: .8em 2em; width: auto; &:hover { cursor: pointer; } } .blog-title { border-bottom: 2px solid $page-bg; display: inline-block; font-family: 'Lato', sans-serif; font-size: 1.3em; font-weight: 300; line-height: 1.7em; padding: 0 .2em; text-align: center; } .blog-title-container { text-align: center; } .index-content { margin-top: 0; position: relative; z-index: 52; } // FOOTER .footer { background: $footer-color; min-height: 5vh; .container { @include respond-to(handhelds) { text-align: center; } color: $white; font-family: 'Lato', sans-serif; font-size: .6em; height: auto; line-height: 1.8em; padding: 2vh 0; a { color: $white; text-decoration: none; &:hover { text-shadow: -.2px -.2px 0 $white, .2px -.2px 0 $white, -.2px .2px 0 $white, .2px .2px 0 $white; transition: all .5s; } } } } .container { @include respond-to(handhelds) { width: 90vw; } @include respond-to(semi-large-screens) { width: 80vw; } @include respond-to(medium-screens) { width: 80vw; } height: auto; margin: auto; max-width: 1140px; width: 60vw; .right { @include respond-to(handhelds) { display: block; float: none; } float: right; } } /** * ================= * DEFAULT PAGE DESIGN * ================= */ $post-bg: $white; $post-border: #ebf2f6; $post-after-border: #e7eef2; $post-meta: #9eabb3; $post-meta-link: #9eabb3; main { flex-grow: 1; } // HEADER .top-header { background: $page-bg; height: auto; .container { @include respond-to(handhelds) { text-align: center; } color: $white; font-family: 'Source Sans Pro', sans-serif; font-size: 1.2em; font-weight: 600; line-height: 1.5em; padding: 2vh 0; a { color: $white; text-decoration: none; &:hover { border-bottom: 2px solid $white; } } } } // This class is applied to all posts .post { border-bottom: $post-border 1px solid; margin: 4rem auto; max-width: 710px; padding-bottom: 4rem; position: relative; width: 80%; word-wrap: break-word; } .post-title { line-height: 1.2em; a { text-decoration: none; } } .post-excerpt { p { font-size: .9em; line-height: 1.7em; margin: 0; } } .read-more { text-decoration: none; } .post-meta { color: $post-meta; display: block; font-family: 'Lato', sans-serif; font-size: 1.5rem; line-height: 2.2rem; margin: 1.75rem 0; word-spacing: .2rem; a { color: $post-meta-link; text-decoration: none; &:hover { text-decoration: underline; } } } $post-date-border: #d5dbde; .post-date { border-left: $post-date-border 1px solid; display: inline-block; font-size: 1.3rem; margin-left: 8px; padding-left: 12px; text-transform: uppercase; white-space: nowrap; } .author-thumb { border-radius: 100%; float: left; height: 24px; margin-right: 9px; width: 24px; } .author-profile { margin-top: 5rem; } .author-profile .author-image { margin-top: 0; margin-bottom: 20px; } .author-image-cover { margin-top: -100px; } .user-meta { min-height: 77px; padding: .3rem 40px 0 100px; position: relative; } .user-image { left: 0; position: absolute; top: 0; } .user-name { display: block; font-weight: 700; } .user-bio { display: block; font-size: 1.4rem; line-height: 1.5rem; max-width: 440px; } .publish-meta { padding: 4.3rem 0 4rem; position: absolute; right: 0; text-align: right; top: 0; } .publish-heading { display: block; font-weight: 700; } .publish-date { display: block; font-size: 1.4rem; line-height: 1.5rem; } .no-cover { display: none; } .page-title { line-height: 1.2em; @media only screen and (max-width: 500px) { text-align: center; } .description { color: $post-meta; display: block; font-size: .5em; font-weight: 300; } } .main-header-content { hr { margin: 2em 0; } } .extra-pagination { &:after { display: none; } } .color-cover { background-color: $page-bg; } .read-next { @media only screen and (max-width: 500px) { margin-bottom: 0; } } .read-next-story .post { padding: 6rem; }