Edit editorcongif file and indentation style

This commit is contained in:
Paul Nicoué 2022-07-07 17:02:05 +02:00
parent dac66b054d
commit 4bb1ea6b1c
47 changed files with 2392 additions and 2405 deletions

View file

@ -1,22 +1,13 @@
[*.{css,scss,less,js,json,ts,sass,html,hbs,mustache,phtml,html.twig,md,yml}]
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
indent_style = tab
indent_size = 4
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
indent_size = 4
trim_trailing_whitespace = false
[site/templates/**.php]
indent_size = 2
[site/snippets/**.php]
indent_size = 2
[package.json,.{babelrc,editorconfig,eslintrc,lintstagedrc,stylelintrc}]
indent_style = space
indent_size = 2

View file

@ -1 +1 @@
{"version":3,"sourceRoot":"","sources":["panel.scss"],"names":[],"mappings":"AAYY,oIAEI,aAUZ,gDACI","file":"panel.min.css"}
{"version":3,"sourceRoot":"","sources":["panel.scss"],"names":[],"mappings":"AAYG,oIAEC,aAUH,gDACC","file":"panel.min.css"}

View file

@ -6,23 +6,23 @@
.k-textarea-field {
.k-toolbar {
.k-toolbar {
.k-dropdown {
.k-dropdown {
.k-button:nth-of-type(2),
.k-button:nth-of-type(3) {
display: none;
}
}
}
.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;
}
.k-column:nth-of-type(2) {
display: none;
}
}

View file

@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
@-webkit-keyframes expand-outline {
from {
from {
outline-offset: 0;
}
to {
@ -21,10 +21,10 @@
}
@-webkit-keyframes wave-up {
0% {
0% {
top: 0;
}
60% {
60% {
top: -0.5rem;
}
100% {
@ -36,7 +36,7 @@
0% {
top: 0;
}
60% {
60% {
top: -0.5rem;
}
100% {
@ -45,10 +45,10 @@
}
@-webkit-keyframes wave-down {
0% {
0% {
bottom: 0;
}
60% {
60% {
bottom: -0.5rem;
}
100% {
@ -57,10 +57,10 @@
}
@keyframes wave-down {
0% {
0% {
bottom: 0;
}
60% {
60% {
bottom: -0.5rem;
}
100% {

View file

@ -5,10 +5,10 @@
// Nunito
@font-face {
font-family: 'Nunito';
src: url(../fonts/nunito/Nunito-Regular.ttf) format('truetype');
font-weight: 400;
font-style: normal;
font-family: 'Nunito';
src: url(../fonts/nunito/Nunito-Regular.ttf) format('truetype');
font-weight: 400;
font-style: normal;
}
@font-face {

View file

@ -25,8 +25,8 @@ h3,
h4,
h5,
h6 {
margin: 0;
padding: 0;
margin: 0;
padding: 0;
}
h1,
@ -35,44 +35,44 @@ h3,
h4,
h5,
h6 {
font-size: 100%;
font-weight: normal;
font-size: 100%;
font-weight: normal;
}
ul {
list-style: none;
list-style: none;
}
button,
input,
select {
margin: 0;
margin: 0;
}
html {
box-sizing: border-box;
box-sizing: border-box;
}
*, *::before, *::after {
box-sizing: inherit;
box-sizing: inherit;
}
img,
video {
height: auto;
max-width: 100%;
height: auto;
max-width: 100%;
}
iframe {
border: 0;
border: 0;
}
table {
border-collapse: collapse;
border-spacing: 0;
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
padding: 0;
}

View file

@ -4,59 +4,59 @@
:root {
// Fonts
// Fonts
--text-font-family: 'Nunito', Verdana, sans-serif;
--logo-font-family: 'Gloria Hallelujah', Verdana, sans-serif;
--regular-font-weight: 400;
--medium-font-weight: 500;
--semi-bold-font-weight: 600;
--bold-font-weight: 700;
--text-font-size: 1rem;
--caption-font-size: 0.9rem;
--footnote-font-size: 0.8rem;
--text-line-height: 1.4rem;
--h1-font-size: 1.8rem;
--h2-font-size: 1.4rem;
--h3-font-size: 1.2rem;
--text-font-family: 'Nunito', Verdana, sans-serif;
--logo-font-family: 'Gloria Hallelujah', Verdana, sans-serif;
--regular-font-weight: 400;
--medium-font-weight: 500;
--semi-bold-font-weight: 600;
--bold-font-weight: 700;
--text-font-size: 1rem;
--caption-font-size: 0.9rem;
--footnote-font-size: 0.8rem;
--text-line-height: 1.4rem;
--h1-font-size: 1.8rem;
--h2-font-size: 1.4rem;
--h3-font-size: 1.2rem;
// Dimensions
// Dimensions
--content-max-width: 140rem;
--text-max-width: 70rem;
--icon-size: 2.5rem;
--header-bar-vertical-padding: 1rem;
--header-bar-horizontal-padding: 2rem;
--header-bar-height: calc((var(--header-bar-vertical-padding) * 2) + var(--icon-size));
--footer-bar-vertical-padding: 1rem;
--footer-bar-horizontal-padding: 2rem;
--footer-bar-height: calc((var(--footer-bar-vertical-padding) * 2) + var(--icon-size) + 1rem + var(--text-font-size));
--generic-section-vertical-padding: 3rem;
--generic-section-horizontal-padding: 2rem;
--home-section-vertical-padding: 2rem;
--home-section-horizontal-padding: 2rem;
--home-section-min-height: calc(100vh - var(--header-bar-height) - var(--footer-bar-height));
--home-nav-gap: 1rem;
--home-nav-item-size: 2rem;
--home-nav-item-translation: 0;
--home-nav-image-max-height: calc(100vh - var(--header-bar-height) - ((var(--generic-section-vertical-padding) + var(--home-nav-item-size) + var(--home-nav-gap)) * 2) - var(--footer-bar-height));
--content-max-width: 140rem;
--text-max-width: 70rem;
--icon-size: 2.5rem;
--header-bar-vertical-padding: 1rem;
--header-bar-horizontal-padding: 2rem;
--header-bar-height: calc((var(--header-bar-vertical-padding) * 2) + var(--icon-size));
--footer-bar-vertical-padding: 1rem;
--footer-bar-horizontal-padding: 2rem;
--footer-bar-height: calc((var(--footer-bar-vertical-padding) * 2) + var(--icon-size) + 1rem + var(--text-font-size));
--generic-section-vertical-padding: 3rem;
--generic-section-horizontal-padding: 2rem;
--home-section-vertical-padding: 2rem;
--home-section-horizontal-padding: 2rem;
--home-section-min-height: calc(100vh - var(--header-bar-height) - var(--footer-bar-height));
--home-nav-gap: 1rem;
--home-nav-item-size: 2rem;
--home-nav-item-translation: 0;
--home-nav-image-max-height: calc(100vh - var(--header-bar-height) - ((var(--generic-section-vertical-padding) + var(--home-nav-item-size) + var(--home-nav-gap)) * 2) - var(--footer-bar-height));
// Colors
// Colors
--black: #000;
--transparent-black: rgba(0, 0, 0, 0.8);
--jet: #333333;
--transparent-jet: rgba(51, 51, 51, 0.8);
--granite-gray: #666666;
--spanish-gray: #999999;
--light-gray: #cccccc;
--white: #fff;
--transparent-white: rgba(255, 255, 255, 0.8);
--black: #000;
--transparent-black: rgba(0, 0, 0, 0.8);
--jet: #333333;
--transparent-jet: rgba(51, 51, 51, 0.8);
--granite-gray: #666666;
--spanish-gray: #999999;
--light-gray: #cccccc;
--white: #fff;
--transparent-white: rgba(255, 255, 255, 0.8);
// Plyr (audio player)
// Plyr (audio player)
--plyr-color-main: var(--transparent-jet);
--plyr-tab-focus-color: var(--white);
--plyr-color-main: var(--transparent-jet);
--plyr-tab-focus-color: var(--white);
}
// Media queries
@ -66,26 +66,26 @@ $desktop-media-query: 62rem;
@media screen and (min-width: $tablet-media-query) {
:root {
:root {
// Fonts
// Fonts
--text-font-size: 1.2rem;
--caption-font-size: 1.1rem;
--footnote-font-size: 1rem;
--h1-font-size: 2rem;
--h2-font-size: 1.6rem;
--h3-font-size: 1.4rem;
--text-font-size: 1.2rem;
--caption-font-size: 1.1rem;
--footnote-font-size: 1rem;
--h1-font-size: 2rem;
--h2-font-size: 1.6rem;
--h3-font-size: 1.4rem;
// Dimensions
// Dimensions
--icon-size: 3rem;
--header-bar-vertical-padding: 2rem;
--header-bar-horizontal-padding: 4rem;
--footer-bar-vertical-padding: 2rem;
--footer-bar-horizontal-padding: 4rem;
--footer-bar-height: calc((var(--footer-bar-vertical-padding) * 2) + var(--icon-size));
--generic-section-horizontal-padding: 4rem;
--home-section-horizontal-padding: 4rem;
}
--icon-size: 3rem;
--header-bar-vertical-padding: 2rem;
--header-bar-horizontal-padding: 4rem;
--footer-bar-vertical-padding: 2rem;
--footer-bar-horizontal-padding: 4rem;
--footer-bar-height: calc((var(--footer-bar-vertical-padding) * 2) + var(--icon-size));
--generic-section-horizontal-padding: 4rem;
--home-section-horizontal-padding: 4rem;
}
}

View file

@ -1 +1 @@
{"version":3,"sourceRoot":"","sources":["partials/_minireset.css","partials/_fonts.scss","partials/_variables.scss","partials/_animations.scss","style.scss"],"names":[],"mappings":"CAIA,yGAuBI,SACA,UAGJ,kBAMI,eACA,mBAGJ,GACI,gBAGJ,oBAGI,SAGJ,KACI,sBAGJ,qBACI,mBAGJ,UAEI,YACA,eAGJ,OACI,SAGJ,MACI,yBACA,iBAGJ,MAEI,UCtEJ,WACI,qBACA,+DACA,gBACA,kBAGJ,WACC,qBACA,8DACA,gBACA,kBAGD,WACC,qBACA,8DACA,gBACA,kBAGD,WACC,qBACA,oEACA,gBACA,kBAGD,WACC,qBACA,gEACA,gBACA,kBAGD,WACC,qBACA,sEACA,gBACA,kBAGD,WACC,qBACA,4DACA,gBACA,kBAGD,WACC,qBACA,kEACA,gBACA,kBAKD,WACC,gCACA,oFACA,gBACA,kBChED,MAII,kDACA,6DACA,2BACA,0BACA,6BACA,wBACA,uBACA,4BACA,6BACA,2BACA,uBACA,uBACA,uBAIA,4BACA,wBACA,oBACA,oCACA,sCACA,uFACA,oCACA,sCACA,sHACA,yCACA,2CACA,sCACA,wCACA,6FACA,qBACA,2BACA,+BACA,mMAIA,cACA,wCACA,eACA,yCACA,wBACA,wBACA,sBACA,cACA,8CAIA,0CACA,qCAQJ,qCAEI,MAII,yBACA,4BACA,2BACA,qBACA,uBACA,uBAIA,kBACA,oCACA,sCACA,oCACA,sCACA,uFACA,2CACA,yCCpFR,kCACI,KACF,iBAED,GACC,oBAIF,0BACC,KACC,iBAED,GACC,oBAIF,2BACI,GACF,MAEE,IACF,YAED,KACC,OAIF,mBACC,GACC,MAEE,IACF,YAED,KACC,OAIF,6BACI,GACF,SAEE,IACF,eAED,KACC,UAIF,qBACI,GACF,SAEE,IACF,eAED,KACC,UCvDF,KACI,oCACA,gCACA,kCACA,iBACA,8BAGJ,SAGI,mBAGJ,GACI,oCACA,8BACA,gCAGJ,GACI,oCACA,8BACA,gCACA,kBAGJ,GACI,oCACA,8BACA,gCACA,qBAGJ,EACI,mBACA,oCAGJ,OACI,oCAGJ,GACI,kBAKJ,EACI,iBACA,0BACH,kBACG,2CACA,sCACA,mCAEA,yBAGI,mBAGP,gBACC,gCACA,mBACA,gDACG,2CAML,KACI,iBACA,kBACA,iBACA,aACA,KACI,+DAMR,yBACC,kBAGD,OACI,iBAGJ,KACI,eAGJ,OACI,iBASJ,YACC,WACG,gCACA,YACH,iKACA,0CACA,iDACG,oBACA,oBACA,aACA,yBACA,sBACA,8BACA,yBACA,sBACA,mBACH,UACA,mBACC,yDAED,cACC,yDAED,WACC,yDAGD,mBACC,eACA,sCACA,uFACA,sCACA,0CACA,+CACA,0CACA,uCAGD,qBACC,uDACA,mDACA,+CAIF,kBACI,kBACH,+CACA,0CACA,uCACA,8BACG,0BACH,sBAEA,yBACC,6BACA,yBACA,qBAIF,uBACI,qBAGJ,iBACC,kBACA,UAGD,wBACC,kBACA,UACA,uBACA,wBACA,UACA,gBACA,YACA,kBACA,4BACA,eACA,oBACA,oBACA,aACA,yBACA,sBACA,mBACA,mBACC,+DAED,cACC,+DAED,WACC,+DAGD,4BACC,WACA,YACA,YACA,cACM,mBACL,sDAEK,cACL,sDAEK,WACL,sDAIF,yCACC,kBACA,UAGD,yCACC,kBACA,UAGE,6DAEF,6BACA,yBACA,qBAGD,sCACC,8BAEA,0CACC,oCACG,gCACA,4BAGJ,uDACC,UAGD,uDACC,UAKH,sBACC,eACA,UACA,MACA,WACA,gBACA,gBACA,aACA,8GACA,0CACA,mBACA,kBACA,gBACA,+CACA,0CACA,uCAIC,4BACC,yCAGD,4BACC,kBACA,yCAGD,6BACC,eACA,mCACA,+BACA,2BACA,+CACA,0CACA,uCAEA,iEAEC,wBAGD,+BACC,qBAEA,gHAGC,mBAGD,6CACC,gCAMJ,oDACC,wBAEA,sDACC,mBAIF,+BACC,oCACA,gCACA,4BAKE,2DACC,gCACA,4BACA,wBACA,+CACA,0CACA,uCAND,2DACC,gCACA,4BACA,wBACA,+CACA,0CACA,uCAND,2DACC,gCACA,4BACA,wBACA,+CACA,0CACA,uCAND,2DACC,gCACA,4BACA,wBACA,+CACA,0CACA,uCAND,2DACC,gCACA,4BACA,wBACA,+CACA,0CACA,uCAND,2DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,2DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,2DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,2DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAOL,yBACC,eACA,UACA,MACA,OACA,YACA,aACA,8BACA,UACA,oBACA,oBACA,6CACA,wCACA,qCAEA,kCACC,WACA,oBACA,eAIF,qCAEC,sBACC,gBAIF,qCAEC,sBACC,gBAUF,cACI,mCACA,0CACA,YACA,oFACA,oBACA,oBACA,aACA,wBACA,qBACA,uBACA,yBACA,sBACA,mBAGJ,WACI,YACA,iBACA,aACA,KACI,iMAIJ,4BACA,wBACA,cAGJ,iBACI,iBAEA,qBACI,gBACA,2BACA,iBACA,4CAMJ,sCACI,mBACA,mBACA,kBACI,4DAEJ,cACI,4DAEJ,UACI,4DAIR,sCACI,oBACA,qBACA,kBACI,2DAEJ,cACI,2DAEJ,UACI,2DAOR,sCACI,mBACA,mBACA,kBACI,4DAEJ,cACI,4DAEJ,UACI,4DAIR,sCACI,oBACA,qBACA,kBACI,2DAEJ,cACI,2DAEJ,UACI,2DAIR,sCACI,iBACA,wBAMJ,sCACI,mBACA,mBACA,kBACI,4DAEJ,cACI,4DAEJ,UACI,4DAIR,sCACI,oBACA,qBACA,kBACI,2DAEJ,cACI,2DAEJ,UACI,2DAIR,sCACI,sBACA,qBACA,kBACI,sEAEJ,cACI,sEAEJ,UACI,sEAIR,sCACI,uBACA,uBACA,kBACI,uEAEJ,cACI,uEAEJ,UACI,uEAKZ,gBACI,mBACA,8BACA,qBACA,UACA,6CACA,wCACA,qCAEA,oBACI,UACA,6CACA,wCACA,qCAIR,yBACI,UAEA,6BACI,UAIR,2BACI,yCACA,oCAGJ,6BACI,2CACA,sCAKJ,oCAEI,mCACA,YACA,0FAGJ,kCAEI,kBAGJ,gDAEI,gCACA,YAEA,gFACI,kBAKA,kHAEI,kBAIR,sDACF,oCAEM,sHAEI,kBAGV,4DACC,kBACA,mBAGD,kEACC,kBAGD,0EACC,YACA,kBACA,MACA,OAKH,kBACI,cACA,2BACA,YAEA,oCACI,wBAGJ,oEAEI,cACA,gBAKA,+CACI,mBAIR,6BACI,sBACA,oBACA,wBACA,mCACA,kBACA,oCAIR,qCAIQ,oCACI,yBAOZ,eACI,mCACA,YACA,0FAGJ,cACI,kBAGJ,gBACI,gCACA,YACA,kBAGJ,eACI,kBACA,kBAEA,iBACI,qBACA,cACA,mBACA,mBACA,4BACA,qBACA,yCACN,+CACA,0CACA,uCAEM,sEAGI,qBAWZ,YACI,mCACA,gCACA,YACA,gFACA,oBACA,oBACA,aACA,4BACA,6BACA,0BACA,sBACA,yBACA,sBACA,mBAGJ,oBACI,oBACA,oBACA,aACA,yBACA,sBACA,mBAEA,sBACF,uBACA,wBACA,kBACA,4BACM,oBACA,oBACA,aACA,wBACA,qBACA,uBACA,yBACA,sBACA,mBACN,+CACA,0CACA,uCAEM,wBACI,kBAGJ,0BACL,kBAID,qFAGC,qBAMD,uDACC,UACA,WAMD,mDACC,UACA,WAKH,uBACI,oCACA,kBAGJ,qCAEI,YACI,8BACA,6BACA,uBACA,mBACA,yBACA,sBACA,8BACA,sBACA,mBACA,qBAGJ,oBACI,QAGJ,uBACI,QACA","file":"style.min.css"}
{"version":3,"sourceRoot":"","sources":["partials/_minireset.css","partials/_fonts.scss","partials/_variables.scss","partials/_animations.scss","style.scss"],"names":[],"mappings":"CAIA,yGAuBC,SACA,UAGD,kBAMC,eACA,mBAGD,GACC,gBAGD,oBAGC,SAGD,KACC,sBAGD,qBACC,mBAGD,UAEC,YACA,eAGD,OACC,SAGD,MACC,yBACA,iBAGD,MAEC,UCtED,WACC,qBACA,+DACA,gBACA,kBAGD,WACC,qBACA,8DACA,gBACA,kBAGD,WACC,qBACA,8DACA,gBACA,kBAGD,WACC,qBACA,oEACA,gBACA,kBAGD,WACC,qBACA,gEACA,gBACA,kBAGD,WACC,qBACA,sEACA,gBACA,kBAGD,WACC,qBACA,4DACA,gBACA,kBAGD,WACC,qBACA,kEACA,gBACA,kBAKD,WACC,gCACA,oFACA,gBACA,kBChED,MAIC,kDACA,6DACA,2BACA,0BACA,6BACA,wBACA,uBACA,4BACA,6BACA,2BACA,uBACA,uBACA,uBAIA,4BACA,wBACA,oBACA,oCACA,sCACA,uFACA,oCACA,sCACA,sHACA,yCACA,2CACA,sCACA,wCACA,6FACA,qBACA,2BACA,+BACA,mMAIA,cACA,wCACA,eACA,yCACA,wBACA,wBACA,sBACA,cACA,8CAIA,0CACA,qCAQD,qCAEC,MAIC,yBACA,4BACA,2BACA,qBACA,uBACA,uBAIA,kBACA,oCACA,sCACA,oCACA,sCACA,uFACA,2CACA,yCCpFF,kCACC,KACC,iBAED,GACC,oBAIF,0BACC,KACC,iBAED,GACC,oBAIF,2BACC,GACC,MAED,IACC,YAED,KACC,OAIF,mBACC,GACC,MAED,IACC,YAED,KACC,OAIF,6BACC,GACC,SAED,IACC,eAED,KACC,UAIF,qBACC,GACC,SAED,IACC,eAED,KACC,UCvDF,KACC,oCACA,gCACA,kCACA,iBACA,8BAGD,SAGC,mBAGD,GACC,oCACA,8BACA,gCAGD,GACC,oCACA,8BACA,gCACA,kBAGD,GACC,oCACA,8BACA,gCACA,qBAGD,EACC,mBACA,oCAGD,OACC,oCAGD,GACC,kBAKD,EACC,iBACA,0BACA,kBACA,2CACA,sCACA,mCAEA,yBAGC,mBAGD,gBACC,gCACA,mBACA,gDACA,2CAMF,KACC,iBACA,kBACA,iBACA,aACA,KACC,+DAMF,yBACC,kBAGD,OACC,iBAGD,KACC,eAGD,OACC,iBASD,YACC,WACA,gCACA,YACA,iKACA,0CACA,iDACA,oBACA,oBACA,aACA,yBACA,sBACA,8BACA,yBACA,sBACA,mBACA,UACA,mBACC,yDAED,cACC,yDAED,WACC,yDAGD,mBACC,eACA,sCACA,uFACA,sCACA,0CACA,+CACA,0CACA,uCAGD,qBACC,uDACA,mDACA,+CAIF,kBACC,kBACA,+CACA,0CACA,uCACA,8BACA,0BACA,sBAEA,yBACC,6BACA,yBACA,qBAIF,uBACC,qBAGD,iBACC,kBACA,UAGD,wBACC,kBACA,UACA,uBACA,wBACA,UACA,gBACA,YACA,kBACA,4BACA,eACA,oBACA,oBACA,aACA,yBACA,sBACA,mBACA,mBACC,+DAED,cACC,+DAED,WACC,+DAGD,4BACC,WACA,YACA,YACA,cACA,mBACC,sDAED,cACC,sDAED,WACC,sDAIF,yCACC,kBACA,UAGD,yCACC,kBACA,UAGD,6DAEC,6BACA,yBACA,qBAGD,sCACC,8BAEA,0CACC,oCACA,gCACA,4BAGD,uDACC,UAGD,uDACC,UAKH,sBACC,eACA,UACA,MACA,WACA,gBACA,gBACA,aACA,8GACA,0CACA,mBACA,kBACA,gBACA,+CACA,0CACA,uCAIC,4BACC,yCAGD,4BACC,kBACA,yCAGD,6BACC,eACA,mCACA,+BACA,2BACA,+CACA,0CACA,uCAEA,iEAEC,wBAGD,+BACC,qBAEA,gHAGC,mBAGD,6CACC,gCAMJ,oDACC,wBAEA,sDACC,mBAIF,+BACC,oCACA,gCACA,4BAKE,2DACC,gCACA,4BACA,wBACA,+CACA,0CACA,uCAND,2DACC,gCACA,4BACA,wBACA,+CACA,0CACA,uCAND,2DACC,gCACA,4BACA,wBACA,+CACA,0CACA,uCAND,2DACC,gCACA,4BACA,wBACA,+CACA,0CACA,uCAND,2DACC,gCACA,4BACA,wBACA,+CACA,0CACA,uCAND,2DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,2DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,2DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,2DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAND,4DACC,gCACA,4BACA,wBACA,gDACA,2CACA,wCAOL,yBACC,eACA,UACA,MACA,OACA,YACA,aACA,8BACA,UACA,oBACA,oBACA,6CACA,wCACA,qCAEA,kCACC,WACA,oBACA,eAIF,qCAEC,sBACC,gBAIF,qCAEC,sBACC,gBAUF,cACC,mCACA,0CACA,YACA,oFACA,oBACA,oBACA,aACA,wBACA,qBACA,uBACA,yBACA,sBACA,mBAGD,WACC,YACA,iBACA,aACA,KACC,iMAID,4BACA,wBACA,cAGD,iBACC,iBAEA,qBACC,gBACA,2BACA,iBACA,4CAMD,sCACC,mBACA,mBACA,kBACC,4DAED,cACC,4DAED,UACC,4DAIF,sCACC,oBACA,qBACA,kBACC,2DAED,cACC,2DAED,UACC,2DAOF,sCACC,mBACA,mBACA,kBACC,4DAED,cACC,4DAED,UACC,4DAIF,sCACC,oBACA,qBACA,kBACC,2DAED,cACC,2DAED,UACC,2DAIF,sCACC,iBACA,wBAMD,sCACC,mBACA,mBACA,kBACC,4DAED,cACC,4DAED,UACC,4DAIF,sCACC,oBACA,qBACA,kBACC,2DAED,cACC,2DAED,UACC,2DAIF,sCACC,sBACA,qBACA,kBACC,sEAED,cACC,sEAED,UACC,sEAIF,sCACC,uBACA,uBACA,kBACC,uEAED,cACC,uEAED,UACC,uEAKH,gBACC,mBACA,8BACA,qBACA,UACA,6CACA,wCACA,qCAEA,oBACC,UACA,6CACA,wCACA,qCAIF,yBACC,UAEA,6BACC,UAIF,2BACC,yCACA,oCAGD,6BACC,2CACA,sCAKD,oCAEC,mCACA,YACA,0FAGD,kCAEC,kBAGD,gDAEC,gCACA,YAEA,gFACC,kBAKA,kHAEC,kBAIF,sDACC,oCAEA,sHAEC,kBAGD,4DACC,kBACA,mBAGD,kEACC,kBAGD,0EACC,YACA,kBACA,MACA,OAKH,kBACC,cACA,2BACA,YAEA,oCACC,wBAGD,oEAEC,cACA,gBAKA,+CACC,mBAIF,6BACC,sBACA,oBACA,wBACA,mCACA,kBACA,oCAIF,qCAIE,oCACC,yBAOH,eACC,mCACA,YACA,0FAGD,cACC,kBAGD,gBACC,gCACA,YACA,kBAGD,eACC,kBACA,kBAEA,iBACC,qBACA,cACA,mBACA,mBACA,4BACA,qBACA,yCACA,+CACA,0CACA,uCAEA,sEAGC,qBAWH,YACC,mCACA,gCACA,YACA,gFACA,oBACA,oBACA,aACA,4BACA,6BACA,0BACA,sBACA,yBACA,sBACA,mBAGD,oBACC,oBACA,oBACA,aACA,yBACA,sBACA,mBAEA,sBACC,uBACA,wBACA,kBACA,4BACA,oBACA,oBACA,aACA,wBACA,qBACA,uBACA,yBACA,sBACA,mBACA,+CACA,0CACA,uCAEA,wBACC,kBAGD,0BACC,kBAID,qFAGC,qBAMD,uDACC,UACA,WAMD,mDACC,UACA,WAKH,uBACC,oCACA,kBAGD,qCAEC,YACC,8BACA,6BACA,uBACA,mBACA,yBACA,sBACA,8BACA,sBACA,mBACA,qBAGD,oBACC,QAGD,uBACC,QACA","file":"style.min.css"}

View file

@ -10,88 +10,88 @@
// Fonts and colors
body {
font-family: var(--text-font-family);
font-size: var(--text-font-size);
line-height: var(--text-font-size);
color: var(--jet);
background-color: var(--white);
font-family: var(--text-font-family);
font-size: var(--text-font-size);
line-height: var(--text-font-size);
color: var(--jet);
background-color: var(--white);
}
h1,
h2,
h3 {
color: var(--black);
color: var(--black);
}
h1 {
font-family: var(--logo-font-family);
font-size: var(--h1-font-size);
line-height: var(--h1-font-size);
font-family: var(--logo-font-family);
font-size: var(--h1-font-size);
line-height: var(--h1-font-size);
}
h2 {
font-family: var(--text-font-family);
font-size: var(--h2-font-size);
line-height: var(--h2-font-size);
margin: 0 0 4rem 0;
font-family: var(--text-font-family);
font-size: var(--h2-font-size);
line-height: var(--h2-font-size);
margin: 0 0 4rem 0;
}
h3 {
font-family: var(--text-font-family);
font-size: var(--h3-font-size);
line-height: var(--h3-font-size);
margin: 2rem 0 1rem 0;
font-family: var(--text-font-family);
font-size: var(--h3-font-size);
line-height: var(--h3-font-size);
margin: 2rem 0 1rem 0;
}
p {
text-align: justify;
line-height: var(--text-line-height);
text-align: justify;
line-height: var(--text-line-height);
}
strong {
font-weight: var(--bold-font-weight);
font-weight: var(--bold-font-weight);
}
em {
font-style: italic;
font-style: italic;
}
// Link style
a {
color: var(--jet);
text-decoration: underline;
color: var(--jet);
text-decoration: underline;
border-radius: 2px;
-webkit-transition: color 200ms ease-in-out;
-o-transition: color 200ms ease-in-out;
transition: color 200ms ease-in-out;
-webkit-transition: color 200ms ease-in-out;
-o-transition: color 200ms ease-in-out;
transition: color 200ms ease-in-out;
&:hover,
&:focus,
&:active {
color: var(--black);
}
&:hover,
&:focus,
&:active {
color: var(--black);
}
&:focus-visible {
outline: 1px dashed var(--black);
outline-offset: 2px;
-webkit-animation: expand-outline 200ms ease-out;
animation: expand-outline 200ms ease-in-out;
animation: expand-outline 200ms ease-in-out;
}
}
// General grid layout
body {
min-height: 100vh;
overflow-x: hidden;
display: -ms-grid;
display: grid;
grid:
'header' var(--header-bar-height)
'main' 1fr
'footer' auto
/ 1fr;
min-height: 100vh;
overflow-x: hidden;
display: -ms-grid;
display: grid;
grid:
'header' var(--header-bar-height)
'main' 1fr
'footer' auto
/ 1fr;
}
.body--hidden-overflow-y {
@ -99,15 +99,15 @@ body {
}
header {
grid-area: header;
grid-area: header;
}
main {
grid-area: main;
grid-area: main;
}
footer {
grid-area: footer;
grid-area: footer;
}
// ----------------------------------------------------------------------------
@ -118,20 +118,20 @@ footer {
.header-bar {
width: 100%;
height: var(--header-bar-height);
margin: auto;
height: var(--header-bar-height);
margin: auto;
padding: var(--header-bar-vertical-padding) Max(var(--header-bar-horizontal-padding), calc((100vw - var(--content-max-width)) / 2 + var(--header-bar-horizontal-padding)));
background-color: var(--transparent-white);
border-bottom: 1px solid var(--transparent-white);
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
z-index: 1;
-webkit-transition:
height 400ms ease-in-out,
@ -162,12 +162,12 @@ footer {
}
.header-bar__logo {
width: max-content;
width: max-content;
-webkit-transition: transform 400ms ease-in-out;
-o-transition: transform 400ms ease-in-out;
transition: transform 400ms ease-in-out;
-webkit-transform-origin: left;
-ms-transform-origin: left;
-ms-transform-origin: left;
transform-origin: left;
&--small {
@ -178,7 +178,7 @@ footer {
}
.header-bar__logo-link {
text-decoration: none;
text-decoration: none;
}
.header-bar__nav {
@ -218,13 +218,13 @@ footer {
height: 100%;
padding: 10%;
flex-shrink: 0;
-webkit-transition:
-webkit-transition:
opacity 400ms ease-in-out,
transform 400ms ease-in-out;
-o-transition:
-o-transition:
opacity 400ms ease-in-out,
transform 400ms ease-in-out;
transition:
transition:
opacity 400ms ease-in-out,
transform 400ms ease-in-out;
}
@ -239,20 +239,20 @@ footer {
opacity: 0;
}
&:hover,
&:active {
&:hover,
&:active {
-webkit-transform: scale(1.1);
-ms-transform: scale(1.1);
transform: scale(1.1);
}
}
&--custom-focus {
background-color: var(--white);
svg {
-webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%);
}
svg:nth-child(1) {
@ -395,245 +395,245 @@ footer {
// Home section
.home-section {
max-width: var(--content-max-width);
min-height: var(--home-section-min-height);
margin: auto;
padding: var(--home-section-vertical-padding) var(--home-section-horizontal-padding);
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
max-width: var(--content-max-width);
min-height: var(--home-section-min-height);
margin: auto;
padding: var(--home-section-vertical-padding) var(--home-section-horizontal-padding);
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.home__nav {
height: 100%;
display: -ms-grid;
display: grid;
grid:
'top-left top top-right' var(--home-nav-item-size)
'left center right' auto
'bottom-left bottom bottom-right' var(--home-nav-item-size)
/ var(--home-nav-item-size) auto var(--home-nav-item-size);
place-content: center center;
gap: var(--home-nav-gap);
line-height: 0;
height: 100%;
display: -ms-grid;
display: grid;
grid:
'top-left top top-right' var(--home-nav-item-size)
'left center right' auto
'bottom-left bottom bottom-right' var(--home-nav-item-size)
/ var(--home-nav-item-size) auto var(--home-nav-item-size);
place-content: center center;
gap: var(--home-nav-gap);
line-height: 0;
}
.home__nav-image {
grid-area: center;
grid-area: center;
img {
min-width: 12rem;
max-width: Min(100%, 2500px);
min-height: 12rem;
max-height: var(--home-nav-image-max-height);
}
img {
min-width: 12rem;
max-width: Min(100%, 2500px);
min-height: 12rem;
max-height: var(--home-nav-image-max-height);
}
}
.home__nav--2-items {
.home__nav-item-1 {
grid-area: top-left;
place-self: end end;
-webkit-transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
-ms-transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
}
.home__nav-item-1 {
grid-area: top-left;
place-self: end end;
-webkit-transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
-ms-transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
}
.home__nav-item-2 {
grid-area: top-right;
place-self: end start;
-webkit-transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
-ms-transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
}
.home__nav-item-2 {
grid-area: top-right;
place-self: end start;
-webkit-transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
-ms-transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
}
}
.home__nav--3-items {
.home__nav-item-1 {
grid-area: top-left;
place-self: end end;
-webkit-transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
-ms-transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
}
.home__nav-item-1 {
grid-area: top-left;
place-self: end end;
-webkit-transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
-ms-transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
}
.home__nav-item-2 {
grid-area: top-right;
place-self: end start;
-webkit-transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
-ms-transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
}
.home__nav-item-2 {
grid-area: top-right;
place-self: end start;
-webkit-transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
-ms-transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
}
.home__nav-item-3 {
grid-area: bottom;
place-self: start center;
}
.home__nav-item-3 {
grid-area: bottom;
place-self: start center;
}
}
.home__nav--4-items {
.home__nav-item-1 {
grid-area: top-left;
place-self: end end;
-webkit-transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
-ms-transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
}
.home__nav-item-1 {
grid-area: top-left;
place-self: end end;
-webkit-transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
-ms-transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
transform:
rotate(-45deg)
translateY(var(--home-nav-item-translation));
}
.home__nav-item-2 {
grid-area: top-right;
place-self: end start;
-webkit-transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
-ms-transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
}
.home__nav-item-2 {
grid-area: top-right;
place-self: end start;
-webkit-transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
-ms-transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
transform:
rotate(45deg)
translateY(var(--home-nav-item-translation));
}
.home__nav-item-3 {
grid-area: bottom-left;
place-self: start end;
-webkit-transform:
rotate(45deg)
translateY(calc(var(--home-nav-item-translation) * -1));
-ms-transform:
rotate(45deg)
translateY(calc(var(--home-nav-item-translation) * -1));
transform:
rotate(45deg)
translateY(calc(var(--home-nav-item-translation) * -1));
}
.home__nav-item-3 {
grid-area: bottom-left;
place-self: start end;
-webkit-transform:
rotate(45deg)
translateY(calc(var(--home-nav-item-translation) * -1));
-ms-transform:
rotate(45deg)
translateY(calc(var(--home-nav-item-translation) * -1));
transform:
rotate(45deg)
translateY(calc(var(--home-nav-item-translation) * -1));
}
.home__nav-item-4 {
grid-area: bottom-right;
place-self: start start;
-webkit-transform:
rotate(-45deg)
translateY(calc(var(--home-nav-item-translation) * -1));
-ms-transform:
rotate(-45deg)
translateY(calc(var(--home-nav-item-translation) * -1));
transform:
rotate(-45deg)
translateY(calc(var(--home-nav-item-translation) * -1));
}
.home__nav-item-4 {
grid-area: bottom-right;
place-self: start start;
-webkit-transform:
rotate(-45deg)
translateY(calc(var(--home-nav-item-translation) * -1));
-ms-transform:
rotate(-45deg)
translateY(calc(var(--home-nav-item-translation) * -1));
transform:
rotate(-45deg)
translateY(calc(var(--home-nav-item-translation) * -1));
}
}
.home__nav-link {
color: var(--black);
font-size: var(--h3-font-size);
text-decoration: none;
opacity: 0;
-webkit-transition: opacity 600ms ease-in-out;
-o-transition: opacity 600ms ease-in-out;
transition: opacity 600ms ease-in-out;
color: var(--black);
font-size: var(--h3-font-size);
text-decoration: none;
opacity: 0;
-webkit-transition: opacity 600ms ease-in-out;
-o-transition: opacity 600ms ease-in-out;
transition: opacity 600ms ease-in-out;
div {
opacity: 0;
-webkit-transition: opacity 600ms ease-in-out;
-o-transition: opacity 600ms ease-in-out;
transition: opacity 600ms ease-in-out;
}
div {
opacity: 0;
-webkit-transition: opacity 600ms ease-in-out;
-o-transition: opacity 600ms ease-in-out;
transition: opacity 600ms ease-in-out;
}
}
.home__nav-link--visible {
opacity: 1;
opacity: 1;
div {
opacity: 1;
}
div {
opacity: 1;
}
}
.home__nav-letter--wave-up {
-webkit-animation: wave-up 600ms ease-out;
animation: wave-up 600ms ease-in-out;
-webkit-animation: wave-up 600ms ease-out;
animation: wave-up 600ms ease-in-out;
}
.home__nav-letter--wave-down {
-webkit-animation: wave-down 600ms ease-out;
animation: wave-down 600ms ease-in-out;
-webkit-animation: wave-down 600ms ease-out;
animation: wave-down 600ms ease-in-out;
}
// Gallery & biography sections
.gallery-section,
.biography-section {
max-width: var(--content-max-width);
margin: auto;
padding: var(--generic-section-vertical-padding) var(--generic-section-horizontal-padding);
max-width: var(--content-max-width);
margin: auto;
padding: var(--generic-section-vertical-padding) var(--generic-section-horizontal-padding);
}
.gallery__title,
.biography__title {
text-align: center;
text-align: center;
}
.gallery__introduction,
.biography__presentation {
max-width: var(--text-max-width);
margin: auto;
max-width: var(--text-max-width);
margin: auto;
h3:nth-child(1) {
margin: 0 0 1rem 0;
}
h3:nth-child(1) {
margin: 0 0 1rem 0;
}
p {
p {
+ p,
+ ul {
margin: 1rem 0 0 0;
}
}
+ p,
+ ul {
margin: 1rem 0 0 0;
}
}
ul {
ul {
line-height: var(--text-line-height);
+ ul,
+ p {
margin: 1rem 0 0 0;
}
+ ul,
+ p {
margin: 1rem 0 0 0;
}
li {
position: relative;
@ -650,91 +650,91 @@ footer {
top: 0;
left: 0;
}
}
}
}
.gallery__artwork {
display: table;
max-width: Min(1280px, 100%);
margin: auto;
display: table;
max-width: Min(1280px, 100%);
margin: auto;
+ .gallery__artwork {
margin: 2rem auto 0 auto;
}
+ .gallery__artwork {
margin: 2rem auto 0 auto;
}
.gallery__image,
.gallery__video {
display: block;
max-height: 80vh;
}
.gallery__image,
.gallery__video {
display: block;
max-height: 80vh;
}
.gallery__video {
.gallery__video {
&--full-screen {
max-height: initial;
}
}
&--full-screen {
max-height: initial;
}
}
figcaption {
display: table-caption;
caption-side: bottom;
margin: 1rem auto 0 auto;
font-size: var(--caption-font-size);
font-style: italic;
line-height: var(--text-line-height);
}
figcaption {
display: table-caption;
caption-side: bottom;
margin: 1rem auto 0 auto;
font-size: var(--caption-font-size);
font-style: italic;
line-height: var(--text-line-height);
}
}
@media screen and (min-width: $tablet-media-query) {
.gallery__artwork {
.gallery__artwork {
+ .gallery__artwork {
margin: 3rem auto 0 auto;
}
}
+ .gallery__artwork {
margin: 3rem auto 0 auto;
}
}
}
// Error section
.error-section {
max-width: var(--content-max-width);
margin: auto;
padding: var(--generic-section-vertical-padding) var(--generic-section-horizontal-padding);
max-width: var(--content-max-width);
margin: auto;
padding: var(--generic-section-vertical-padding) var(--generic-section-horizontal-padding);
}
.error__title {
text-align: center;
text-align: center;
}
.error__message {
max-width: var(--text-max-width);
margin: auto;
text-align: center;
max-width: var(--text-max-width);
margin: auto;
text-align: center;
}
.error__button {
margin: 1rem 0 0 0;
text-align: center;
margin: 1rem 0 0 0;
text-align: center;
a {
display: inline-block;
padding: 0.8rem;
border-radius: 10px;
color: var(--white);
background-color: var(--jet);
text-decoration: none;
font-weight: var(--semi-bold-font-weight);
a {
display: inline-block;
padding: 0.8rem;
border-radius: 10px;
color: var(--white);
background-color: var(--jet);
text-decoration: none;
font-weight: var(--semi-bold-font-weight);
-webkit-transition: transform 200ms ease-in-out;
-o-transition: transform 200ms ease-in-out;
transition: transform 200ms ease-in-out;
&:hover,
&:focus,
&:active {
transform: scale(1.1);
}
}
&:hover,
&:focus,
&:active {
transform: scale(1.1);
}
}
}
// ----------------------------------------------------------------------------
@ -744,63 +744,63 @@ footer {
// Footer bar
.footer-bar {
max-width: var(--content-max-width);
height: var(--footer-bar-height);
margin: auto;
padding: var(--footer-bar-vertical-padding) var(--footer-bar-horizontal-padding);
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
max-width: var(--content-max-width);
height: var(--footer-bar-height);
margin: auto;
padding: var(--footer-bar-vertical-padding) var(--footer-bar-horizontal-padding);
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.footer-bar__social {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
a {
a {
width: var(--icon-size);
height: var(--icon-size);
border-radius: 50%;
background-color: var(--jet);
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-transition: transform 200ms ease-in-out;
-o-transition: transform 200ms ease-in-out;
transition: transform 200ms ease-in-out;
+ a {
margin: 0 0 0 1rem;
}
+ a {
margin: 0 0 0 1rem;
}
svg {
svg {
fill: var(--white);
}
}
&:hover,
&:focus,
&:active {
&:active {
transform: scale(1.1);
}
}
}
}
a.footer-bar__instagram-button {
@ -820,31 +820,31 @@ footer {
}
.footer-bar__copyright {
font-size: var(--footnote-font-size);
margin: 1rem 0 0 0;
font-size: var(--footnote-font-size);
margin: 1rem 0 0 0;
}
@media screen and (min-width: $tablet-media-query) {
.footer-bar {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
-webkit-box-align: end;
-ms-flex-align: end;
align-items: flex-end;
}
.footer-bar {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
-webkit-box-align: end;
-ms-flex-align: end;
align-items: flex-end;
}
.footer-bar__social {
order: 2;
}
.footer-bar__social {
order: 2;
}
.footer-bar__copyright {
order: 1;
margin: 0;
}
.footer-bar__copyright {
order: 1;
margin: 0;
}
}

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before After
Before After

View file

@ -1,16 +1,16 @@
{
"name": "Xiao Wang",
"short_name": "Xiao Wang",
"icons": [
{
"src": "xiao-wang-favicon-192px.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "xiao-wang-favicon-512px.png",
"sizes": "512x512",
"type": "image/png"
}
]
"name": "Xiao Wang",
"short_name": "Xiao Wang",
"icons": [
{
"src": "xiao-wang-favicon-192px.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "xiao-wang-favicon-512px.png",
"sizes": "512x512",
"type": "image/png"
}
]
}

View file

@ -41,8 +41,8 @@ const touchPosition = {
// Convert rem to pixels by getting font-size CSS property
function convertRemToPixels(rem) {
let fontSize = parseFloat(window.getComputedStyle(document.body).getPropertyValue('font-size'));
return rem * fontSize;
let fontSize = parseFloat(window.getComputedStyle(document.body).getPropertyValue('font-size'));
return rem * fontSize;
}
// ----------------------------------------------------------------------------
@ -53,257 +53,257 @@ function convertRemToPixels(rem) {
// Calculate navigation grid inner width
function calculateNavGridInnerWidth() {
if (root && navImage) {
let navGridGapProperty = window.getComputedStyle(root).getPropertyValue('--home-nav-gap');
let navGridGap = parseFloat(navGridGapProperty.slice(0, -3));
return navImage.getBoundingClientRect().width + (convertRemToPixels(navGridGap) * 2);
}
if (root && navImage) {
let navGridGapProperty = window.getComputedStyle(root).getPropertyValue('--home-nav-gap');
let navGridGap = parseFloat(navGridGapProperty.slice(0, -3));
return navImage.getBoundingClientRect().width + (convertRemToPixels(navGridGap) * 2);
}
}
// Calculate navigation grid inner diagonal
function calculateNavGridInnerDiagonal() {
return calculateNavGridInnerWidth() * Math.sqrt(2);
return calculateNavGridInnerWidth() * Math.sqrt(2);
}
// Create new instance of CircleType for each navigation link, set radius and direction
function curveNavLinks() {
if (navLinks.length !== 0 && circleTypes) {
for (let i = 0; i < (navLinks.length - 2); i++) {
circleTypes[i] = new CircleType(navLinks[i]);
circleTypes[i].radius(calculateNavGridInnerWidth() / 2);
}
for (let i = (navLinks.length - 2); i < navLinks.length; i++) {
circleTypes[i] = new CircleType(navLinks[i]);
circleTypes[i].dir(-1);
circleTypes[i].radius(calculateNavGridInnerWidth() / 2);
}
}
if (navLinks.length !== 0 && circleTypes) {
for (let i = 0; i < (navLinks.length - 2); i++) {
circleTypes[i] = new CircleType(navLinks[i]);
circleTypes[i].radius(calculateNavGridInnerWidth() / 2);
}
for (let i = (navLinks.length - 2); i < navLinks.length; i++) {
circleTypes[i] = new CircleType(navLinks[i]);
circleTypes[i].dir(-1);
circleTypes[i].radius(calculateNavGridInnerWidth() / 2);
}
}
}
// Set --home-nav-item-translation CSS property
function setNavItemTranslationProperty() {
let navItemTranslation = (calculateNavGridInnerDiagonal() - calculateNavGridInnerWidth()) / 2;
if (root) {
root.style.setProperty('--home-nav-item-translation', navItemTranslation + 'px');
}
let navItemTranslation = (calculateNavGridInnerDiagonal() - calculateNavGridInnerWidth()) / 2;
if (root) {
root.style.setProperty('--home-nav-item-translation', navItemTranslation + 'px');
}
}
// Set navigation grid display depending on number of links
function setNavGridDisplay() {
if (navEl && navLinks.length !== 0) {
if (navLinks.length === 2) {
navEl.classList.add('home__nav--2-items');
} else if (navLinks.length === 3) {
navEl.classList.add('home__nav--3-items');
} else if (navLinks.length === 4) {
navEl.classList.add('home__nav--4-items');
}
for (let i = 0; i < navLinks.length; i++) {
navLinks[i].classList.add('home__nav-link--visible');
}
}
if (navEl && navLinks.length !== 0) {
if (navLinks.length === 2) {
navEl.classList.add('home__nav--2-items');
} else if (navLinks.length === 3) {
navEl.classList.add('home__nav--3-items');
} else if (navLinks.length === 4) {
navEl.classList.add('home__nav--4-items');
}
for (let i = 0; i < navLinks.length; i++) {
navLinks[i].classList.add('home__nav-link--visible');
}
}
}
// Edit navigation links radius and translation on window resize event
function editNavLinksOnResize() {
window.addEventListener('resize', function(e) {
if (navLinks.length !== 0 && circleTypes) {
for (let i = 0; i < navLinks.length; i++) {
circleTypes[i].radius(calculateNavGridInnerWidth() / 2);
}
}
setNavItemTranslationProperty();
});
window.addEventListener('resize', function(e) {
if (navLinks.length !== 0 && circleTypes) {
for (let i = 0; i < navLinks.length; i++) {
circleTypes[i].radius(calculateNavGridInnerWidth() / 2);
}
}
setNavItemTranslationProperty();
});
}
// Add wave up animation to a single letter and remove it on animationend event
function waveNavLetterUp(navLetter) {
navLetter.classList.add('home__nav-letter--wave-up');
navLetter.addEventListener('animationend', function(e) {
navLetter.classList.remove('home__nav-letter--wave-up');
});
navLetter.classList.add('home__nav-letter--wave-up');
navLetter.addEventListener('animationend', function(e) {
navLetter.classList.remove('home__nav-letter--wave-up');
});
}
// Add wave down animation to a single letter and remove it on animationend event
function waveNavLetterDown(navLetter) {
navLetter.classList.add('home__nav-letter--wave-down');
navLetter.addEventListener('animationend', function(e) {
navLetter.classList.remove('home__nav-letter--wave-down');
});
navLetter.classList.add('home__nav-letter--wave-down');
navLetter.addEventListener('animationend', function(e) {
navLetter.classList.remove('home__nav-letter--wave-down');
});
}
// Add wave up animation to every letters of a single link with a slight delay
function waveNavLinkUp(navLink) {
let navLinkLetters = navLink.querySelectorAll('span');
let animationDelay = 0;
for (let i = 0; i < navLinkLetters.length; i++) {
setTimeout(waveNavLetterUp, animationDelay, navLinkLetters[i]);
animationDelay += 50;
}
let navLinkLetters = navLink.querySelectorAll('span');
let animationDelay = 0;
for (let i = 0; i < navLinkLetters.length; i++) {
setTimeout(waveNavLetterUp, animationDelay, navLinkLetters[i]);
animationDelay += 50;
}
}
// Add wave down animation to every letters of a single link with a slight delay
function waveNavLinkDown(navLink) {
let navLinkLetters = navLink.querySelectorAll('span');
let animationDelay = 0;
for (let i = 0; i < navLinkLetters.length; i++) {
setTimeout(waveNavLetterDown, animationDelay, navLinkLetters[i]);
animationDelay += 50;
}
let navLinkLetters = navLink.querySelectorAll('span');
let animationDelay = 0;
for (let i = 0; i < navLinkLetters.length; i++) {
setTimeout(waveNavLetterDown, animationDelay, navLinkLetters[i]);
animationDelay += 50;
}
}
// Add wave (up or down) animation to every letters of each link on mouseover event
function waveNavLinksOnHover() {
if (navLinks.length !== 0) {
for (let i = 0; i < (navLinks.length - 2); i++) {
navLinks[i].addEventListener('mouseover', function(e) {
waveNavLinkUp(navLinks[i]);
});
}
for (let i = (navLinks.length - 2); i < navLinks.length; i++) {
navLinks[i].addEventListener('mouseover', function(e) {
waveNavLinkDown(navLinks[i]);
});
}
}
if (navLinks.length !== 0) {
for (let i = 0; i < (navLinks.length - 2); i++) {
navLinks[i].addEventListener('mouseover', function(e) {
waveNavLinkUp(navLinks[i]);
});
}
for (let i = (navLinks.length - 2); i < navLinks.length; i++) {
navLinks[i].addEventListener('mouseover', function(e) {
waveNavLinkDown(navLinks[i]);
});
}
}
}
// VIDEO PLAYERS //
// Set up Plyr video players
function setUpVideoPlayers() {
if (galleryVideos.length !== 0) {
videoPlayers = Plyr.setup(galleryVideos, {
controls: [
'play-large',
'play',
'progress',
'current-time',
'duration',
'mute',
'volume',
'fullscreen'
],
i18n: {
play: 'Lire',
pause: 'Mettre sur pause',
seek: 'Parcourir la piste audio',
currentTime: 'Temps écoulé depuis le début de la piste audio',
duration: 'Durée de la piste audio',
volume: 'Ajuster le volume',
mute: 'Couper le son',
unmute: 'Activer le son',
enterFullscreen: 'Activer le mode plein écran',
exitFullscreen: 'Quitter le mode plein écran'
}
});
}
if (galleryVideos.length !== 0) {
videoPlayers = Plyr.setup(galleryVideos, {
controls: [
'play-large',
'play',
'progress',
'current-time',
'duration',
'mute',
'volume',
'fullscreen'
],
i18n: {
play: 'Lire',
pause: 'Mettre sur pause',
seek: 'Parcourir la piste audio',
currentTime: 'Temps écoulé depuis le début de la piste audio',
duration: 'Durée de la piste audio',
volume: 'Ajuster le volume',
mute: 'Couper le son',
unmute: 'Activer le son',
enterFullscreen: 'Activer le mode plein écran',
exitFullscreen: 'Quitter le mode plein écran'
}
});
}
}
// Toggle videos full screen mode on Plyr enterfullscreen and exitfullscreen media events
function toggleVideosFullScreen() {
if (videoPlayers.length !== 0) {
for (let i = 0; i < videoPlayers.length; i++) {
videoPlayers[i].on('enterfullscreen', function(e) {
galleryVideos[i].classList.add('gallery__video--full-screen');
});
videoPlayers[i].on('exitfullscreen', function(e) {
galleryVideos[i].classList.remove('gallery__video--full-screen');
});
}
}
if (videoPlayers.length !== 0) {
for (let i = 0; i < videoPlayers.length; i++) {
videoPlayers[i].on('enterfullscreen', function(e) {
galleryVideos[i].classList.add('gallery__video--full-screen');
});
videoPlayers[i].on('exitfullscreen', function(e) {
galleryVideos[i].classList.remove('gallery__video--full-screen');
});
}
}
}
// HEADER BAR ANIMATION //
// Toggle header bar depending on scroll offset
function toggleHeaderBar() {
if (headerBar && headerLogo) {
let headerBarHeight = headerBar.getBoundingClientRect().height;
if (window.pageYOffset > headerBarHeight) { // Scroll down past header bar height
headerBar.classList.add('header-bar--fixed');
if (headerBar && headerLogo) {
let headerBarHeight = headerBar.getBoundingClientRect().height;
if (window.pageYOffset > headerBarHeight) { // Scroll down past header bar height
headerBar.classList.add('header-bar--fixed');
headerLogo.classList.add('header-bar__logo--small');
} else if (window.pageYOffset <= 0) {
headerBar.classList.remove('header-bar--fixed');
} else if (window.pageYOffset <= 0) {
headerBar.classList.remove('header-bar--fixed');
headerLogo.classList.remove('header-bar__logo--small');
headerBar.classList.remove('header-bar--visible');
}
if (headerBar.classList.contains('header-bar--fixed')) {
if (scrollOffset < window.pageYOffset) { // Scroll down
headerBar.classList.remove('header-bar--visible');
} else if (scrollOffset > window.pageYOffset) { // Scroll up
headerBar.classList.add('header-bar--visible');
}
scrollOffset = window.pageYOffset;
}
}
headerBar.classList.remove('header-bar--visible');
}
if (headerBar.classList.contains('header-bar--fixed')) {
if (scrollOffset < window.pageYOffset) { // Scroll down
headerBar.classList.remove('header-bar--visible');
} else if (scrollOffset > window.pageYOffset) { // Scroll up
headerBar.classList.add('header-bar--visible');
}
scrollOffset = window.pageYOffset;
}
}
}
// NAVIGATION MENU ANIMATION //
// Toggle header navigation
function toggleHeaderNav() {
if (headerNavBtn && headerNavMenu) {
headerNavBtn.classList.toggle('header-bar__nav-button--custom-focus');
headerNavMenu.classList.toggle('header-bar__nav-menu--visible');
if (headerNavBtn && headerNavMenu) {
headerNavBtn.classList.toggle('header-bar__nav-button--custom-focus');
headerNavMenu.classList.toggle('header-bar__nav-menu--visible');
headerNavOverlay.classList.toggle('header-bar__nav-overlay--visible');
document.body.classList.toggle('body--hidden-overflow-y');
}
document.body.classList.toggle('body--hidden-overflow-y');
}
}
// Open header navigation
function openHeaderNav() {
if (headerNavBtn && headerNavMenu) {
headerNavBtn.classList.add('header-bar__nav-button--custom-focus');
headerNavMenu.classList.add('header-bar__nav-menu--visible');
if (headerNavBtn && headerNavMenu) {
headerNavBtn.classList.add('header-bar__nav-button--custom-focus');
headerNavMenu.classList.add('header-bar__nav-menu--visible');
headerNavOverlay.classList.add('header-bar__nav-overlay--visible');
document.body.classList.add('body--hidden-overflow-y');
}
document.body.classList.add('body--hidden-overflow-y');
}
}
// Close header navigation
function closeHeaderNav() {
if (headerNavBtn && headerNavMenu) {
headerNavBtn.classList.remove('header-bar__nav-button--custom-focus');
headerNavMenu.classList.remove('header-bar__nav-menu--visible');
if (headerNavBtn && headerNavMenu) {
headerNavBtn.classList.remove('header-bar__nav-button--custom-focus');
headerNavMenu.classList.remove('header-bar__nav-menu--visible');
headerNavOverlay.classList.remove('header-bar__nav-overlay--visible');
document.body.classList.remove('body--hidden-overflow-y');
}
document.body.classList.remove('body--hidden-overflow-y');
}
}
// Toggle header navigation on button click event
function toggleHeaderNavOnClick() {
headerNavBtn.addEventListener('click', toggleHeaderNav);
headerNavBtn.addEventListener('click', toggleHeaderNav);
}
// Close header navigation on document click event
function closeHeaderNavOnClick() {
document.addEventListener('click', function(e) {
if (headerNavBtn.classList.contains('header-bar__nav-button--custom-focus') && headerNavMenu.classList.contains('header-bar__nav-menu--visible') && !headerNavBtn.contains(e.target) && !headerNavMenu.contains(e.target)) {
closeHeaderNav(e);
document.addEventListener('click', function(e) {
if (headerNavBtn.classList.contains('header-bar__nav-button--custom-focus') && headerNavMenu.classList.contains('header-bar__nav-menu--visible') && !headerNavBtn.contains(e.target) && !headerNavMenu.contains(e.target)) {
closeHeaderNav(e);
if (e.cancelable) {
e.preventDefault();
}
}
});
}
});
}
// Open header navigation on menu list focusin event
function openHeaderNavBeforeFocus() {
if (headerNavMenuListEls) {
for (let i = 0; i < headerNavMenuListEls.length; i++) {
headerNavMenuListEls[i].addEventListener('focusin', openHeaderNav);
}
}
if (headerNavMenuListEls) {
for (let i = 0; i < headerNavMenuListEls.length; i++) {
headerNavMenuListEls[i].addEventListener('focusin', openHeaderNav);
}
}
}
// Close header navigation on menu list focusout event
function closeHeaderNavAfterFocus() {
if (headerNavMenuListEls) {
for (let i = 0; i < headerNavMenuListEls.length; i++) {
headerNavMenuListEls[i].addEventListener('focusout', closeHeaderNav);
}
}
if (headerNavMenuListEls) {
for (let i = 0; i < headerNavMenuListEls.length; i++) {
headerNavMenuListEls[i].addEventListener('focusout', closeHeaderNav);
}
}
}
// Close header navigation on touchstart and touchmove events (swipe right)
@ -341,11 +341,11 @@ document.addEventListener("touchstart", function() {},false);
// HOME NAVIGATION DISPLAY //
window.addEventListener('load', function() {
curveNavLinks();
setNavItemTranslationProperty();
setNavGridDisplay();
editNavLinksOnResize();
waveNavLinksOnHover();
curveNavLinks();
setNavItemTranslationProperty();
setNavGridDisplay();
editNavLinksOnResize();
waveNavLinksOnHover();
});
// VIDEO PLAYERS //
@ -356,7 +356,7 @@ toggleVideosFullScreen();
// HEADER BAR ANIMATION //
document.addEventListener('scroll', function() {
toggleHeaderBar();
toggleHeaderBar();
});
// NAVIGATION MENU ANIMATION //

View file

@ -1,30 +1,30 @@
{
"name": "paulnicoue/xiaowang",
"description": "Xiao Wang",
"type": "project",
"homepage": "https://xiaowang.fr",
"authors": [
{
"name": "Paul Nicoué",
"email": "contact@paulnicoue.com",
"homepage": "https://paulnicoue.com"
}
],
"require": {
"php": ">=7.3.0 <8.1.0",
"getkirby/cms": "^3.5",
"amteich/kirby-twig": "^4.1",
"sylvainjule/matomo": "^1.0",
"kirbyzone/sitemapper": "^1.2",
"mullema/k3-image-clip": "^3.0"
},
"scripts": {
"start": [
"Composer\\Config::disableProcessTimeout",
"@php -S localhost:8000 kirby/router.php"
]
},
"config": {
"optimize-autoloader": true
}
"name": "paulnicoue/xiaowang",
"description": "Xiao Wang",
"type": "project",
"homepage": "https://xiaowang.fr",
"authors": [
{
"name": "Paul Nicoué",
"email": "contact@paulnicoue.com",
"homepage": "https://paulnicoue.com"
}
],
"require": {
"php": ">=7.3.0 <8.1.0",
"getkirby/cms": "^3.5",
"amteich/kirby-twig": "^4.1",
"sylvainjule/matomo": "^1.0",
"kirbyzone/sitemapper": "^1.2",
"mullema/k3-image-clip": "^3.0"
},
"scripts": {
"start": [
"Composer\\Config::disableProcessTimeout",
"@php -S localhost:8000 kirby/router.php"
]
},
"config": {
"optimize-autoloader": true
}
}

2280
composer.lock generated

File diff suppressed because it is too large Load diff

View file

@ -1,34 +1,34 @@
title: Artwork
accept:
mime: image/jpeg, image/png, video/mp4
mime: image/jpeg, image/png, video/mp4
fields:
alt_text:
when:
file_type: image
label:
en: Alternative text
fr: Texte alternatif
type: text
poster:
when:
file_type: video
label:
en: Poster
fr: Vignette
type: files
uploads: image
layout: cards
image:
ratio: 16/9
cover: true
back: white
multiple: false
help:
en: "Image displayed before video playback (format: JPEG or PNG). The first image of the video is used if this field is empty."
fr: "Image affichée avant la lecture de la vidéo (format : JPEG ou PNG). La première image de la vidéo est utilisée si ce champ est vide."
width: 1/4
caption:
label:
en: Caption
fr: Légende
type: text
alt_text:
when:
file_type: image
label:
en: Alternative text
fr: Texte alternatif
type: text
poster:
when:
file_type: video
label:
en: Poster
fr: Vignette
type: files
uploads: image
layout: cards
image:
ratio: 16/9
cover: true
back: white
multiple: false
help:
en: "Image displayed before video playback (format: JPEG or PNG). The first image of the video is used if this field is empty."
fr: "Image affichée avant la lecture de la vidéo (format : JPEG ou PNG). La première image de la vidéo est utilisée si ce champ est vide."
width: 1/4
caption:
label:
en: Caption
fr: Légende
type: text

View file

@ -1,14 +1,14 @@
title: Image
accept:
mime: image/jpeg, image/png
mime: image/jpeg, image/png
fields:
alt_text:
label:
en: Alternative text
fr: Texte alternatif
type: text
caption:
label:
en: Caption
fr: Légende
type: text
alt_text:
label:
en: Alternative text
fr: Texte alternatif
type: text
caption:
label:
en: Caption
fr: Légende
type: text

View file

@ -1,21 +1,21 @@
title:
en: Biography
fr: Biographie
en: Biography
fr: Biographie
icon: text
status:
draft: true
unlisted: true
draft: true
unlisted: true
options:
changeSlug:
admin: true
editor: false
changeStatus: false
changeTemplate: false
changeTitle:
admin: true
editor: false
delete: false
duplicate: false
changeSlug:
admin: true
editor: false
changeStatus: false
changeTemplate: false
changeTitle:
admin: true
editor: false
delete: false
duplicate: false
tabs:
content: tabs/biography_content
seo: tabs/biography_seo
content: tabs/biography_content
seo: tabs/biography_seo

View file

@ -1,5 +1,5 @@
title:
en: Error
fr: Erreur
en: Error
fr: Erreur
options:
read: false
read: false

View file

@ -1,10 +1,10 @@
title:
en: Gallery
fr: Galerie
en: Gallery
fr: Galerie
icon: file-image
status:
draft: true
listed: true
draft: true
listed: true
tabs:
content: tabs/gallery_content
seo: tabs/gallery_seo
content: tabs/gallery_content
seo: tabs/gallery_seo

View file

@ -1,21 +1,21 @@
title:
en: Home
fr: Accueil
en: Home
fr: Accueil
icon: home
status:
draft: true
unlisted: true
draft: true
unlisted: true
options:
changeSlug:
admin: true
editor: false
changeStatus: false
changeTemplate: false
changeTitle:
admin: true
editor: false
delete: false
duplicate: false
changeSlug:
admin: true
editor: false
changeStatus: false
changeTemplate: false
changeTitle:
admin: true
editor: false
delete: false
duplicate: false
tabs:
content: tabs/home_content
seo: tabs/home_seo
content: tabs/home_content
seo: tabs/home_seo

View file

@ -1,20 +1,20 @@
type: fields
fields:
text:
label:
en: Presentation text
fr: Texte de présentation
type: textarea
required: true
size: large
buttons:
- headlines
- '|'
- bold
- italic
- '|'
- link
- email
- '|'
- ul
- '|'
text:
label:
en: Presentation text
fr: Texte de présentation
type: textarea
required: true
size: large
buttons:
- headlines
- '|'
- bold
- italic
- '|'
- link
- email
- '|'
- ul
- '|'

View file

@ -1,6 +1,6 @@
headline:
en: Artworks
fr: Œuvres
en: Artworks
fr: Œuvres
type: files
template: artwork
min: 1
@ -8,5 +8,5 @@ layout: cards
size: small
limit: 40
image:
ratio: 1/1
back: white
ratio: 1/1
back: white

View file

@ -1,19 +1,19 @@
type: fields
fields:
text:
label:
en: Introduction text
fr: Texte d'introduction
type: textarea
size: medium
buttons:
- headlines
- '|'
- bold
- italic
- '|'
- link
- email
- '|'
- ul
- '|'
text:
label:
en: Introduction text
fr: Texte d'introduction
type: textarea
size: medium
buttons:
- headlines
- '|'
- bold
- italic
- '|'
- link
- email
- '|'
- ul
- '|'

View file

@ -1,43 +1,43 @@
type: fields
fields:
meta_description:
label:
en: Meta description
fr: Méta description
type: textarea
size: small
buttons: false
help:
en: "Short description of the page displayed by search engines and social networks (recommended maximum length: 160 characters). Home page meta description is used if this field is empty."
fr: "Courte description de la page affichée par les moteurs de recherche et les réseaux sociaux (taille maximale conseillée : 160 caractères). La méta description de la page d'accueil est utilisée si ce champ est vide."
width: 3/4
gap:
type: gap
width: 1/4
meta_image:
label:
en: Meta image
fr: Méta image
type: image-clip
query: page.images
uploads: image
layout: cards
image:
cover: true
back: white
multiple: false
clip:
minwidth: 1200
minheight: 675
ratio: fixed
help:
en: "Image displayed by social networks (format: JPEG or PNG). Home page meta image is used if this field is empty."
fr: "Image affichée par les réseaux sociaux (format : JPEG ou PNG). La méta image de la page d'accueil est utilisée si ce champ est vide."
width: 1/4
# Hidden fields
og_type:
type: hidden
default: article
twitter_card_type:
type: hidden
default: summary_large_image
meta_description:
label:
en: Meta description
fr: Méta description
type: textarea
size: small
buttons: false
help:
en: "Short description of the page displayed by search engines and social networks (recommended maximum length: 160 characters). Home page meta description is used if this field is empty."
fr: "Courte description de la page affichée par les moteurs de recherche et les réseaux sociaux (taille maximale conseillée : 160 caractères). La méta description de la page d'accueil est utilisée si ce champ est vide."
width: 3/4
gap:
type: gap
width: 1/4
meta_image:
label:
en: Meta image
fr: Méta image
type: image-clip
query: page.images
uploads: image
layout: cards
image:
cover: true
back: white
multiple: false
clip:
minwidth: 1200
minheight: 675
ratio: fixed
help:
en: "Image displayed by social networks (format: JPEG or PNG). Home page meta image is used if this field is empty."
fr: "Image affichée par les réseaux sociaux (format : JPEG ou PNG). La méta image de la page d'accueil est utilisée si ce champ est vide."
width: 1/4
# Hidden fields
og_type:
type: hidden
default: article
twitter_card_type:
type: hidden
default: summary_large_image

View file

@ -1,6 +1,6 @@
headline:
en: Background image
fr: Image de fond
en: Background image
fr: Image de fond
type: files
template: image
min: 1
@ -8,5 +8,5 @@ max: 1
layout: cards
size: medium
image:
ratio: 1/1
back: white
ratio: 1/1
back: white

View file

@ -1,18 +1,18 @@
headline:
en: Contact and social networks
fr: Contact et réseaux sociaux
en: Contact and social networks
fr: Contact et réseaux sociaux
type: fields
fields:
email:
label:
en: Email
fr: Adresse e-mail
type: email
required: true
instagram:
type: url
label:
en: Instagram account
fr: Compte Instagram
icon: instagram
required: true
email:
label:
en: Email
fr: Adresse e-mail
type: email
required: true
instagram:
type: url
label:
en: Instagram account
fr: Compte Instagram
icon: instagram
required: true

View file

@ -1,44 +1,44 @@
type: fields
fields:
meta_description:
label:
en: Meta description
fr: Méta description
type: textarea
size: small
buttons: false
required: true
help:
en: "Short description of the page displayed by search engines and social networks (recommended maximum length: 160 characters)."
fr: "Courte description de la page affichée par les moteurs de recherche et les réseaux sociaux (taille maximale conseillée : 160 caractères)."
width: 3/4
gap:
type: gap
width: 1/4
meta_image:
label:
en: Meta image
fr: Méta image
type: image-clip
query: page.images
layout: cards
image:
cover: true
back: white
multiple: false
required: true
clip:
minwidth: 1200
minheight: 675
ratio: fixed
help:
en: "Image displayed by social networks (format: JPEG or PNG)."
fr: "Image affichée par les réseaux sociaux (format : JPEG ou PNG)."
width: 1/4
# Hidden fields
og_type:
type: hidden
default: website
twitter_card_type:
type: hidden
default: summary_large_image
meta_description:
label:
en: Meta description
fr: Méta description
type: textarea
size: small
buttons: false
required: true
help:
en: "Short description of the page displayed by search engines and social networks (recommended maximum length: 160 characters)."
fr: "Courte description de la page affichée par les moteurs de recherche et les réseaux sociaux (taille maximale conseillée : 160 caractères)."
width: 3/4
gap:
type: gap
width: 1/4
meta_image:
label:
en: Meta image
fr: Méta image
type: image-clip
query: page.images
layout: cards
image:
cover: true
back: white
multiple: false
required: true
clip:
minwidth: 1200
minheight: 675
ratio: fixed
help:
en: "Image displayed by social networks (format: JPEG or PNG)."
fr: "Image affichée par les réseaux sociaux (format : JPEG ou PNG)."
width: 1/4
# Hidden fields
og_type:
type: hidden
default: website
twitter_card_type:
type: hidden
default: summary_large_image

View file

@ -1,6 +1,6 @@
headline:
en: Galleries
fr: Galeries
en: Galleries
fr: Galeries
type: pages
template: gallery
min: 2
@ -8,7 +8,7 @@ max: 4
layout: cards
size: small
image:
ratio: 1/1
cover: true
query: page.images.template('artwork').sortBy('sort').first
back: white
ratio: 1/1
cover: true
query: page.images.template('artwork').sortBy('sort').first
back: white

View file

@ -1,14 +1,14 @@
headline:
en: Pages
fr: Pages
en: Pages
fr: Pages
type: pages
templates:
- home
- biography
- home
- biography
sortBy: title asc
create: false
layout: cardlets
image:
cover: true
query: page.images.template('image').first
back: white
cover: true
query: page.images.template('image').first
back: white

View file

@ -1,6 +1,6 @@
label:
en: Content
fr: Contenu
en: Content
fr: Contenu
icon: text
sections:
presentation: sections/biography_content_presentation
presentation: sections/biography_content_presentation

View file

@ -1,6 +1,6 @@
label:
en: SEO
fr: Référencement
en: SEO
fr: Référencement
icon: search
sections:
seo_basic_meta: sections/generic_seo_metadata
seo_basic_meta: sections/generic_seo_metadata

View file

@ -1,7 +1,7 @@
label:
en: Content
fr: Contenu
en: Content
fr: Contenu
icon: text
sections:
introduction: sections/gallery_content_introduction
artworks: sections/gallery_content_artworks
introduction: sections/gallery_content_introduction
artworks: sections/gallery_content_artworks

View file

@ -1,6 +1,6 @@
label:
en: SEO
fr: Référencement
en: SEO
fr: Référencement
icon: search
sections:
seo_basic_meta: sections/generic_seo_metadata
seo_basic_meta: sections/generic_seo_metadata

View file

@ -1,11 +1,11 @@
label:
en: Content
fr: Contenu
en: Content
fr: Contenu
icon: text
columns:
- width: 1/2
sections:
background_image: sections/home_content_background_image
- width: 1/2
sections:
contact: sections/home_content_contact
- width: 1/2
sections:
background_image: sections/home_content_background_image
- width: 1/2
sections:
contact: sections/home_content_contact

View file

@ -1,6 +1,6 @@
label:
en: SEO
fr: Référencement
en: SEO
fr: Référencement
icon: search
sections:
seo_basic_meta: sections/home_seo_metadata
seo_basic_meta: sections/home_seo_metadata

View file

@ -1,15 +1,15 @@
label:
en: Analytics
fr: Audience
en: Analytics
fr: Audience
icon: chart
columns:
- width: 1/4
sticky: true
sections:
sidebar:
type: matomo-sidebar
link: false
- width: 3/4
sections:
main:
type: matomo-main
- width: 1/4
sticky: true
sections:
sidebar:
type: matomo-sidebar
link: false
- width: 3/4
sections:
main:
type: matomo-main

View file

@ -1,12 +1,12 @@
label:
en: Website
fr: Site web
en: Website
fr: Site web
icon: home
columns:
- width: 1/4
sticky: true
sections:
pages: sections/site_content_pages
- width: 3/4
sections:
galleries: sections/site_content_galleries
- width: 1/4
sticky: true
sections:
pages: sections/site_content_pages
- width: 3/4
sections:
galleries: sections/site_content_galleries

View file

@ -1,18 +1,15 @@
title:
en: Administrator
fr: Administrateur·ice
en: Administrator
fr: Administrateur·ice
description:
en: The Administrator has all rights
fr: L'Administrateur·ice dispose de tous les droits
en: The Administrator has all rights
fr: L'Administrateur·ice dispose de tous les droits
sections:
info:
headline:
en: Website
fr: Site internet
theme: none
width: 1/2
text:
en: |
(link: https://paulnicoue.com text: paulnicoue.com target: _blank)
fr: |
(link: https://www.paulnicoue.com text: paulnicoue.com target: _blank)
info:
headline:
en: Website
fr: Site internet
theme: none
width: 1/2
text: |
(link: https://paulnicoue.com text: paulnicoue.com target: _blank)

View file

@ -1,29 +1,29 @@
title:
en: Editor
fr: Éditeur·ice
en: Editor
fr: Éditeur·ice
description:
en: The Editor can create and edit pages
fr: L'éditeur·ice peut créer et modifier des pages
en: The Editor can create and edit pages
fr: L'éditeur·ice peut créer et modifier des pages
permissions:
access:
settings: false
languages:
create: false
delete: false
site:
changeTitle: false
user:
changeRole: false
delete: false
users:
changeEmail: false
changeLanguage: false
changeName: false
changePassword: false
changeRole: false
create: false
delete: false
update: false
access:
settings: false
languages:
create: false
delete: false
site:
changeTitle: false
user:
changeRole: false
delete: false
users:
changeEmail: false
changeLanguage: false
changeName: false
changePassword: false
changeRole: false
create: false
delete: false
update: false
sections:
info: false
info: false

View file

@ -1,41 +1,41 @@
<?php
return [
// Kirby configuration settings
'home' => 'accueil',
'error' => 'erreur',
'panel' => [
'language' => 'fr',
'css' => 'assets/css/panel.min.css'
],
// Sitemapper plugin options
'kirbyzone.sitemapper' => [
'intro' => false,
'byLine' => 'Sitemap generated with <a href="https://github.com/kirbyzone/sitemapper" target="_blank">Sitemapper by Kirbyzone</a>.'
],
// Hooks
'hooks' => [
'file.create:after' => function($file) {
// Populate file_type field with $file->type() method after file creation
if ($file->type()) {
$file->update([
'file_type' => $file->type()
]);
}
},
'kirbytext:after' => function (string $text) {
// Replace any HTML <h1> or <h2> tag by <h3> tag after Markdown parsing
return preg_replace(['/<h1>|<h2>/', '/<\/h1>|<\/h2>/'], ['<h3>', '</h3>'], $text);
}
],
// Thumbnails and srcsets presets
'thumbs' => [
'srcsets' => [
'default' => [
'640w' => ['width' => 640, 'quality' => 80],
'1280w' => ['width' => 1280, 'quality' => 80],
'1920w' => ['width' => 1920, 'quality' => 80]
]
]
]
// Kirby configuration settings
'home' => 'accueil',
'error' => 'erreur',
'panel' => [
'language' => 'fr',
'css' => 'assets/css/panel.min.css'
],
// Sitemapper plugin options
'kirbyzone.sitemapper' => [
'intro' => false,
'byLine' => 'Sitemap generated with <a href="https://github.com/kirbyzone/sitemapper" target="_blank">Sitemapper by Kirbyzone</a>.'
],
// Hooks
'hooks' => [
'file.create:after' => function($file) {
// Populate file_type field with $file->type() method after file creation
if ($file->type()) {
$file->update([
'file_type' => $file->type()
]);
}
},
'kirbytext:after' => function (string $text) {
// Replace any HTML <h1> or <h2> tag by <h3> tag after Markdown parsing
return preg_replace(['/<h1>|<h2>/', '/<\/h1>|<\/h2>/'], ['<h3>', '</h3>'], $text);
}
],
// Thumbnails and srcsets presets
'thumbs' => [
'srcsets' => [
'default' => [
'640w' => ['width' => 640, 'quality' => 80],
'1280w' => ['width' => 1280, 'quality' => 80],
'1920w' => ['width' => 1920, 'quality' => 80]
]
]
]
];

View file

@ -1,4 +1,3 @@
<!-- Favicon -->
<link rel="icon" sizes="any" href="assets/favicon/xiao-wang-favicon.ico">
<link rel="icon" type="image/svg+xml" href="assets/favicon/xiao-wang-favicon.svg">
<link rel="apple-touch-icon" href="assets/favicon/xiao-wang-apple-touch-icon.png">

View file

@ -1,16 +1,16 @@
<!-- Basic metadata -->
{# Basic metadata #}
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<html lang="fr">
<!-- Schema -->
{# Schema #}
<style itemscope itemtype="https://schema.org/WebSite" itemref="schema_name schema_description schema_image"></style>
<!-- Title -->
{# Title #}
<title>{{ site.title }} | {{ page.title }}</title>
<meta id="schema_name" itemprop="name" content="{{ site.title }} | {{ page.title }}">
<!-- Description -->
{# Description #}
{% if page.meta_description is not empty %}
<meta name="description" content="{{ page.meta_description }}">
<meta id="schema_description" itemprop="description" content="{{ page.meta_description }}">
@ -19,16 +19,16 @@
<meta id="schema_description" itemprop="description" content="{{ site.homePage.meta_description }}">
{% endif %}
<!-- Canonical URL -->
{# Canonical URL #}
<link rel="canonical" href="{{ page.url }}">
<!-- Author -->
{# Author #}
<meta name="author" content="{{ site.title }}">
<!-- Date -->
{# Date #}
<meta name="date" content="{{ page.modified('Y-m-d') }}">
<!-- Image -->
{# Image #}
{% if page.meta_image is not empty %}
<meta id="schema_image" itemprop="image" content="{{ page.meta_image.toImage.url }}">
{% elseif site.homePage.meta_image is not empty %}
@ -37,7 +37,7 @@
{% if page.template != 'error' %}
<!-- Open Graph -->
{# Open Graph #}
<meta property="og:title" content="{{ site.title ~ ' | ' ~ page.title }}">
{% if page.meta_description is not empty %}
<meta property="og:description" content="{{ page.meta_description }}">
@ -56,7 +56,7 @@
<meta property="og:url" content="{{ page.url }}">
<meta property="og:type" content="{{ page.og_type }}">
<!-- Twitter Card -->
{# Twitter Card #}
<meta name="twitter:card" content="{{ page.twitter_card_type.value }}">
<meta name="twitter:title" content="{{ site.title ~ ' | ' ~ page.title }}">
{% if page.meta_description is not empty %}

View file

@ -4,148 +4,148 @@
<head>
{{ snippet('metadata') }}
{{ snippet('favicon') }}
{{ snippet('metadata') }}
{{ snippet('favicon') }}
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
_paq.push(['disableCookies']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//matomo.paulnicoue.com/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '2']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
_paq.push(['disableCookies']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//matomo.paulnicoue.com/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '2']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- Stylesheets -->
{% block stylesheets %}
<link rel="stylesheet" href="{{ asset('assets/css/style.min.css') }}">
{% endblock %}
<!-- Stylesheets -->
{% block stylesheets %}
<link rel="stylesheet" href="{{ asset('assets/css/style.min.css') }}">
{% endblock %}
</head>
<body>
{% block header %}
<header>
{% block header %}
<header>
<div class="header-bar">
<div class="header-bar">
<div class="header-bar__logo" aria-hidden="true">
<a class="header-bar__logo-link" href="{{ site.homePage.url }}" target="_self" aria-label="Accéder à la page d'accueil de {{ site.title }}" tabindex="-1">
<h1 class="header-bar__logo-title">{{ site.title }}</h1>
</a>
</div>
<div class="header-bar__logo" aria-hidden="true">
<a class="header-bar__logo-link" href="{{ site.homePage.url }}" target="_self" aria-label="Accéder à la page d'accueil de {{ site.title }}" tabindex="-1">
<h1 class="header-bar__logo-title">{{ site.title }}</h1>
</a>
</div>
<nav class="header-bar__nav" aria-label="Menu">
<button class="header-bar__nav-button" aria-hidden="true" tabindex="-1">
<svg viewBox="0 0 48 48" fill="currentColor">
<path d="M7.5 36Q6.85 36 6.425 35.575Q6 35.15 6 34.5Q6 33.85 6.425 33.425Q6.85 33 7.5 33H30.5Q31.15 33 31.575 33.425Q32 33.85 32 34.5Q32 35.15 31.575 35.575Q31.15 36 30.5 36ZM7.5 25.4Q6.85 25.4 6.425 24.975Q6 24.55 6 23.9Q6 23.25 6.425 22.825Q6.85 22.4 7.5 22.4H24.5Q25.15 22.4 25.575 22.825Q26 23.25 26 23.9Q26 24.55 25.575 24.975Q25.15 25.4 24.5 25.4ZM7.5 15Q6.85 15 6.425 14.575Q6 14.15 6 13.5Q6 12.85 6.425 12.425Q6.85 12 7.5 12H30.5Q31.15 12 31.575 12.425Q32 12.85 32 13.5Q32 14.15 31.575 14.575Q31.15 15 30.5 15ZM34.75 23.95 41 30.2Q41.45 30.65 41.425 31.25Q41.4 31.85 40.95 32.3Q40.5 32.75 39.875 32.75Q39.25 32.75 38.8 32.3L31.5 25Q31.05 24.55 31.05 23.95Q31.05 23.35 31.5 22.9L38.8 15.6Q39.25 15.15 39.875 15.15Q40.5 15.15 40.95 15.6Q41.4 16.05 41.4 16.675Q41.4 17.3 40.95 17.75Z"/>
</svg>
<svg viewBox="0 0 48 48" fill="currentColor">
<path d="M24 26.1 13.5 36.6Q13.05 37.05 12.45 37.05Q11.85 37.05 11.4 36.6Q10.95 36.15 10.95 35.55Q10.95 34.95 11.4 34.5L21.9 24L11.4 13.5Q10.95 13.05 10.95 12.45Q10.95 11.85 11.4 11.4Q11.85 10.95 12.45 10.95Q13.05 10.95 13.5 11.4L24 21.9L34.5 11.4Q34.95 10.95 35.55 10.95Q36.15 10.95 36.6 11.4Q37.05 11.85 37.05 12.45Q37.05 13.05 36.6 13.5L26.1 24L36.6 34.5Q37.05 34.95 37.05 35.55Q37.05 36.15 36.6 36.6Q36.15 37.05 35.55 37.05Q34.95 37.05 34.5 36.6Z"/>
</svg>
</button>
<ul class="header-bar__nav-menu" tabindex="-1">
{% set headerNavItemNo = 1 %}
{% if site.homePage.isActive %}
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
<div>
<a href="{{ site.homePage.url }}" target="_self" aria-current="page">{{ site.homePage.title }}</a>
</div>
</li>
{% else %}
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
<div>
<a href="{{ site.homePage.url }}" target="_self">{{ site.homePage.title }}</a>
</div>
</li>
{% endif %}
{% set headerNavItemNo = headerNavItemNo + 1 %}
{% if pages.template('biography').first.isActive %}
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
<div>
<a href="{{ pages.template('biography').first.url }}" target="_self" aria-current="page">{{ pages.template('biography').first.title }}</a>
</div>
</li>
{% else %}
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
<div>
<a href="{{ pages.template('biography').first.url }}" target="_self">{{ pages.template('biography').first.title }}</a>
</div>
</li>
{% endif %}
{% set headerNavItemNo = headerNavItemNo + 1 %}
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
<div>
<span>Galeries</span>
</div>
<ul>
{% for gallery in pages.template('gallery') %}
{% set headerNavItemNo = headerNavItemNo + 1 %}
{% if gallery.isActive %}
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
<div>
<a href="{{ gallery.url }}" target="_self" aria-current="page">{{ gallery.title }}</a>
</div>
</li>
{% else %}
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
<div>
<a href="{{ gallery.url }}" target="_self">{{ gallery.title }}</a>
</div>
</li>
{% endif %}
{% endfor %}
</ul>
</li>
</ul>
<div class="header-bar__nav-overlay" aria-hidden="true"></div>
</nav>
<nav class="header-bar__nav" aria-label="Menu">
<button class="header-bar__nav-button" aria-hidden="true" tabindex="-1">
<svg viewBox="0 0 48 48" fill="currentColor">
<path d="M7.5 36Q6.85 36 6.425 35.575Q6 35.15 6 34.5Q6 33.85 6.425 33.425Q6.85 33 7.5 33H30.5Q31.15 33 31.575 33.425Q32 33.85 32 34.5Q32 35.15 31.575 35.575Q31.15 36 30.5 36ZM7.5 25.4Q6.85 25.4 6.425 24.975Q6 24.55 6 23.9Q6 23.25 6.425 22.825Q6.85 22.4 7.5 22.4H24.5Q25.15 22.4 25.575 22.825Q26 23.25 26 23.9Q26 24.55 25.575 24.975Q25.15 25.4 24.5 25.4ZM7.5 15Q6.85 15 6.425 14.575Q6 14.15 6 13.5Q6 12.85 6.425 12.425Q6.85 12 7.5 12H30.5Q31.15 12 31.575 12.425Q32 12.85 32 13.5Q32 14.15 31.575 14.575Q31.15 15 30.5 15ZM34.75 23.95 41 30.2Q41.45 30.65 41.425 31.25Q41.4 31.85 40.95 32.3Q40.5 32.75 39.875 32.75Q39.25 32.75 38.8 32.3L31.5 25Q31.05 24.55 31.05 23.95Q31.05 23.35 31.5 22.9L38.8 15.6Q39.25 15.15 39.875 15.15Q40.5 15.15 40.95 15.6Q41.4 16.05 41.4 16.675Q41.4 17.3 40.95 17.75Z"/>
</svg>
<svg viewBox="0 0 48 48" fill="currentColor">
<path d="M24 26.1 13.5 36.6Q13.05 37.05 12.45 37.05Q11.85 37.05 11.4 36.6Q10.95 36.15 10.95 35.55Q10.95 34.95 11.4 34.5L21.9 24L11.4 13.5Q10.95 13.05 10.95 12.45Q10.95 11.85 11.4 11.4Q11.85 10.95 12.45 10.95Q13.05 10.95 13.5 11.4L24 21.9L34.5 11.4Q34.95 10.95 35.55 10.95Q36.15 10.95 36.6 11.4Q37.05 11.85 37.05 12.45Q37.05 13.05 36.6 13.5L26.1 24L36.6 34.5Q37.05 34.95 37.05 35.55Q37.05 36.15 36.6 36.6Q36.15 37.05 35.55 37.05Q34.95 37.05 34.5 36.6Z"/>
</svg>
</button>
<ul class="header-bar__nav-menu" tabindex="-1">
{% set headerNavItemNo = 1 %}
{% if site.homePage.isActive %}
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
<div>
<a href="{{ site.homePage.url }}" target="_self" aria-current="page">{{ site.homePage.title }}</a>
</div>
</li>
{% else %}
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
<div>
<a href="{{ site.homePage.url }}" target="_self">{{ site.homePage.title }}</a>
</div>
</li>
{% endif %}
{% set headerNavItemNo = headerNavItemNo + 1 %}
{% if pages.template('biography').first.isActive %}
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
<div>
<a href="{{ pages.template('biography').first.url }}" target="_self" aria-current="page">{{ pages.template('biography').first.title }}</a>
</div>
</li>
{% else %}
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
<div>
<a href="{{ pages.template('biography').first.url }}" target="_self">{{ pages.template('biography').first.title }}</a>
</div>
</li>
{% endif %}
{% set headerNavItemNo = headerNavItemNo + 1 %}
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
<div>
<span>Galeries</span>
</div>
<ul>
{% for gallery in pages.template('gallery') %}
{% set headerNavItemNo = headerNavItemNo + 1 %}
{% if gallery.isActive %}
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
<div>
<a href="{{ gallery.url }}" target="_self" aria-current="page">{{ gallery.title }}</a>
</div>
</li>
{% else %}
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
<div>
<a href="{{ gallery.url }}" target="_self">{{ gallery.title }}</a>
</div>
</li>
{% endif %}
{% endfor %}
</ul>
</li>
</ul>
<div class="header-bar__nav-overlay" aria-hidden="true"></div>
</nav>
</div>
</div>
</header>
{% endblock %}
</header>
{% endblock %}
{% block main %}
{% endblock %}
{% block main %}
{% endblock %}
{% block footer %}
<footer>
{% block footer %}
<footer>
<div class="footer-bar">
<div class="footer-bar">
<div class="footer-bar__social">
<a class="footer-bar__instagram-button" rel="me" href="{{ site.homePage.instagram }}" target="_blank" aria-label="Accéder au profil Instagram de {{ site.title }}">
<svg aria-hidden="true" viewBox="0 0 24 24" fill="currentColor">
<path d="M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.306.788.717 1.459 1.384 2.126.667.666 1.336 1.079 2.126 1.384.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558.788-.306 1.459-.718 2.126-1.384.666-.667 1.079-1.335 1.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319 1.347 20.651.935 19.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227-.224.562-.479.96-.899 1.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03zm0 3.678c-3.405 0-6.162 2.76-6.162 6.162 0 3.405 2.76 6.162 6.162 6.162 3.405 0 6.162-2.76 6.162-6.162 0-3.405-2.76-6.162-6.162-6.162zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405c0 .795-.646 1.44-1.44 1.44-.795 0-1.44-.646-1.44-1.44 0-.794.646-1.439 1.44-1.439.793-.001 1.44.645 1.44 1.439z"/>
</svg>
</a>
<a class="footer-bar__email-button" href="mailto:{{ site.homePage.email }}" target="_blank" aria-label="Écrire un e-mail à {{ site.title }}">
<svg aria-hidden="true" viewBox="0 0 48 48" fill="currentColor">
<path d="M7 40Q5.8 40 4.9 39.1Q4 38.2 4 37V11Q4 9.8 4.9 8.9Q5.8 8 7 8H41Q42.2 8 43.1 8.9Q44 9.8 44 11V37Q44 38.2 43.1 39.1Q42.2 40 41 40ZM41 13.75 24.8 24.35Q24.6 24.45 24.425 24.525Q24.25 24.6 24 24.6Q23.75 24.6 23.575 24.525Q23.4 24.45 23.2 24.35L7 13.75V37Q7 37 7 37Q7 37 7 37H41Q41 37 41 37Q41 37 41 37ZM24 21.9 40.8 11H7.25ZM7 13.75V14.1Q7 13.95 7 13.7Q7 13.45 7 13.15Q7 12.5 7 12.125Q7 11.75 7 12.15V11V12.15Q7 11.75 7 12.1Q7 12.45 7 13.1Q7 13.4 7 13.675Q7 13.95 7 14.1V13.75V37Q7 37 7 37Q7 37 7 37Q7 37 7 37Q7 37 7 37Z"/>
</svg>
</a>
</div>
<div class="footer-bar__copyright">
<p>&copy; {{ 'now' | date('Y') }} {{ site.title }}</p>
</div>
<div class="footer-bar__social">
<a class="footer-bar__instagram-button" rel="me" href="{{ site.homePage.instagram }}" target="_blank" aria-label="Accéder au profil Instagram de {{ site.title }}">
<svg aria-hidden="true" viewBox="0 0 24 24" fill="currentColor">
<path d="M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.306.788.717 1.459 1.384 2.126.667.666 1.336 1.079 2.126 1.384.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558.788-.306 1.459-.718 2.126-1.384.666-.667 1.079-1.335 1.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319 1.347 20.651.935 19.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227-.224.562-.479.96-.899 1.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03zm0 3.678c-3.405 0-6.162 2.76-6.162 6.162 0 3.405 2.76 6.162 6.162 6.162 3.405 0 6.162-2.76 6.162-6.162 0-3.405-2.76-6.162-6.162-6.162zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405c0 .795-.646 1.44-1.44 1.44-.795 0-1.44-.646-1.44-1.44 0-.794.646-1.439 1.44-1.439.793-.001 1.44.645 1.44 1.439z"/>
</svg>
</a>
<a class="footer-bar__email-button" href="mailto:{{ site.homePage.email }}" target="_blank" aria-label="Écrire un e-mail à {{ site.title }}">
<svg aria-hidden="true" viewBox="0 0 48 48" fill="currentColor">
<path d="M7 40Q5.8 40 4.9 39.1Q4 38.2 4 37V11Q4 9.8 4.9 8.9Q5.8 8 7 8H41Q42.2 8 43.1 8.9Q44 9.8 44 11V37Q44 38.2 43.1 39.1Q42.2 40 41 40ZM41 13.75 24.8 24.35Q24.6 24.45 24.425 24.525Q24.25 24.6 24 24.6Q23.75 24.6 23.575 24.525Q23.4 24.45 23.2 24.35L7 13.75V37Q7 37 7 37Q7 37 7 37H41Q41 37 41 37Q41 37 41 37ZM24 21.9 40.8 11H7.25ZM7 13.75V14.1Q7 13.95 7 13.7Q7 13.45 7 13.15Q7 12.5 7 12.125Q7 11.75 7 12.15V11V12.15Q7 11.75 7 12.1Q7 12.45 7 13.1Q7 13.4 7 13.675Q7 13.95 7 14.1V13.75V37Q7 37 7 37Q7 37 7 37Q7 37 7 37Q7 37 7 37Z"/>
</svg>
</a>
</div>
<div class="footer-bar__copyright">
<p>&copy; {{ 'now' | date('Y') }} {{ site.title }}</p>
</div>
</div>
</div>
</footer>
{% endblock %}
</footer>
{% endblock %}
<!-- Scripts -->
{% block scripts %}
<script src="{{ asset('assets/js/app.js') }}"></script>
{% endblock %}
<!-- Scripts -->
{% block scripts %}
<script src="{{ asset('assets/js/app.js') }}"></script>
{% endblock %}
</body>

View file

@ -1,16 +1,16 @@
{% extends "base.twig" %}
{% block main %}
<main>
<main>
<section class="biography-section">
<section class="biography-section">
<article class="biography">
<h2 class="biography__title">{{ page.title }}</h2>
<div class="biography__presentation">{{ page.text.kirbytext|raw }}</div>
</article>
<article class="biography">
<h2 class="biography__title">{{ page.title }}</h2>
<div class="biography__presentation">{{ page.text.kirbytext|raw }}</div>
</article>
</section>
</section>
</main>
</main>
{% endblock %}

View file

@ -7,13 +7,13 @@
<article class="error">
<h2 class="error__title">Erreur {{ kirby.response.code }}</h2>
{% if kirby.response.code == 404 %}
<p class="error__message">La page que vous demandez n'existe pas...</p>
{% else %}
<p class="error__message">Une erreur est survenue...</p>
{% endif %}
<p class="error__message">La page que vous demandez n'existe pas...</p>
{% else %}
<p class="error__message">Une erreur est survenue...</p>
{% endif %}
<div class="error__button">
<a href="{{ site.homePage.url }}" target="_self">Retourner à la page d'accueil</a>
</div>
<a href="{{ site.homePage.url }}" target="_self">Retourner à la page d'accueil</a>
</div>
</article>
</section>

View file

@ -1,52 +1,52 @@
{% extends "base.twig" %}
{% block stylesheets %}
<link rel="stylesheet" href="{{ asset('assets/libraries/plyr.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/css/style.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/libraries/plyr.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/css/style.min.css') }}">
{% endblock %}
{% block main %}
<main>
<main>
<section class="gallery-section">
<section class="gallery-section">
<article class="gallery">
<h2 class="gallery__title">{{ page.title }}</h2>
{% if page.text.isNotEmpty %}
<div class="gallery__introduction">{{ page.text.kirbytext|raw }}</div>
{% endif %}
{% if page.files.template("artwork").isNotEmpty %}
{% set artworks = page.files.template("artwork").sortBy('sort') %}
{% for artwork in artworks %}
<figure class="gallery__artwork">
{% if artwork.type == 'video' %}
{% if artwork.poster is not empty %}
<video class="gallery__video" data-poster="{{ artwork.poster.toFile.url }}" preload="metadata" controls playsinline>
<source src="{{ artwork.url }}" type="video/mp4"/>
</video>
{% else %}
<video class="gallery__video" preload="metadata" controls playsinline>
<source src="{{ artwork.url }}" type="video/mp4"/>
</video>
{% endif %}
{% endif %}
{% if artwork.type == 'image' %}
<img class="gallery__image" src="{{ artwork.url }}" srcset="{{ artwork.srcset() }}" alt="{{ artwork.alt_text }}">
{% endif %}
{% if artwork.caption %}
<figcaption>{{ artwork.caption }}</figcaption>
{% endif %}
</figure>
{% endfor %}
{% endif %}
</article>
<article class="gallery">
<h2 class="gallery__title">{{ page.title }}</h2>
{% if page.text.isNotEmpty %}
<div class="gallery__introduction">{{ page.text.kirbytext|raw }}</div>
{% endif %}
{% if page.files.template("artwork").isNotEmpty %}
{% set artworks = page.files.template("artwork").sortBy('sort') %}
{% for artwork in artworks %}
<figure class="gallery__artwork">
{% if artwork.type == 'video' %}
{% if artwork.poster is not empty %}
<video class="gallery__video" data-poster="{{ artwork.poster.toFile.url }}" preload="metadata" controls playsinline>
<source src="{{ artwork.url }}" type="video/mp4"/>
</video>
{% else %}
<video class="gallery__video" preload="metadata" controls playsinline>
<source src="{{ artwork.url }}" type="video/mp4"/>
</video>
{% endif %}
{% endif %}
{% if artwork.type == 'image' %}
<img class="gallery__image" src="{{ artwork.url }}" srcset="{{ artwork.srcset() }}" alt="{{ artwork.alt_text }}">
{% endif %}
{% if artwork.caption %}
<figcaption>{{ artwork.caption }}</figcaption>
{% endif %}
</figure>
{% endfor %}
{% endif %}
</article>
</section>
</section>
</main>
</main>
{% endblock %}
{% block scripts %}
<script src="{{ asset('assets/libraries/plyr.min.js') }}"></script>
<script src="{{ asset('assets/js/app.js') }}"></script>
<script src="{{ asset('assets/libraries/plyr.min.js') }}"></script>
<script src="{{ asset('assets/js/app.js') }}"></script>
{% endblock %}

View file

@ -1,35 +1,35 @@
{% extends "base.twig" %}
{% block stylesheets %}
<link rel="stylesheet" href="{{ asset('assets/css/style.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/css/style.min.css') }}">
{% endblock %}
{% block main %}
<main>
<main>
<section class="home-section" aria-hidden="true">
<section class="home-section" aria-hidden="true">
<div class="home">
<nav class="home__nav" aria-label="Menu">
{% set navItemNo = 1 %}
{% for gallery in pages.template('gallery') %}
<div class="home__nav-item-{{ navItemNo }}">
<a href="{{ gallery.url }}" target="_self" class="home__nav-link" tabindex="-1">{{ gallery.title }}</a>
</div>
{% set navItemNo = navItemNo + 1 %}
{% endfor %}
<div class="home__nav-image" aria-hidden="true">
<img src="{{ page.images.template("image").first.url }}" srcset="{{ page.images.template("image").first.srcset() }}" alt="{{ page.images.template("image").first.alt_text }}">
</div>
</nav>
</div>
<div class="home">
<nav class="home__nav" aria-label="Menu">
{% set navItemNo = 1 %}
{% for gallery in pages.template('gallery') %}
<div class="home__nav-item-{{ navItemNo }}">
<a href="{{ gallery.url }}" target="_self" class="home__nav-link" tabindex="-1">{{ gallery.title }}</a>
</div>
{% set navItemNo = navItemNo + 1 %}
{% endfor %}
<div class="home__nav-image" aria-hidden="true">
<img src="{{ page.images.template("image").first.url }}" srcset="{{ page.images.template("image").first.srcset() }}" alt="{{ page.images.template("image").first.alt_text }}">
</div>
</nav>
</div>
</section>
</section>
</main>
</main>
{% endblock %}
{% block scripts %}
<script src="{{ asset('assets/libraries/circletype.min.js') }}"></script>
<script src="{{ asset('assets/js/app.js') }}"></script>
<script src="{{ asset('assets/libraries/circletype.min.js') }}"></script>
<script src="{{ asset('assets/js/app.js') }}"></script>
{% endblock %}