CSS > mobile (round 3)
All checks were successful
Deploy / Deploy to Production (push) Successful in 3s

This commit is contained in:
Camilledenoray 2026-06-03 15:50:27 +02:00
parent 7f36178a80
commit 52bed3e2c4
9 changed files with 379 additions and 70 deletions

View file

@ -1,3 +0,0 @@
button {
background-color: transparent;
}

View file

@ -37,6 +37,7 @@
--font-size-XL: 11vw; --font-size-XL: 11vw;
--line-height-S: var(--font-size-S); --line-height-S: var(--font-size-S);
--text-color: black; --text-color: black;
--bg-color: white;
--body-margin: 0.6rem; --body-margin: 0.6rem;
--nav-margin: 1rem; --nav-margin: 1rem;
--apparition-duration: 0.3s; --apparition-duration: 0.3s;
@ -46,6 +47,7 @@
--half-screen: 50vw; --half-screen: 50vw;
--index-width: 40rem; --index-width: 40rem;
--close-cursor: url(/assets/images/close-cursor.png), crosshair; --close-cursor: url(/assets/images/close-cursor.png), crosshair;
--main-title-top: -0.7vw;
} }
body { body {
@ -74,10 +76,9 @@ h1 {
} }
p { p {
/*! padding: var(--margin-S); */
box-sizing: border-box; box-sizing: border-box;
margin: 0; margin: 0;
width: 50rem; width: fit-content;
max-width: 100%; max-width: 100%;
} }
@ -105,12 +106,14 @@ ul {
nav { nav {
&.filter-menu { &.filter-menu {
display: flex; display: flex;
flex-wrap: wrap;
opacity: 1; opacity: 1;
position: relative; position: relative;
font-size: var(--font-size-L); font-size: var(--font-size-L);
pointer-events: all; pointer-events: all;
gap: calc(2 * var(--body-margin)); column-gap: calc(2 * var(--body-margin));
margin: calc(4 * var(--line-height-S)) 0 var(--line-height-S) 0; margin: calc(4 * var(--line-height-S)) 0 var(--line-height-S) 0;
width: calc(var(--index-width) - var(--body-margin));
a { a {
text-decoration: none; text-decoration: none;
@ -183,7 +186,6 @@ button.next {
.toggle { .toggle {
display: none; display: none;
/*! margin-bottom: var(--line-height-S); */
} }
.fix:hover + .toggle { .fix:hover + .toggle {
@ -218,13 +220,16 @@ button.next {
opacity: 1; opacity: 1;
} }
.projects-index:has(li:hover) li:not(:hover) {
opacity: var(--low-opacity);
}
.unselected:hover .toggle { .unselected:hover .toggle {
display: none; display: none;
} }
.unselected:hover .slide-number { .unselected:hover .slide-number {
display: none; display: none;
color: red;
} }
.selected { .selected {
@ -266,6 +271,11 @@ button.next {
gap: var(--body-margin); gap: var(--body-margin);
pointer-events: all; pointer-events: all;
padding-bottom: var(--line-height-S); padding-bottom: var(--line-height-S);
cursor: inherit;
}
.project-toggler span {
cursor: pointer;
} }
.project-description { .project-description {
@ -311,4 +321,17 @@ button.next {
[data-template="infos"] main { [data-template="infos"] main {
position: absolute; position: absolute;
top: calc(var(--line-height-S) + 0.35rem); top: calc(var(--line-height-S) + 0.35rem);
display: flex;
flex-wrap: wrap;
bottom: auto;
padding-bottom: var(--font-size-XL);
}
[data-template="infos"] .main-infos {
max-width: 100%;
width: 660px;
}
[data-template="infos"] .secondary-infos {
max-width: 100%;
} }

View file

@ -1,10 +1,12 @@
@media screen and (max-width: 1000px) { @media screen and (max-width: 1000px) {
* { :root {
--slider-height: 50vh; --slider-height: 50vh;
--font-size-XL: 12.5vw;
--font-size-L: 1.5rem;
--font-size-S: 0.75rem;
} }
body { body {
background-color: red;
} }
.project-slideshow { .project-slideshow {
@ -26,7 +28,7 @@
line-break: strict; line-break: strict;
left: -0.65vw; left: -0.65vw;
position: relative; position: relative;
top: -0.7vw; top: var(--main-title-top);
margin-top: var(--body-margin); margin-top: var(--body-margin);
line-height: 0.75; line-height: 0.75;
} }
@ -34,11 +36,12 @@
.project-index :has(.selected) { .project-index :has(.selected) {
} }
.fix { .project-toggler.grid {
display: block; grid-template-columns: 2fr 2fr 1fr;
width: 100%;
} }
.project-toggler.grid { .fix {
display: block; display: block;
} }
@ -48,31 +51,93 @@
bottom: 0; bottom: 0;
overflow: auto; overflow: auto;
width: calc(100% - var(--body-margin)); width: calc(100% - var(--body-margin));
padding-top: var(--font-size-XL);
} }
main:has(ul li.selected) { main:has(ul li.selected) {
top: var(--slider-height); top: var(--slider-height);
padding-top: 0;
} }
nav.filter-menu { nav.filter-menu {
position: absolute; position: sticky;
top: 0; top: 0;
margin-top: calc(var(--line-height-S) * 2); padding-top: var(--line-height-S);
margin: 0;
width: 100%;
}
nav.filter-menu:has(+ ul li.selected) {
} }
ul.projects-index { ul.projects-index {
top: calc(var(--line-height-S) * 5); padding-top: var(--line-height-S);
position: absolute; position: absolute;
width: calc(100vw - (var(--body-margin) * 3));
overflow: auto;
padding-bottom: var(--font-size-XL);
}
.selected .fix:hover + .toggle {
display: block;
} }
.fix:hover + .toggle { .fix:hover + .toggle {
display: none; display: none;
} }
.selected .fix:hover .slide-number {
display: block;
}
.slide-number { .slide-number {
position: fixed; position: fixed;
top: var(--slider-height); top: var(--slider-height);
margin-top: calc(-2 * (var(--line-height-S))); margin-top: calc(-2 * (var(--line-height-S)));
right: var(--body-margin); right: var(--body-margin);
} }
.main-menu {
display: none;
}
.mobile-menu {
display: flex;
}
.close-mobile-menu {
position: fixed;
bottom: 0;
width: 100%;
left: 0;
font-size: var(--font-size-XL);
display: flex;
justify-content: center;
}
header:hover ~ main {
opacity: 1;
transition-duration: 0;
}
.main-title:hover {
opacity: 1;
transition-duration: 0;
}
.main-title:has(+ nav:hover) {
opacity: 1;
transition-duration: 0;
}
#home-slideshow img:not(.slide.active img) {
display: none;
}
}
@media (max-width: 687px) {
[data-template="infos"] div {
padding-right: var(--body-margin);
width: calc(100% - var(--body-margin));
}
} }

View file

@ -37,7 +37,7 @@ nav li a {
line-break: strict; line-break: strict;
left: -0.65vw; left: -0.65vw;
position: relative; position: relative;
top: -0.7vw; top: var(--main-title-top);
margin-top: var(--body-margin); margin-top: var(--body-margin);
line-height: 0.75; line-height: 0.75;
} }
@ -48,11 +48,14 @@ nav li a {
/* background-color: yellow; */ /* background-color: yellow; */
} }
.title-nav-mobile {
display: none;
}
.main-title { .main-title {
z-index: 2; z-index: 2;
font-size: var(--font-size-S); font-size: var(--font-size-S);
top: var(--body-margin); top: var(--body-margin);
transition-duration: var(--disparition-duration);
cursor: pointer; cursor: pointer;
width: fit-content; width: fit-content;
position: fixed; position: fixed;
@ -83,13 +86,18 @@ header:hover ~ main {
transition-duration: var(--apparition-duration); transition-duration: var(--apparition-duration);
} }
main {
transition-duration: var(--disparition-duration);
transition-property: opacity;
}
.main-title:hover { .main-title:hover {
opacity: var(--low-opacity); opacity: 0;
transition-duration: var(--apparition-duration); transition-duration: var(--apparition-duration);
} }
.main-title:has(+ nav:hover) { .main-title:has(+ nav:hover) {
opacity: var(--low-opacity); opacity: 0;
transition-duration: var(--apparition-duration); transition-duration: var(--apparition-duration);
} }
@ -119,7 +127,7 @@ nav.main-menu:hover {
line-break: strict; line-break: strict;
left: -0.65vw; left: -0.65vw;
position: relative; position: relative;
top: -0.7vw; top: var(--main-title-top);
margin-top: var(--body-margin); margin-top: var(--body-margin);
line-height: 0.75; line-height: 0.75;
} }
@ -128,6 +136,61 @@ nav.main-menu:hover {
color: transparent; color: transparent;
} }
[data-template="home"] .main-title span { [data-template="home"] header {
color: var(--text-color); mix-blend-mode: difference;
}
[data-template="home"] .main-title span {
color: white;
}
@media (min-width: 1500px) {
:root {
--main-title-top: -0.4vw;
}
}
/* MOBILE-MENU */
.mobile-menu {
display: none;
position: fixed;
bottom: var(--body-margin);
width: 100%;
left: 0;
box-sizing: border-box;
justify-content: center;
}
.mobile-menu button {
pointer-events: all;
}
.mobile-menu button:has(+ dialog:open) {
display: none;
}
dialog#mobile-menu-content:open {
padding: 0;
border: none;
display: flex;
justify-content: center;
align-items: center;
overflow: visible;
}
dialog#mobile-menu-content::backdrop {
background-color: var(--bg-color);
opacity: calc(1 - var(--low-opacity));
}
#mobile-menu-content ul {
margin-top: 0;
display: flex;
text-align: center;
}
#mobile-menu-content .title-nav {
position: fixed;
padding: var(--body-margin);
} }

View file

@ -5,4 +5,5 @@ button {
text-align: inherit; text-align: inherit;
font: inherit; font: inherit;
cursor: pointer; cursor: pointer;
background-color: transparent;
} }

View file

@ -6,6 +6,7 @@ button {
text-align: inherit; text-align: inherit;
font: inherit; font: inherit;
cursor: pointer; cursor: pointer;
background-color: transparent;
} }
@font-face { @font-face {
@ -31,6 +32,7 @@ button {
--font-size-XL: 11vw; --font-size-XL: 11vw;
--line-height-S: var(--font-size-S); --line-height-S: var(--font-size-S);
--text-color: black; --text-color: black;
--bg-color: white;
--body-margin: 0.6rem; --body-margin: 0.6rem;
--nav-margin: 1rem; --nav-margin: 1rem;
--apparition-duration: 0.3s; --apparition-duration: 0.3s;
@ -40,6 +42,7 @@ button {
--half-screen: 50vw; --half-screen: 50vw;
--index-width: 40rem; --index-width: 40rem;
--close-cursor: url(/assets/images/close-cursor.png), crosshair; --close-cursor: url(/assets/images/close-cursor.png), crosshair;
--main-title-top: -0.7vw;
} }
body { body {
@ -68,10 +71,10 @@ h1 {
} }
p { p {
/*! padding: var(--margin-S); */
box-sizing: border-box; box-sizing: border-box;
margin: 0; margin: 0;
width: 50rem; width: -moz-fit-content;
width: fit-content;
max-width: 100%; max-width: 100%;
} }
@ -98,12 +101,15 @@ ul {
nav.filter-menu { nav.filter-menu {
display: flex; display: flex;
flex-wrap: wrap;
opacity: 1; opacity: 1;
position: relative; position: relative;
font-size: var(--font-size-L); font-size: var(--font-size-L);
pointer-events: all; pointer-events: all;
gap: calc(2 * var(--body-margin)); -moz-column-gap: calc(2 * var(--body-margin));
column-gap: calc(2 * var(--body-margin));
margin: calc(4 * var(--line-height-S)) 0 var(--line-height-S) 0; margin: calc(4 * var(--line-height-S)) 0 var(--line-height-S) 0;
width: calc(var(--index-width) - var(--body-margin));
} }
nav.filter-menu a { nav.filter-menu a {
text-decoration: none; text-decoration: none;
@ -173,7 +179,6 @@ button.next {
.toggle { .toggle {
display: none; display: none;
/*! margin-bottom: var(--line-height-S); */
} }
.fix:hover + .toggle { .fix:hover + .toggle {
@ -208,13 +213,16 @@ button.next {
opacity: 1; opacity: 1;
} }
.projects-index:has(li:hover) li:not(:hover) {
opacity: var(--low-opacity);
}
.unselected:hover .toggle { .unselected:hover .toggle {
display: none; display: none;
} }
.unselected:hover .slide-number { .unselected:hover .slide-number {
display: none; display: none;
color: red;
} }
.selected { .selected {
@ -250,6 +258,11 @@ button.next {
gap: var(--body-margin); gap: var(--body-margin);
pointer-events: all; pointer-events: all;
padding-bottom: var(--line-height-S); padding-bottom: var(--line-height-S);
cursor: inherit;
}
.project-toggler span {
cursor: pointer;
} }
.project-description { .project-description {
@ -294,6 +307,19 @@ button.next {
[data-template=infos] main { [data-template=infos] main {
position: absolute; position: absolute;
top: calc(var(--line-height-S) + 0.35rem); top: calc(var(--line-height-S) + 0.35rem);
display: flex;
flex-wrap: wrap;
bottom: auto;
padding-bottom: var(--font-size-XL);
}
[data-template=infos] .main-infos {
max-width: 100%;
width: 660px;
}
[data-template=infos] .secondary-infos {
max-width: 100%;
} }
nav.main-menu { nav.main-menu {
@ -335,7 +361,7 @@ nav li a {
line-break: strict; line-break: strict;
left: -0.65vw; left: -0.65vw;
position: relative; position: relative;
top: -0.7vw; top: var(--main-title-top);
margin-top: var(--body-margin); margin-top: var(--body-margin);
line-height: 0.75; line-height: 0.75;
} }
@ -346,11 +372,14 @@ nav li a {
/* background-color: yellow; */ /* background-color: yellow; */
} }
.title-nav-mobile {
display: none;
}
.main-title { .main-title {
z-index: 2; z-index: 2;
font-size: var(--font-size-S); font-size: var(--font-size-S);
top: var(--body-margin); top: var(--body-margin);
transition-duration: var(--disparition-duration);
cursor: pointer; cursor: pointer;
width: -moz-fit-content; width: -moz-fit-content;
width: fit-content; width: fit-content;
@ -382,13 +411,18 @@ header:hover ~ main {
transition-duration: var(--apparition-duration); transition-duration: var(--apparition-duration);
} }
main {
transition-duration: var(--disparition-duration);
transition-property: opacity;
}
.main-title:hover { .main-title:hover {
opacity: var(--low-opacity); opacity: 0;
transition-duration: var(--apparition-duration); transition-duration: var(--apparition-duration);
} }
.main-title:has(+ nav:hover) { .main-title:has(+ nav:hover) {
opacity: var(--low-opacity); opacity: 0;
transition-duration: var(--apparition-duration); transition-duration: var(--apparition-duration);
} }
@ -417,7 +451,7 @@ nav.main-menu:hover {
line-break: strict; line-break: strict;
left: -0.65vw; left: -0.65vw;
position: relative; position: relative;
top: -0.7vw; top: var(--main-title-top);
margin-top: var(--body-margin); margin-top: var(--body-margin);
line-height: 0.75; line-height: 0.75;
} }
@ -426,8 +460,61 @@ nav.main-menu:hover {
color: transparent; color: transparent;
} }
[data-template=home] header {
mix-blend-mode: difference;
}
[data-template=home] .main-title span { [data-template=home] .main-title span {
color: var(--text-color); color: white;
}
@media (min-width: 1500px) {
:root {
--main-title-top: -0.4vw;
}
}
/* MOBILE-MENU */
.mobile-menu {
display: none;
position: fixed;
bottom: var(--body-margin);
width: 100%;
left: 0;
box-sizing: border-box;
justify-content: center;
}
.mobile-menu button {
pointer-events: all;
}
.mobile-menu button:has(+ dialog:open) {
display: none;
}
dialog#mobile-menu-content:open {
padding: 0;
border: none;
display: flex;
justify-content: center;
align-items: center;
overflow: visible;
}
dialog#mobile-menu-content::backdrop {
background-color: var(--bg-color);
opacity: calc(1 - var(--low-opacity));
}
#mobile-menu-content ul {
margin-top: 0;
display: flex;
text-align: center;
}
#mobile-menu-content .title-nav {
position: fixed;
padding: var(--body-margin);
} }
#home-slideshow { #home-slideshow {
@ -483,11 +570,11 @@ nav.main-menu:hover {
} }
@media screen and (max-width: 1000px) { @media screen and (max-width: 1000px) {
* { :root {
--slider-height: 50vh; --slider-height: 50vh;
} --font-size-XL: 12.5vw;
body { --font-size-L: 1.5rem;
background-color: red; --font-size-S: 0.75rem;
} }
.project-slideshow { .project-slideshow {
position: fixed; position: fixed;
@ -508,14 +595,15 @@ nav.main-menu:hover {
line-break: strict; line-break: strict;
left: -0.65vw; left: -0.65vw;
position: relative; position: relative;
top: -0.7vw; top: var(--main-title-top);
margin-top: var(--body-margin); margin-top: var(--body-margin);
line-height: 0.75; line-height: 0.75;
} }
.fix {
display: block;
}
.project-toggler.grid { .project-toggler.grid {
grid-template-columns: 2fr 2fr 1fr;
width: 100%;
}
.fix {
display: block; display: block;
} }
main { main {
@ -524,26 +612,75 @@ nav.main-menu:hover {
bottom: 0; bottom: 0;
overflow: auto; overflow: auto;
width: calc(100% - var(--body-margin)); width: calc(100% - var(--body-margin));
padding-top: var(--font-size-XL);
} }
main:has(ul li.selected) { main:has(ul li.selected) {
top: var(--slider-height); top: var(--slider-height);
padding-top: 0;
} }
nav.filter-menu { nav.filter-menu {
position: absolute; position: sticky;
top: 0; top: 0;
margin-top: calc(var(--line-height-S) * 2); padding-top: var(--line-height-S);
margin: 0;
width: 100%;
} }
ul.projects-index { ul.projects-index {
top: calc(var(--line-height-S) * 5); padding-top: var(--line-height-S);
position: absolute; position: absolute;
width: calc(100vw - var(--body-margin) * 3);
overflow: auto;
padding-bottom: var(--font-size-XL);
}
.selected .fix:hover + .toggle {
display: block;
} }
.fix:hover + .toggle { .fix:hover + .toggle {
display: none; display: none;
} }
.selected .fix:hover .slide-number {
display: block;
}
.slide-number { .slide-number {
position: fixed; position: fixed;
top: var(--slider-height); top: var(--slider-height);
margin-top: calc(-2 * (var(--line-height-S))); margin-top: calc(-2 * (var(--line-height-S)));
right: var(--body-margin); right: var(--body-margin);
} }
.main-menu {
display: none;
}
.mobile-menu {
display: flex;
}
.close-mobile-menu {
position: fixed;
bottom: 0;
width: 100%;
left: 0;
font-size: var(--font-size-XL);
display: flex;
justify-content: center;
}
header:hover ~ main {
opacity: 1;
transition-duration: 0;
}
.main-title:hover {
opacity: 1;
transition-duration: 0;
}
.main-title:has(+ nav:hover) {
opacity: 1;
transition-duration: 0;
}
#home-slideshow img:not(.slide.active img) {
display: none;
}
}
@media (max-width: 687px) {
[data-template=infos] div {
padding-right: var(--body-margin);
width: calc(100% - var(--body-margin));
}
}/*# sourceMappingURL=style.css.map */ }/*# sourceMappingURL=style.css.map */

File diff suppressed because one or more lines are too long

View file

@ -7,11 +7,6 @@
<span>Hic&nbsp;et&nbsp;Nunc&nbsp;Studio</span> <span>Hic&nbsp;et&nbsp;Nunc&nbsp;Studio</span>
</a> </a>
</h1> </h1>
<h1 class="title-nav-mobile">
<a href="">
<span>menu</span>
</a>
</h1>
<ul> <ul>
<li> <li>
<a class="nav-item-home" href="<?= page('home')->url() ?>"><?= page('home')->title() ?></a>,&nbsp; <a class="nav-item-home" href="<?= page('home')->url() ?>"><?= page('home')->title() ?></a>,&nbsp;
@ -23,4 +18,36 @@
<a class="nav-item-about" href="<?= page('infos')->url() ?>"><?= page('infos')->title() ?></a> <a class="nav-item-about" href="<?= page('infos')->url() ?>"><?= page('infos')->title() ?></a>
</li> </li>
</ul> </ul>
</nav>
<nav class="mobile-menu">
<button command="show-modal" commandfor="mobile-menu-content">
<h1 class="title-nav">
<span>Menu</span>
</h1>
</button>
<dialog id="mobile-menu-content" closedby="any">
<h1 class="title-nav">
<a href="<?= page('home')->url() ?>">
<span>Hic&nbsp;et&nbsp;Nunc&nbsp;Studio</span>
</a>
</h1>
<ul>
<li>
<a class="nav-item-home" href="<?= page('home')->url() ?>"><?= page('home')->title() ?></a>,&nbsp;
</li>
<li>
<a class="nav-item-projects" href="<?= page('index')->url() ?>"><?= page('index')->title() ?></a>,&nbsp;
</li>
<li>
<a class="nav-item-about" href="<?= page('infos')->url() ?>"><?= page('infos')->title() ?></a>
</li>
</ul>
<button commandfor="mobile-menu-content" command="close" class="close-mobile-menu">
Fermer
</button>
</dialog>
</nav> </nav>

View file

@ -1,24 +1,20 @@
<?php snippet('header') ?> <?php snippet('header') ?>
<div class="main-infos"> <section class="main-infos">
<p> <p>
<?= $page->presentation() ?> <?= $page->presentation() ?>
<br>
<?= $page->contact() ?>
</p> </p>
</div> </section>
<section class="secondary-infos">
<div class="skills"> <div class="skills">
<p> <p>
<?= $page->skills() ?> <?= $page->contact() ?><br>
</p> <?= $page->skills() ?>
</div> </p>
</div>
<div class="clients"> <div class="clients">
<p class="clients"> <?= $page->clients() ?>
<?= $page->clients() ?> </div>
</p> </section>
</div>
<?php snippet('footer') ?> <?php snippet('footer') ?>