panel/btn mobile & scripts
All checks were successful
Deploy / Deploy to Production (push) Successful in 11s

This commit is contained in:
Julie Blanc 2026-01-25 19:40:55 +01:00
parent bd97c1c33e
commit f28680f77e
26 changed files with 506 additions and 297 deletions

View file

@ -73,3 +73,13 @@ body, #site-header, #site-footer{
display: none;
}
}
body.menu-open,
body.is-hidden{
overflow-y: hidden;
main, footer, #nav-highlight, .btn--back-to-top{
transition: opacity .3s ease-in;
opacity: 0.1;
}
}

View file

@ -0,0 +1,48 @@
.btn--group__mobile{
z-index: calc(var(--z-header) - 10);
opacity: 0;
transition: opacity .3s ease-in;
&.is-visible{
opacity: 1;
}
position: fixed;
bottom: 0;
left: 0;
width: 100vw;
height: calc(var(--h-block) * 3);
padding: calc(var(--spacing) * 0.75) var(--padding-body);
// padding-top: var(--spacing);
background-color: var(--color-bg);
background: linear-gradient(0deg,
var(--color-bg) 0%,
var(--color-bg) 75%,
transparent 100%);
// background-color: yellow;
display: flex;
align-items: flex-end;
gap: var(--padding-inner);
button, .dropdown{
flex-grow: 1;
width: 100%;
}
}
@media #{$small-up}{
.btn--group__mobile{
display: none;
opacity: 0!important;
}
}

View file

@ -160,12 +160,26 @@ button:disabled{
}
.btn--toc{
svg{
width: 15px;
height: 15px;
top: 0px;
}
}
.btn--back-to-top{
display: flex;
border-color: var(--color-txt);
width: fit-content;
margin-inline: auto;
margin: var(--spacing) auto;
@media #{$small}{
margin-bottom: calc(var(--spacing)*2);
}
.icon{
width: 12px;
height: 12px;

View file

@ -74,10 +74,9 @@
}
// PANEL
@media #{$small}{
&--position-panel .dropdown__content {
&--position-mobile .dropdown__content {
top: auto;
bottom: calc(var(--h-block) + var(--padding-inner));
bottom: calc(var(--h-block) + var(--padding-inner)*2);
left: auto;
right: 0;
margin-top: 0;
@ -91,19 +90,20 @@
position: absolute;
top: auto;
bottom: -13px;
left: 50%;
left: auto;
right: 10%;
}
}
&--position-panel.is-open {
&--position-mobile.is-open {
.dropdown__content {
transform: translateX(0);
}
}
}
@media #{$small-up}{

View file

@ -1,6 +1,7 @@
.modal--share{
width: 240px;
padding-bottom: var(--padding-inner);
background-color: var(--color-bg);
.socials{
display: block;
list-style: none;

View file

@ -6,10 +6,13 @@
top: var(--header-h);
right: calc(var(--menu-w)*-1);
transition: right .3s ease-in;
@media #{$small}{
transition: right .4s ease-in;
}
background-color: var(--color-bg);
border-left: var(--border-light);
padding: var(--padding-body);
z-index: 1000;
z-index: calc(var(--z-header) - 1);
@media #{$x-small}{
width: 100vw;
@ -50,11 +53,11 @@
}
body.menu-open{
overflow: hidden;
main, footer, #nav-highlight{
transition: opacity .3s ease-in;
opacity: 0.1;
}
// overflow: hidden;
// main, footer, #nav-highlight{
// transition: opacity .3s ease-in;
// opacity: 0.1;
// }
#site-menu{
right: 0;

View file

