Customize folder setup
This commit is contained in:
parent
ddb853e055
commit
2f7f31b623
48 changed files with 27 additions and 22 deletions
57
public/.htaccess
Normal file
57
public/.htaccess
Normal file
|
@ -0,0 +1,57 @@
|
|||
# Kirby .htaccess
|
||||
# revision 2020-06-15
|
||||
|
||||
# rewrite rules
|
||||
<IfModule mod_rewrite.c>
|
||||
|
||||
# enable awesome urls. i.e.:
|
||||
# http://yourdomain.com/about-us/team
|
||||
RewriteEngine on
|
||||
|
||||
# make sure to set the RewriteBase correctly
|
||||
# if you are running the site in a subfolder;
|
||||
# otherwise links or the entire site will break.
|
||||
#
|
||||
# If your homepage is http://yourdomain.com/mysite,
|
||||
# set the RewriteBase to:
|
||||
#
|
||||
# RewriteBase /mysite
|
||||
|
||||
# In some environments it's necessary to
|
||||
# set the RewriteBase to:
|
||||
#
|
||||
# RewriteBase /
|
||||
|
||||
# block files and folders beginning with a dot, such as .git
|
||||
# except for the .well-known folder, which is used for Let's Encrypt and security.txt
|
||||
RewriteRule (^|/)\.(?!well-known\/) index.php [L]
|
||||
|
||||
# block all files in the content folder from being accessed directly
|
||||
RewriteRule ^content/(.*) index.php [L]
|
||||
|
||||
# block all files in the site folder from being accessed directly
|
||||
RewriteRule ^site/(.*) index.php [L]
|
||||
|
||||
# block direct access to Kirby and the Panel sources
|
||||
RewriteRule ^kirby/(.*) index.php [L]
|
||||
|
||||
# make site links work
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule ^(.*) index.php [L]
|
||||
|
||||
</IfModule>
|
||||
|
||||
# pass the Authorization header to PHP
|
||||
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
|
||||
|
||||
# compress text file responses
|
||||
<IfModule mod_deflate.c>
|
||||
AddOutputFilterByType DEFLATE text/plain
|
||||
AddOutputFilterByType DEFLATE text/html
|
||||
AddOutputFilterByType DEFLATE text/css
|
||||
AddOutputFilterByType DEFLATE text/javascript
|
||||
AddOutputFilterByType DEFLATE application/json
|
||||
AddOutputFilterByType DEFLATE application/javascript
|
||||
AddOutputFilterByType DEFLATE application/x-javascript
|
||||
</IfModule>
|
1
public/assets/css/panel.min.css
vendored
Normal file
1
public/assets/css/panel.min.css
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
.k-textarea-field .k-toolbar .k-dropdown .k-button:nth-of-type(2),.k-textarea-field .k-toolbar .k-dropdown .k-button:nth-of-type(3){display:none}.kirby-imagecrop-field .k-column:nth-of-type(2){display:none}/*# sourceMappingURL=panel.min.css.map */
|
1
public/assets/css/panel.min.css.map
Normal file
1
public/assets/css/panel.min.css.map
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"sourceRoot":"","sources":["panel.scss"],"names":[],"mappings":"AAYG,oIAEC,aAUH,gDACC","file":"panel.min.css"}
|
28
public/assets/css/panel.scss
Normal file
28
public/assets/css/panel.scss
Normal file
|
@ -0,0 +1,28 @@
|
|||
// ----------------------------------------------------------------------------
|
||||
// KIRBY PANEL CUSTOMIZATION
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// Textarea headline buttons
|
||||
|
||||
.k-textarea-field {
|
||||
|
||||
.k-toolbar {
|
||||
|
||||
.k-dropdown {
|
||||
|
||||
.k-button:nth-of-type(2),
|
||||
.k-button:nth-of-type(3) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Visual image crop field properties
|
||||
|
||||
.kirby-imagecrop-field {
|
||||
|
||||
.k-column:nth-of-type(2) {
|
||||
display: none;
|
||||
}
|
||||
}
|
69
public/assets/css/partials/_animations.scss
Normal file
69
public/assets/css/partials/_animations.scss
Normal file
|
@ -0,0 +1,69 @@
|
|||
// ----------------------------------------------------------------------------
|
||||
// ANIMATIONS
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
@-webkit-keyframes expand-outline {
|
||||
from {
|
||||
outline-offset: 0;
|
||||
}
|
||||
to {
|
||||
outline-offset: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes expand-outline {
|
||||
from {
|
||||
outline-offset: 0;
|
||||
}
|
||||
to {
|
||||
outline-offset: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes wave-up {
|
||||
0% {
|
||||
top: 0;
|
||||
}
|
||||
60% {
|
||||
top: -0.5rem;
|
||||
}
|
||||
100% {
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes wave-up {
|
||||
0% {
|
||||
top: 0;
|
||||
}
|
||||
60% {
|
||||
top: -0.5rem;
|
||||
}
|
||||
100% {
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes wave-down {
|
||||
0% {
|
||||
bottom: 0;
|
||||
}
|
||||
60% {
|
||||
bottom: -0.5rem;
|
||||
}
|
||||
100% {
|
||||
bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes wave-down {
|
||||
0% {
|
||||
bottom: 0;
|
||||
}
|
||||
60% {
|
||||
bottom: -0.5rem;
|
||||
}
|
||||
100% {
|
||||
bottom: 0;
|
||||
}
|
||||
}
|
70
public/assets/css/partials/_fonts.scss
Normal file
70
public/assets/css/partials/_fonts.scss
Normal file
|
@ -0,0 +1,70 @@
|
|||
// ----------------------------------------------------------------------------
|
||||
// FONTS
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// Nunito
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
src: url(../fonts/nunito/Nunito-Regular.ttf) format('truetype');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
src: url(../fonts/nunito/Nunito-Italic.ttf) format('truetype');
|
||||
font-weight: 400;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
src: url(../fonts/nunito/Nunito-Medium.ttf) format('truetype');
|
||||
font-weight: 500;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
src: url(../fonts/nunito/Nunito-MediumItalic.ttf) format('truetype');
|
||||
font-weight: 500;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
src: url(../fonts/nunito/Nunito-SemiBold.ttf) format('truetype');
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
src: url(../fonts/nunito/Nunito-SemiBoldItalic.ttf) format('truetype');
|
||||
font-weight: 600;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
src: url(../fonts/nunito/Nunito-Bold.ttf) format('truetype');
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
src: url(../fonts/nunito/Nunito-BoldItalic.ttf) format('truetype');
|
||||
font-weight: 700;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
// Gloria Hallelujah
|
||||
|
||||
@font-face {
|
||||
font-family: 'Gloria Hallelujah';
|
||||
src: url(../fonts/gloria-hallelujah/GloriaHallelujah-Regular.ttf) format('truetype');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
}
|
78
public/assets/css/partials/_minireset.css
Normal file
78
public/assets/css/partials/_minireset.css
Normal file
|
@ -0,0 +1,78 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
MINIRESET V0.0.6
|
||||
---------------------------------------------------------------------------- */
|
||||
|
||||
html,
|
||||
body,
|
||||
p,
|
||||
ol,
|
||||
ul,
|
||||
li,
|
||||
dl,
|
||||
dt,
|
||||
dd,
|
||||
blockquote,
|
||||
figure,
|
||||
fieldset,
|
||||
legend,
|
||||
textarea,
|
||||
pre,
|
||||
iframe,
|
||||
hr,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-size: 100%;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
button,
|
||||
input,
|
||||
select {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
html {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
*, *::before, *::after {
|
||||
box-sizing: inherit;
|
||||
}
|
||||
|
||||
img,
|
||||
video {
|
||||
height: auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
iframe {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
td,
|
||||
th {
|
||||
padding: 0;
|
||||
}
|
91
public/assets/css/partials/_variables.scss
Normal file
91
public/assets/css/partials/_variables.scss
Normal file
|
@ -0,0 +1,91 @@
|
|||
// ----------------------------------------------------------------------------
|
||||
// VARIABLES
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
:root {
|
||||
|
||||
// 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;
|
||||
|
||||
// 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));
|
||||
|
||||
// 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);
|
||||
|
||||
// Plyr (audio player)
|
||||
|
||||
--plyr-color-main: var(--transparent-jet);
|
||||
--plyr-tab-focus-color: var(--white);
|
||||
}
|
||||
|
||||
// Media queries
|
||||
|
||||
$tablet-media-query: 48rem;
|
||||
$desktop-media-query: 62rem;
|
||||
|
||||
@media screen and (min-width: $tablet-media-query) {
|
||||
|
||||
:root {
|
||||
|
||||
// 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;
|
||||
|
||||
// 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;
|
||||
}
|
||||
}
|
1
public/assets/css/style.min.css
vendored
Normal file
1
public/assets/css/style.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/assets/css/style.min.css.map
Normal file
1
public/assets/css/style.min.css.map
Normal file
|
@ -0,0 +1 @@
|
|||
{"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,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"}
|
849
public/assets/css/style.scss
Normal file
849
public/assets/css/style.scss
Normal file
|
@ -0,0 +1,849 @@
|
|||
@use 'partials/minireset';
|
||||
@use 'partials/fonts';
|
||||
@use 'partials/variables' as *;
|
||||
@use 'partials/animations';
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// GENERALITIES
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// Fonts and colors
|
||||
|
||||
body {
|
||||
font-family: var(--text-font-family);
|
||||
font-size: var(--text-font-size);
|
||||
line-height: var(--text-font-size);
|
||||
color: var(--jet);
|
||||
background-color: var(--white);
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
color: var(--black);
|
||||
}
|
||||
|
||||
h1 {
|
||||
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;
|
||||
}
|
||||
|
||||
h3 {
|
||||
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);
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: var(--bold-font-weight);
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
// Link style
|
||||
|
||||
a {
|
||||
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;
|
||||
|
||||
&: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;
|
||||
}
|
||||
}
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
.body--hidden-overflow-y {
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
header {
|
||||
grid-area: header;
|
||||
}
|
||||
|
||||
main {
|
||||
grid-area: main;
|
||||
}
|
||||
|
||||
footer {
|
||||
grid-area: footer;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// HEADER
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// Header bar
|
||||
|
||||
.header-bar {
|
||||
width: 100%;
|
||||
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;
|
||||
z-index: 1;
|
||||
-webkit-transition:
|
||||
height 400ms ease-in-out,
|
||||
border-bottom 400ms ease-in-out;
|
||||
-o-transition:
|
||||
height 400ms ease-in-out,
|
||||
border-bottom 400ms ease-in-out;
|
||||
transition:
|
||||
height 400ms ease-in-out,
|
||||
border-bottom 400ms ease-in-out;
|
||||
|
||||
&--fixed {
|
||||
position: fixed;
|
||||
--header-bar-vertical-padding: 0.5rem;
|
||||
--header-bar-height: calc((var(--header-bar-vertical-padding) * 2) + var(--icon-size));
|
||||
top: calc(-1 * var(--header-bar-height));
|
||||
border-bottom: 1px solid var(--light-gray);
|
||||
-webkit-transition: transform 400ms ease-in-out;
|
||||
-o-transition: transform 400ms ease-in-out;
|
||||
transition: transform 400ms ease-in-out;
|
||||
}
|
||||
|
||||
&--visible {
|
||||
-webkit-transform: translateY(var(--header-bar-height));
|
||||
-ms-transform: translateY(var(--header-bar-height));
|
||||
transform: translateY(var(--header-bar-height));
|
||||
}
|
||||
}
|
||||
|
||||
.header-bar__logo {
|
||||
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;
|
||||
transform-origin: left;
|
||||
|
||||
&--small {
|
||||
-webkit-transform: scale(0.8);
|
||||
-ms-transform: scale(0.8);
|
||||
transform: scale(0.8);
|
||||
}
|
||||
}
|
||||
|
||||
.header-bar__logo-link {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.header-bar__nav {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.header-bar__nav-button {
|
||||
position: relative;
|
||||
z-index: 3;
|
||||
width: var(--icon-size);
|
||||
height: var(--icon-size);
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
border: none;
|
||||
border-radius: 50%;
|
||||
background-color: var(--jet);
|
||||
cursor: pointer;
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-webkit-transition:
|
||||
transform 200ms ease-in-out,
|
||||
background-color 400ms ease-in-out;
|
||||
-o-transition:
|
||||
transform 200ms ease-in-out,
|
||||
background-color 400ms ease-in-out;
|
||||
transition:
|
||||
transform 200ms ease-in-out,
|
||||
background-color 400ms ease-in-out;
|
||||
|
||||
svg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 10%;
|
||||
flex-shrink: 0;
|
||||
-webkit-transition:
|
||||
opacity 400ms ease-in-out,
|
||||
transform 400ms ease-in-out;
|
||||
-o-transition:
|
||||
opacity 400ms ease-in-out,
|
||||
transform 400ms ease-in-out;
|
||||
transition:
|
||||
opacity 400ms ease-in-out,
|
||||
transform 400ms ease-in-out;
|
||||
}
|
||||
|
||||
svg:nth-child(1) {
|
||||
fill: var(--white);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
svg:nth-child(2) {
|
||||
fill: var(--black);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
&: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%);
|
||||
}
|
||||
|
||||
svg:nth-child(1) {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
svg:nth-child(2) {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.header-bar__nav-menu {
|
||||
position: fixed;
|
||||
z-index: 2;
|
||||
top: 0;
|
||||
left: 100vw;
|
||||
min-width: 100vw;
|
||||
max-width: 100vw;
|
||||
height: 100vh;
|
||||
padding: calc(var(--header-bar-height) + 4rem) Max(4rem, calc((100vw - var(--content-max-width)) / 2 + 4rem)) 4rem 4rem;
|
||||
background-color: var(--transparent-black);
|
||||
color: var(--white);
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
-webkit-transition: transform 400ms ease-in-out;
|
||||
-o-transition: transform 400ms ease-in-out;
|
||||
transition: transform 400ms ease-in-out;
|
||||
|
||||
> li {
|
||||
|
||||
+ li {
|
||||
border-top: 1px solid var(--spanish-gray);
|
||||
}
|
||||
|
||||
li {
|
||||
margin: 0 0 0 2rem;
|
||||
border-top: 1px solid var(--granite-gray);
|
||||
}
|
||||
|
||||
div {
|
||||
padding: 1rem 0;
|
||||
-webkit-transform: translateX(100%);
|
||||
-ms-transform: translateX(100%);
|
||||
transform: translateX(100%);
|
||||
-webkit-transition: transform 400ms ease-in-out;
|
||||
-o-transition: transform 400ms ease-in-out;
|
||||
transition: transform 400ms ease-in-out;
|
||||
|
||||
a,
|
||||
span {
|
||||
color: var(--light-gray);
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
|
||||
&:hover,
|
||||
&:focus,
|
||||
&:active {
|
||||
color: var(--white);
|
||||
}
|
||||
|
||||
&:focus-visible {
|
||||
outline: 1px dashed var(--white);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.header-bar__nav-item--active {
|
||||
list-style: disc outside;
|
||||
|
||||
a {
|
||||
color: var(--white);
|
||||
}
|
||||
}
|
||||
|
||||
&--visible {
|
||||
-webkit-transform: translateX(calc(-1 * 100%));
|
||||
-ms-transform: translateX(calc(-1 * 100%));
|
||||
transform: translateX(calc(-1 * 100%));
|
||||
|
||||
@for $i from 1 through 20 {
|
||||
.header-bar__nav-item-#{$i} {
|
||||
|
||||
div {
|
||||
-webkit-transform: translateX(0);
|
||||
-ms-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
-webkit-transition: transform calc(400ms + $i * 100ms) ease-in-out;
|
||||
-o-transition: transform calc(400ms + $i * 100ms) ease-in-out;
|
||||
transition: transform calc(400ms + $i * 100ms) ease-in-out;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.header-bar__nav-overlay {
|
||||
position: fixed;
|
||||
z-index: 1;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background-color: var(--black);
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
will-change: opacity;
|
||||
-webkit-transition: opacity 400ms ease-in-out;
|
||||
-o-transition: opacity 400ms ease-in-out;
|
||||
transition: opacity 400ms ease-in-out;
|
||||
|
||||
&--visible {
|
||||
opacity: 0.2;
|
||||
pointer-events: auto;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: $tablet-media-query) {
|
||||
|
||||
.header-bar__nav-menu {
|
||||
min-width: 50vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: $desktop-media-query) {
|
||||
|
||||
.header-bar__nav-menu {
|
||||
min-width: 25vw;
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// MAIN
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
.home__nav-image {
|
||||
grid-area: center;
|
||||
|
||||
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-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-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--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-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-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;
|
||||
|
||||
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;
|
||||
|
||||
div {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.home__nav-letter--wave-up {
|
||||
-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;
|
||||
}
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
.gallery__title,
|
||||
.biography__title {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.gallery__introduction,
|
||||
.biography__presentation {
|
||||
max-width: var(--text-max-width);
|
||||
margin: auto;
|
||||
|
||||
h3:nth-child(1) {
|
||||
margin: 0 0 1rem 0;
|
||||
}
|
||||
|
||||
p {
|
||||
|
||||
+ p,
|
||||
+ ul {
|
||||
margin: 1rem 0 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
line-height: var(--text-line-height);
|
||||
|
||||
+ ul,
|
||||
+ p {
|
||||
margin: 1rem 0 0 0;
|
||||
}
|
||||
|
||||
li {
|
||||
position: relative;
|
||||
padding: 0 0 0 1rem;
|
||||
}
|
||||
|
||||
li + li {
|
||||
margin: 1rem 0 0 0;
|
||||
}
|
||||
|
||||
li:before {
|
||||
content: '•';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.gallery__artwork {
|
||||
display: table;
|
||||
max-width: Min(1280px, 100%);
|
||||
margin: auto;
|
||||
|
||||
+ .gallery__artwork {
|
||||
margin: 2rem auto 0 auto;
|
||||
}
|
||||
|
||||
.gallery__image,
|
||||
.gallery__video {
|
||||
display: block;
|
||||
max-height: 80vh;
|
||||
}
|
||||
|
||||
.gallery__video {
|
||||
|
||||
&--full-screen {
|
||||
max-height: initial;
|
||||
}
|
||||
}
|
||||
|
||||
figcaption {
|
||||
display: table-caption;
|
||||
caption-side: bottom;
|
||||
margin: 1rem auto 0 auto;
|
||||
font-size: var(--caption-font-size);
|
||||
line-height: var(--text-line-height);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: $tablet-media-query) {
|
||||
|
||||
.gallery__artwork {
|
||||
|
||||
+ .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);
|
||||
}
|
||||
|
||||
.error__title {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.error__message {
|
||||
max-width: var(--text-max-width);
|
||||
margin: auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.error__button {
|
||||
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);
|
||||
-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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// 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;
|
||||
}
|
||||
|
||||
.footer-bar__social {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
|
||||
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;
|
||||
-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;
|
||||
}
|
||||
|
||||
svg {
|
||||
fill: var(--white);
|
||||
}
|
||||
|
||||
|
||||
&:hover,
|
||||
&:focus,
|
||||
&:active {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
}
|
||||
|
||||
a.footer-bar__instagram-button {
|
||||
|
||||
svg {
|
||||
width: 55%;
|
||||
height: 55%;
|
||||
}
|
||||
}
|
||||
|
||||
a.footer-bar__email-button {
|
||||
|
||||
svg {
|
||||
width: 70%;
|
||||
height: 70%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.footer-bar__copyright {
|
||||
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__social {
|
||||
order: 2;
|
||||
}
|
||||
|
||||
.footer-bar__copyright {
|
||||
order: 1;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
BIN
public/assets/favicon/xiao-wang-apple-touch-icon.png
Normal file
BIN
public/assets/favicon/xiao-wang-apple-touch-icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.2 KiB |
BIN
public/assets/favicon/xiao-wang-favicon-192px.png
Normal file
BIN
public/assets/favicon/xiao-wang-favicon-192px.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/favicon/xiao-wang-favicon-512px.png
Normal file
BIN
public/assets/favicon/xiao-wang-favicon-512px.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
BIN
public/assets/favicon/xiao-wang-favicon.ico
Normal file
BIN
public/assets/favicon/xiao-wang-favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
20
public/assets/favicon/xiao-wang-favicon.svg
Normal file
20
public/assets/favicon/xiao-wang-favicon.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 11 KiB |
16
public/assets/favicon/xiao-wang.webmanifest
Normal file
16
public/assets/favicon/xiao-wang.webmanifest
Normal file
|
@ -0,0 +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"
|
||||
}
|
||||
]
|
||||
}
|
Binary file not shown.
BIN
public/assets/fonts/nunito/Nunito-Bold.ttf
Normal file
BIN
public/assets/fonts/nunito/Nunito-Bold.ttf
Normal file
Binary file not shown.
BIN
public/assets/fonts/nunito/Nunito-BoldItalic.ttf
Normal file
BIN
public/assets/fonts/nunito/Nunito-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
public/assets/fonts/nunito/Nunito-Italic.ttf
Normal file
BIN
public/assets/fonts/nunito/Nunito-Italic.ttf
Normal file
Binary file not shown.
BIN
public/assets/fonts/nunito/Nunito-Medium.ttf
Normal file
BIN
public/assets/fonts/nunito/Nunito-Medium.ttf
Normal file
Binary file not shown.
BIN
public/assets/fonts/nunito/Nunito-MediumItalic.ttf
Normal file
BIN
public/assets/fonts/nunito/Nunito-MediumItalic.ttf
Normal file
Binary file not shown.
BIN
public/assets/fonts/nunito/Nunito-Regular.ttf
Normal file
BIN
public/assets/fonts/nunito/Nunito-Regular.ttf
Normal file
Binary file not shown.
BIN
public/assets/fonts/nunito/Nunito-SemiBold.ttf
Normal file
BIN
public/assets/fonts/nunito/Nunito-SemiBold.ttf
Normal file
Binary file not shown.
BIN
public/assets/fonts/nunito/Nunito-SemiBoldItalic.ttf
Normal file
BIN
public/assets/fonts/nunito/Nunito-SemiBoldItalic.ttf
Normal file
Binary file not shown.
368
public/assets/js/app.js
Normal file
368
public/assets/js/app.js
Normal file
|
@ -0,0 +1,368 @@
|
|||
'use strict';
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// DATA
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
const root = document.documentElement;
|
||||
|
||||
// HOME NAVIGATION DISPLAY //
|
||||
|
||||
const navEl = document.querySelector('.home__nav');
|
||||
const navLinks = document.querySelectorAll('.home__nav-link');
|
||||
const navImage = document.querySelector('.home__nav-image');
|
||||
const circleTypes = [];
|
||||
|
||||
// VIDEO PLAYERS //
|
||||
|
||||
const galleryVideos = document.querySelectorAll('.gallery__video');
|
||||
let videoPlayers = [];
|
||||
|
||||
// HEADER BAR ANIMATION //
|
||||
|
||||
const headerBar = document.querySelector('.header-bar');
|
||||
const headerLogo = document.querySelector('.header-bar__logo');
|
||||
let scrollOffset = 0;
|
||||
|
||||
// NAVIGATION MENU ANIMATION //
|
||||
|
||||
const headerNavBtn = document.querySelector('.header-bar__nav-button');
|
||||
const headerNavMenu = document.querySelector('.header-bar__nav-menu');
|
||||
const headerNavMenuListEls = document.querySelectorAll('.header-bar__nav-menu li');
|
||||
const headerNavOverlay = document.querySelector('.header-bar__nav-overlay');
|
||||
const touchPosition = {
|
||||
initialX: null,
|
||||
initialY: null
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// UTILS
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// LOGIC
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// HOME NAVIGATION DISPLAY //
|
||||
|
||||
// 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);
|
||||
}
|
||||
}
|
||||
|
||||
// Calculate navigation grid inner diagonal
|
||||
function calculateNavGridInnerDiagonal() {
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 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');
|
||||
}
|
||||
}
|
||||
|
||||
// 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');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 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();
|
||||
});
|
||||
}
|
||||
|
||||
// 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');
|
||||
});
|
||||
}
|
||||
|
||||
// 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');
|
||||
});
|
||||
}
|
||||
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
|
||||
// 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]);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 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'
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 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');
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 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');
|
||||
headerLogo.classList.add('header-bar__logo--small');
|
||||
} 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 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');
|
||||
headerNavOverlay.classList.toggle('header-bar__nav-overlay--visible');
|
||||
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');
|
||||
headerNavOverlay.classList.add('header-bar__nav-overlay--visible');
|
||||
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');
|
||||
headerNavOverlay.classList.remove('header-bar__nav-overlay--visible');
|
||||
document.body.classList.remove('body--hidden-overflow-y');
|
||||
}
|
||||
}
|
||||
|
||||
// Toggle header navigation on button click event
|
||||
function toggleHeaderNavOnClick() {
|
||||
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);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Close header navigation on touchstart and touchmove events (swipe right)
|
||||
function closeHeaderNavOnSwipe() {
|
||||
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) {
|
||||
touchPosition.initialX = event.touches[0].clientX;
|
||||
touchPosition.initialY = event.touches[0].clientY;
|
||||
}
|
||||
}, {passive: true});
|
||||
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) {
|
||||
touchPosition.currentX = event.touches[0].clientX;
|
||||
touchPosition.currentY = event.touches[0].clientY;
|
||||
touchPosition.diffX = touchPosition.initialX - touchPosition.currentX;
|
||||
touchPosition.diffY = touchPosition.initialY - touchPosition.currentY;
|
||||
if (Math.abs(touchPosition.diffX) > Math.abs(touchPosition.diffY)) {
|
||||
if (touchPosition.diffX < 0) {
|
||||
closeHeaderNav(e);
|
||||
}
|
||||
}
|
||||
touchPosition.initialX = null;
|
||||
touchPosition.initialY = null;
|
||||
}
|
||||
}, {passive: true});
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// PROGRAM
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// Enable CSS :active pseudo-class in Safari Mobile
|
||||
document.addEventListener("touchstart", function() {},false);
|
||||
|
||||
// HOME NAVIGATION DISPLAY //
|
||||
|
||||
window.addEventListener('load', function() {
|
||||
curveNavLinks();
|
||||
setNavItemTranslationProperty();
|
||||
setNavGridDisplay();
|
||||
editNavLinksOnResize();
|
||||
waveNavLinksOnHover();
|
||||
});
|
||||
|
||||
// VIDEO PLAYERS //
|
||||
|
||||
setUpVideoPlayers();
|
||||
toggleVideosFullScreen();
|
||||
|
||||
// HEADER BAR ANIMATION //
|
||||
|
||||
document.addEventListener('scroll', function() {
|
||||
toggleHeaderBar();
|
||||
});
|
||||
|
||||
// NAVIGATION MENU ANIMATION //
|
||||
|
||||
toggleHeaderNavOnClick();
|
||||
closeHeaderNavOnClick();
|
||||
openHeaderNavBeforeFocus();
|
||||
closeHeaderNavAfterFocus();
|
||||
closeHeaderNavOnSwipe();
|
5
public/assets/libraries/circletype.min.js
vendored
Normal file
5
public/assets/libraries/circletype.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
5
public/assets/libraries/plyr.min.css
vendored
Normal file
5
public/assets/libraries/plyr.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
5
public/assets/libraries/plyr.min.js
vendored
Normal file
5
public/assets/libraries/plyr.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
18
public/index.php
Normal file
18
public/index.php
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
include __DIR__ . '/../kirby/vendor/autoload.php';
|
||||
|
||||
$kirby = new Kirby([
|
||||
'roots' => [
|
||||
'index' => __DIR__,
|
||||
'base' => $base = dirname(__DIR__),
|
||||
'content' => $base . '/content',
|
||||
'site' => $base . '/site',
|
||||
'storage' => $storage = $base . '/storage',
|
||||
'accounts' => $storage . '/accounts',
|
||||
'cache' => $storage . '/cache',
|
||||
'sessions' => $storage . '/sessions',
|
||||
]
|
||||
]);
|
||||
|
||||
echo $kirby->render();
|
0
public/media/index.html
Normal file
0
public/media/index.html
Normal file
4
public/robots.txt
Normal file
4
public/robots.txt
Normal file
|
@ -0,0 +1,4 @@
|
|||
User-agent: *
|
||||
Disallow: /panel*
|
||||
|
||||
Sitemap: https://xiaowang.fr/sitemap.xml
|
Loading…
Add table
Add a link
Reference in a new issue