--- styles: true --- @charset "utf-8"; // Variables $color__site--background: #fff; $color__site--heading: #333; $color__site--body: darken($color__site--heading, 10%); $color__feature--background: darken($color__site--background, 5%); $color__site--captions: lighten($color__site--heading, 50%); $color__site--link: #05bf85; $color__site--link--hover: darken($color__site--link, 10%); $color__site--link--current: desaturate($color__site--link, 100%); $color__site--accent: #05bf85; // Frameworks @import "normalize"; @import "sassline-base"; @import "syntax"; @import "flex"; // Structural elements body { background: $color__site--background; color: $color__site--body; height: 100%; display: flex; @include flex-direction(column); overflow-x: hidden; } .container { width: 90%; max-width: 1200px; margin: 0 auto; } // Header, feature and footer .header, .footer { .container { padding: 1rem 0; @include flexbox; @include flex-direction(column); @include align-items(center); text-align: center; } @include breakpoint(break-1) { .container { @include flex-direction(row); @include justify-content(space-between); text-align: inherit; } } } .feature { padding-bottom: .4rem; margin-bottom: 1.6rem; text-align: center; background: $color__site--accent; background-size: cover; background-position: center; @include flexbox; .container { min-height: 35vh; @include flex-direction(column); @include justify-content(center); } } .logo { display: inline-block; .icon { width: 4rem; height: 4rem; } } .small { padding-top: .6rem; color: $color__site--captions; display: inline-block; } .footer { background: lighten(invert($color__site--background), 15%); a { color: invert($color__site--heading); &:hover { color: lighten(invert($color__site--body), 15%); } } } // Nav and copyright .nav { &--paginator { @include flexbox; @include justify-content(space-between); color: $color__site--captions; text-align: center; } &--social { text-align: left; } } .pagination { min-width: 20%; } .copyright { @include breakpoint(break-1) { @include order(-1); } } // Main content .main { @include flexbox; @include flex-direction(column); margin-bottom: 1.6rem; @include breakpoint(break-1) { @include flex-direction(row); } } .main { @include flex(1, 0, auto); } .header, .feature, .footer { @include flex(0, 0, auto); } .content { width: 100%; @include breakpoint(break-1) { width: 62%; margin-right: 4%; &--full { width: 100%; margin-right: 0%; .figure--full { left: 50%; } } &--aside-left { margin-right: 0; margin-left: 4%; @include order(2); .figure--full { left: 19.4%; } } } } .aside { max-width: 100%; @include breakpoint(break-1) { max-width: 34%; } } // Lists .list { &--posts { list-style: none; } &--nav { list-style: none; } .item--post { margin-left: 0; } } .item { &--nav { display: inline-block; margin-left: 1rem; &:first-of-type { margin-left: 0; } } &--current { a { color: $color__site--link--current; } } } // Links, icons and images .link { display: inline-block; margin: .2rem; .icon { display: inline-block; transition: fill .1s; min-width: 24px; min-height: 24px; &:hover { fill: darken($color__site--link, 10%); } } } .icon { vertical-align: middle; width: 1em; height: 1em; fill: CurrentColor; } svg { width: 100%; height: 100%; } img { max-width: 100%; height: auto; } .figure { line-height: 0; &--full { width: 100vw; position: relative; left: 50%; margin-left: -50vw; .caption { padding-left: .8rem; padding-right: .8rem; } } @include breakpoint(break-1) { &--full { left: 80.6%; } &--left { float: left; padding-right: .8rem; } &--right { float: right; padding-left: .8rem; } } } // Video and map embeds .video, .map { position: relative; padding-bottom: 56.25%; height: 0; iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } } .map { padding-bottom: 70%; } .figure, .video, .map { margin-bottom: .8rem; } audio, video { width: 100%; } // Form elements and buttons button, .button, input[type="text"], input[type="email"], input[type="submit"], textarea { padding: .6rem 1.2rem; margin-bottom: .6rem; transition: color .1s, background-color .1s, border .1s; line-height: inherit; border: none; box-shadow: none; border-radius: 0; -webkit-appearance: none; &:focus { outline: solid .2rem invert($color__site--accent); } .icon { margin: 0 0 .35rem; } } input[type="submit"], button, .button { cursor: pointer; display: inline-block; background: $color__site--accent; position: relative; transition: box-shadow .1s; will-change: box-shadow; box-shadow: inset 0 0 0 2rem transparent; &:hover { box-shadow: inset 0 0 0 2rem rgba(0,0,0,0.2); } &:active, &:focus { box-shadow: inset 0 0 0 2rem rgba(0,0,0,0.4); } } input[type="text"], input[type="email"], textarea { width: 100%; border: 1px solid $color__site--captions; &:hover { border-color: darken($color__site--captions, 20%); } } textarea { resize: vertical; } label { @include baseline($fontsize: zeta, $font: $bodytype, $lineheight: 2, $below: 2, $breakpoint: all); } .required { color: red; } ::-webkit-input-placeholder { color: darken($color__site--captions, 30%); } ::-moz-placeholder { color: darken($color__site--captions, 30%); } :-ms-input-placeholder { color: darken($color__site--captions, 30%); } :-moz-placeholder { color: darken($color__site--captions, 30%); } ::selection { background: $color__site--heading; color: $color__site--background; text-shadow: none; } // Sassline overrides .typeset { .button, button { background-image: none; text-shadow: none; color: lighten(invert($color__site--body), 15%); &:hover, &:active, &:focus { background-image: none; color: lighten(invert($color__site--body), 15%); } } hr { width: 100%; } }