@ -137,6 +137,19 @@ body, #site-header, #site-footer {
transition: background-color 0.3s ease, color 0.3s ease;
}
body.menu-open,
body.is-hidden {
overflow-y: hidden;
}
body.menu-open main, body.menu-open footer, body.menu-open #nav-highlight, body.menu-open .btn--back-to-top,
body.is-hidden main,
body.is-hidden footer,
body.is-hidden #nav-highlight,
body.is-hidden .btn--back-to-top {
transition: opacity 0.3s ease-in;
opacity: 0.1;
}
#site-header {
z-index: var(--z-header);
--gap: 3ch;
@ -390,12 +403,23 @@ button:disabled {
color: var(--color-txt);
}
.btn--toc svg {
width: 15px;
height: 15px;
top: 0px;
}
.btn--back-to-top {
display: flex;
border-color: var(--color-txt);
width: -moz-fit-content;
width: fit-content;
margin-inline: auto;
margin: var(--spacing) auto;
}
@media screen and (max-width: 768px) {
.btn--back-to-top {
margin-bottom: calc(var(--spacing) * 2);
}
}
.btn--back-to-top .icon {
width: 12px;
@ -511,6 +535,36 @@ button.sort[data-sort-type=up] .arrow {
transform: rotate(-90deg);
}
.btn--group__mobile {
z-index: calc(var(--z-header) - 10);
opacity: 0;
transition: opacity 0.3s ease-in;
position: fixed;
bottom: 0;
left: 0;
width: 100vw;
height: calc(var(--h-block) * 3);
padding: calc(var(--spacing) * 0.75) var(--padding-body);
background-color: var(--color-bg);
background: linear-gradient(0deg, var(--color-bg) 0%, var(--color-bg) 75%, transparent 100%);
display: flex;
align-items: flex-end;
gap: var(--padding-inner);
}
.btn--group__mobile.is-visible {
opacity: 1;
}
.btn--group__mobile button, .btn--group__mobile .dropdown {
flex-grow: 1;
width: 100%;
}
@media screen and (min-width: 768px) {
.btn--group__mobile {
display: none;
opacity: 0 !important;
}
}
#hero {
width: 100%;
position: relative;
@ -820,6 +874,7 @@ button.sort[data-sort-type=up] .arrow {
.modal--share {
width: 240px;
padding-bottom: var(--padding-inner);
background-color: var(--color-bg);
}
.modal--share .socials {
display: block;
@ -999,28 +1054,27 @@ button.sort[data-sort-type=up] .arrow {
visibility: visible;
transform: translateY(0);
}
@media screen and (max-width: 768px) {
.dropdown--position-panel .dropdown__content {
top: auto;
bottom: calc(var(--h-block) + var(--padding-inner));
left: auto;
right: 0;
margin-top: 0;
margin-left: 4px;
}
.dropdown--position-panel .dropdown__content::before {
font-family: Arial;
content: "◀";
transform: rotate(-90deg);
font-size: 14px;
position: absolute;
top: auto;
bottom: -13px;
left: 50%;
}
.dropdown--position-panel.is-open .dropdown__content {
transform: translateX(0);
}
.dropdown--position-mobile .dropdown__content {
top: auto;
bottom: calc(var(--h-block) + var(--padding-inner) * 2);
left: auto;
right: 0;
margin-top: 0;
margin-left: 4px;
}
.dropdown--position-mobile .dropdown__content::before {
font-family: Arial;
content: "◀";
transform: rotate(-90deg);
font-size: 14px;
position: absolute;
top: auto;
bottom: -13px;
left: auto;
right: 10%;
}
.dropdown--position-mobile.is-open .dropdown__content {
transform: translateX(0);
}
@media screen and (min-width: 768px) {
.dropdown--position-panel .dropdown__content {
@ -1519,10 +1573,15 @@ button.sort[data-sort-type=up] .arrow {
background-color: var(--color-bg);
border-left: var(--border-light);
padding: var(--padding-body);
z-index: 1000;
z-index: calc(var(--z-header) - 1);
display: flex;
flex-direction: column;
}
@media screen and (max-width: 768px) {
#site-menu {
transition: right 0.4s ease-in;
}
}
@media screen and (max-width: 560px) {
#site-menu {
width: 100vw;
@ -1555,13 +1614,6 @@ button.sort[data-sort-type=up] .arrow {
text-transform: uppercase;
}
body.menu-open {
overflow: hidden;
}
body.menu-open main, body.menu-open footer, body.menu-open #nav-highlight {
transition: opacity 0.3s ease-in;
opacity: 0.1;
}
body.menu-open #site-menu {
right: 0;
}
@ -1880,40 +1932,8 @@ body main {
margin: 0 var(--padding-body);
}
[data-template=investigation-summary] main .panel-left {
padding: calc(var(--spacing) * 0.5) 0;
background-color: yellow;
position: fixed;
bottom: 0;
left: 0;
width: 100vw;
height: calc(var(--h-block) * 3);
padding: calc(var(--spacing) * 0.75) var(--padding-body);
padding-top: var(--spacing);
background-color: var(--color-bg);
background: linear-gradient(0deg, var(--color-bg) 0%, var(--color-bg) 64%, transparent 100%);
}
[data-template=investigation-summary] main .panel-left #nav--page {
display: none;
}
[data-template=investigation-summary] main .panel-left .btn--group {
width: 100%;
display: flex;
flex-direction: row;
gap: var(--padding-inner);
position: relative;
}
[data-template=investigation-summary] main .panel-left .btn--group button {
width: 100%;
}
[data-template=investigation-summary] main .panel-left {
opacity: 0;
pointer-events: none;
transition: opacity 0.2s ease-in;
}
[data-template=investigation-summary] main .panel-left.is-visible {
opacity: 1;
pointer-events: auto;
}
}
@media screen and (max-width: 560px) {
[data-template=investigation-summary] main #section__dl .dl__group {
@ -1923,57 +1943,94 @@ body main {
padding: calc(var(--spacing) * 0.25) 0;
}
}
[data-template=report] .report__header {
margin-inline: auto;
margin-top: calc(var(--spacing) * 1);
max-width: var(--max-w-cards);
margin-bottom: calc(var(--spacing) * 2.5);
@media screen and (max-width: 768px) {
[data-template=report] #toggle-panel {
display: none;
}
[data-template=report] #report__aside {
width: 100vw;
position: fixed;
top: 0px;
height: 100vh;
left: -100vw;
z-index: calc(var(--z-header) + 10);
transition: left 0.4s ease-in;
background: var(--color-bg);
}
[data-template=report] #report__aside .panel__header {
margin: 0 var(--padding-body);
border-bottom: var(--border-aside);
height: var(--header-h);
}
[data-template=report] #report__aside .panel__content {
height: calc(100dvh - var(--header-h));
height: calc(100vh - var(--header-h));
padding-bottom: 30vh;
}
[data-template=report] #report__aside .btn--group {
display: none;
}
[data-template=report] .panel-open #report__aside {
left: 0px;
}
}
[data-template=report] .report__content {
display: grid;
grid-template-columns: 1fr 1fr;
grid-gap: var(--padding-body);
@media screen and (min-width: 768px) {
[data-template=report] .report__header {
margin-inline: auto;
margin-top: calc(var(--spacing) * 1);
max-width: var(--max-w-cards);
margin-bottom: calc(var(--spacing) * 2.5);
}
[data-template=report] .report__content {
display: grid;
grid-template-columns: 1fr 1fr;
grid-gap: var(--padding-body);
}
[data-template=report] .report__content .report__txt {
max-width: var(--max-w-content);
}
[data-template=report] .report__content .report__medias {
background-color: yellow;
}
[data-template=report] #toggle-panel {
position: fixed;
top: var(--header-h);
left: var(--padding-body);
z-index: calc(var(--z-header) + 100);
}
[data-template=report] #report__aside {
position: fixed;
top: var(--header-h);
left: var(--padding-body);
width: var(--panel-w);
height: calc(100vh - var(--header-h));
z-index: calc(var(--z-header) + 200);
background-color: var(--color-bg);
box-shadow: 4px 0px 4px 1px var(--color-bg);
}
[data-template=report] #report__aside .panel__header {
border: var(--border-aside);
height: calc(var(--h-block) * 1.5);
}
[data-template=report] #report__aside .panel__content {
height: calc(100% - var(--h-block) * 4.25);
padding-bottom: 80px;
}
[data-template=report] #report__aside {
left: calc(var(--panel-w) * -1);
transition: left ease-in-out 0.5s;
}
[data-template=report] #report {
padding-left: calc(var(--padding-body) * 2);
transition: padding-left ease-in-out 0.5s;
}
[data-template=report] .panel-open #report__aside {
left: var(--padding-body);
}
[data-template=report] .panel-open #report {
padding-left: calc(var(--panel-w) + var(--padding-body) * 1);
}
}
[data-template=report] .report__content .report__txt {
max-width: var(--max-w-content);
}
[data-template=report] .report__content .report__medias {
background-color: yellow;
}
[data-template=report] #toggle-panel {
position: fixed;
top: var(--header-h);
left: var(--padding-body);
z-index: calc(var(--z-header) + 100);
}
[data-template=report] #report__aside {
position: fixed;
top: var(--header-h);
left: var(--padding-body);
width: var(--panel-w);
height: calc(100vh - var(--header-h));
z-index: calc(var(--z-header) + 200);
background-color: var(--color-bg);
box-shadow: 4px 0px 4px 1px var(--color-bg);
}
[data-template=report] #report__aside .panel__content {
height: calc(100% - var(--h-block) * 4);
}
[data-template=report] #report__aside {
left: calc(var(--panel-w) * -1);
transition: left ease-in-out 0.5s;
}
[data-template=report] #report {
padding-left: calc(var(--padding-body) * 2);
transition: padding-left ease-in-out 0.5s;
}
[data-template=report] .panel-open #report__aside {
left: var(--padding-body);
}
[data-template=report] .panel-open #report {
padding-left: calc(var(--panel-w) + var(--padding-body) * 1);
}
.report__header {
display: grid;
-moz-column-gap: var(--padding-inner);
@ -2052,6 +2109,14 @@ body main {
.report__content .section-content {
margin-bottom: calc(var(--spacing) * 3);
}
.report__content .section-content:target {
padding-top: calc(var(--header-h) + var(--spacing) * 2);
}
@media screen and (max-width: 768px) {
.report__content .section-content:target {
padding-top: calc(var(--header-h) + var(--spacing) * 0.5);
}
}
.report__content .section-title {
font-size: var(--fs-medium);
margin-bottom: var(--spacing);
@ -2073,20 +2138,12 @@ body main {
width: calc(var(--h-block) * 1);
padding: 0;
}
#toggle-panel svg {
width: 15px;
height: 15px;
fill: var(--color-txt);
top: 0px;
}
#report__aside {
--border-aside: var(--border-light);
}
#report__aside .panel__header {
display: flex;
border: var(--border-aside);
height: calc(var(--h-block) * 1.25);
display: flex;
align-items: center;
justify-content: flex-start;

File diff suppressed because one or more lines are too long

View file

@ -12,6 +12,7 @@
@import "components/keywords";
@import "components/details-summary";
@import "components/sort";
@import "components/btn-group-mobile";
@import "components/figures";
@import "components/hero";
@ -27,6 +28,7 @@
@import "components/card-impact";
@import "components/card-open-graph";
@import "partials/site-header";
@import "partials/site-menu";
@import "partials/site-footer";

View file

@ -197,52 +197,7 @@
}
.panel-left {
padding: calc(var(--spacing) * 0.5) 0;
background-color: yellow;
position: fixed;
bottom: 0;
left: 0;
width: 100vw;
height: calc(var(--h-block) * 3);
padding: calc(var(--spacing) * 0.75) var(--padding-body);
padding-top: var(--spacing);
background-color: var(--color-bg);
background: linear-gradient(0deg,
var(--color-bg) 0%,
var(--color-bg) 64%,
transparent 100%);
//background-color: red;
#nav--page {
display: none;
}
.btn--group {
width: 100%;
display: flex;
flex-direction: row;
gap: var(--padding-inner);
position: relative;
button{
width: 100%;
}
}
}
// action
.panel-left {
opacity: 0;
pointer-events: none;
transition: opacity 0.2s ease-in;
}
.panel-left.is-visible {
opacity: 1;
pointer-events: auto;
display: none;
}
}
}

