@import " fonts " ;
$width-wrap : 960 px ;
$width-narrow : $width-wrap * 0 .75 ;
$col-accent : #fc0 ;
$col-dark : #131516 ;
$col-medium : lighten ( $col-dark , 8 ) ;
$col-light : lighten ( $col-dark , 30 ) ;
$col-white : #e8e6e3 ;
$col-offwhite : darken ( $col-white , 25 ) ;
* , * : before , * : after {
box-sizing : border-box ;
}
body {
display : flex ;
flex-direction : column ;
gap : 1 rem ;
max-width : 60 em ;
width : 100 % ;
min-height : 100 vh ;
margin : 0 auto ;
background : $col-medium ;
color : $col-white ;
font-family : open - sans , sans ;
text-rendering : optimizeLegibility ;
}
p {
line-height : 1 .75 ;
}
a {
color : $col-accent ;
text-decoration : none ;
}
img {
max-width : 100 % ;
}
body > header {
. img {
display : block ;
width : 100 % ;
height : 8 rem ;
background :
url ( / logo . svg ) ,
linear-gradient ( 0deg , rgba ( 0 , 0 , 0 , 0 . 6 ) , rgba ( 0 , 0 , 0 , 0 . 6 ) ) ,
url ( / header . jpg ) ;
background-size : auto 60 % , cover , cover ;
background-position : center ;
background-repeat : no-repeat ;
@media only screen and ( min-width : $width-narrow ) {
height : 10 rem ;
background-position : 3 rem , center , center ;
}
}
nav {
position : relative ;
width : 100 % ;
height : 3 rem ;
background : $col-dark ;
display : flex ;
justify-content : center ;
align-items : stretch ;
& : after {
content : " " ;
display : block ;
position : absolute ;
bottom : 0 ;
height : 2 px ;
width : 100 % ;
background : $col-light ;
}
a {
display : flex ;
align-items : center ;
padding : 0 1 em ;
height : 100 % ;
z-index : 1 ;
border-bottom : 2 px solid $col-light ;
color : $col-accent ;
text-decoration : none ;
& : hover , &. active {
background : $col-medium ;
border-bottom : 2 px solid $col-accent ;
}
@media only screen and ( min-width : $width-narrow ) {
padding : 0 1 .5 em ;
}
}
}
}
body > main {
display : flex ;
flex-direction : column ;
gap : 1 rem ;
section {
padding : 1 .5 rem ;
background : $col-dark ;
h2 {
margin : 3 rem 0 2 rem 0 ;
}
h2 : before {
content : " " ;
display : block ;
width : 3 em ;
height : 1 px ;
margin-bottom : 1 rem ;
background : $col-accent ;
}
* : first-child {
margin-top : 0 ;
}
* : last-child {
margin-bottom : 0 ;
}
}
section . flex {
display : flex ;
flex-direction : column ;
gap : 1 rem ;
padding : 0 ;
background : inherit ;
@media only screen and ( min-width : $width-narrow ) {
flex-direction : row ;
}
div {
width : 100 % ;
background : $col-dark ;
padding : 1 .5 rem ;
}
}
}
body > footer {
width : 100 % ;
padding : 1 rem ;
margin-top : auto ;
font-size : .8 em ;
@media only screen and ( min-width : $width-wrap ) {
padding : 1 rem 0 ;
}
}
. project-list {
display : grid ;
grid-template-columns : 1 fr ;
gap : 1 rem ;
background : none ;
padding : 0 ;
@media only screen and ( min-width : $width-narrow ) {
grid-template-columns : 1 fr 1 fr ;
}
& > a {
display : flex ;
min-height : 10 rem ;
background : $col-dark ;
color : inherit ;
. title {
font-weight : bold ;
font-size : 1 .5 em ;
margin-bottom : .5 em ;
line-height : 1 ;
}
. description {
padding : 1 .5 em 1 em ;
width : 100 % ;
p {
margin : 0 ;
line-height : 1 .5 ;
color : $col-offwhite ;
}
}
. image {
display : block ;
height : 100 % ;
width : 12 rem ;
// !important delcarations are needed here, because some browsers override the inline `background-image` (from templates/macros.html) to just `background`, which ignores these.
background-size : cover !important ;
background-position : center !important ;
}
}
}