You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
web/sass/main.scss

723 lines
12 KiB
SCSS

@import "minireset";
@import "fonts";
@mixin top-border($color: $rambotron-blue) { border-top: 5px solid $color }
@mixin shadow { box-shadow: 0px 1px 9px #00000033 }
$width-full: 1200px;
$width-thin: 900px;
$light-blue: #D8DEE9;
$rambotron-blue: #54739a;
$xdark-blue: #2E3440;
a {
text-decoration: none;
color: inherit;
}
// hide content for the mobile navigation
body.hidden>*:not(header) { display: none }
body {
min-height: 100vh;
display: flex;
flex-direction: column;
font-family: "roboto", sans-serif;
font-size: 16px;
color: #2E3440;
}
header {
position: relative;
padding: 3rem 0;
border-top: 8px solid;
border-image: linear-gradient(to right, #8FBCBB 25%, #88C0D0 25%, #88C0D0 50%, #81A1C1 50%, #81A1C1 75%, #5E81AC 75%, #5E81AC 100%) 1;
&.compact {
padding: 1.3rem 0;
.wrap { height: 4rem }
nav.primary {
li>div {
left: 50%;
right: auto;
transform: translate(-50%, -1em);
}
li:hover>div {
transform: translate(-50%, 0);
}
}
}
.wrap {
display: flex;
justify-content: space-between;
align-items: center;
height: 5rem;
max-width: $width-full;
width: 100%;
margin: 0 auto;
padding: 0 1rem;
}
a.logo {
height: 100%;
img {
height: 100%;
max-width: none;
}
}
section {
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
}
nav {
ul {
display: flex;
a {
display: flex; // rolldown arrow alignment
align-items: center;
padding: .9em;
white-space: nowrap;
}
li:hover>a { color: var(--color) }
// rolldown arrow
li>a.rolldown::after {
content: "\ea4e";
font-family: remixicon;
font-size: .8em;
margin-left: .5em;
color: $rambotron-blue;
}
li:hover>a::after { color: inherit }
// icons
[class^="ri-"], [class*=" ri-"] {
color: var(--color);
margin-right: .5em;
}
}
}
nav.secondary {
font-size: .9rem;
color: #4C566A;
a:hover { text-decoration: underline }
}
nav.primary {
position: relative;
font-weight: bold;
font-size: 1.2em;
// rolldown
li:hover>div {
visibility: visible;
transform: translate(0);
opacity: 1;
transition: all .1s ease-out;
}
li>div {
@include top-border(var(--color));
@include shadow;
display: grid;
grid-template-columns: 1fr 1fr;
column-gap: 1em;
position: absolute;
right: 0;
top: 100%;
min-width: 100%;
padding: 1rem;
background-color: #FFF;
font-size: 1rem;
font-weight: normal;
color: #2E3440;
visibility: hidden;
transform: translate(0, -1em);
opacity: 0;
z-index: 1;
.title {
margin-bottom: 1em;
padding: .5em;
font-weight: bold;
color: var(--color);
}
ul { flex-direction: column }
ul a { padding: .5em }
}
}
nav.mobile {
display: none;
.floating.visible {
visibility: visible;
opacity: 1;
height: auto;
transition: all .2s ease-out;
}
.buttons {
display: flex;
justify-content: flex-end;
font-size: 2rem;
&>* {
margin-left: .5em;
cursor: pointer;
}
}
.floating {
visibility: hidden;
position: absolute;
top: 100%;
right: 0;
width: 100%;
height: 0;
overflow: hidden;
padding: 0 1em 1em 1em;
background-color: #fff;
z-index: 1;
opacity: 0;
transition: none;
ul {
display: flex;
flex-direction: column;
font-size: 1.2rem;
li>a {
display: block;
padding: 1em 0 .5em 0;
}
div.title { display: none }
ul {
margin-left: 1em;
li>a { padding: .5em }
}
}
}
}
}
main {
max-width: $width-thin;
width: 100%;
margin: 0 auto;
padding: 1rem;
&.fullwidth, &.index { max-width: 1200px }
&.index h1 { margin: 2em 0 1em 0 }
h1, h2, h3, h4, h5, h6 {
font-weight: bold;
margin: 1em 0;
}
h1 { font-size: 2em }
h2 { font-size: 1.6em }
h3 { font-size: 1.2em }
ul {
list-style: disc;
margin-left: 1em;
}
p { margin: 1em 0 }
p, ul, ol { line-height: 1.5 }
a {
font-weight: bold;
color: $rambotron-blue;
}
a:hover { text-decoration: underline }
a[rel~="noreferrer"]::after {
content: "\ecaf";
font-family: remixicon;
font-size: .8em;
font-weight: normal;
margin-left: .2em;
}
section {
margin-bottom: 5rem;
}
.blocks {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(12em, 1fr));
grid-column-gap: 1rem;
grid-row-gap: 2rem;
align-items: stretch;
justify-items: center;
a { font-weight: normal }
a:hover { text-decoration: none }
article {
@include top-border;
display: flex;
flex-direction: column;
width: 100%;
max-width: 50em;
height: 100%;
padding: 1em;
font-size: .85em;
color: #2E3440;
a { font-weight: bold }
a:hover { text-decoration: underline }
&:hover { @include shadow }
.title {
font-weight: bold;
font-size: 1.3em;
margin: .5em 0;
a { display: block }
}
.date {
display: block;
width: 100%;
margin-top: auto;
text-align: right;
font-size: 0.8em;
color: #5c738b;
}
}
}
.blocks.noshadow article { box-shadow: none }
.websites {
grid-template-columns: 1fr 1fr 1fr 1fr;
text-align: center;
.title {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 3rem;
margin: .4em 0;
img {
max-width: 64%;
max-height: 100%;
}
}
}
.columns-2 {
grid-template-columns: 1fr 1fr;
}
.people-profile, .people-list {
display: flex;
flex-direction: column;
.role { color: #5c738b}
.other {
display: flex;
}
.info {
a {
font-weight: normal;
color: inherit;
}
a:hover { text-decoration: underline }
}
.mail, .tel, .cal, .homepage {
display: flex;
align-items: center;
&::before {
font-family: remixicon;
font-size: 1.2em;
margin-right: .4em;
}
}
.mail::before { content: "\eef6" }
.tel::before { content: "\efec" }
.cal::before { content: "\eb24" }
.homepage::before { content: "\ecaf" }
}
.people-profile .info {
text-align: center;
img {
border-radius: 50%;
width: 8em;
margin-top: 2em;
}
h1 {
margin: 1em 0 .5em 0;
font-size: 1.6rem;
}
.role {
font-weight: bold;
}
.other {
justify-content: center;
margin: 2rem 0 1rem 0;
div { margin: 0 1rem 1rem 1rem }
}
}
.people-list {
h1 { margin-bottom: -1em }
h2 {
margin: 5rem 0 4rem 0;
font-size: 1.4rem;
text-align: center;
color: #4C566A;
}
.group {
display: grid;
grid-template-columns: 1fr 1fr;
row-gap: 4rem;
column-gap: 2rem;
}
article {
@include top-border(var(--color));
display: flex;
align-items: flex-start;
text-align: left;
padding-top: 2em;
img {
width: 8rem;
margin-right: 2.5em;
border-radius: 50%;
}
.info {
display: flex;
flex-direction: column;
.name a {
display: block;
font-weight: bold;
font-size: 1.3em;
margin-bottom: .3em;
}
.role { color: var(--color) }
.other {
flex-direction: column;
margin-top: 1em;
div { margin-bottom: .5rem }
}
}
}
}
.gallery {
display: grid;
grid-template-columns: repeat(4, 1fr);
column-gap: 1em;
row-gap: 1em;
img {
display: block;
width: 100%;
}
}
.gallery:not(.index) a:hover img { box-shadow: 0px 1px 9px #00000088 }
.gallery.index {
a {
position: relative;
color: #fff;
}
.info {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 100%;
max-height: 40%;
display: flex;
flex-direction: column;
padding: .7em;
background-color: rgba(46, 52, 64, 0.85);
text-align: left;
font-weight: normal;
font-size: .85rem;
transition: all .1s ease-out;
.description {
height: 0;
margin-top: 0.85em;
overflow: hidden;
opacity: 0;
transition: all .1s linear .1s;
}
.date {
align-self: flex-end;
margin-top: auto;
font-size: .9em;
color: #ccc;
}
}
a:hover {
.info {
max-height: 100%;
padding-top: 1.5em;
}
.info .description {
height: auto;
opacity: 1;
}
}
}
.map {
width: 100%;
height: 30em;
}
.button {
border: 0;
@include top-border($light-blue);
display: inline-flex;
align-items: center;
padding: 1rem 2rem;
margin-top: 2rem;
outline: none;
background: none;
text-transform: uppercase;
font-size: .9rem;
font-weight: bold;
color: inherit;
&:hover {
@include shadow;
text-decoration: none;
}
&>i {
font-size: 1.3em;
font-weight: normal;
margin-right: .3em;
}
}
.centering {
text-align: center;
}
}
footer {
margin-top: auto;
padding: 3em 1em 2em 1em;
text-align: center;
color: #FFF;
background-color: #2E3440;
border-top: 5px solid;
border-image: linear-gradient(to right, #BF616A 20%, #D08770 20%, #D08770 40%, #EBCB8B 40%, #EBCB8B 60%, #A3BE8C 60%, #A3BE8C 80%, #B48EAD 80%) 5;
p {
font-size: .9em;
color: $light-blue;
}
p:last-child { margin-top: .5em }
nav {
margin-bottom: 2em;
font-size: 1rem;
ul {
display: flex;
justify-content: center;
flex-wrap: wrap;
a {
padding: .5em 1em;
display: inline-block;
}
a:hover{ text-decoration: underline }
li::after {
content: "\007C";
color: #4C566A;
}
li:last-child::after { display: none }
}
}
}
.rambotron {
width: 100%;
text-align: center;
color: #ECEFF4;
background: linear-gradient(rgba($rambotron-blue, 0.95), rgba($rambotron-blue, 0.95)), url("rambotron.jpg") center center no-repeat;
background-size: cover;
h1 {
font-size: 2em;
font-weight: bold;
margin: 1em 0 .8em 0;
}
p {
max-width: 40em;
margin: 0 auto;
padding: 0 1em;
line-height: 1.5;
font-size: .9rem;
}
.links {
background-color: #3B4252;
margin-top: 2.5rem;
ul {
display: flex;
justify-content: center;
flex-wrap: wrap;
a {
display: block;
padding: 1.1rem;
margin: 0 1rem;
&:hover {
background-color: #2E3440;
}
}
}
}
}
.breadcrumbs {
border-top: 1px solid $light-blue;
font-size: .9em;
.wrap {
margin: 0 auto;
display: flex;
max-width: $width-full;
width: 100%;
}
a {
display: inline-block;
padding: 1rem;
&.home {
display: flex; // vertical center
font-size: 1.5em;
color: #88c0d0;
&:hover { color: #000 }
}
}
ul {
display: flex;
li {
display: flex;
align-items: center;
&::before {
content: "\203A";
margin: 0 1em;
font-weight: bold;
color: $light-blue;
}
&:last-child { font-weight: bold }
a:hover { text-decoration: underline }
}
}
}
table {
th {
padding: 1em;
text-align: left;
background-color: $light-blue;
}
td {
padding: .25em 1em;
border-bottom: 1px solid $light-blue;
}
border: 1px solid $light-blue;
border-collapse: collapse;
border-spacing: 0;
}
@media screen and (max-width: 950px){
header { padding: 1rem 0 }
header .wrap {
align-items: center;
height: auto;
.logo { height: 3.5rem }
section {
height: auto;
width: 100%;
padding: 0;
}
nav.secondary, nav.primary { display: none }
nav.mobile { display: initial }
}
main .blocks { grid-template-columns: 1fr }
main .websites { grid-template-columns: 1fr 1fr 1fr }
main .columns-2 { grid-template-columns: 1fr }
main .people-list .group { grid-template-columns: 1fr }
main .gallery { grid-template-columns: 1fr 1fr }
}
@media screen and (max-width: 640px){
main .websites { grid-template-columns: 1fr 1fr }
main .people-profile .info .other { flex-direction: column }
main .people-list article {
flex-direction: column;
align-items: center;
img { margin: 0 }
.name { margin-top: 2rem }
.role { text-align: center }
}
.rambotron {
.links ul {
flex-direction: column;
a { margin: 0 }
}
}
.breadcrumbs { display: none }
}