View file

@ -3,6 +3,54 @@
// LAOUT -----------------------------------
@media #{$small}{
[data-template="report"] {
#toggle-panel{
display: none;
}
#report__aside{
width: 100vw;
position: fixed;
top: 0px;
height: 100vh;
left: -100vw;
z-index: calc(var(--z-header) + 10);
transition: left .4s ease-in;
background: var(--color-bg);
.panel__header{
margin: 0 var(--padding-body);
border-bottom: var(--border-aside);
height: var(--header-h);
}
.panel__content{
height: calc(100dvh - var(--header-h));
height: calc(100vh - var(--header-h));
padding-bottom: 30vh;
}
.btn--group{
display: none;
}
}
.panel-open #report__aside{
left: 0px;
}
}
}
@media #{$small-up}{
[data-template="report"] {
@ -49,14 +97,19 @@
background-color: var(--color-bg);
box-shadow: 4px 0px 4px 1px var(--color-bg);
.panel__header{
border: var(--border-aside);
height: calc(var(--h-block)*1.5);
}
.panel__content {
height: calc(100% - var(--h-block)*4);
height: calc(100% - var(--h-block)*4.25);
padding-bottom: 80px;
}
}
#report__aside {
left: calc(var(--panel-w)*-1);
@ -85,6 +138,7 @@
}
}
// HEADER-------------------------------------------------------------------------
@ -178,6 +232,10 @@
.section-content {
margin-bottom: calc(var(--spacing)*3);
&:target{
padding-top: calc(var(--header-h) + var(--spacing)*2);
@media #{$small}{ padding-top: calc(var(--header-h) + var(--spacing)*0.5); }
}
}
@ -210,33 +268,14 @@
#toggle-panel {
width: calc(var(--h-block) * 1);
padding: 0;
svg {
width: 15px;
height: 15px;
fill: var(--color-txt);
top: 0px;
}
}
#report__aside {
--border-aside: var(--border-light);
// border-radius: var(--radius-small);
.panel__header {
display: flex;
border: var(--border-aside);
height: calc(var(--h-block)*1.25);
display: flex;
align-items: center;
justify-content: flex-start;