Add logo and edit general design
This commit is contained in:
parent
eb21a245bc
commit
e0cb8d46f4
8 changed files with 330 additions and 73 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -80,37 +80,81 @@ body {
|
||||||
// HEADER
|
// HEADER
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Logo
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
z-index: 2;
|
||||||
|
position: fixed;
|
||||||
|
top: 1rem;
|
||||||
|
right: 1.5rem;
|
||||||
|
|
||||||
|
.logo__link {
|
||||||
|
width: var(--logo-width);
|
||||||
|
height: var(--logo-height);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo__icon {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
path:nth-child(1) {
|
||||||
|
stroke: var(--black);
|
||||||
|
}
|
||||||
|
|
||||||
|
path:nth-child(2) {
|
||||||
|
stroke: var(--white);
|
||||||
|
}
|
||||||
|
|
||||||
|
&--rotate-vertical-left {
|
||||||
|
animation: rotate-vertical-left 800ms ease-in-out infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--rotate-horizontal-bottom {
|
||||||
|
animation: rotate-horizontal-bottom 800ms ease-in-out infinite;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Sidebar
|
// Sidebar
|
||||||
|
|
||||||
.sidebar {
|
.sidebar {
|
||||||
|
z-index: 1;
|
||||||
|
overflow-y: auto;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
padding: var(--sidebar-vertical-padding) var(--sidebar-horizontal-padding);
|
padding: var(--sidebar-vertical-padding) var(--sidebar-horizontal-padding);
|
||||||
overflow-y: auto;
|
display: flex;
|
||||||
background-color: var(--transparent-white);
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: flex-start;
|
||||||
|
background-color: var(--white);
|
||||||
transition: background-color 400ms ease-in-out;
|
transition: background-color 400ms ease-in-out;
|
||||||
|
|
||||||
|
.sidebar__nav {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
.sidebar__nav-item {
|
.sidebar__nav-item {
|
||||||
width: 97vw;
|
|
||||||
transition: width 400ms ease-in-out;
|
|
||||||
|
|
||||||
+ .sidebar__nav-item {
|
+ .sidebar__nav-item {
|
||||||
margin: 0.75rem 0 0 0;
|
margin: 0.5rem 0 0 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar__nav-link {
|
.sidebar__nav-link {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
max-width: 100vw;
|
max-width: 100%;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
color: var(--black);
|
color: var(--black);
|
||||||
transition:
|
transition: color 400ms ease-in-out;
|
||||||
max-width 400ms ease-in-out,
|
|
||||||
color 400ms ease-in-out;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar__social {
|
.sidebar__social {
|
||||||
|
@ -140,14 +184,10 @@ body {
|
||||||
}
|
}
|
||||||
|
|
||||||
&--slimmed {
|
&--slimmed {
|
||||||
|
width: 15%;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
|
|
||||||
.sidebar__nav-item {
|
|
||||||
width: 15vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar__nav-link {
|
.sidebar__nav-link {
|
||||||
max-width: 15vw;
|
|
||||||
color: var(--transparent-black);
|
color: var(--transparent-black);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -185,12 +225,13 @@ body {
|
||||||
}
|
}
|
||||||
|
|
||||||
.exhibition {
|
.exhibition {
|
||||||
|
opacity: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
padding: 0 0 0 15%;
|
||||||
|
transition: opacity 400ms ease-in-out;
|
||||||
|
|
||||||
|
&--visible {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// FOOTER
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Footer bar
|
|
||||||
|
|
|
@ -3,10 +3,41 @@
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
@keyframes expand-outline {
|
@keyframes expand-outline {
|
||||||
from {
|
0% {
|
||||||
outline-offset: 0;
|
outline-offset: 0;
|
||||||
}
|
}
|
||||||
to {
|
100% {
|
||||||
outline-offset: 2px;
|
outline-offset: 2px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@keyframes rotate-vertical-left {
|
||||||
|
0% {
|
||||||
|
transform: rotateY(0);
|
||||||
|
transform-origin: left;
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
transform: rotateY(180deg);
|
||||||
|
transform-origin: left;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: rotateY(0);
|
||||||
|
transform-origin: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes rotate-horizontal-bottom {
|
||||||
|
0% {
|
||||||
|
transform: rotateX(0);
|
||||||
|
transform-origin: bottom;
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
transform: rotateX(180deg);
|
||||||
|
transform-origin: bottom;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: rotateX(0);
|
||||||
|
transform-origin: bottom;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,8 @@
|
||||||
|
|
||||||
// Dimensions
|
// Dimensions
|
||||||
|
|
||||||
|
--logo-width: 2rem;
|
||||||
|
--logo-height: 4rem;
|
||||||
--icon-size: 1.75rem;
|
--icon-size: 1.75rem;
|
||||||
--sidebar-vertical-padding: 1rem;
|
--sidebar-vertical-padding: 1rem;
|
||||||
--sidebar-horizontal-padding: 1rem;
|
--sidebar-horizontal-padding: 1rem;
|
||||||
|
@ -32,7 +34,7 @@
|
||||||
// Colors
|
// Colors
|
||||||
|
|
||||||
--black: #000;
|
--black: #000;
|
||||||
--transparent-black: rgba(0, 0, 0, 0.4);
|
--transparent-black: rgba(0, 0, 0, 0.3);
|
||||||
--white: #fff;
|
--white: #fff;
|
||||||
--transparent-white: rgba(255, 255, 255, 0.9);
|
--transparent-white: rgba(255, 255, 255, 0.9);
|
||||||
--feldgrau: #4B6259;
|
--feldgrau: #4B6259;
|
||||||
|
@ -57,6 +59,8 @@ $desktop-media-query: 62rem;
|
||||||
|
|
||||||
// Dimensions
|
// Dimensions
|
||||||
|
|
||||||
|
--logo-width: 6rem;
|
||||||
|
--logo-height: 3rem;
|
||||||
--icon-size: 2.25rem;
|
--icon-size: 2.25rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,35 +5,68 @@
|
||||||
// SIDEBAR ANIMATION
|
// SIDEBAR ANIMATION
|
||||||
|
|
||||||
const sidebar = document.querySelector('.sidebar');
|
const sidebar = document.querySelector('.sidebar');
|
||||||
const sidebarNav = document.querySelector('.sidebar__nav');
|
const sidebarNavLinks = document.querySelectorAll('.sidebar__nav-link--internal');
|
||||||
const sidebarNavLinks = sidebarNav.querySelectorAll('.sidebar__nav-link--internal');
|
const logoIcon = document.querySelector('.logo__icon');
|
||||||
|
const exhibitionIframe = document.querySelector('.exhibition');
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// UTILS
|
// LOGIC
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// UTILS
|
||||||
|
|
||||||
|
// Enable CSS :active pseudo-class in Safari Mobile
|
||||||
|
function enableActivePseudoClass() {
|
||||||
|
document.addEventListener("touchstart", function() {},false);
|
||||||
|
}
|
||||||
|
|
||||||
// Convert rem to pixels by getting font-size CSS property
|
// Convert rem to pixels by getting font-size CSS property
|
||||||
function convertRemToPixels(rem) {
|
function convertRemToPixels(rem) {
|
||||||
let fontSize = parseFloat(window.getComputedStyle(document.body).getPropertyValue('font-size'));
|
let fontSize = parseFloat(window.getComputedStyle(document.body).getPropertyValue('font-size'));
|
||||||
return rem * fontSize;
|
return rem * fontSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// LOGIC
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// SIDEBAR ANIMATION
|
// SIDEBAR ANIMATION
|
||||||
|
|
||||||
function slimDownSidebar() {
|
function slimDownSidebar() {
|
||||||
if (sidebar) {
|
if (sidebar && !sidebar.classList.contains('sidebar--slimmed')) {
|
||||||
sidebar.classList.add('sidebar--slimmed');
|
sidebar.classList.add('sidebar--slimmed');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function slimDownSidebarOnClick() {
|
|
||||||
if (sidebarNavLinks.length > 0) {
|
function enableLogoIconRotation() {
|
||||||
|
if (logoIcon) {
|
||||||
|
if (logoIcon.classList.contains('logo__icon--vertical')) {
|
||||||
|
logoIcon.classList.add('logo__icon--rotate-vertical-left');
|
||||||
|
} else {
|
||||||
|
logoIcon.classList.add('logo__icon--rotate-horizontal-bottom');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function disableLogoIconRotation() {
|
||||||
|
if (logoIcon) {
|
||||||
|
if (logoIcon.classList.contains('logo__icon--vertical')) {
|
||||||
|
logoIcon.classList.remove('logo__icon--rotate-vertical-left');
|
||||||
|
} else {
|
||||||
|
logoIcon.classList.remove('logo__icon--rotate-horizontal-bottom');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadExhibitionIframe() {
|
||||||
|
if (sidebarNavLinks.length > 0 && exhibitionIframe) {
|
||||||
for (let i = 0; i < sidebarNavLinks.length; i++) {
|
for (let i = 0; i < sidebarNavLinks.length; i++) {
|
||||||
sidebarNavLinks[i].addEventListener('click', slimDownSidebar);
|
sidebarNavLinks[i].addEventListener('click', function(e) {
|
||||||
|
enableLogoIconRotation();
|
||||||
|
exhibitionIframe.classList.remove('exhibition--visible');
|
||||||
|
exhibitionIframe.addEventListener('load', function(e) {
|
||||||
|
slimDownSidebar();
|
||||||
|
disableLogoIconRotation();
|
||||||
|
exhibitionIframe.classList.add('exhibition--visible');
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,9 +75,10 @@ function slimDownSidebarOnClick() {
|
||||||
// PROGRAM
|
// PROGRAM
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
// Enable CSS :active pseudo-class in Safari Mobile
|
// UTILS
|
||||||
document.addEventListener("touchstart", function() {},false);
|
|
||||||
|
enableActivePseudoClass();
|
||||||
|
|
||||||
// SIDEBAR ANIMATION
|
// SIDEBAR ANIMATION
|
||||||
|
|
||||||
slimDownSidebarOnClick();
|
loadExhibitionIframe();
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
return function ($page) {
|
return function ($site, $page) {
|
||||||
|
|
||||||
|
// Get home page object
|
||||||
|
$homePage = $site->homePage();
|
||||||
|
|
||||||
// Get exhibitions field content (stored as yaml) and parse it to return an array
|
// Get exhibitions field content (stored as yaml) and parse it to return an array
|
||||||
$exhibitions = $page->exhibitions()->yaml();
|
$exhibitions = $page->exhibitions()->yaml();
|
||||||
|
@ -15,6 +18,7 @@ return function ($page) {
|
||||||
$instagram = $page->instagram();
|
$instagram = $page->instagram();
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
'homePage' => $homePage,
|
||||||
'exhibitions' => $exhibitions,
|
'exhibitions' => $exhibitions,
|
||||||
'email' => $email,
|
'email' => $email,
|
||||||
'instagram' => $instagram
|
'instagram' => $instagram
|
||||||
|
|
|
@ -3,6 +3,17 @@
|
||||||
{% block header %}
|
{% block header %}
|
||||||
<header>
|
<header>
|
||||||
|
|
||||||
|
<div class="logo">
|
||||||
|
<a class="logo__link" href="{{ homePage.url }}" target="_self" aria-label="Go to {{ site.title }}'s home page">
|
||||||
|
<svg class="logo__icon" aria-hidden="true" viewBox="0 0 3814 1912" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g transform="matrix(1, 0, 0, -1, 1426.537109, 1153.771606)">
|
||||||
|
<path style="fill:none;stroke:currentColor;stroke-width:93.54299927;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" d="m 0,0 c -290.833,17.312 -697.633,-243.443 -961.355,-441.732 -463.22,-348.289 -491.716,-401.405 -327.464,98.265 42.11,128.104 133.935,713.436 134.825,1065.798 1.49,589.899 147.634,423.095 319.826,16.386 C -107.247,-978.225 558.099,-596.729 789.55,-160.404 800.123,-140.473 836,-55 836,-55 c 0,0 25.705,-95.875 94.192,-196.312 C 1081.909,-473.805 1640,-308 1770,-260 c 53.364,19.704 261,-145 571,-221"/>
|
||||||
|
<path style="fill:none;stroke:currentColor;stroke-width:8.50399971;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" d="m 0,0 c -290.833,17.312 -697.633,-243.443 -961.355,-441.732 -463.22,-348.289 -491.716,-401.405 -327.464,98.265 42.11,128.104 133.935,713.436 134.825,1065.798 1.49,589.899 147.634,423.095 319.826,16.386 C -107.247,-978.225 558.099,-596.729 789.55,-160.404 800.123,-140.473 836,-55 836,-55 c 0,0 25.705,-95.875 94.192,-196.312 C 1081.909,-473.805 1640,-308 1770,-260 c 53.364,19.704 261,-145 571,-221"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="sidebar">
|
<div class="sidebar">
|
||||||
<nav class="sidebar__nav" aria-label="Menu">
|
<nav class="sidebar__nav" aria-label="Menu">
|
||||||
{% if exhibitions is not empty %}
|
{% if exhibitions is not empty %}
|
||||||
|
@ -20,7 +31,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</nav>
|
</nav>
|
||||||
<div class="sidebar__social">
|
<div class="sidebar__social">
|
||||||
<a class="sidebar__social-link" href="{{ instagram }}" target="_blank" aria-label="Show {{ site.title }}'s Instagram profile">
|
<a class="sidebar__social-link" href="{{ instagram }}" target="_blank" aria-label="Go to {{ site.title }}'s Instagram profile">
|
||||||
<svg class="sidebar__instagram-icon" aria-hidden="true" viewBox="0 0 128 128" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
<svg class="sidebar__instagram-icon" aria-hidden="true" viewBox="0 0 128 128" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path d="M 128 0 L 0 0 L 0 128 L 128 128 L 128 0 Z M 119.874 119.874 L 8.126 119.874 L 8.126 8.126 L 119.874 8.126 L 119.874 119.874 Z"/>
|
<path d="M 128 0 L 0 0 L 0 128 L 128 128 L 128 0 Z M 119.874 119.874 L 8.126 119.874 L 8.126 8.126 L 119.874 8.126 L 119.874 119.874 Z"/>
|
||||||
<path d="M64,93c16,0,29-13,29-29S80,35,64,35S35,48,35,64S48,93,64,93z M64,43c11.6,0,21,9.4,21,21s-9.4,21-21,21s-21-9.4-21-21 S52.4,43,64,43z"/>
|
<path d="M64,93c16,0,29-13,29-29S80,35,64,35S35,48,35,64S48,93,64,93z M64,43c11.6,0,21,9.4,21,21s-9.4,21-21,21s-21-9.4-21-21 S52.4,43,64,43z"/>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue