Edit indentation style
This commit is contained in:
parent
d916cac8c9
commit
9fc5497f33
21 changed files with 14837 additions and 14840 deletions
|
@ -2,7 +2,7 @@ root = true
|
||||||
|
|
||||||
[*]
|
[*]
|
||||||
charset = utf-8
|
charset = utf-8
|
||||||
indent_style = tab
|
indent_style = space
|
||||||
indent_size = 4
|
indent_size = 4
|
||||||
end_of_line = lf
|
end_of_line = lf
|
||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
|
@ -11,6 +11,3 @@ insert_final_newline = true
|
||||||
|
|
||||||
[*.md]
|
[*.md]
|
||||||
trim_trailing_whitespace = false
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
[*.{yaml,yml}]
|
|
||||||
indent_style = space
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -6,23 +6,23 @@
|
||||||
|
|
||||||
.k-textarea-field {
|
.k-textarea-field {
|
||||||
|
|
||||||
.k-toolbar {
|
.k-toolbar {
|
||||||
|
|
||||||
.k-dropdown {
|
.k-dropdown {
|
||||||
|
|
||||||
.k-button:nth-of-type(2),
|
.k-button:nth-of-type(2),
|
||||||
.k-button:nth-of-type(3) {
|
.k-button:nth-of-type(3) {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Visual image crop field properties
|
// Visual image crop field properties
|
||||||
|
|
||||||
.kirby-imagecrop-field {
|
.kirby-imagecrop-field {
|
||||||
|
|
||||||
.k-column:nth-of-type(2) {
|
.k-column:nth-of-type(2) {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,34 +3,34 @@
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
@keyframes expand-outline {
|
@keyframes expand-outline {
|
||||||
from {
|
from {
|
||||||
outline-offset: 0;
|
outline-offset: 0;
|
||||||
}
|
}
|
||||||
to {
|
to {
|
||||||
outline-offset: 2px;
|
outline-offset: 2px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes wave-up {
|
@keyframes wave-up {
|
||||||
0% {
|
0% {
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
60% {
|
60% {
|
||||||
top: -0.5rem;
|
top: -0.5rem;
|
||||||
}
|
}
|
||||||
100% {
|
100% {
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes wave-down {
|
@keyframes wave-down {
|
||||||
0% {
|
0% {
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
}
|
}
|
||||||
60% {
|
60% {
|
||||||
bottom: -0.5rem;
|
bottom: -0.5rem;
|
||||||
}
|
}
|
||||||
100% {
|
100% {
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,66 +5,66 @@
|
||||||
// Nunito
|
// Nunito
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Nunito';
|
font-family: 'Nunito';
|
||||||
src: url(../../fonts/nunito/Nunito-Regular.ttf) format('truetype');
|
src: url(../../fonts/nunito/Nunito-Regular.ttf) format('truetype');
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Nunito';
|
font-family: 'Nunito';
|
||||||
src: url(../../fonts/nunito/Nunito-Italic.ttf) format('truetype');
|
src: url(../../fonts/nunito/Nunito-Italic.ttf) format('truetype');
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Nunito';
|
font-family: 'Nunito';
|
||||||
src: url(../../fonts/nunito/Nunito-Medium.ttf) format('truetype');
|
src: url(../../fonts/nunito/Nunito-Medium.ttf) format('truetype');
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Nunito';
|
font-family: 'Nunito';
|
||||||
src: url(../../fonts/nunito/Nunito-MediumItalic.ttf) format('truetype');
|
src: url(../../fonts/nunito/Nunito-MediumItalic.ttf) format('truetype');
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Nunito';
|
font-family: 'Nunito';
|
||||||
src: url(../../fonts/nunito/Nunito-SemiBold.ttf) format('truetype');
|
src: url(../../fonts/nunito/Nunito-SemiBold.ttf) format('truetype');
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Nunito';
|
font-family: 'Nunito';
|
||||||
src: url(../../fonts/nunito/Nunito-SemiBoldItalic.ttf) format('truetype');
|
src: url(../../fonts/nunito/Nunito-SemiBoldItalic.ttf) format('truetype');
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Nunito';
|
font-family: 'Nunito';
|
||||||
src: url(../../fonts/nunito/Nunito-Bold.ttf) format('truetype');
|
src: url(../../fonts/nunito/Nunito-Bold.ttf) format('truetype');
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Nunito';
|
font-family: 'Nunito';
|
||||||
src: url(../../fonts/nunito/Nunito-BoldItalic.ttf) format('truetype');
|
src: url(../../fonts/nunito/Nunito-BoldItalic.ttf) format('truetype');
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gloria Hallelujah
|
// Gloria Hallelujah
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Gloria Hallelujah';
|
font-family: 'Gloria Hallelujah';
|
||||||
src: url(../../fonts/gloria-hallelujah/GloriaHallelujah-Regular.ttf) format('truetype');
|
src: url(../../fonts/gloria-hallelujah/GloriaHallelujah-Regular.ttf) format('truetype');
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,59 +4,59 @@
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
|
|
||||||
// Fonts
|
// Fonts
|
||||||
|
|
||||||
--text-font-family: 'Nunito', Verdana, sans-serif;
|
--text-font-family: 'Nunito', Verdana, sans-serif;
|
||||||
--logo-font-family: 'Gloria Hallelujah', Verdana, sans-serif;
|
--logo-font-family: 'Gloria Hallelujah', Verdana, sans-serif;
|
||||||
--regular-font-weight: 400;
|
--regular-font-weight: 400;
|
||||||
--medium-font-weight: 500;
|
--medium-font-weight: 500;
|
||||||
--semi-bold-font-weight: 600;
|
--semi-bold-font-weight: 600;
|
||||||
--bold-font-weight: 700;
|
--bold-font-weight: 700;
|
||||||
--text-font-size: 1rem;
|
--text-font-size: 1rem;
|
||||||
--caption-font-size: 0.9rem;
|
--caption-font-size: 0.9rem;
|
||||||
--footnote-font-size: 0.8rem;
|
--footnote-font-size: 0.8rem;
|
||||||
--text-line-height: 1.4rem;
|
--text-line-height: 1.4rem;
|
||||||
--h1-font-size: 1.8rem;
|
--h1-font-size: 1.8rem;
|
||||||
--h2-font-size: 1.4rem;
|
--h2-font-size: 1.4rem;
|
||||||
--h3-font-size: 1.2rem;
|
--h3-font-size: 1.2rem;
|
||||||
|
|
||||||
// Dimensions
|
// Dimensions
|
||||||
|
|
||||||
--content-max-width: 140rem;
|
--content-max-width: 140rem;
|
||||||
--text-max-width: 70rem;
|
--text-max-width: 70rem;
|
||||||
--icon-size: 2.5rem;
|
--icon-size: 2.5rem;
|
||||||
--header-bar-vertical-padding: 1rem;
|
--header-bar-vertical-padding: 1rem;
|
||||||
--header-bar-horizontal-padding: 2rem;
|
--header-bar-horizontal-padding: 2rem;
|
||||||
--header-bar-height: calc((var(--header-bar-vertical-padding) * 2) + var(--icon-size));
|
--header-bar-height: calc((var(--header-bar-vertical-padding) * 2) + var(--icon-size));
|
||||||
--footer-bar-vertical-padding: 1rem;
|
--footer-bar-vertical-padding: 1rem;
|
||||||
--footer-bar-horizontal-padding: 2rem;
|
--footer-bar-horizontal-padding: 2rem;
|
||||||
--footer-bar-height: calc((var(--footer-bar-vertical-padding) * 2) + var(--icon-size) + 1rem + var(--text-font-size));
|
--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-vertical-padding: 3rem;
|
||||||
--generic-section-horizontal-padding: 2rem;
|
--generic-section-horizontal-padding: 2rem;
|
||||||
--home-section-vertical-padding: 2rem;
|
--home-section-vertical-padding: 2rem;
|
||||||
--home-section-horizontal-padding: 2rem;
|
--home-section-horizontal-padding: 2rem;
|
||||||
--home-section-min-height: calc(100vh - var(--header-bar-height) - var(--footer-bar-height));
|
--home-section-min-height: calc(100vh - var(--header-bar-height) - var(--footer-bar-height));
|
||||||
--home-nav-gap: 1rem;
|
--home-nav-gap: 1rem;
|
||||||
--home-nav-item-size: 2rem;
|
--home-nav-item-size: 2rem;
|
||||||
--home-nav-item-translation: 0;
|
--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));
|
--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;
|
--black: #000;
|
||||||
--transparent-black: rgba(0, 0, 0, 0.8);
|
--transparent-black: rgba(0, 0, 0, 0.8);
|
||||||
--jet: #333333;
|
--jet: #333333;
|
||||||
--transparent-jet: rgba(51, 51, 51, 0.8);
|
--transparent-jet: rgba(51, 51, 51, 0.8);
|
||||||
--granite-gray: #666666;
|
--granite-gray: #666666;
|
||||||
--spanish-gray: #999999;
|
--spanish-gray: #999999;
|
||||||
--light-gray: #cccccc;
|
--light-gray: #cccccc;
|
||||||
--white: #fff;
|
--white: #fff;
|
||||||
--transparent-white: rgba(255, 255, 255, 0.8);
|
--transparent-white: rgba(255, 255, 255, 0.8);
|
||||||
|
|
||||||
// Plyr (audio player)
|
// Plyr (audio player)
|
||||||
|
|
||||||
--plyr-color-main: var(--transparent-jet);
|
--plyr-color-main: var(--transparent-jet);
|
||||||
--plyr-tab-focus-color: var(--white);
|
--plyr-tab-focus-color: var(--white);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Media queries
|
// Media queries
|
||||||
|
@ -66,26 +66,26 @@ $desktop-media-query: 62rem;
|
||||||
|
|
||||||
@media screen and (min-width: $tablet-media-query) {
|
@media screen and (min-width: $tablet-media-query) {
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
|
|
||||||
// Fonts
|
// Fonts
|
||||||
|
|
||||||
--text-font-size: 1.2rem;
|
--text-font-size: 1.2rem;
|
||||||
--caption-font-size: 1.1rem;
|
--caption-font-size: 1.1rem;
|
||||||
--footnote-font-size: 1rem;
|
--footnote-font-size: 1rem;
|
||||||
--h1-font-size: 2rem;
|
--h1-font-size: 2rem;
|
||||||
--h2-font-size: 1.6rem;
|
--h2-font-size: 1.6rem;
|
||||||
--h3-font-size: 1.4rem;
|
--h3-font-size: 1.4rem;
|
||||||
|
|
||||||
// Dimensions
|
// Dimensions
|
||||||
|
|
||||||
--icon-size: 3rem;
|
--icon-size: 3rem;
|
||||||
--header-bar-vertical-padding: 2rem;
|
--header-bar-vertical-padding: 2rem;
|
||||||
--header-bar-horizontal-padding: 4rem;
|
--header-bar-horizontal-padding: 4rem;
|
||||||
--footer-bar-vertical-padding: 2rem;
|
--footer-bar-vertical-padding: 2rem;
|
||||||
--footer-bar-horizontal-padding: 4rem;
|
--footer-bar-horizontal-padding: 4rem;
|
||||||
--footer-bar-height: calc((var(--footer-bar-vertical-padding) * 2) + var(--icon-size));
|
--footer-bar-height: calc((var(--footer-bar-vertical-padding) * 2) + var(--icon-size));
|
||||||
--generic-section-horizontal-padding: 4rem;
|
--generic-section-horizontal-padding: 4rem;
|
||||||
--home-section-horizontal-padding: 4rem;
|
--home-section-horizontal-padding: 4rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,8 +25,8 @@ h3,
|
||||||
h4,
|
h4,
|
||||||
h5,
|
h5,
|
||||||
h6 {
|
h6 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1,
|
h1,
|
||||||
|
@ -35,44 +35,44 @@ h3,
|
||||||
h4,
|
h4,
|
||||||
h5,
|
h5,
|
||||||
h6 {
|
h6 {
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul {
|
ul {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
button,
|
button,
|
||||||
input,
|
input,
|
||||||
select {
|
select {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
html {
|
html {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
*, *::before, *::after {
|
*, *::before, *::after {
|
||||||
box-sizing: inherit;
|
box-sizing: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
img,
|
img,
|
||||||
video {
|
video {
|
||||||
height: auto;
|
height: auto;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
iframe {
|
iframe {
|
||||||
border: 0;
|
border: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
table {
|
table {
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
border-spacing: 0;
|
border-spacing: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
td,
|
td,
|
||||||
th {
|
th {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
392
assets/js/app.js
392
assets/js/app.js
|
@ -32,8 +32,8 @@ const headerNavMenu = document.querySelector('.header-bar__nav-menu');
|
||||||
const headerNavMenuListEls = document.querySelectorAll('.header-bar__nav-menu li');
|
const headerNavMenuListEls = document.querySelectorAll('.header-bar__nav-menu li');
|
||||||
const headerNavOverlay = document.querySelector('.header-bar__nav-overlay');
|
const headerNavOverlay = document.querySelector('.header-bar__nav-overlay');
|
||||||
const touchPosition = {
|
const touchPosition = {
|
||||||
initialX: null,
|
initialX: null,
|
||||||
initialY: null
|
initialY: null
|
||||||
};
|
};
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@ -42,8 +42,8 @@ const touchPosition = {
|
||||||
|
|
||||||
// Convert rem to pixels by getting font-size CSS property
|
// Convert rem to pixels by getting font-size CSS property
|
||||||
function convertRemToPixels(rem) {
|
function convertRemToPixels(rem) {
|
||||||
let fontSize = parseFloat(window.getComputedStyle(document.body).getPropertyValue('font-size'));
|
let fontSize = parseFloat(window.getComputedStyle(document.body).getPropertyValue('font-size'));
|
||||||
return rem * fontSize;
|
return rem * fontSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@ -54,282 +54,282 @@ function convertRemToPixels(rem) {
|
||||||
|
|
||||||
// Calculate navigation grid inner width
|
// Calculate navigation grid inner width
|
||||||
function calculateNavGridInnerWidth() {
|
function calculateNavGridInnerWidth() {
|
||||||
if (root && navImage) {
|
if (root && navImage) {
|
||||||
let navGridGapProperty = window.getComputedStyle(root).getPropertyValue('--home-nav-gap');
|
let navGridGapProperty = window.getComputedStyle(root).getPropertyValue('--home-nav-gap');
|
||||||
let navGridGap = parseFloat(navGridGapProperty.slice(0, -3));
|
let navGridGap = parseFloat(navGridGapProperty.slice(0, -3));
|
||||||
return navImage.getBoundingClientRect().width + (convertRemToPixels(navGridGap) * 2);
|
return navImage.getBoundingClientRect().width + (convertRemToPixels(navGridGap) * 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calculate navigation grid inner diagonal
|
// Calculate navigation grid inner diagonal
|
||||||
function calculateNavGridInnerDiagonal() {
|
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
|
// Create new instance of CircleType for each navigation link, set radius and direction
|
||||||
function curveNavLinks() {
|
function curveNavLinks() {
|
||||||
if (navLinks.length !== 0 && circleTypes) {
|
if (navLinks.length !== 0 && circleTypes) {
|
||||||
for (let i = 0; i < (navLinks.length - 2); i++) {
|
for (let i = 0; i < (navLinks.length - 2); i++) {
|
||||||
circleTypes[i] = new CircleType(navLinks[i]);
|
circleTypes[i] = new CircleType(navLinks[i]);
|
||||||
circleTypes[i].radius(calculateNavGridInnerWidth() / 2);
|
circleTypes[i].radius(calculateNavGridInnerWidth() / 2);
|
||||||
}
|
}
|
||||||
for (let i = (navLinks.length - 2); i < navLinks.length; i++) {
|
for (let i = (navLinks.length - 2); i < navLinks.length; i++) {
|
||||||
circleTypes[i] = new CircleType(navLinks[i]);
|
circleTypes[i] = new CircleType(navLinks[i]);
|
||||||
circleTypes[i].dir(-1);
|
circleTypes[i].dir(-1);
|
||||||
circleTypes[i].radius(calculateNavGridInnerWidth() / 2);
|
circleTypes[i].radius(calculateNavGridInnerWidth() / 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set --home-nav-item-translation CSS property
|
// Set --home-nav-item-translation CSS property
|
||||||
function setNavItemTranslationProperty() {
|
function setNavItemTranslationProperty() {
|
||||||
let navItemTranslation = (calculateNavGridInnerDiagonal() - calculateNavGridInnerWidth()) / 2;
|
let navItemTranslation = (calculateNavGridInnerDiagonal() - calculateNavGridInnerWidth()) / 2;
|
||||||
if (root) {
|
if (root) {
|
||||||
root.style.setProperty('--home-nav-item-translation', navItemTranslation + 'px');
|
root.style.setProperty('--home-nav-item-translation', navItemTranslation + 'px');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set navigation grid display depending on number of links
|
// Set navigation grid display depending on number of links
|
||||||
function setNavGridDisplay() {
|
function setNavGridDisplay() {
|
||||||
if (navEl && navLinks.length !== 0) {
|
if (navEl && navLinks.length !== 0) {
|
||||||
if (navLinks.length === 2) {
|
if (navLinks.length === 2) {
|
||||||
navEl.classList.add('home__nav--2-items');
|
navEl.classList.add('home__nav--2-items');
|
||||||
} else if (navLinks.length === 3) {
|
} else if (navLinks.length === 3) {
|
||||||
navEl.classList.add('home__nav--3-items');
|
navEl.classList.add('home__nav--3-items');
|
||||||
} else if (navLinks.length === 4) {
|
} else if (navLinks.length === 4) {
|
||||||
navEl.classList.add('home__nav--4-items');
|
navEl.classList.add('home__nav--4-items');
|
||||||
}
|
}
|
||||||
for (let i = 0; i < navLinks.length; i++) {
|
for (let i = 0; i < navLinks.length; i++) {
|
||||||
navLinks[i].classList.add('home__nav-link--visible');
|
navLinks[i].classList.add('home__nav-link--visible');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Edit navigation links radius and translation on window resize event
|
// Edit navigation links radius and translation on window resize event
|
||||||
function editNavLinksOnResize() {
|
function editNavLinksOnResize() {
|
||||||
window.addEventListener('resize', function(e) {
|
window.addEventListener('resize', function(e) {
|
||||||
if (navLinks.length !== 0 && circleTypes) {
|
if (navLinks.length !== 0 && circleTypes) {
|
||||||
for (let i = 0; i < navLinks.length; i++) {
|
for (let i = 0; i < navLinks.length; i++) {
|
||||||
circleTypes[i].radius(calculateNavGridInnerWidth() / 2);
|
circleTypes[i].radius(calculateNavGridInnerWidth() / 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
setNavItemTranslationProperty();
|
setNavItemTranslationProperty();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add wave up animation to a single letter and remove it on animationend event
|
// Add wave up animation to a single letter and remove it on animationend event
|
||||||
function waveNavLetterUp(navLetter) {
|
function waveNavLetterUp(navLetter) {
|
||||||
navLetter.classList.add('home__nav-letter--wave-up');
|
navLetter.classList.add('home__nav-letter--wave-up');
|
||||||
navLetter.addEventListener('animationend', function(e) {
|
navLetter.addEventListener('animationend', function(e) {
|
||||||
navLetter.classList.remove('home__nav-letter--wave-up');
|
navLetter.classList.remove('home__nav-letter--wave-up');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add wave down animation to a single letter and remove it on animationend event
|
// Add wave down animation to a single letter and remove it on animationend event
|
||||||
function waveNavLetterDown(navLetter) {
|
function waveNavLetterDown(navLetter) {
|
||||||
navLetter.classList.add('home__nav-letter--wave-down');
|
navLetter.classList.add('home__nav-letter--wave-down');
|
||||||
navLetter.addEventListener('animationend', function(e) {
|
navLetter.addEventListener('animationend', function(e) {
|
||||||
navLetter.classList.remove('home__nav-letter--wave-down');
|
navLetter.classList.remove('home__nav-letter--wave-down');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add wave up animation to every letters of a single link with a slight delay
|
// Add wave up animation to every letters of a single link with a slight delay
|
||||||
function waveNavLinkUp(navLink) {
|
function waveNavLinkUp(navLink) {
|
||||||
let navLinkLetters = navLink.querySelectorAll('span');
|
let navLinkLetters = navLink.querySelectorAll('span');
|
||||||
let animationDelay = 0;
|
let animationDelay = 0;
|
||||||
for (let i = 0; i < navLinkLetters.length; i++) {
|
for (let i = 0; i < navLinkLetters.length; i++) {
|
||||||
setTimeout(waveNavLetterUp, animationDelay, navLinkLetters[i]);
|
setTimeout(waveNavLetterUp, animationDelay, navLinkLetters[i]);
|
||||||
animationDelay += 50;
|
animationDelay += 50;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add wave down animation to every letters of a single link with a slight delay
|
// Add wave down animation to every letters of a single link with a slight delay
|
||||||
function waveNavLinkDown(navLink) {
|
function waveNavLinkDown(navLink) {
|
||||||
let navLinkLetters = navLink.querySelectorAll('span');
|
let navLinkLetters = navLink.querySelectorAll('span');
|
||||||
let animationDelay = 0;
|
let animationDelay = 0;
|
||||||
for (let i = 0; i < navLinkLetters.length; i++) {
|
for (let i = 0; i < navLinkLetters.length; i++) {
|
||||||
setTimeout(waveNavLetterDown, animationDelay, navLinkLetters[i]);
|
setTimeout(waveNavLetterDown, animationDelay, navLinkLetters[i]);
|
||||||
animationDelay += 50;
|
animationDelay += 50;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add wave (up or down) animation to every letters of each link on mouseover event
|
// Add wave (up or down) animation to every letters of each link on mouseover event
|
||||||
function waveNavLinksOnHover() {
|
function waveNavLinksOnHover() {
|
||||||
if (navLinks.length !== 0) {
|
if (navLinks.length !== 0) {
|
||||||
for (let i = 0; i < (navLinks.length - 2); i++) {
|
for (let i = 0; i < (navLinks.length - 2); i++) {
|
||||||
navLinks[i].addEventListener('mouseover', function(e) {
|
navLinks[i].addEventListener('mouseover', function(e) {
|
||||||
waveNavLinkUp(navLinks[i]);
|
waveNavLinkUp(navLinks[i]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
for (let i = (navLinks.length - 2); i < navLinks.length; i++) {
|
for (let i = (navLinks.length - 2); i < navLinks.length; i++) {
|
||||||
navLinks[i].addEventListener('mouseover', function(e) {
|
navLinks[i].addEventListener('mouseover', function(e) {
|
||||||
waveNavLinkDown(navLinks[i]);
|
waveNavLinkDown(navLinks[i]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// VIDEO PLAYERS //
|
// VIDEO PLAYERS //
|
||||||
|
|
||||||
// Set up Plyr video players
|
// Set up Plyr video players
|
||||||
function setUpVideoPlayers() {
|
function setUpVideoPlayers() {
|
||||||
if (galleryVideos.length !== 0) {
|
if (galleryVideos.length !== 0) {
|
||||||
videoPlayers = Plyr.setup(galleryVideos, {
|
videoPlayers = Plyr.setup(galleryVideos, {
|
||||||
controls: [
|
controls: [
|
||||||
'play-large',
|
'play-large',
|
||||||
'play',
|
'play',
|
||||||
'progress',
|
'progress',
|
||||||
'current-time',
|
'current-time',
|
||||||
'duration',
|
'duration',
|
||||||
'mute',
|
'mute',
|
||||||
'volume',
|
'volume',
|
||||||
'fullscreen'
|
'fullscreen'
|
||||||
],
|
],
|
||||||
i18n: {
|
i18n: {
|
||||||
play: 'Lire',
|
play: 'Lire',
|
||||||
pause: 'Mettre sur pause',
|
pause: 'Mettre sur pause',
|
||||||
seek: 'Parcourir la piste audio',
|
seek: 'Parcourir la piste audio',
|
||||||
currentTime: 'Temps écoulé depuis le début de la piste audio',
|
currentTime: 'Temps écoulé depuis le début de la piste audio',
|
||||||
duration: 'Durée de la piste audio',
|
duration: 'Durée de la piste audio',
|
||||||
volume: 'Ajuster le volume',
|
volume: 'Ajuster le volume',
|
||||||
mute: 'Couper le son',
|
mute: 'Couper le son',
|
||||||
unmute: 'Activer le son',
|
unmute: 'Activer le son',
|
||||||
enterFullscreen: 'Activer le mode plein écran',
|
enterFullscreen: 'Activer le mode plein écran',
|
||||||
exitFullscreen: 'Quitter le mode plein écran'
|
exitFullscreen: 'Quitter le mode plein écran'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Toggle videos full screen mode on Plyr enterfullscreen and exitfullscreen media events
|
// Toggle videos full screen mode on Plyr enterfullscreen and exitfullscreen media events
|
||||||
function toggleVideosFullScreen() {
|
function toggleVideosFullScreen() {
|
||||||
if (videoPlayers.length !== 0) {
|
if (videoPlayers.length !== 0) {
|
||||||
for (let i = 0; i < videoPlayers.length; i++) {
|
for (let i = 0; i < videoPlayers.length; i++) {
|
||||||
videoPlayers[i].on('enterfullscreen', function(e) {
|
videoPlayers[i].on('enterfullscreen', function(e) {
|
||||||
galleryVideos[i].classList.add('gallery__video--full-screen');
|
galleryVideos[i].classList.add('gallery__video--full-screen');
|
||||||
});
|
});
|
||||||
videoPlayers[i].on('exitfullscreen', function(e) {
|
videoPlayers[i].on('exitfullscreen', function(e) {
|
||||||
galleryVideos[i].classList.remove('gallery__video--full-screen');
|
galleryVideos[i].classList.remove('gallery__video--full-screen');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// HEADER BAR ANIMATION //
|
// HEADER BAR ANIMATION //
|
||||||
|
|
||||||
// Toggle header bar depending on scroll offset
|
// Toggle header bar depending on scroll offset
|
||||||
function toggleHeaderBar() {
|
function toggleHeaderBar() {
|
||||||
if (headerBar && headerLogo) {
|
if (headerBar && headerLogo) {
|
||||||
let headerBarHeight = headerBar.getBoundingClientRect().height;
|
let headerBarHeight = headerBar.getBoundingClientRect().height;
|
||||||
if (window.pageYOffset > headerBarHeight) { // Scroll down past header bar height
|
if (window.pageYOffset > headerBarHeight) { // Scroll down past header bar height
|
||||||
headerBar.classList.add('header-bar--fixed');
|
headerBar.classList.add('header-bar--fixed');
|
||||||
headerLogo.classList.add('header-bar__logo--small');
|
headerLogo.classList.add('header-bar__logo--small');
|
||||||
} else if (window.pageYOffset <= 0) {
|
} else if (window.pageYOffset <= 0) {
|
||||||
headerBar.classList.remove('header-bar--fixed');
|
headerBar.classList.remove('header-bar--fixed');
|
||||||
headerLogo.classList.remove('header-bar__logo--small');
|
headerLogo.classList.remove('header-bar__logo--small');
|
||||||
headerBar.classList.remove('header-bar--visible');
|
headerBar.classList.remove('header-bar--visible');
|
||||||
}
|
}
|
||||||
if (headerBar.classList.contains('header-bar--fixed')) {
|
if (headerBar.classList.contains('header-bar--fixed')) {
|
||||||
if (scrollOffset < window.pageYOffset) { // Scroll down
|
if (scrollOffset < window.pageYOffset) { // Scroll down
|
||||||
headerBar.classList.remove('header-bar--visible');
|
headerBar.classList.remove('header-bar--visible');
|
||||||
} else if (scrollOffset > window.pageYOffset) { // Scroll up
|
} else if (scrollOffset > window.pageYOffset) { // Scroll up
|
||||||
headerBar.classList.add('header-bar--visible');
|
headerBar.classList.add('header-bar--visible');
|
||||||
}
|
}
|
||||||
scrollOffset = window.pageYOffset;
|
scrollOffset = window.pageYOffset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// NAVIGATION MENU ANIMATION //
|
// NAVIGATION MENU ANIMATION //
|
||||||
|
|
||||||
// Toggle header navigation
|
// Toggle header navigation
|
||||||
function toggleHeaderNav() {
|
function toggleHeaderNav() {
|
||||||
if (headerNavBtn && headerNavMenu) {
|
if (headerNavBtn && headerNavMenu) {
|
||||||
headerNavBtn.classList.toggle('header-bar__nav-button--custom-focus');
|
headerNavBtn.classList.toggle('header-bar__nav-button--custom-focus');
|
||||||
headerNavMenu.classList.toggle('header-bar__nav-menu--visible');
|
headerNavMenu.classList.toggle('header-bar__nav-menu--visible');
|
||||||
headerNavOverlay.classList.toggle('header-bar__nav-overlay--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
|
// Open header navigation
|
||||||
function openHeaderNav() {
|
function openHeaderNav() {
|
||||||
if (headerNavBtn && headerNavMenu) {
|
if (headerNavBtn && headerNavMenu) {
|
||||||
headerNavBtn.classList.add('header-bar__nav-button--custom-focus');
|
headerNavBtn.classList.add('header-bar__nav-button--custom-focus');
|
||||||
headerNavMenu.classList.add('header-bar__nav-menu--visible');
|
headerNavMenu.classList.add('header-bar__nav-menu--visible');
|
||||||
headerNavOverlay.classList.add('header-bar__nav-overlay--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
|
// Close header navigation
|
||||||
function closeHeaderNav() {
|
function closeHeaderNav() {
|
||||||
if (headerNavBtn && headerNavMenu) {
|
if (headerNavBtn && headerNavMenu) {
|
||||||
headerNavBtn.classList.remove('header-bar__nav-button--custom-focus');
|
headerNavBtn.classList.remove('header-bar__nav-button--custom-focus');
|
||||||
headerNavMenu.classList.remove('header-bar__nav-menu--visible');
|
headerNavMenu.classList.remove('header-bar__nav-menu--visible');
|
||||||
headerNavOverlay.classList.remove('header-bar__nav-overlay--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
|
// Toggle header navigation on button click event
|
||||||
function toggleHeaderNavOnClick() {
|
function toggleHeaderNavOnClick() {
|
||||||
headerNavBtn.addEventListener('click', toggleHeaderNav);
|
headerNavBtn.addEventListener('click', toggleHeaderNav);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close header navigation on document click event
|
// Close header navigation on document click event
|
||||||
function closeHeaderNavOnClick() {
|
function closeHeaderNavOnClick() {
|
||||||
document.addEventListener('click', function(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)) {
|
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);
|
closeHeaderNav(e);
|
||||||
if (e.cancelable) {
|
if (e.cancelable) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Open header navigation on menu list focusin event
|
// Open header navigation on menu list focusin event
|
||||||
function openHeaderNavBeforeFocus() {
|
function openHeaderNavBeforeFocus() {
|
||||||
if (headerNavMenuListEls) {
|
if (headerNavMenuListEls) {
|
||||||
for (let i = 0; i < headerNavMenuListEls.length; i++) {
|
for (let i = 0; i < headerNavMenuListEls.length; i++) {
|
||||||
headerNavMenuListEls[i].addEventListener('focusin', openHeaderNav);
|
headerNavMenuListEls[i].addEventListener('focusin', openHeaderNav);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close header navigation on menu list focusout event
|
// Close header navigation on menu list focusout event
|
||||||
function closeHeaderNavAfterFocus() {
|
function closeHeaderNavAfterFocus() {
|
||||||
if (headerNavMenuListEls) {
|
if (headerNavMenuListEls) {
|
||||||
for (let i = 0; i < headerNavMenuListEls.length; i++) {
|
for (let i = 0; i < headerNavMenuListEls.length; i++) {
|
||||||
headerNavMenuListEls[i].addEventListener('focusout', closeHeaderNav);
|
headerNavMenuListEls[i].addEventListener('focusout', closeHeaderNav);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close header navigation on touchstart and touchmove events (swipe right)
|
// Close header navigation on touchstart and touchmove events (swipe right)
|
||||||
function closeHeaderNavOnSwipe() {
|
function closeHeaderNavOnSwipe() {
|
||||||
headerNavMenu.addEventListener('touchstart', function(e) {
|
headerNavMenu.addEventListener('touchstart', function(e) {
|
||||||
if (headerNavBtn.classList.contains('header-bar__nav-button--custom-focus') && headerNavMenu.classList.contains('header-bar__nav-menu--visible') && touchPosition.initialX === null && touchPosition.initialY === null) {
|
if (headerNavBtn.classList.contains('header-bar__nav-button--custom-focus') && headerNavMenu.classList.contains('header-bar__nav-menu--visible') && touchPosition.initialX === null && touchPosition.initialY === null) {
|
||||||
touchPosition.initialX = event.touches[0].clientX;
|
touchPosition.initialX = event.touches[0].clientX;
|
||||||
touchPosition.initialY = event.touches[0].clientY;
|
touchPosition.initialY = event.touches[0].clientY;
|
||||||
}
|
}
|
||||||
}, {passive: true});
|
}, {passive: true});
|
||||||
headerNavMenu.addEventListener('touchmove', function(e) {
|
headerNavMenu.addEventListener('touchmove', function(e) {
|
||||||
if (headerNavBtn.classList.contains('header-bar__nav-button--custom-focus') && headerNavMenu.classList.contains('header-bar__nav-menu--visible') && touchPosition.initialX !== null && touchPosition.initialY !== null) {
|
if (headerNavBtn.classList.contains('header-bar__nav-button--custom-focus') && headerNavMenu.classList.contains('header-bar__nav-menu--visible') && touchPosition.initialX !== null && touchPosition.initialY !== null) {
|
||||||
touchPosition.currentX = event.touches[0].clientX;
|
touchPosition.currentX = event.touches[0].clientX;
|
||||||
touchPosition.currentY = event.touches[0].clientY;
|
touchPosition.currentY = event.touches[0].clientY;
|
||||||
touchPosition.diffX = touchPosition.initialX - touchPosition.currentX;
|
touchPosition.diffX = touchPosition.initialX - touchPosition.currentX;
|
||||||
touchPosition.diffY = touchPosition.initialY - touchPosition.currentY;
|
touchPosition.diffY = touchPosition.initialY - touchPosition.currentY;
|
||||||
if (Math.abs(touchPosition.diffX) > Math.abs(touchPosition.diffY)) {
|
if (Math.abs(touchPosition.diffX) > Math.abs(touchPosition.diffY)) {
|
||||||
if (touchPosition.diffX < 0) {
|
if (touchPosition.diffX < 0) {
|
||||||
closeHeaderNav(e);
|
closeHeaderNav(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
touchPosition.initialX = null;
|
touchPosition.initialX = null;
|
||||||
touchPosition.initialY = null;
|
touchPosition.initialY = null;
|
||||||
}
|
}
|
||||||
}, {passive: true});
|
}, {passive: true});
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@ -342,11 +342,11 @@ document.addEventListener("touchstart", function() {},false);
|
||||||
// HOME NAVIGATION DISPLAY //
|
// HOME NAVIGATION DISPLAY //
|
||||||
|
|
||||||
window.addEventListener('load', function() {
|
window.addEventListener('load', function() {
|
||||||
curveNavLinks();
|
curveNavLinks();
|
||||||
setNavItemTranslationProperty();
|
setNavItemTranslationProperty();
|
||||||
setNavGridDisplay();
|
setNavGridDisplay();
|
||||||
editNavLinksOnResize();
|
editNavLinksOnResize();
|
||||||
waveNavLinksOnHover();
|
waveNavLinksOnHover();
|
||||||
});
|
});
|
||||||
|
|
||||||
// VIDEO PLAYERS //
|
// VIDEO PLAYERS //
|
||||||
|
@ -357,7 +357,7 @@ toggleVideosFullScreen();
|
||||||
// HEADER BAR ANIMATION //
|
// HEADER BAR ANIMATION //
|
||||||
|
|
||||||
document.addEventListener('scroll', function() {
|
document.addEventListener('scroll', function() {
|
||||||
toggleHeaderBar();
|
toggleHeaderBar();
|
||||||
});
|
});
|
||||||
|
|
||||||
// NAVIGATION MENU ANIMATION //
|
// NAVIGATION MENU ANIMATION //
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
{
|
{
|
||||||
"name": "paulnicoue/xiaowang",
|
"name": "paulnicoue/xiaowang",
|
||||||
"description": "Xiao Wang",
|
"description": "Xiao Wang",
|
||||||
"type": "project",
|
"type": "project",
|
||||||
"homepage": "https://xiaowang.fr",
|
"homepage": "https://xiaowang.fr",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "Paul Nicoué",
|
"name": "Paul Nicoué",
|
||||||
"email": "contact@paulnicoue.com",
|
"email": "contact@paulnicoue.com",
|
||||||
"homepage": "https://paulnicoue.com"
|
"homepage": "https://paulnicoue.com"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.3.0 <8.1.0",
|
"php": ">=7.3.0 <8.1.0",
|
||||||
"getkirby/cms": "^3.5",
|
"getkirby/cms": "^3.5",
|
||||||
"amteich/kirby-twig": "^4.1",
|
"amteich/kirby-twig": "^4.1",
|
||||||
"sylvainjule/matomo": "^1.0",
|
"sylvainjule/matomo": "^1.0",
|
||||||
"kirbyzone/sitemapper": "^1.2",
|
"kirbyzone/sitemapper": "^1.2",
|
||||||
"mullema/k3-image-clip": "^3.0"
|
"mullema/k3-image-clip": "^3.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": [
|
"start": [
|
||||||
"Composer\\Config::disableProcessTimeout",
|
"Composer\\Config::disableProcessTimeout",
|
||||||
"@php -S localhost:8000 kirby/router.php"
|
"@php -S localhost:8000 kirby/router.php"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"optimize-autoloader": true,
|
"optimize-autoloader": true,
|
||||||
"allow-plugins": {
|
"allow-plugins": {
|
||||||
"getkirby/composer-installer": true
|
"getkirby/composer-installer": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
27334
package-lock.json
generated
27334
package-lock.json
generated
File diff suppressed because it is too large
Load diff
48
package.json
48
package.json
|
@ -1,26 +1,26 @@
|
||||||
{
|
{
|
||||||
"browserslist": [
|
"browserslist": [
|
||||||
"> 0.5%",
|
"> 0.5%",
|
||||||
"last 4 versions",
|
"last 4 versions",
|
||||||
"Firefox ESR",
|
"Firefox ESR",
|
||||||
"not dead"
|
"not dead"
|
||||||
],
|
],
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@symfony/webpack-encore": "^3.0.0",
|
"@symfony/webpack-encore": "^3.0.0",
|
||||||
"autoprefixer": "^10.4.7",
|
"autoprefixer": "^10.4.7",
|
||||||
"circletype": "^2.3.0",
|
"circletype": "^2.3.0",
|
||||||
"core-js": "^3.23.4",
|
"core-js": "^3.23.4",
|
||||||
"plyr": "^3.7.2",
|
"plyr": "^3.7.2",
|
||||||
"postcss-loader": "^7.0.1",
|
"postcss-loader": "^7.0.1",
|
||||||
"sass": "^1.53.0",
|
"sass": "^1.53.0",
|
||||||
"sass-loader": "^13.0.2",
|
"sass-loader": "^13.0.2",
|
||||||
"webpack-notifier": "^1.15.0"
|
"webpack-notifier": "^1.15.0"
|
||||||
},
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "encore production --progress",
|
"build": "encore production --progress",
|
||||||
"dev": "encore dev",
|
"dev": "encore dev",
|
||||||
"dev-server": "encore dev-server",
|
"dev-server": "encore dev-server",
|
||||||
"watch": "encore dev --watch"
|
"watch": "encore dev --watch"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
plugins: {
|
plugins: {
|
||||||
autoprefixer: {} // Browserlist configuration is defined in package.json
|
autoprefixer: {} // Browserlist configuration is defined in package.json
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
{
|
{
|
||||||
"name": "Xiao Wang",
|
"name": "Xiao Wang",
|
||||||
"short_name": "Xiao Wang",
|
"short_name": "Xiao Wang",
|
||||||
"icons": [
|
"icons": [
|
||||||
{
|
{
|
||||||
"src": "xiao-wang-favicon-192px.png",
|
"src": "xiao-wang-favicon-192px.png",
|
||||||
"sizes": "192x192",
|
"sizes": "192x192",
|
||||||
"type": "image/png"
|
"type": "image/png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"src": "xiao-wang-favicon-512px.png",
|
"src": "xiao-wang-favicon-512px.png",
|
||||||
"sizes": "512x512",
|
"sizes": "512x512",
|
||||||
"type": "image/png"
|
"type": "image/png"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,42 +1,42 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
return [
|
return [
|
||||||
// Kirby configuration settings
|
// Kirby configuration settings
|
||||||
'home' => 'accueil',
|
'home' => 'accueil',
|
||||||
'error' => 'erreur',
|
'error' => 'erreur',
|
||||||
'panel' => [
|
'panel' => [
|
||||||
'language' => 'fr',
|
'language' => 'fr',
|
||||||
'css' => 'build/panel.css'
|
'css' => 'build/panel.css'
|
||||||
],
|
],
|
||||||
// Sitemapper plugin options
|
// Sitemapper plugin options
|
||||||
'kirbyzone.sitemapper' => [
|
'kirbyzone.sitemapper' => [
|
||||||
'intro' => false,
|
'intro' => false,
|
||||||
'byLine' => 'Sitemap generated with <a href="https://github.com/kirbyzone/sitemapper" target="_blank">Sitemapper by Kirbyzone</a>.'
|
'byLine' => 'Sitemap generated with <a href="https://github.com/kirbyzone/sitemapper" target="_blank">Sitemapper by Kirbyzone</a>.'
|
||||||
],
|
],
|
||||||
// Hooks
|
// Hooks
|
||||||
'hooks' => [
|
'hooks' => [
|
||||||
'file.create:after' => function($file) {
|
'file.create:after' => function($file) {
|
||||||
// Populate file_type field with $file->type() method after file creation
|
// Populate file_type field with $file->type() method after file creation
|
||||||
if ($file->type()) {
|
if ($file->type()) {
|
||||||
$file->update([
|
$file->update([
|
||||||
'file_type' => $file->type()
|
'file_type' => $file->type()
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'kirbytext:after' => function (string $text) {
|
'kirbytext:after' => function (string $text) {
|
||||||
// Replace any HTML <h1> or <h2> tag by <h3> tag after Markdown parsing
|
// Replace any HTML <h1> or <h2> tag by <h3> tag after Markdown parsing
|
||||||
return preg_replace(['/<h1>|<h2>/', '/<\/h1>|<\/h2>/'], ['<h3>', '</h3>'], $text);
|
return preg_replace(['/<h1>|<h2>/', '/<\/h1>|<\/h2>/'], ['<h3>', '</h3>'], $text);
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
// Thumbnails and srcsets presets
|
// Thumbnails and srcsets presets
|
||||||
'thumbs' => [
|
'thumbs' => [
|
||||||
'srcsets' => [
|
'srcsets' => [
|
||||||
'default' => [
|
'default' => [
|
||||||
'640w' => ['width' => 640, 'quality' => 80],
|
'640w' => ['width' => 640, 'quality' => 80],
|
||||||
'1280w' => ['width' => 1280, 'quality' => 80],
|
'1280w' => ['width' => 1280, 'quality' => 80],
|
||||||
'1920w' => ['width' => 1920, 'quality' => 80],
|
'1920w' => ['width' => 1920, 'quality' => 80],
|
||||||
'2560w' => ['width' => 2560, 'quality' => 80]
|
'2560w' => ['width' => 2560, 'quality' => 80]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
|
@ -11,11 +11,11 @@
|
||||||
|
|
||||||
{# Description #}
|
{# Description #}
|
||||||
{% if page.meta_description is not empty %}
|
{% if page.meta_description is not empty %}
|
||||||
<meta name="description" content="{{ page.meta_description }}">
|
<meta name="description" content="{{ page.meta_description }}">
|
||||||
<meta id="schema_description" itemprop="description" content="{{ page.meta_description }}">
|
<meta id="schema_description" itemprop="description" content="{{ page.meta_description }}">
|
||||||
{% elseif site.homePage.meta_description is not empty %}
|
{% elseif site.homePage.meta_description is not empty %}
|
||||||
<meta name="description" content="{{ site.homePage.meta_description }}">
|
<meta name="description" content="{{ site.homePage.meta_description }}">
|
||||||
<meta id="schema_description" itemprop="description" content="{{ site.homePage.meta_description }}">
|
<meta id="schema_description" itemprop="description" content="{{ site.homePage.meta_description }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{# Canonical URL #}
|
{# Canonical URL #}
|
||||||
|
@ -29,44 +29,44 @@
|
||||||
|
|
||||||
{# Image #}
|
{# Image #}
|
||||||
{% if page.meta_image is not empty %}
|
{% if page.meta_image is not empty %}
|
||||||
<meta id="schema_image" itemprop="image" content="{{ page.meta_image.toImage.url }}">
|
<meta id="schema_image" itemprop="image" content="{{ page.meta_image.toImage.url }}">
|
||||||
{% elseif site.homePage.meta_image is not empty %}
|
{% elseif site.homePage.meta_image is not empty %}
|
||||||
<meta id="schema_image" itemprop="image" content="{{ site.homePage.meta_image.toImage.url }}">
|
<meta id="schema_image" itemprop="image" content="{{ site.homePage.meta_image.toImage.url }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if page.template != 'error' %}
|
{% if page.template != 'error' %}
|
||||||
|
|
||||||
{# Open Graph #}
|
{# Open Graph #}
|
||||||
<meta property="og:title" content="{{ site.title ~ ' | ' ~ page.title }}">
|
<meta property="og:title" content="{{ site.title ~ ' | ' ~ page.title }}">
|
||||||
{% if page.meta_description is not empty %}
|
{% if page.meta_description is not empty %}
|
||||||
<meta property="og:description" content="{{ page.meta_description }}">
|
<meta property="og:description" content="{{ page.meta_description }}">
|
||||||
{% elseif site.homePage.meta_description is not empty %}
|
{% elseif site.homePage.meta_description is not empty %}
|
||||||
<meta property="og:description" content="{{ site.homePage.meta_description }}">
|
<meta property="og:description" content="{{ site.homePage.meta_description }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if page.meta_image is not empty %}
|
{% if page.meta_image is not empty %}
|
||||||
<meta property="og:image" content="{{ page.meta_image.toImage.clip(1200, 675).url }}">
|
<meta property="og:image" content="{{ page.meta_image.toImage.clip(1200, 675).url }}">
|
||||||
<meta property="og:image:width" content="1200">
|
<meta property="og:image:width" content="1200">
|
||||||
<meta property="og:image:height" content="675">
|
<meta property="og:image:height" content="675">
|
||||||
{% elseif site.homePage.meta_image is not empty %}
|
{% elseif site.homePage.meta_image is not empty %}
|
||||||
<meta property="og:image" content="{{ site.homePage.meta_image.toImage.clip(1200, 675).url }}">
|
<meta property="og:image" content="{{ site.homePage.meta_image.toImage.clip(1200, 675).url }}">
|
||||||
<meta property="og:image:width" content="1200">
|
<meta property="og:image:width" content="1200">
|
||||||
<meta property="og:image:height" content="675">
|
<meta property="og:image:height" content="675">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<meta property="og:url" content="{{ page.url }}">
|
<meta property="og:url" content="{{ page.url }}">
|
||||||
<meta property="og:type" content="{{ page.og_type }}">
|
<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:card" content="{{ page.twitter_card_type.value }}">
|
||||||
<meta name="twitter:title" content="{{ site.title ~ ' | ' ~ page.title }}">
|
<meta name="twitter:title" content="{{ site.title ~ ' | ' ~ page.title }}">
|
||||||
{% if page.meta_description is not empty %}
|
{% if page.meta_description is not empty %}
|
||||||
<meta name="twitter:description" content="{{ page.meta_description }}">
|
<meta name="twitter:description" content="{{ page.meta_description }}">
|
||||||
{% elseif site.homePage.meta_description is not empty %}
|
{% elseif site.homePage.meta_description is not empty %}
|
||||||
<meta name="twitter:description" content="{{ site.homePage.meta_description }}">
|
<meta name="twitter:description" content="{{ site.homePage.meta_description }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if page.meta_image is not empty %}
|
{% if page.meta_image is not empty %}
|
||||||
<meta name="twitter:image" content="{{ page.meta_image.toImage.clip(1200, 675).url }}">
|
<meta name="twitter:image" content="{{ page.meta_image.toImage.clip(1200, 675).url }}">
|
||||||
{% elseif site.homePage.meta_image is not empty %}
|
{% elseif site.homePage.meta_image is not empty %}
|
||||||
<meta name="twitter:image" content="{{ site.homePage.meta_image.toImage.clip(1200, 675).url }}">
|
<meta name="twitter:image" content="{{ site.homePage.meta_image.toImage.clip(1200, 675).url }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -4,148 +4,148 @@
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
|
|
||||||
{{ snippet('metadata') }}
|
{{ snippet('metadata') }}
|
||||||
{{ snippet('favicon') }}
|
{{ snippet('favicon') }}
|
||||||
|
|
||||||
{# CSS #}
|
{# CSS #}
|
||||||
{% block stylesheets %}
|
{% block stylesheets %}
|
||||||
<link rel="stylesheet" href="build/main.css">
|
<link rel="stylesheet" href="build/main.css">
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{# JavaScript #}
|
{# JavaScript #}
|
||||||
{% block scripts %}
|
{% block scripts %}
|
||||||
<script src="build/app.js" defer></script>
|
<script src="build/app.js" defer></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{# Matomo #}
|
{# Matomo #}
|
||||||
<script>
|
<script>
|
||||||
var _paq = window._paq = window._paq || [];
|
var _paq = window._paq = window._paq || [];
|
||||||
_paq.push(['disableCookies']);
|
_paq.push(['disableCookies']);
|
||||||
_paq.push(['trackPageView']);
|
_paq.push(['trackPageView']);
|
||||||
_paq.push(['enableLinkTracking']);
|
_paq.push(['enableLinkTracking']);
|
||||||
(function() {
|
(function() {
|
||||||
var u="//matomo.paulnicoue.com/";
|
var u="//matomo.paulnicoue.com/";
|
||||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
||||||
_paq.push(['setSiteId', '2']);
|
_paq.push(['setSiteId', '2']);
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
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);
|
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
{% block header %}
|
{% block header %}
|
||||||
<header>
|
<header>
|
||||||
|
|
||||||
<div class="header-bar">
|
<div class="header-bar">
|
||||||
|
|
||||||
<div class="header-bar__logo" aria-hidden="true">
|
<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">
|
<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>
|
<h1 class="header-bar__logo-title">{{ site.title }}</h1>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<nav class="header-bar__nav" aria-label="Menu">
|
<nav class="header-bar__nav" aria-label="Menu">
|
||||||
<button class="header-bar__nav-button" aria-hidden="true" tabindex="-1">
|
<button class="header-bar__nav-button" aria-hidden="true" tabindex="-1">
|
||||||
<svg viewBox="0 0 48 48" fill="currentColor">
|
<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"/>
|
<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>
|
||||||
<svg viewBox="0 0 48 48" fill="currentColor">
|
<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"/>
|
<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>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
<ul class="header-bar__nav-menu" tabindex="-1">
|
<ul class="header-bar__nav-menu" tabindex="-1">
|
||||||
{% set headerNavItemNo = 1 %}
|
{% set headerNavItemNo = 1 %}
|
||||||
{% if site.homePage.isActive %}
|
{% if site.homePage.isActive %}
|
||||||
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
|
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
|
||||||
<div>
|
<div>
|
||||||
<a href="{{ site.homePage.url }}" target="_self" aria-current="page">{{ site.homePage.title }}</a>
|
<a href="{{ site.homePage.url }}" target="_self" aria-current="page">{{ site.homePage.title }}</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{% else %}
|
{% else %}
|
||||||
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
|
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
|
||||||
<div>
|
<div>
|
||||||
<a href="{{ site.homePage.url }}" target="_self">{{ site.homePage.title }}</a>
|
<a href="{{ site.homePage.url }}" target="_self">{{ site.homePage.title }}</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% set headerNavItemNo = headerNavItemNo + 1 %}
|
{% set headerNavItemNo = headerNavItemNo + 1 %}
|
||||||
{% if pages.template('biography').first.isActive %}
|
{% if pages.template('biography').first.isActive %}
|
||||||
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
|
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
|
||||||
<div>
|
<div>
|
||||||
<a href="{{ pages.template('biography').first.url }}" target="_self" aria-current="page">{{ pages.template('biography').first.title }}</a>
|
<a href="{{ pages.template('biography').first.url }}" target="_self" aria-current="page">{{ pages.template('biography').first.title }}</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{% else %}
|
{% else %}
|
||||||
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
|
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
|
||||||
<div>
|
<div>
|
||||||
<a href="{{ pages.template('biography').first.url }}" target="_self">{{ pages.template('biography').first.title }}</a>
|
<a href="{{ pages.template('biography').first.url }}" target="_self">{{ pages.template('biography').first.title }}</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% set headerNavItemNo = headerNavItemNo + 1 %}
|
{% set headerNavItemNo = headerNavItemNo + 1 %}
|
||||||
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
|
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
|
||||||
<div>
|
<div>
|
||||||
<span>Galeries</span>
|
<span>Galeries</span>
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
{% for gallery in pages.template('gallery') %}
|
{% for gallery in pages.template('gallery') %}
|
||||||
{% set headerNavItemNo = headerNavItemNo + 1 %}
|
{% set headerNavItemNo = headerNavItemNo + 1 %}
|
||||||
{% if gallery.isActive %}
|
{% if gallery.isActive %}
|
||||||
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
|
<li class="header-bar__nav-item-{{ headerNavItemNo }} header-bar__nav-item--active">
|
||||||
<div>
|
<div>
|
||||||
<a href="{{ gallery.url }}" target="_self" aria-current="page">{{ gallery.title }}</a>
|
<a href="{{ gallery.url }}" target="_self" aria-current="page">{{ gallery.title }}</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{% else %}
|
{% else %}
|
||||||
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
|
<li class="header-bar__nav-item-{{ headerNavItemNo }}">
|
||||||
<div>
|
<div>
|
||||||
<a href="{{ gallery.url }}" target="_self">{{ gallery.title }}</a>
|
<a href="{{ gallery.url }}" target="_self">{{ gallery.title }}</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="header-bar__nav-overlay" aria-hidden="true"></div>
|
<div class="header-bar__nav-overlay" aria-hidden="true"></div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</header>
|
</header>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block main %}
|
{% block main %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block footer %}
|
{% block footer %}
|
||||||
<footer>
|
<footer>
|
||||||
|
|
||||||
<div class="footer-bar">
|
<div class="footer-bar">
|
||||||
|
|
||||||
<div class="footer-bar__social">
|
<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 }}">
|
<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">
|
<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"/>
|
<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>
|
</svg>
|
||||||
</a>
|
</a>
|
||||||
<a class="footer-bar__email-button" href="mailto:{{ site.homePage.email }}" target="_blank" aria-label="Écrire un e-mail à {{ site.title }}">
|
<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">
|
<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"/>
|
<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>
|
</svg>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer-bar__copyright">
|
<div class="footer-bar__copyright">
|
||||||
<p>© {{ 'now' | date('Y') }} {{ site.title }}</p>
|
<p>© {{ 'now' | date('Y') }} {{ site.title }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</footer>
|
</footer>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
{% extends "base.twig" %}
|
{% extends "base.twig" %}
|
||||||
|
|
||||||
{% block main %}
|
{% block main %}
|
||||||
<main>
|
<main>
|
||||||
|
|
||||||
<section class="biography-section">
|
<section class="biography-section">
|
||||||
|
|
||||||
<article class="biography">
|
<article class="biography">
|
||||||
<h2 class="biography__title">{{ page.title }}</h2>
|
<h2 class="biography__title">{{ page.title }}</h2>
|
||||||
<div class="biography__presentation">{{ page.text.kirbytext|raw }}</div>
|
<div class="biography__presentation">{{ page.text.kirbytext|raw }}</div>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
{% extends "base.twig" %}
|
{% extends "base.twig" %}
|
||||||
|
|
||||||
{% block main %}
|
{% block main %}
|
||||||
<main>
|
<main>
|
||||||
|
|
||||||
<section class="error-section">
|
<section class="error-section">
|
||||||
<article class="error">
|
<article class="error">
|
||||||
<h2 class="error__title">Erreur {{ kirby.response.code }}</h2>
|
<h2 class="error__title">Erreur {{ kirby.response.code }}</h2>
|
||||||
{% if kirby.response.code == 404 %}
|
{% if kirby.response.code == 404 %}
|
||||||
<p class="error__message">La page que vous demandez n'existe pas...</p>
|
<p class="error__message">La page que vous demandez n'existe pas...</p>
|
||||||
{% else %}
|
{% else %}
|
||||||
<p class="error__message">Une erreur est survenue...</p>
|
<p class="error__message">Une erreur est survenue...</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="error__button">
|
<div class="error__button">
|
||||||
<a href="{{ site.homePage.url }}" target="_self">Retourner à la page d'accueil</a>
|
<a href="{{ site.homePage.url }}" target="_self">Retourner à la page d'accueil</a>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -1,42 +1,42 @@
|
||||||
{% extends "base.twig" %}
|
{% extends "base.twig" %}
|
||||||
|
|
||||||
{% block main %}
|
{% block main %}
|
||||||
<main>
|
<main>
|
||||||
|
|
||||||
<section class="gallery-section">
|
<section class="gallery-section">
|
||||||
|
|
||||||
<article class="gallery">
|
<article class="gallery">
|
||||||
<h2 class="gallery__title">{{ page.title }}</h2>
|
<h2 class="gallery__title">{{ page.title }}</h2>
|
||||||
{% if page.text.isNotEmpty %}
|
{% if page.text.isNotEmpty %}
|
||||||
<div class="gallery__introduction">{{ page.text.kirbytext|raw }}</div>
|
<div class="gallery__introduction">{{ page.text.kirbytext|raw }}</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if page.files.template("artwork").isNotEmpty %}
|
{% if page.files.template("artwork").isNotEmpty %}
|
||||||
{% set artworks = page.files.template("artwork").sortBy('sort') %}
|
{% set artworks = page.files.template("artwork").sortBy('sort') %}
|
||||||
{% for artwork in artworks %}
|
{% for artwork in artworks %}
|
||||||
<figure class="gallery__artwork">
|
<figure class="gallery__artwork">
|
||||||
{% if artwork.type == 'video' %}
|
{% if artwork.type == 'video' %}
|
||||||
{% if artwork.poster is not empty %}
|
{% if artwork.poster is not empty %}
|
||||||
<video class="gallery__video" data-poster="{{ artwork.poster.toFile.url }}" preload="metadata" controls playsinline>
|
<video class="gallery__video" data-poster="{{ artwork.poster.toFile.url }}" preload="metadata" controls playsinline>
|
||||||
<source src="{{ artwork.url }}" type="video/mp4"/>
|
<source src="{{ artwork.url }}" type="video/mp4"/>
|
||||||
</video>
|
</video>
|
||||||
{% else %}
|
{% else %}
|
||||||
<video class="gallery__video" preload="metadata" controls playsinline>
|
<video class="gallery__video" preload="metadata" controls playsinline>
|
||||||
<source src="{{ artwork.url }}" type="video/mp4"/>
|
<source src="{{ artwork.url }}" type="video/mp4"/>
|
||||||
</video>
|
</video>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if artwork.type == 'image' %}
|
{% if artwork.type == 'image' %}
|
||||||
<img class="gallery__image" src="{{ artwork.url }}" srcset="{{ artwork.srcset() }}" alt="{{ artwork.alt_text }}">
|
<img class="gallery__image" src="{{ artwork.url }}" srcset="{{ artwork.srcset() }}" alt="{{ artwork.alt_text }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if artwork.caption %}
|
{% if artwork.caption %}
|
||||||
<figcaption>{{ artwork.caption.kirbytext|raw }}</figcaption>
|
<figcaption>{{ artwork.caption.kirbytext|raw }}</figcaption>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</figure>
|
</figure>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -1,26 +1,26 @@
|
||||||
{% extends "base.twig" %}
|
{% extends "base.twig" %}
|
||||||
|
|
||||||
{% block main %}
|
{% block main %}
|
||||||
<main>
|
<main>
|
||||||
|
|
||||||
<section class="home-section" aria-hidden="true">
|
<section class="home-section" aria-hidden="true">
|
||||||
|
|
||||||
<div class="home">
|
<div class="home">
|
||||||
<nav class="home__nav" aria-label="Menu">
|
<nav class="home__nav" aria-label="Menu">
|
||||||
{% set navItemNo = 1 %}
|
{% set navItemNo = 1 %}
|
||||||
{% for gallery in pages.template('gallery') %}
|
{% for gallery in pages.template('gallery') %}
|
||||||
<div class="home__nav-item-{{ navItemNo }}">
|
<div class="home__nav-item-{{ navItemNo }}">
|
||||||
<a href="{{ gallery.url }}" target="_self" class="home__nav-link" tabindex="-1">{{ gallery.title }}</a>
|
<a href="{{ gallery.url }}" target="_self" class="home__nav-link" tabindex="-1">{{ gallery.title }}</a>
|
||||||
</div>
|
</div>
|
||||||
{% set navItemNo = navItemNo + 1 %}
|
{% set navItemNo = navItemNo + 1 %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<div class="home__nav-image" aria-hidden="true">
|
<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 }}">
|
<img src="{{ page.images.template("image").first.url }}" srcset="{{ page.images.template("image").first.srcset() }}" alt="{{ page.images.template("image").first.alt_text }}">
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -1,43 +1,43 @@
|
||||||
const Encore = require('@symfony/webpack-encore');
|
const Encore = require('@symfony/webpack-encore');
|
||||||
|
|
||||||
if (!Encore.isRuntimeEnvironmentConfigured()) {
|
if (!Encore.isRuntimeEnvironmentConfigured()) {
|
||||||
Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev');
|
Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev');
|
||||||
}
|
}
|
||||||
|
|
||||||
Encore
|
Encore
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// PATHS
|
// PATHS
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
.setOutputPath('public/build/')
|
.setOutputPath('public/build/')
|
||||||
.setPublicPath('/build')
|
.setPublicPath('/build')
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// ENTRIES
|
// ENTRIES
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
.addEntry('app', './assets/js/app.js')
|
.addEntry('app', './assets/js/app.js')
|
||||||
.addStyleEntry('main', './assets/css/main.scss')
|
.addStyleEntry('main', './assets/css/main.scss')
|
||||||
.addStyleEntry('panel', './assets/css/panel.scss')
|
.addStyleEntry('panel', './assets/css/panel.scss')
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// FEATURES
|
// FEATURES
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
.disableSingleRuntimeChunk()
|
.disableSingleRuntimeChunk()
|
||||||
.cleanupOutputBeforeBuild()
|
.cleanupOutputBeforeBuild()
|
||||||
.enableBuildNotifications()
|
.enableBuildNotifications()
|
||||||
.enableSourceMaps(!Encore.isProduction())
|
.enableSourceMaps(!Encore.isProduction())
|
||||||
.configureBabel((config) => {
|
.configureBabel((config) => {
|
||||||
config.plugins.push('@babel/plugin-proposal-class-properties');
|
config.plugins.push('@babel/plugin-proposal-class-properties');
|
||||||
})
|
})
|
||||||
.configureBabelPresetEnv((config) => {
|
.configureBabelPresetEnv((config) => {
|
||||||
config.useBuiltIns = 'usage';
|
config.useBuiltIns = 'usage';
|
||||||
config.corejs = 3;
|
config.corejs = 3;
|
||||||
})
|
})
|
||||||
.enableSassLoader()
|
.enableSassLoader()
|
||||||
.enablePostCssLoader()
|
.enablePostCssLoader()
|
||||||
;
|
;
|
||||||
|
|
||||||
module.exports = Encore.getWebpackConfig();
|
module.exports = Encore.getWebpackConfig();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue