Edit folder structure and webpack configuration

This commit is contained in:
Paul Nicoué 2022-09-05 15:24:24 +02:00
parent 6a754806c6
commit d48d295bf0
24 changed files with 14 additions and 15 deletions

316
assets/css/main.scss Normal file
View file

@ -0,0 +1,316 @@
@use 'utils/minireset';
@use '@splidejs/splide/dist/css/splide-core.min';
@use 'partials/fonts';
@use 'partials/variables' as *;
@use 'partials/animations';
// ----------------------------------------------------------------------------
// GENERALITIES
// ----------------------------------------------------------------------------
// Fonts and colors
body {
font-family: var(--text-font-family);
font-size: var(--text-font-size);
line-height: var(--text-line-height);
color: var(--black);
background-color: var(--feldgrau);
}
h1 {
font-family: var(--title-font-family);
font-size: var(--h1-font-size);
line-height: var(--h1-line-height);
}
h2 {
font-family: var(--text-font-family);
font-size: var(--h2-font-size);
line-height: var(--h2-line-height);
margin: 0 0 4rem 0;
}
h3 {
font-family: var(--text-font-family);
font-size: var(--h3-font-size);
line-height: var(--h3-line-height);
margin: 2rem 0 1rem 0;
}
p {
text-align: justify;
}
strong {
font-weight: var(--bold-font-weight);
}
em {
font-style: italic;
}
@media screen and (min-width: $desktop-media-query) {
.body--white-background {
background-color: var(--white);
}
}
// Link style
a {
color: var(--black);
text-decoration: none;
transition: text-decoration 200ms ease-in-out;
&:hover,
&:focus,
&:active {
text-decoration: underline;
}
&:focus-visible {
outline: 1px dashed var(--black);
outline-offset: 2px;
animation: expand-outline 200ms ease-in-out;
}
}
// General layout
body {
min-height: 100vh;
overflow-x: hidden;
}
@media screen and (min-width: $desktop-media-query) {
body {
overflow-y: hidden;
}
}
// ----------------------------------------------------------------------------
// HEADER
// ----------------------------------------------------------------------------
// Logo
.logo {
width: 100%;
padding: var(--logo-padding);
display: flex;
justify-content: center;
&--fixed-center {
z-index: 2;
width: auto;
padding: 0;
position: fixed;
top: 1rem;
right: calc(50vw - (var(--logo-width) / 2));
display: block;
}
.logo__link {
width: var(--logo-width);
height: var(--logo-height);
display: flex;
justify-content: center;
align-items: center;
}
.logo__icon {
width: 100%;
height: 100%;
&--black {
stroke: var(--black);
transition: stroke 400ms ease-in-out;
}
&--white {
stroke: var(--white);
transition: stroke 400ms ease-in-out;
}
&--rotate-horizontal-bottom {
animation: rotate-horizontal-bottom 800ms ease-in-out infinite;
}
}
}
@media screen and (min-width: $desktop-media-query) {
.logo {
&--fixed-right {
z-index: 2;
width: auto;
padding: 0;
position: fixed;
top: 1rem;
right: 1.5rem;
display: block;
}
}
}
// Sidebar
.sidebar {
width: 100%;
padding: var(--sidebar-padding);
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-start;
background-color: transparent;
transition: background-color 400ms ease-in-out;
.sidebar__nav {
max-width: 100%;
}
.sidebar__nav-item {
+ .sidebar__nav-item {
margin: 0.5rem 0 0 0;
}
}
.sidebar__nav-link {
display: inline-block;
max-width: 100%;
overflow-x: hidden;
white-space: nowrap;
text-overflow: ellipsis;
color: var(--black);
transition: color 400ms ease-in-out;
}
.sidebar__social {
width: 100%;
display: flex;
justify-content: center;
align-items: center;
margin: 1rem 0 0 0;
}
.sidebar__social-link {
width: var(--icon-size);
height: var(--icon-size);
display: flex;
justify-content: center;
align-items: center;
+ .sidebar__social-link {
margin: 0 0 0 1rem;
}
}
.sidebar__instagram-icon,
.sidebar__email-icon {
width: 100%;
height: 100%;
fill: var(--black);
transition: fill 400ms ease-in-out;
}
}
@media screen and (min-width: $desktop-media-query) {
.sidebar {
&--fixed {
z-index: 1;
overflow-y: auto;
position: fixed;
top: 0;
bottom: 0;
left: 0;
}
&--slimmed {
width: 15%;
min-width: 15rem;
.sidebar__nav-link {
color: var(--transparent-black);
}
.sidebar__instagram-icon,
.sidebar__email-icon {
fill: var(--transparent-black);
}
&:hover {
background-color: var(--transparent-feldgrau);
.sidebar__nav-link {
color: var(--black);
}
.sidebar__instagram-icon,
.sidebar__email-icon {
fill: var(--black);
}
}
}
&--white-background {
&:hover {
background-color: var(--transparent-white);
}
}
.sidebar__social {
width: auto;
justify-content: flex-start;
}
}
}
// ----------------------------------------------------------------------------
// MAIN
// ----------------------------------------------------------------------------
// Slider section
.splide {
&__image {
width: 100%;
height: 100%;
object-fit: cover;
}
}
// Exhibition section
.exhibition-section {
display: none;
}
@media screen and (min-width: $desktop-media-query) {
.exhibition-section {
display: block;
width: 100vw;
height: 100vh;
}
.exhibition {
opacity: 0;
width: 100%;
height: 100%;
transition: opacity 400ms ease-in-out;
&--visible {
opacity: 1;
}
}
}

