hover card with bg
All checks were successful
Deploy / Deploy to Production (push) Successful in 14s

This commit is contained in:
Julie Blanc 2026-01-28 01:03:42 +01:00
parent 80a606243e
commit a0f0110fa6
14 changed files with 289 additions and 78 deletions

View file

@ -46,7 +46,7 @@
} }
&:hover{ &:hover{
.title{ text-decoration: underline;} background-color: var(--grey-950);
} }
@include btn--go-to(); @include btn--go-to();

View file

@ -1,15 +1,24 @@
.card--impact{ .card--impact{
@include grid-content(); @include grid-content();
// grid-row-gap: 0;
padding: calc(var(--spacing)*0.5) 0; padding: calc(var(--spacing)*0.5) 0;
border-bottom: var(--border-light); border-bottom: var(--border-light);
&:first-of-type{
border-top: var(--border-light);
}
container-type: inline-size; container-type: inline-size;
container-name: impact; container-name: impact;
&:first-of-type{ @include btn--go-to();
border-top: var(--border-light); .btn--go-to{
top: calc(var(--padding-inner)*1);
bottom: auto;
} }
.content{ .content{
grid-column: 2; grid-column: 2;
} }
@ -26,45 +35,81 @@
} }
.content{ &:not([data-impact-type="media"]){
.see-more{ .content{
color: var(--color-txt-light); padding-right: calc(var(--padding-inner)*2.5);
}
}
.investigations{
z-index: 10;
grid-column: 2;
list-style: none;
font-size: var(--fs-small);
a{
text-decoration: none; text-decoration: none;
white-space: nowrap; color: var(--color-txt-light);
&::after{
content: ' +' }
.icon{
position: relative;
top: 2px;
svg{
width: 14px;
height: 14px;
fill: var(--color-txt-light);
} }
} }
li:hover{
a{
color: var(--color-txt);
}
.icon svg{ fill: var(--color-txt); }
}
}
&.has-link:hover{
background-color: var(--grey-950);
} }
.open-graph__details{ .open-graph__details{
grid-column: span 2; grid-column: 2;
@include details-summary(); @include details-summary();
summary{ summary{
color: var(--color-txt-light); color: var(--color-txt-light);
.arrow-details svg{ fill: var(--color-txt-light);} .arrow-details svg{ fill: var(--color-txt-light);}
} }
@media #{$x-small}{
summary{
@include grid-content();
grid-row-gap: 0;
.summary-inner{
grid-column: 2;
}
}
grid-column: 1/3;
}
} }
.open-graph__details{
summary{
@include grid-content();
.summary-inner{
grid-column: 2;
}
}
}
.open-graph__inner{ .open-graph__inner{
margin-top: calc(var(--spacing)*0.5); margin-top: calc(var(--spacing)*0.5);
margin-bottom: calc(var(--spacing)*1); // margin-bottom: calc(var(--spacing)*1);
@media #{$small-up}{
margin-bottom: calc(var(--spacing)*2);
}
.card--open-graph{ .card--open-graph{
margin-bottom: calc(var(--spacing)*0.5); margin-bottom: calc(var(--spacing)*0.5);
} }
@ -79,4 +124,15 @@
.date, .content, details{ .date, .content, details{
font-size: 14px!important; font-size: 14px!important;
} }
} }
[data-template="impacts"]{
.card--impact:not([data-impact-type="media"]):hover{
background-color: var(--grey-950);
}
}

View file

@ -1,9 +1,7 @@
.card--open-graph{ .card--open-graph{
@include grid-content(); @include grid-content();
border: var(--border-light); border: var(--border-light);
border-radius: var(--radius-small); border-radius: var(--radius-small);
position: relative; position: relative;
@ -11,9 +9,17 @@
figure{ figure{
grid-column: 1; grid-column: 1;
grid-row: 1; grid-row: 1;
width: 100%;
height: 100%;
img{
width: 100%;
height: 100%;
object-fit: cover;
}
} }
@include figure-16-9(); // @include figure-16-9();
@media #{$x-small}{ @media #{$x-small}{
@ -61,7 +67,7 @@
&:hover{ &:hover{
border-color: var(--color-txt); border-color: var(--color-txt);
background-color: var(--grey-950);
} }
} }

