funky/assets/styles.scss

393 lines
6.0 KiB
SCSS
Executable File

---
styles: true
---
// Frameworks & Imports
@charset "utf-8";
@import "colors.scss";
@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;
max-width: 60%;
@include flex-direction(column);
@include justify-content(center);
}
}
.logo {
display: inline-block;
line-height: 0;
img {
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%;
opacity: 0.5;
transition: opacity .1s;
&:hover {
opacity: 1;
}
}
}
// 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%;
}
}