28
assets/css/panel.scss Normal file
View file

@ -0,0 +1,28 @@
// ----------------------------------------------------------------------------
// KIRBY PANEL CUSTOMIZATION
// ----------------------------------------------------------------------------
// Textarea headline buttons
.k-textarea-field {
.k-toolbar {
.k-dropdown {
.k-button:nth-of-type(2),
.k-button:nth-of-type(3) {
display: none;
}
}
}
}
// Visual image crop field properties
.kirby-imagecrop-field {
.k-column:nth-of-type(2) {
display: none;
}
}

View file

@ -0,0 +1,28 @@
// ----------------------------------------------------------------------------
// ANIMATIONS
// ----------------------------------------------------------------------------
@keyframes expand-outline {
0% {
outline-offset: 0;
}
100% {
outline-offset: 2px;
}
}
@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;
}
}

View file

@ -0,0 +1,3 @@
// ----------------------------------------------------------------------------
// FONTS
// ----------------------------------------------------------------------------

View file

@ -0,0 +1,47 @@
// ----------------------------------------------------------------------------
// VARIABLES
// ----------------------------------------------------------------------------
:root {
// Fonts
--text-font-family: Helvetica, sans-serif;
--title-font-family: Helvetica, sans-serif;
--regular-font-weight: 400;
--medium-font-weight: 500;
--semi-bold-font-weight: 600;
--bold-font-weight: 700;
--text-font-size: 1rem;
--text-line-height: calc(var(--text-font-size) * 1.2);
--footnote-font-size: 0.8rem;
--footnote-line-height: calc(var(--footnote-font-size) * 1.2);
--h1-font-size: 1.6rem;
--h1-line-height: calc(var(--h1-font-size) * 1.2);
--h2-font-size: 1.4rem;
--h2-line-height: calc(var(--h2-font-size) * 1.2);
--h3-font-size: 1.2rem;
--h3-line-height: calc(var(--h3-font-size) * 1.2);
// Dimensions
--logo-width: 6rem;
--logo-height: 3rem;
--logo-padding: 1rem;
--icon-size: 2.25rem;
--sidebar-padding: 1rem;
// Colors
--black: #000;
--transparent-black: rgba(0, 0, 0, 0.3);
--white: #fff;
--transparent-white: rgba(255, 255, 255, 0.9);
--feldgrau: #4B6259;
--transparent-feldgrau: rgba(75, 98, 89, 0.9);
}
// Media queries
$tablet-media-query: 48rem;
$desktop-media-query: 62rem;

View file

@ -0,0 +1,78 @@
/* ----------------------------------------------------------------------------
MINIRESET V0.0.6
---------------------------------------------------------------------------- */
html,
body,
p,
ol,
ul,
li,
dl,
dt,
dd,
blockquote,
figure,
fieldset,
legend,
textarea,
pre,
iframe,
hr,
h1,
h2,
h3,
h4,
h5,
h6 {
margin: 0;
padding: 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-size: 100%;
font-weight: normal;
}
ul {
list-style: none;
}
button,
input,
select {
margin: 0;
}
html {
box-sizing: border-box;
}
*, *::before, *::after {
box-sizing: inherit;
}
img,
video {
height: auto;
max-width: 100%;
}
iframe {
border: 0;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
}