View file

@ -31,6 +31,13 @@
} }
summary:hover{
color: var(--color-txt);
.arrow-details svg{
fill: var(--color-txt);
}
}
&[open]{ &[open]{
.arrow-details svg{ .arrow-details svg{
transform: rotate(90deg); transform: rotate(90deg);

View file

@ -16,8 +16,17 @@ body{
min-height: 100dvh; min-height: 100dvh;
min-height: 100vh; min-height: 100vh;
.page__header,
.page__content{
max-width: var(--max-w-cards);
margin-inline: auto;
}
} }
} }

View file

@ -22,9 +22,9 @@
} }
main .page__header { main .page__header {
max-width: var(--max-w-cards);
margin-inline: auto;
margin-top: calc(var(--spacing) * 3); margin-top: calc(var(--spacing) * 3);
margin-bottom: calc(var(--spacing) * 2); margin-bottom: calc(var(--spacing) * 2);

View file

@ -1296,8 +1296,8 @@ button.sort[data-sort-type=up] .arrow {
z-index: 1000; z-index: 1000;
max-width: 32ch; max-width: 32ch;
} }
.card--article-small:hover .title { .card--article-small:hover {
text-decoration: underline; background-color: var(--grey-950);
} }
.card--article-small .btn--go-to { .card--article-small .btn--go-to {
position: absolute; position: absolute;
@ -1361,10 +1361,44 @@ button.sort[data-sort-type=up] .arrow {
border-bottom: var(--border-light); border-bottom: var(--border-light);
container-type: inline-size; container-type: inline-size;
container-name: impact; container-name: impact;
position: relative;
} }
.card--impact:first-of-type { .card--impact:first-of-type {
border-top: var(--border-light); border-top: var(--border-light);
} }
.card--impact .btn--go-to {
position: absolute;
right: var(--padding-inner);
bottom: calc(var(--padding-inner) - 3px);
}
.card--impact .btn--go-to svg {
width: 15px;
height: 15px;
fill: var(--color-txt);
}
@media screen and (max-width: 768px) {
.card--impact .btn--go-to svg {
width: 11px;
height: 11px;
}
}
@media screen and (max-width: 560px) {
.card--impact .btn--go-to {
right: calc(var(--padding-inner) * 0.5);
bottom: calc(var(--padding-inner) * 0.25);
}
.card--impact .btn--go-to svg {
width: 11px;
height: 11px;
}
}
.card--impact:hover .btn--go-to {
animation: wiggle-left 0.8s ease-in-out;
}
.card--impact .btn--go-to {
top: calc(var(--padding-inner) * 1);
bottom: auto;
}
.card--impact .content { .card--impact .content {
grid-column: 2; grid-column: 2;
} }
@ -1379,16 +1413,39 @@ button.sort[data-sort-type=up] .arrow {
position: relative; position: relative;
top: -5px; top: -5px;
} }
.card--impact .content .see-more { .card--impact:not([data-impact-type=media]) .content {
color: var(--color-txt-light); padding-right: calc(var(--padding-inner) * 2.5);
text-decoration: none;
white-space: nowrap;
} }
.card--impact .content .see-more::after { .card--impact .investigations {
content: " +"; z-index: 10;
grid-column: 2;
list-style: none;
font-size: var(--fs-small);
}
.card--impact .investigations a {
text-decoration: none;
color: var(--color-txt-light);
}
.card--impact .investigations .icon {
position: relative;
top: 2px;
}
.card--impact .investigations .icon svg {
width: 14px;
height: 14px;
fill: var(--color-txt-light);
}
.card--impact .investigations li:hover a {
color: var(--color-txt);
}
.card--impact .investigations li:hover .icon svg {
fill: var(--color-txt);
}
.card--impact.has-link:hover {
background-color: var(--grey-950);
} }
.card--impact .open-graph__details { .card--impact .open-graph__details {
grid-column: span 2; grid-column: 2;
} }
.card--impact .open-graph__details summary, .card--impact .open-graph__details summary,
.card--impact .open-graph__details .summary-inner { .card--impact .open-graph__details .summary-inner {
@ -1413,6 +1470,12 @@ button.sort[data-sort-type=up] .arrow {
width: 100%; width: 100%;
fill: var(--color-txt); fill: var(--color-txt);
} }
.card--impact .open-graph__details summary:hover {
color: var(--color-txt);
}
.card--impact .open-graph__details summary:hover .arrow-details svg {
fill: var(--color-txt);
}
.card--impact .open-graph__details[open] .arrow-details svg { .card--impact .open-graph__details[open] .arrow-details svg {
transform: rotate(90deg); transform: rotate(90deg);
} }
@ -1422,23 +1485,23 @@ button.sort[data-sort-type=up] .arrow {
.card--impact .open-graph__details summary .arrow-details svg { .card--impact .open-graph__details summary .arrow-details svg {
fill: var(--color-txt-light); fill: var(--color-txt-light);
} }
.card--impact .open-graph__details summary { @media screen and (max-width: 560px) {
display: grid; .card--impact .open-graph__details {
grid-gap: var(--padding-inner); grid-column: 1/3;
grid-template-columns: 2fr 3fr; }
position: relative; .card--impact .open-graph__details summary {
} display: grid;
.card--impact .open-graph__details summary .summary-inner { grid-gap: var(--padding-inner);
grid-column: 2; grid-template-columns: 2fr 3fr;
position: relative;
grid-row-gap: 0;
}
.card--impact .open-graph__details summary .summary-inner {
grid-column: 2;
}
} }
.card--impact .open-graph__inner { .card--impact .open-graph__inner {
margin-top: calc(var(--spacing) * 0.5); margin-top: calc(var(--spacing) * 0.5);
margin-bottom: calc(var(--spacing) * 1);
}
@media screen and (min-width: 768px) {
.card--impact .open-graph__inner {
margin-bottom: calc(var(--spacing) * 2);
}
} }
.card--impact .open-graph__inner .card--open-graph { .card--impact .open-graph__inner .card--open-graph {
margin-bottom: calc(var(--spacing) * 0.5); margin-bottom: calc(var(--spacing) * 0.5);
@ -1449,6 +1512,10 @@ button.sort[data-sort-type=up] .arrow {
font-size: 14px !important; font-size: 14px !important;
} }
} }
[data-template=impacts] .card--impact:not([data-impact-type=media]):hover {
background-color: var(--grey-950);
}
.card--folder { .card--folder {
position: relative; position: relative;
max-width: var(--max-w-cards); max-width: var(--max-w-cards);
@ -1597,18 +1664,14 @@ button.sort[data-sort-type=up] .arrow {
.card--open-graph figure { .card--open-graph figure {
grid-column: 1; grid-column: 1;
grid-row: 1; grid-row: 1;
} width: 100%;
.card--open-graph figure { height: 100%;
aspect-ratio: 16/9;
display: flex;
overflow: hidden;
} }
.card--open-graph figure img { .card--open-graph figure img {
width: 100%; width: 100%;
height: 100%; height: 100%;
-o-object-fit: cover; -o-object-fit: cover;
object-fit: cover; object-fit: cover;
transition: cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.5s;
} }
@media screen and (max-width: 560px) { @media screen and (max-width: 560px) {
.card--open-graph figure { .card--open-graph figure {
@ -1650,6 +1713,7 @@ button.sort[data-sort-type=up] .arrow {
} }
.card--open-graph:hover { .card--open-graph:hover {
border-color: var(--color-txt); border-color: var(--color-txt);
background-color: var(--grey-950);
} }
.open-graph__inner { .open-graph__inner {
@ -1972,6 +2036,11 @@ body main {
min-height: 100dvh; min-height: 100dvh;
min-height: 100vh; min-height: 100vh;
} }
body main .page__header,
body main .page__content {
max-width: var(--max-w-cards);
margin-inline: auto;
}
.page__type { .page__type {
height: calc(var(--h-block) * 0.75); height: calc(var(--h-block) * 0.75);
@ -1992,8 +2061,6 @@ body main {
} }
main .page__header { main .page__header {
max-width: var(--max-w-cards);
margin-inline: auto;
margin-top: calc(var(--spacing) * 3); margin-top: calc(var(--spacing) * 3);
margin-bottom: calc(var(--spacing) * 2); margin-bottom: calc(var(--spacing) * 2);
} }
@ -2188,10 +2255,6 @@ main .page__header .description-medium {
[data-template=investigation-summary] main { [data-template=investigation-summary] main {
position: relative; position: relative;
} }
[data-template=investigation-summary] main #hero, [data-template=investigation-summary] main .section__article {
max-width: var(--max-w-cards);
margin-inline: auto;
}
[data-template=investigation-summary] main .panel-left { [data-template=investigation-summary] main .panel-left {
width: calc((100vw - var(--max-w-cards) - var(--padding-body) * 4) * 0.5); width: calc((100vw - var(--max-w-cards) - var(--padding-body) * 4) * 0.5);
} }

File diff suppressed because one or more lines are too long

View file

@ -43,3 +43,4 @@
@import "template/investigation-summary"; @import "template/investigation-summary";
@import "template/report"; @import "template/report";
@import "template/folder"; @import "template/folder";
@import "template/impacts";

View file

View file

@ -2,10 +2,7 @@
position: relative; position: relative;
#hero, .section__article{
max-width: var(--max-w-cards);
margin-inline: auto;
}
.panel-left{ .panel-left{
@ -16,7 +13,6 @@
margin-left: auto; margin-left: auto;
margin-right: calc(var(--padding-body)*3); margin-right: calc(var(--padding-body)*3);
.panel-left{ .panel-left{
width: calc(100vw - var(--max-w-cards) - var(--padding-body)*6); width: calc(100vw - var(--max-w-cards) - var(--padding-body)*6);
} }
} }
@ -27,7 +23,6 @@
margin-right: 0px; margin-right: 0px;
width: calc(100% - var(--panel-w)*0.5 - var(--padding-body)); width: calc(100% - var(--panel-w)*0.5 - var(--padding-body));
.panel-left{ .panel-left{
width: calc(var(--panel-w)*0.5); width: calc(var(--panel-w)*0.5);
} }
} }

1
assets/icons/article.svg Normal file
View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.362 2c4.156 0 2.638 6 2.638 6s6-1.65 6 2.457v11.543h-16v-20h7.362zm.827-2h-10.189v24h20v-14.386c0-2.391-6.648-9.614-9.811-9.614zm4.811 13h-10v-1h10v1zm0 2h-10v1h10v-1zm0 3h-10v1h10v-1z"/></svg>

After

Width:  |  Height:  |  Size: 289 B

View file

@ -13,5 +13,69 @@
</header> </header>
<div class="page__content">
<!-- Contenu statique temporaire - sera dynamique quand les pages impacts seront créées -->
<div class="card--impact" data-impact-type="media">
<p class="tag">Médiatique</p>
<div class="content">
<?php snippet('card-open-graph') ?>
</div>
<ul class="investigations">
<li><a href="/enquetes/l-execution-de-nidal-et-khaled-amirah-a-naplouse"><span class="icon"><?= svg('assets/icons/article.svg') ?></span> L'exécution de Nidal et Khaled 'Amirah à Naplouse</a></li>
<li><a href="/enquetes/l-homicide-de-nahel-merzouk"><span class="icon"><?= svg('assets/icons/article.svg') ?></span> Lhomicide de Nahel Merzouk</a></li>
</ul>
</div>
<div class="card--impact" data-impact-type="judiciaire">
<p class="tag">Judiciaire</p>
<p class="date">12 Dec 2025</p>
<div class="content">
<p>La justice israélienne déclare ouvrir une enquête sur "les circonstances de la mort de Nidal et Khaled Amirah".
</p>
</div>
<ul class="investigations">
<li><a href="/enquetes/l-execution-de-nidal-et-khaled-amirah-a-naplouse"><span class="icon"><?= svg('assets/icons/article.svg') ?></span> L'exécution de Nidal et Khaled 'Amirah à Naplouse</a></li>
</ul>
<button class="btn--go-to"><a href="#" target="_blank"><?= svg('assets/icons/arrow-left.svg') ?></a></button>
<a class="link-block" href="#" target="_blank"></a>
</div>
<div class="card--impact" data-impact-type="judiciaire">
<p class="tag">Judiciaire</p>
<p class="date">12 Dec 2025</p>
<div class="content">
<p>La justice israélienne déclare ouvrir une enquête sur "les circonstances de la mort de Nidal et Khaled Amirah"
</p>
</div>
<ul class="investigations">
<li><a href="/enquetes/l-execution-de-nidal-et-khaled-amirah-a-naplouse"><span class="icon"><?= svg('assets/icons/article.svg') ?></span> L'exécution de Nidal et Khaled 'Amirah à Naplouse</a></li>
</ul>
<button class="btn--go-to"><a href="#" target="_blank"><?= svg('assets/icons/arrow-left.svg') ?></a></button>
<a class="link-block" href="#" target="_blank"></a>
</div>
<div class="card--impact" data-impact-type="public">
<p class="tag">Judiciaire</p>
<p class="date">12 Dec 2025</p>
<div class="content">
<p>Index présente une série d'enquêtes récentes au Festival du Réel 2025.
</p>
</div>
<button class="btn--go-to"><a href="#" target="_blank"><?= svg('assets/icons/arrow-left.svg') ?></a></button>
<a class="link-block" href="#" target="_blank"></a>
</div>
</div>
</main> </main>
<?php snippet('footer') ?> <?php snippet('footer') ?>

View file

@ -67,6 +67,10 @@ $report = $page->children()->filterBy('intendedTemplate', 'report')->first();
<?php endif ?> <?php endif ?>
</header> </header>
<div class="page__content">
<?php if ($page->heroType()->value() == 'image'): ?> <?php if ($page->heroType()->value() == 'image'): ?>
<?php if ($heroImage = $page->heroImages()->toFile()): ?> <?php if ($heroImage = $page->heroImages()->toFile()): ?>
<!-- HERO IMAGE SIMPLE --> <!-- HERO IMAGE SIMPLE -->
@ -243,30 +247,33 @@ $report = $page->children()->filterBy('intendedTemplate', 'report')->first();
</details> </details>
</div> </div>
<div class="card--impact" data-impact-type="judiciaire"> <div class="card--impact has-link" data-impact-type="judiciaire">
<p class="tag">Judiciaire</p> <p class="tag">Judiciaire</p>
<p class="date">12 Dec 2025</p> <p class="date">12 Dec 2025</p>
<div class="content"> <div class="content">
<p >La justice israélienne déclare ouvrir une enquête sur "les circonstances de la mort de Nidal et Khaled Amirah". <p >La justice israélienne déclare ouvrir une enquête sur "les circonstances de la mort de Nidal et Khaled Amirah".
</p> </p>
</div> </div>
<button class="btn--go-to"><a href="#" target="_blank"><?= svg('assets/icons/arrow-left.svg') ?></a></button>
<a class="link-block" href="#" target="_blank"></a>
</div> </div>
<div class="card--impact" data-impact-type="judiciaire"> <div class="card--impact has-link" data-impact-type="judiciaire">
<p class="tag">Judiciaire</p> <p class="tag">Judiciaire</p>
<p class="date">12 Dec 2025</p> <p class="date">12 Dec 2025</p>
<div class="content"> <div class="content">
<p >La justice israélienne déclare ouvrir une enquête sur "les circonstances de la mort de Nidal et Khaled Amirah" <p >La justice israélienne déclare ouvrir une enquête sur "les circonstances de la mort de Nidal et Khaled Amirah"
</p> </p>
</div> </div>
<button class="btn--go-to"><a href="#" target="_blank"><?= svg('assets/icons/arrow-left.svg') ?></a></button>
<a class="link-block" href="#" target="_blank"></a>
</div> </div>
<div class="card--impact" data-impact-type="public"> <div class="card--impact" data-impact-type="public">
<p class="tag">Judiciaire</p> <p class="tag">Judiciaire</p>
<p class="date">12 Dec 2025</p> <p class="date">12 Dec 2025</p>
<div class="content"> <div class="content">
<p>Index présente une série d'enquêtes récentes au Festival du Réel 2025. <a class="see-more" href="#">Voir plus</a> <p>Index présente une série d'enquêtes récentes au Festival du Réel 2025.</a>
</p> </p>
</div> </div>
</div> </div>
@ -372,6 +379,8 @@ if ($folder):
<?php endforeach ?> <?php endforeach ?>
</aside> </aside>
</div>
<?php endif ?> <?php endif ?>
</main> </main>