From 00d58f620d7e0728396c0bb42ec4282f4b129e31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20Nicou=C3=A9?= Date: Thu, 29 May 2025 18:55:49 +0200 Subject: [PATCH 1/2] Edit base and home style --- assets/css/abstracts/_variables.scss | 33 +++++++++++++----- assets/css/base/_base.scss | 34 ++++++++++++------- assets/css/pages/_home.scss | 7 ++-- public/images/feather-instagram-custom.svg | 5 +++ public/images/feather-mail-custom.svg | 4 +++ public/images/remix-instagram-fill.svg | 1 - public/images/remix-mail-fill.svg | 1 - ...horizontal.svg => signature-landscape.svg} | 0 ...re-vertical.svg => signature-portrait.svg} | 0 site/templates/base.twig | 8 ++--- 10 files changed, 61 insertions(+), 32 deletions(-) create mode 100644 public/images/feather-instagram-custom.svg create mode 100644 public/images/feather-mail-custom.svg delete mode 100644 public/images/remix-instagram-fill.svg delete mode 100644 public/images/remix-mail-fill.svg rename public/images/{signature-horizontal.svg => signature-landscape.svg} (100%) rename public/images/{signature-vertical.svg => signature-portrait.svg} (100%) diff --git a/assets/css/abstracts/_variables.scss b/assets/css/abstracts/_variables.scss index 0e2670e..58de654 100644 --- a/assets/css/abstracts/_variables.scss +++ b/assets/css/abstracts/_variables.scss @@ -2,23 +2,38 @@ // VARIABLES // -------------------------------------------------- -// Fonts +// ----- FONTS + $text-font-family: Helvetica, Arial, sans-serif; $text-font-size: 0.9rem; $text-line-height: 1.15; -// Dimensions -$app-width: min(100%, 120rem); // => 1920px -$large-content-width: min(100%, 100rem); // => 1600px -$medium-content-width: min(100%, 80rem); // => 1280px -$small-content-width: min(100%, 60rem); // => 960px -$icon-size: clamp(2rem, 1.667rem + 0.694vw, 2.5rem); // Viewport range: 48rem <=> 120rem -$icon-spacing: clamp(0.25rem, 0.083rem + 0.347vw, 0.5rem); // Viewport range: 48rem <=> 120rem +// ----- COLORS -// Colors $black: #000; $white: #fff; +// ----- DIMENSIONS + +// Content +$content-width-xs: min(100%, 40rem); // => 640px +$content-width-s: min(100%, 60rem); // => 960px +$content-width-m: min(100%, 80rem); // => 1280px +$content-width-l: min(100%, 100rem); // => 1600px +$content-width-xl: min(100%, 120rem); // => 1920px + +// Sidebar +$sidebar-padding-x: clamp(0.75rem, -0.75rem + 3.125vw, 3rem); // Viewport range: 48rem <=> 120rem +$sidebar-padding-y: clamp(0.75rem, 0.25rem + 1.042vw, 1.5rem); // Viewport range: 48rem <=> 120rem + +// Logo +$logo-portrait-width: clamp(2rem, 1.333rem + 1.389vw, 3rem); // Viewport range: 48rem <=> 120rem +$logo-landscape-width: calc($logo-portrait-width * 2); + +// Icons +$icon-size: clamp(2rem, 1.667rem + 0.694vw, 2.5rem); // Viewport range: 48rem <=> 120rem +$icon-spacing: clamp(0.25rem, 0.083rem + 0.347vw, 0.5rem); // Viewport range: 48rem <=> 120rem + // Media queries $tablet-media-query: 48rem; // => 768px $desktop-media-query: 62rem; // => 992px diff --git a/assets/css/base/_base.scss b/assets/css/base/_base.scss index 3d8cd34..6f8813c 100644 --- a/assets/css/base/_base.scss +++ b/assets/css/base/_base.scss @@ -43,55 +43,65 @@ body { #app { position: relative; display: grid; - grid-template-columns: auto 1fr auto; + grid-template-columns: 1fr auto 1fr; justify-content: center; justify-items: center; - width: $app-width; + width: $content-width-xl; header { grid-column: 1; + display: flex; + flex-direction: column; + align-items: center; position: sticky; top: 0; + width: 100%; height: 100vh; // Fallback in case dvh unit is not supported height: 100dvh; - padding: 1rem; + padding: $sidebar-padding-y $sidebar-padding-x; .header__logo { position: relative; - width: $icon-size; + width: $logo-portrait-width; aspect-ratio: calc(1 / 2); - background-image: url("/public/images/signature-vertical.svg"); + background-image: url("/public/images/signature-portrait.svg"); background-size: contain; background-position: center; - @media screen and (min-width: $desktop-media-query) { - width: calc(($icon-size * 2) + $icon-spacing); + @media (orientation: landscape) { + width: $logo-landscape-width; aspect-ratio: calc(2 / 1); - background-image: url("/public/images/signature-horizontal.svg"); + background-image: url("/public/images/signature-landscape.svg"); } } } main { grid-column: 2; - width: $large-content-width; - padding: calc(2rem + $icon-size) 0; + padding: calc(($sidebar-padding-y * 2) + ($logo-portrait-width * 2)) 0; + + @media (orientation: landscape) { + padding: calc(($sidebar-padding-y * 2) + ($logo-landscape-width / 2)) 0; + } } footer { grid-column: 3; position: sticky; top: 0; + width: 100%; height: 100vh; // Fallback in case dvh unit is not supported height: 100dvh; display: flex; flex-direction: column; justify-content: flex-end; + align-items: center; gap: $icon-spacing; - padding: 1rem; + padding: $sidebar-padding-y $sidebar-padding-x; - @media screen and (min-width: $desktop-media-query) { + @media (orientation: landscape) { flex-direction: row; + justify-content: center; align-items: flex-end; } diff --git a/assets/css/pages/_home.scss b/assets/css/pages/_home.scss index 1acbb34..ee4412f 100644 --- a/assets/css/pages/_home.scss +++ b/assets/css/pages/_home.scss @@ -11,10 +11,10 @@ flex-direction: column; align-items: center; gap: 2rem; + width: $content-width-m; .home__gallery-item { display: table; - max-width: $medium-content-width; .home__carousel { @@ -50,10 +50,7 @@ .home__image-caption { display: table-caption; caption-side: bottom; - width: fit-content; - margin: 0.5rem auto 0; - padding: 0 0.5rem; - text-align: center; + margin: 0.5rem 0 0; } } } diff --git a/public/images/feather-instagram-custom.svg b/public/images/feather-instagram-custom.svg new file mode 100644 index 0000000..e60f165 --- /dev/null +++ b/public/images/feather-instagram-custom.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/images/feather-mail-custom.svg b/public/images/feather-mail-custom.svg new file mode 100644 index 0000000..d3564d1 --- /dev/null +++ b/public/images/feather-mail-custom.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/images/remix-instagram-fill.svg b/public/images/remix-instagram-fill.svg deleted file mode 100644 index b0662ca..0000000 --- a/public/images/remix-instagram-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/remix-mail-fill.svg b/public/images/remix-mail-fill.svg deleted file mode 100644 index 8960d11..0000000 --- a/public/images/remix-mail-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/signature-horizontal.svg b/public/images/signature-landscape.svg similarity index 100% rename from public/images/signature-horizontal.svg rename to public/images/signature-landscape.svg diff --git a/public/images/signature-vertical.svg b/public/images/signature-portrait.svg similarity index 100% rename from public/images/signature-vertical.svg rename to public/images/signature-portrait.svg diff --git a/site/templates/base.twig b/site/templates/base.twig index 08b895b..7427c9b 100644 --- a/site/templates/base.twig +++ b/site/templates/base.twig @@ -43,17 +43,17 @@ {% block footer %} {% endblock %} From 18c60b22cd717be3e7b1b272cc4d6670ce58116c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20Nicou=C3=A9?= Date: Thu, 29 May 2025 18:56:44 +0200 Subject: [PATCH 2/2] Build app --- ...rizontal.33de8885.svg => signature-landscape.33de8885.svg} | 0 ...-vertical.195b0490.svg => signature-portrait.195b0490.svg} | 0 public/build/main.css | 2 +- public/build/manifest.json | 4 ++-- 4 files changed, 3 insertions(+), 3 deletions(-) rename public/build/images/{signature-horizontal.33de8885.svg => signature-landscape.33de8885.svg} (100%) rename public/build/images/{signature-vertical.195b0490.svg => signature-portrait.195b0490.svg} (100%) diff --git a/public/build/images/signature-horizontal.33de8885.svg b/public/build/images/signature-landscape.33de8885.svg similarity index 100% rename from public/build/images/signature-horizontal.33de8885.svg rename to public/build/images/signature-landscape.33de8885.svg diff --git a/public/build/images/signature-vertical.195b0490.svg b/public/build/images/signature-portrait.195b0490.svg similarity index 100% rename from public/build/images/signature-vertical.195b0490.svg rename to public/build/images/signature-portrait.195b0490.svg diff --git a/public/build/main.css b/public/build/main.css index 10ca751..f5ed052 100644 --- a/public/build/main.css +++ b/public/build/main.css @@ -1 +1 @@ -@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}blockquote,body,dd,dl,dt,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,html,iframe,legend,li,ol,p,pre,textarea,ul{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}ul{list-style:none}button,input,select{margin:0}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}body{background-color:#fff;color:#000;font-family:Helvetica,Arial,sans-serif;font-size:.9rem;line-height:1.15}strong{font-weight:700}em{font-style:italic}a{color:#000;text-decoration:underline;text-underline-position:under}a:focus-visible{outline:1px dashed #000;outline-offset:2px}body{align-items:center;display:flex;flex-direction:column}body #app{display:grid;grid-template-columns:auto 1fr auto;justify-content:center;justify-items:center;position:relative;width:min(100%,120rem)}body #app header{grid-column:1;height:100vh;height:100dvh;padding:1rem;position:sticky;top:0}body #app header .header__logo{aspect-ratio:.5;background-image:url(/build/images/signature-vertical.195b0490.svg);background-position:50%;background-size:contain;position:relative;width:clamp(2rem,1.667rem + .694vw,2.5rem)}@media screen and (min-width:62rem){body #app header .header__logo{aspect-ratio:2;background-image:url(/build/images/signature-horizontal.33de8885.svg);width:calc(clamp(2rem,1.667rem + .694vw,2.5rem)*2 + clamp(.25rem,.083rem + .347vw,.5rem))}}body #app main{grid-column:2;padding:calc(2rem + clamp(2rem,1.667rem + .694vw,2.5rem)) 0;width:min(100%,100rem)}body #app footer{display:flex;flex-direction:column;gap:clamp(.25rem,.083rem + .347vw,.5rem);grid-column:3;height:100vh;height:100dvh;justify-content:flex-end;padding:1rem;position:sticky;top:0}@media screen and (min-width:62rem){body #app footer{align-items:flex-end;flex-direction:row}}body #app footer .footer__link{align-items:center;aspect-ratio:1;display:flex;justify-content:center;width:clamp(2rem,1.667rem + .694vw,2.5rem)}body #app footer .footer__link svg{height:100%;width:100%}.home .home__gallery{align-items:center;display:flex;flex-direction:column;gap:2rem}.home .home__gallery .home__gallery-item{display:table;max-width:min(100%,80rem)}.home .home__gallery .home__gallery-item .home__carousel:where(.splide){cursor:pointer}.home .home__gallery .home__gallery-item .home__carousel:where(.splide) .splide__track .splide__list{position:relative}.home .home__gallery .home__gallery-item .home__carousel:where(.splide) .splide__track .splide__list .splide__slide{transform:none!important}.home .home__gallery .home__gallery-item .home__carousel:where(.splide) .splide__track .splide__list .splide__slide:not(.is-active){inset:0;position:absolute}.home .home__gallery .home__gallery-item .home__carousel:where(.splide) .splide__track .splide__list .splide__slide .splide__image{max-height:80vh}.home .home__gallery .home__gallery-item .home__main-image{max-height:80vh}.home .home__gallery .home__gallery-item .home__image-caption{caption-side:bottom;display:table-caption;margin:.5rem auto 0;padding:0 .5rem;text-align:center;width:-moz-fit-content;width:fit-content} \ No newline at end of file +@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}blockquote,body,dd,dl,dt,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,html,iframe,legend,li,ol,p,pre,textarea,ul{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}ul{list-style:none}button,input,select{margin:0}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}body{background-color:#fff;color:#000;font-family:Helvetica,Arial,sans-serif;font-size:.9rem;line-height:1.15}strong{font-weight:700}em{font-style:italic}a{color:#000;text-decoration:underline;text-underline-position:under}a:focus-visible{outline:1px dashed #000;outline-offset:2px}body{align-items:center;display:flex;flex-direction:column}body #app{display:grid;grid-template-columns:1fr auto 1fr;justify-content:center;justify-items:center;position:relative;width:min(100%,120rem)}body #app header{align-items:center;display:flex;flex-direction:column;grid-column:1;height:100vh;height:100dvh;padding:clamp(.75rem,.25rem + 1.042vw,1.5rem) clamp(.75rem,-.75rem + 3.125vw,3rem);position:sticky;top:0;width:100%}body #app header .header__logo{aspect-ratio:.5;background-image:url(/build/images/signature-portrait.195b0490.svg);background-position:50%;background-size:contain;position:relative;width:clamp(2rem,1.333rem + 1.389vw,3rem)}@media(orientation:landscape){body #app header .header__logo{aspect-ratio:2;background-image:url(/build/images/signature-landscape.33de8885.svg);width:calc(clamp(2rem,1.333rem + 1.389vw,3rem)*2)}}body #app main{grid-column:2;padding:calc(clamp(.75rem,.25rem + 1.042vw,1.5rem)*2 + clamp(2rem,1.333rem + 1.389vw,3rem)*2) 0}@media(orientation:landscape){body #app main{padding:calc(clamp(.75rem,.25rem + 1.042vw,1.5rem)*2 + clamp(2rem,1.333rem + 1.389vw,3rem)*2/2) 0}}body #app footer{align-items:center;display:flex;flex-direction:column;gap:clamp(.25rem,.083rem + .347vw,.5rem);grid-column:3;height:100vh;height:100dvh;justify-content:flex-end;padding:clamp(.75rem,.25rem + 1.042vw,1.5rem) clamp(.75rem,-.75rem + 3.125vw,3rem);position:sticky;top:0;width:100%}@media(orientation:landscape){body #app footer{align-items:flex-end;flex-direction:row;justify-content:center}}body #app footer .footer__link{align-items:center;aspect-ratio:1;display:flex;justify-content:center;width:clamp(2rem,1.667rem + .694vw,2.5rem)}body #app footer .footer__link svg{height:100%;width:100%}.home .home__gallery{align-items:center;display:flex;flex-direction:column;gap:2rem;width:min(100%,80rem)}.home .home__gallery .home__gallery-item{display:table}.home .home__gallery .home__gallery-item .home__carousel:where(.splide){cursor:pointer}.home .home__gallery .home__gallery-item .home__carousel:where(.splide) .splide__track .splide__list{position:relative}.home .home__gallery .home__gallery-item .home__carousel:where(.splide) .splide__track .splide__list .splide__slide{transform:none!important}.home .home__gallery .home__gallery-item .home__carousel:where(.splide) .splide__track .splide__list .splide__slide:not(.is-active){inset:0;position:absolute}.home .home__gallery .home__gallery-item .home__carousel:where(.splide) .splide__track .splide__list .splide__slide .splide__image{max-height:80vh}.home .home__gallery .home__gallery-item .home__main-image{max-height:80vh}.home .home__gallery .home__gallery-item .home__image-caption{caption-side:bottom;display:table-caption;margin:.5rem 0 0} \ No newline at end of file diff --git a/public/build/manifest.json b/public/build/manifest.json index 9c8dde4..7d4740a 100644 --- a/public/build/manifest.json +++ b/public/build/manifest.json @@ -2,6 +2,6 @@ "build/app.js": "/build/app.js", "build/main.css": "/build/main.css", "build/panel.css": "/build/panel.css", - "build/images/signature-vertical.svg": "/build/images/signature-vertical.195b0490.svg", - "build/images/signature-horizontal.svg": "/build/images/signature-horizontal.33de8885.svg" + "build/images/signature-portrait.svg": "/build/images/signature-portrait.195b0490.svg", + "build/images/signature-landscape.svg": "/build/images/signature-landscape.33de8885.svg" } \ No newline at end of file