refonte page d'accueil nouveau design, sans images pour l'instant

This commit is contained in:
2026-05-29 01:15:56 +02:00
parent 39ed94c029
commit 1956952a2a
31 changed files with 1407 additions and 1346 deletions

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -9,6 +9,21 @@
Drupal.behaviors.erabletheme = {
attach: function (context, settings) {
//
// Home intro : sortir le .more-link (rendu profond par smart_trim)
// de .intro_body pour le placer directement sous .intro_main.
// Ainsi le séparateur vertical s'arrête en bas du texte, pas du bouton,
// et le bouton est centré par rapport à .home_introduction.
//
const intro = document.querySelector('.home_introduction');
if (intro && !intro.dataset.moreLinkMoved) {
const moreLink = intro.querySelector('.intro_body .more-link');
if (moreLink) {
intro.appendChild(moreLink);
intro.dataset.moreLinkMoved = 'true';
}
}
//
// Carrousel
//

View File

@@ -4,7 +4,7 @@
"description": "",
"main": "index.js",
"scripts": {
"sass": "node-sass -w scss/ -o css/"
"sass": "sass --watch --no-source-map scss/styles.scss:css/styles.css"
},
"author": "",
"license": "ISC",

View File

@@ -16,12 +16,12 @@
.actus_list {
h2 {
@media screen and (min-width: $breakpoint_tablet) {
font-size: $xl_font_size !important;
font-size: $fs_xl !important;
}
}
.sous_titre {
@media screen and (min-width: $breakpoint_tablet) {
font-size: $m_font_size !important;
font-size: $fs_sm !important;
}
}
}

View File

@@ -193,7 +193,7 @@ aside.layout-sidebar-first:has(#block-erabletheme-views-block-projets-block-1) {
a {
color: black;
font-size: $m_font_size;
font-size: $fs_sm;
&:hover,
&.is-active {
font-weight: 800;

View File

@@ -1,74 +1,76 @@
.home_introduction {
background-color: white;
width: 100%;
box-sizing: border-box;
padding: 3rem 1rem;
margin: 2rem 0;
h2 {
display: none;
width: 100%;
max-width: 70rem;
margin: 8vw auto;
padding: 8vw 6vw;
display: flex;
flex-direction: column;
align-items: center;
gap: 3rem;
h2 { display: none; } // titre du bloc Drupal masqué (logo le remplace)
// Bloc supérieur : logo | séparateur | texte
.intro_main {
width: 100%;
display: grid;
grid-template-columns: 1fr; // mobile : empilé
gap: 6vw;
justify-items: center;
@media (min-width: $breakpoint_desktop) {
grid-template-columns: minmax(8rem, 22%) 1px 1fr;
align-items: center;
gap: 2.5vw;
}
}
> .logo {
.intro_logo {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
margin-bottom: 2rem;
img {
width: 50%;
width: 40vw;
max-width: 14rem;
height: auto;
@media (min-width: $breakpoint_desktop) {
width: 100%;
width: 100%;
}
}
}
.intro_separator {
display: none;
@media (min-width: $breakpoint_desktop) {
width: 170%;
margin: 0 3rem;
display: block;
width: 1px;
align-self: stretch;
background-color: $text_grey;
justify-self: center;
}
}
article > div {
height: unset !important;
min-height: 100%;
p {
@include main_text_content();
.intro_body {
width: 100%;
article > div {
height: unset !important;
min-height: unset;
width: 100%;
@media (min-width: $breakpoint_tablet) {
padding-left: 3rem;
padding-right: 3rem;
max-width: 45rem;
margin-inline: auto; // centrage horizontal du wrapper texte
p {
@include main_text_content();
margin: 0;
}
@media (min-width: $breakpoint_desktop) {
padding-left: 0;
}
}
@media (min-width: $breakpoint_tablet) {
padding: 0 !important;
}
}
div.more-link {
margin-top: 3rem;
margin-bottom: 1.5rem;
display: flex;
justify-content: center;
align-items: center;
// CTA "En savoir plus" — déplacé par JS comme enfant direct de
// .home_introduction → centrage naturel via le flex-column du parent.
> div.more-link {
@include fluo_button();
@media (min-width: $breakpoint_tablet) {
position: absolute;
left:0;
right:0;
}
}
@media (min-width: $breakpoint_tablet) {
padding: 8rem 1rem;
padding-top: 4rem;
margin: 6rem 0;
margin-left: 20vw;
margin-right: 20vw;
width: calc(100% - 40vw);
}
@media (min-width: $breakpoint_desktop) {
display: flex;
justify-content: space-around;
margin-top: 20vh;
margin-bottom: 20vh !important;
margin-top: 1rem;
}
}
@@ -128,28 +130,48 @@
}
}
.map-projets {
background-color: white;
padding: 1rem 0;
margin-left: $x_margin;
width: calc(100% - #{$x_margin} * 2);
@media (min-width: $breakpoint_tablet) {
margin-left: 20vw;
width: calc(100% - 40vw);
}
// Section "projets lauréats" : titre hors du bloc (centré page),
// puis le bloc lui-même avec son contenu, bordure brand en bas.
.map-projets-section {
display: flex;
flex-direction: column;
align-items: center;
@media (min-width: $breakpoint_desktop) {
margin-left: 25vw;
width: calc(100% - 50vw);
margin-top: 10vh;
margin-bottom: 10vh;
}
> h2 {
@include main_title();
}
.map-projets-title {
@include main_title();
text-align: center;
padding: 0;
margin: 0 0 4rem;
}
.map-projets {
background-color: white;
padding: 1rem 0;
margin: 0 auto;
width: calc(100% - #{$x_margin} * 2);
border-bottom: 7px solid $fluo_green;
// CTA "Voir les projets" : même style fluo_button, fond gris page
// pour se fondre dans la section.
> footer.fluo_links {
margin-top: 1rem;
margin-bottom: 4rem;
a { background-color: $page_bg; }
}
@media (min-width: $breakpoint_tablet) {
width: 60vw;
}
@media (min-width: $breakpoint_desktop) {
width: 50vw;
}
> .projets_intro {
padding: 0 3vw;
margin-top: 1.3rem;
margin-bottom: 6vh;
margin-bottom: 2.5rem;
@include main_text_content();
@media screen and (min-width: $breakpoint_tablet) {
margin-top: 2vh;
@@ -169,6 +191,7 @@
margin: 0 2rem;
width: calc(100% - 4rem);
#popup {
background-color: $page_bg;
h3 {
@include sous_titre();
}

View File

@@ -238,7 +238,7 @@
padding-top: 3vh;
padding-left: $x_margin;
a {
font-size: $sm_font_size;
font-size: $fs_xs;
font-weight: 800;
color: $teal;
}
@@ -326,7 +326,7 @@
> .offre-title {
grid-column: 2/4;
grid-row: 4/5;
font-size: $xl_font_size;
font-size: $fs_xl;
font-weight: 800;
margin-bottom: 2rem;
}
@@ -350,7 +350,7 @@
padding: 0.7rem 1rem;
color: white;
font-weight: 800;
font-size: $sm_font_size;
font-size: $fs_xs;
transform: translateY(0);
transition: transform 0.2s ease-out;
}
@@ -364,7 +364,7 @@
}
> h2 {
text-transform: unset !important;
font-size: $sm_font_size !important;
font-size: $fs_xs !important;
color: black !important;
margin: 0 !important;
padding: 0 !important;
@@ -373,7 +373,7 @@
align-self: center;
grid-column: 2/4;
grid-row: 6/7;
font-size: $sm_font_size;
font-size: $fs_xs;
margin-top: 1rem;
margin-bottom: 0.5rem;
@media (min-width: $breakpoint_desktop) {

View File

@@ -127,7 +127,7 @@
font-size: 1.1rem !important;
margin-bottom: 1rem;
line-height: 1.3;
font-size: $m_font_size !important;
font-size: $fs_sm !important;
a {
color: black;
}
@@ -179,7 +179,7 @@
padding-left: $x_margin;
@include main_text_content();
a {
font-size: $sm_font_size;
font-size: $fs_xs;
font-weight: 800;
color: $teal;
}
@@ -259,7 +259,7 @@
font-weight: bold;
font-family: 'Marianne', sans-serif;
display: block;
font-size: $sm_font_size !important;
font-size: $fs_xs !important;
}
}
.slick-prev {
@@ -326,7 +326,7 @@
.leaflet-popup-content-wrapper {
padding: 0.3rem 0.8rem;
background-color: white;
font-size: $sm_font_size !important;
font-size: $fs_xs !important;
box-shadow: none;
border-radius: unset;
@include main_text_content();
@@ -441,7 +441,7 @@
margin: 0;
padding: 0;
color: black !important;
font-size: $m_font_size !important;
font-size: $fs_sm !important;
@include sous_titre();
> div {
padding-left: 0.2rem !important;
@@ -453,7 +453,7 @@
margin: 0;
padding: 0;
color: black !important;
font-size: $m_font_size !important;
font-size: $fs_sm !important;
@include sous_titre();
}
> .texte {
@@ -461,7 +461,7 @@
grid-column: 1 / span 2;
grid-row: 3;
p {
font-size: $m_font_size;
font-size: $fs_sm;
margin: 0 !important;
padding: 0 !important;
}

View File

@@ -83,7 +83,7 @@
padding-left: $x_margin;
@include main_text_content();
a {
font-size: $sm_font_size;
font-size: $fs_xs;
font-weight: 800;
color: $teal;
}

View File

@@ -32,19 +32,11 @@
font-style: italic;
}
/* Barlow */
/* Vogun */
@font-face {
font-family: 'Barlow';
src: url('../fonts/Barlow/barlow-light.woff2') format('woff2'),
url('../fonts/Barlow/barlow_light.woff') format('woff');
font-weight: 300;
font-style: normal
}
@font-face {
font-family: 'Barlow Condensed';
src: url('../fonts/Barlow/BarlowCondensed-Regular.woff2') format('woff2');
font-weight: normal;
font-family: 'Vogun';
src: url('../fonts/Vogun/Vogun-Regular.woff2') format('woff2');
font-weight: 500;
font-style: normal;
}

View File

@@ -8,6 +8,7 @@
body {
height: 100vh;
overflow: scroll;
background-color: $page_bg;
.layout-container {
position: relative;
display: flex;
@@ -27,6 +28,7 @@ body {
z-index: 0;
}
#background {
display: none;
z-index: -1;
}
}
@@ -59,6 +61,15 @@ em {
display: none;
}
// Footer générique des vues (footer link, ex: "Voir toutes les actualités")
footer.fluo_links {
@include fluo_button();
display: flex;
justify-content: center;
margin-top: 2rem;
p { margin: 0; }
}
// debug
/* * {
border: solid 1px red !important;

View File

@@ -1,7 +1,9 @@
$fluo_green: #00ff80;
$teal: #038788;
$fluo_green: #33ffc4;
$teal: $fluo_green;
$beige: #fcf9ee;
$dark_green: #314e41;
$text_grey: #4a4a49;
$page_bg: #f9f9f9;
@mixin beige_gradient() {
background: linear-gradient(to bottom, $beige 80%, white 100%);

View File

@@ -1,71 +1,102 @@
/* SIZES */
$sm_font_size: 0.8rem;
$m_font_size: 0.9rem;
$l_font_size: 1.2rem;
$xl_font_size: 1.6rem;
$main_font_size: 1rem;
$title_size: 2.3rem;
/* FAMILIES */
$vogun: "Vogun", serif;
$marianne: "Marianne", sans-serif;
/* FONT SIZES — échelle unique en rem (base 16px) */
$fs_xs: 0.8125rem; // 13px — meta, captions
$fs_sm: 0.9375rem; // 15px — corps texte, CTA, liens footer
$fs_md: 1.0625rem; // 17px — corps texte sections longues
$fs_lg: 1.375rem; // 22px — intertitres
$fs_xl: 2.25rem; // 36px — titres cards
$fs_2xl: 3.5625rem; // 57px — hero title
/* LINE HEIGHTS */
$lh_tight: 1.2;
$lh_normal: 1.3;
$lh_loose: 1.4;
/* FONT WEIGHTS */
$fw_regular: 400;
$fw_medium: 500;
$fw_bold: 800;
/* MIXINS */
// Titre principal d'une section (H2 grands)
@mixin main_title() {
font-family: "Barlow Condensed", sans-serif;
font-size: $xl_font_size;
font-family: $vogun;
font-weight: $fw_medium;
font-size: $fs_xl;
color: black;
line-height: $lh_tight;
padding: 0 $x_margin;
margin-top: 1rem;
color: $teal;
text-transform: uppercase;
a {
color: $teal;
}
@media (min-width: $breakpoint_tablet) {
font-size: $title_size;
font-size: $fs_2xl;
}
}
@mixin main_text_content() {
font-family: "Marianne", sans-serif;
font-size: $main_font_size;
line-height: 1.4;
}
// Sous-titre (Marianne bold gris)
@mixin sous_titre() {
font-family: "Marianne", sans-serif;
font-size: $m_font_size;
color: $teal;
font-weight: 800;
line-height: 1.3;
@media (min-width: $breakpoint_tablet) {
font-size: $l_font_size;
}
font-family: $marianne;
font-weight: $fw_bold;
font-size: $fs_sm;
color: $text_grey;
line-height: $lh_normal;
}
// Variante alternative de sous-titre (Vogun)
@mixin sous_titre_alt() {
font-family: "Barlow", sans-serif;
font-family: $vogun;
font-weight: $fw_medium;
color: black;
font-size: $l_font_size;
font-size: $fs_lg;
line-height: $lh_tight;
@media (min-width: $breakpoint_tablet) {
font-size: $xl_font_size;
font-size: $fs_xl;
}
}
// Corps de texte principal
@mixin main_text_content() {
font-family: $marianne;
font-weight: $fw_regular;
font-size: $fs_sm;
color: $text_grey;
line-height: $lh_normal;
}
// Meta (date, type, etc.)
@mixin meta_text() {
font-family: $marianne;
font-weight: $fw_regular;
font-size: $fs_xs;
color: $text_grey;
line-height: $lh_normal;
}
// Typo CTA (Vogun 15px gris)
@mixin cta_text() {
font-family: $vogun;
font-weight: $fw_medium;
font-size: $fs_sm;
color: $text_grey;
line-height: $lh_tight;
}
// CTA visuellement complet (typo + fond + padding + hover)
@mixin fluo_button() {
a {
@include cta_text();
display: inline-block;
text-align: center;
color: black;
font-family: "Marianne", sans-serif;
font-weight: 800;
font-size: $m_font_size;
background-color: white;
border: solid 2px $fluo_green;
padding: 9px 18px;
transition: background-color 0.3s ease;
border: none;
padding: 0.75rem 1.5rem;
text-decoration: none;
transition: color 0.2s ease;
text-wrap: nowrap !important;
svg {
display: none;
}
}
a:hover {
background-color: $fluo_green;
svg { display: none; }
&:hover { color: black; }
}
}

View File

@@ -6,7 +6,7 @@
padding-top: 3vh;
padding-left: $x_margin;
a {
font-size: $sm_font_size;
font-size: $fs_xs;
font-weight: 800;
color: $teal;
}
@@ -15,7 +15,7 @@
padding-left: $x_margin;
margin: 20px 0;
div {
font-size: $sm_font_size;
font-size: $fs_xs;
margin-bottom: 5px;
}
}
@@ -36,7 +36,7 @@
margin-top: -1.5rem;
> div > div {
font-size: $l_font_size;
font-size: $fs_lg;
margin-bottom: 30px;
}
}

View File

@@ -3,6 +3,7 @@
background-color: white;
padding: 1rem;
box-sizing: border-box;
border-bottom: 7px solid $fluo_green;
@media screen and (min-width: $breakpoint_tablet) {
padding: 2rem;
}
@@ -26,43 +27,40 @@
}
.preview_meta {
font-family: "Marianne", sans-serif;
font-size: $sm_font_size;
@include meta_text();
width: auto;
display: flex;
justify-content: space-between;
color: $teal;
margin: 0 $x_margin;
margin-top: 1.3rem;
padding-top: 0.7rem;
margin-left: 0;
@media (min-width: $breakpoint_tablet) {
margin-left: unset;
font-size: $m_font_size;
}
}
.preview_sous_titre {
font-family: "Marianne", sans-serif;
font-size: $m_font_size;
@include main_text_content();
padding: 5px $x_margin;
padding-left: 0 !important;
.sous_titre {
line-height: 1.3 !important;
line-height: $lh_normal !important;
margin-top: 1rem;
margin-bottom: 1.5rem;
}
@media (min-width: $breakpoint_tablet) {
padding-left: unset;
font-size: $l_font_size;
padding-top: unset !important;
}
}
h2 {
@include sous_titre_alt();
margin-bottom: 0.5rem;
margin-top: 1rem !important;
padding: 0 !important;
line-height: 1.2;
@include main_title();
a { color: inherit; text-decoration: none; }
}
}

View File

@@ -1,3 +1,7 @@
// Variables pagination du carrousel (flèches + dots slick).
$arrow_size: 2.3rem;
$pagination_line_offset: 4rem; // distance bas carrousel -> centre de la ligne flèches/dots
.carousel_container {
@media screen and (min-width: $breakpoint_tablet) {
width: 100%;
@@ -45,46 +49,52 @@
}
}
}
// --- Ligne de pagination ---
// Slick rend les flèches dans .slick-list (donc dans .slick-container)
// et les dots dans #carousel_dots (frère, géré plus bas).
.slick-arrow {
width: 1.5rem;
height: 1.5rem;
border-radius: 1.5rem;
background-color: $teal !important;
width: $arrow_size;
height: $arrow_size;
border-radius: 50%;
background-color: $fluo_green !important;
transition: background-color 0.3s ease;
top: unset !important;
bottom: calc(-25px - 4rem);
@media (min-width: $breakpoint_tablet) {
width: 2rem;
height: 2rem;
bottom: calc(-25px - 6rem);
}
// Centre vertical de la flèche aligné sur $pagination_line_offset
bottom: calc(-1 * (#{$pagination_line_offset} + #{$arrow_size} / 2));
display: flex !important;
align-items: center;
justify-content: center;
padding: 0;
&:hover {
background-color: white !important;
&::before {
color: $teal;
}
&::before { color: black; }
}
&::before {
position: static;
opacity: 1 !important;
color: white;
color: $text_grey;
font-weight: bold;
font-family: 'Marianne', sans-serif;
display: block;
font-size: $sm_font_size !important;
@media (min-width: $breakpoint_tablet) {
font-size: $l_font_size !important;
}
font-family: $marianne;
font-size: $fs_md !important;
line-height: 1;
width: auto;
height: auto;
}
}
.slick-prev {
left: 20vw;
left: 5vw;
@media (min-width: $breakpoint_tablet) {
left: calc(50vw + 10vw); // tablette : proche du bord (repère 200vw)
}
@media (min-width: $breakpoint_desktop) {
left: calc(50vw + 35vw);
}
}
.slick-next {
right: 20vw;
right: 5vw;
@media (min-width: $breakpoint_tablet) {
right: calc(50vw + 10vw);
}
@media (min-width: $breakpoint_desktop) {
right: calc(50vw + 35vw);
}
}
@@ -96,26 +106,56 @@
margin-bottom: 6rem;
}
}
#carousel_dots {
z-index: 1;
position: relative;
margin-top: -15px;
ul {
position: relative;
bottom: 0;
li.slick-active button::before{
color: $teal;
}
li button::before{
color: rgba(0.9, 0.9, 0.9, 1);
}
} // /.slick-container
// #carousel_dots utilise le ::before unicode de slick comme pastille
// (cf. slick-theme.css ~ligne 178). On stylise donc la couleur du ::before
// au lieu de masquer le ::before et de styler le button — c'est plus simple
// et c'est ainsi que ça fonctionnait avant la refonte.
//
// Alignement vertical avec les flèches :
// - Les flèches sont ancrées via `bottom: -($pagination_line_offset + $arrow_size/2)`
// donc leur centre vertical est à $pagination_line_offset sous le bas du carrousel.
// - Le #carousel_dots arrive juste en dessous (flux normal). Sa rangée de dots
// intrinsèque (ul.slick-dots de slick) fait environ 1.25rem de hauteur visuelle.
// - Pour aligner les centres, on remonte de :
// $pagination_line_offset + $arrow_size/2 - 1.25rem
$slick_dots_intrinsic_height: 1.25rem;
#carousel_dots {
position: relative;
z-index: 1;
// Formule calibrée pour tablette+/desktop (cf. commentaire ci-dessus).
margin-top: calc(-1 * (#{$pagination_line_offset} + #{$arrow_size} / 2 - #{$slick_dots_intrinsic_height}));
// En mobile, slick passe à slidesToShow: 1 → le parent positionné des
// flèches change, ce qui décale leur centre d'~33px vers le haut par
// rapport au flux du #carousel_dots. Magic number pour compenser.
@media (max-width: #{$breakpoint_tablet - 1px}) {
margin-top: calc(-1 * (#{$pagination_line_offset} + #{$arrow_size} / 2 - #{$slick_dots_intrinsic_height}) + 33px);
}
ul {
position: relative;
bottom: 0;
li {
margin: 0 0.75rem;
button::before {
font-size: $fs_xs;
opacity: 1;
color: $text_grey;
transition: color 0.2s ease;
}
&:hover button::before {
color: black;
}
&.slick-active button::before {
color: $fluo_green;
}
}
footer {
@include fluo_button();
text-align: center;
margin-top: 4rem;
margin-bottom: 4rem;
}
}
}
footer {
@include fluo_button();
text-align: center;
margin-top: 4rem;
margin-bottom: 4rem;
}
}

View File

@@ -1,123 +1,95 @@
// Footer : 2 groupes — logos à gauche, navs + linkedin à droite.
//
// Structure DOM (cf. page.html.twig + Drupal regions) :
// footer
// section#footer_top (vide actuellement)
// section#footer_middle
// section#footer_left (logos rep + epau)
// div#footer_section
// section#footer_center (nav compte + nav pied de page)
// section#footer_right (icône linkedin)
// section#footer_bottom (vide actuellement)
//
// Largeur : 100% en mobile, réduit à la colonne contenu (50vw centré)
// en desktop, comme le reste du contenu de la home.
.layout-container > footer {
width: 100%;
background-color: white;
margin-top: 50px;
padding: 0 $x_margin !important;
@media screen and (min-width: $breakpoint_desktop) {
width: calc(100% - 50vw);
margin-left: 25vw;
}
#footer_middle {
display: flex;
#footer_left > div {
margin-top: 5px;
display: flex;
justify-content: start;
align-items: center;
flex-wrap: nowrap;
#block-erabletheme-logorep {
max-width: 100px;
img {
width: 100%;
height: auto;
}
}
#block-erabletheme-logoepau {
max-width: 150px;
img {
width: 100%;
height: auto;
}
@media (min-width: $breakpoint_tablet) {
padding-left: 2vw;
}
}
}
#footer_section {
display: flex;
width: 100%;
justify-content: space-between;
align-items: center;
margin-top: 10px;
margin-bottom: 20px;
position: relative;
#footer_center {
width: 100%;
> div {
display: flex;
justify-content: space-around;
nav ul {
display: flex;
justify-content: space-between;
li {
a {
color: $dark_green;
font-family: 'Marianne', sans-serif;
font-weight: 800;
text-decoration: underline;
font-size: 0.6rem;
text-align: center;
display: inline-block;
line-height: 1.2;
}
&:last-of-type {
margin-left: 1rem;
}
}
&:first-of-type {
margin-left: 1rem;
}
&:last-of-type {
margin-right: 1rem;
}
}
}
@media (min-width: $breakpoint_tablet) {
padding-left: 0;
}
}
width: 100%;
background-color: white;
margin-top: 50px;
padding: 1rem $x_margin;
box-sizing: border-box;
@media (min-width: $breakpoint_desktop) {
width: 50vw;
margin-left: 25vw;
padding: 1rem;
}
#footer_right {
width: 30%;
#block-erabletheme-socialmedialinks-2 ul {
display: flex;
justify-content: end;
li {
a {
span {
font-weight: lighter;
font-size: 0.8rem;
width: 1.6rem;
height: 1.6rem;
padding-top: 0.2rem;
border-radius: 0.8rem;
color: white;
background-color: $teal;
display: flex;
justify-content: center;
align-items: center;
}
svg.ext {
display: none;
}
}
&:last-of-type {
margin-left: 5px;
}
}
}
@media (min-width: $breakpoint_tablet) {
width: auto;
}
}
#footer_middle {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
gap: 1.5rem;
}
}
@media (min-width: $breakpoint_tablet) {
display: flex;
}
// --- Groupe gauche : logos ---
#footer_left > div {
display: flex;
align-items: center;
gap: 1rem;
#block-erabletheme-logorep img { max-width: 100px; height: auto; }
#block-erabletheme-logoepau img { max-width: 150px; height: auto; }
}
// --- Groupe droite : navs + linkedin ---
#footer_section {
display: flex;
align-items: center;
gap: 1.5rem;
}
// Drupal injecte un <div> wrapper entre #footer_center et les <nav>.
// On flexe ce wrapper pour aligner les 2 navs côte à côte.
#footer_center > div {
display: flex;
align-items: center;
gap: 1.5rem;
nav ul {
display: flex;
gap: 1.5rem;
margin: 0;
padding: 0;
list-style: none;
li a {
color: $text_grey;
font-family: $marianne;
font-weight: $fw_bold;
font-size: $fs_xs;
text-decoration: underline;
line-height: 1.2;
}
}
@media (min-width: $breakpoint_tablet) {
display: block;
padding: 0;
}
#footer_right #block-erabletheme-socialmedialinks-2 ul {
display: flex;
gap: 0.5rem;
margin: 0;
padding: 0;
list-style: none;
a span {
display: flex;
align-items: center;
justify-content: center;
width: 1.6rem;
height: 1.6rem;
border-radius: 50%;
background-color: $fluo_green;
color: $text_grey;
font-size: 0.8rem;
font-weight: lighter;
}
a svg.ext { display: none; }
}
}

View File

@@ -1,155 +1,123 @@
$header_height: 4.5rem; // 72px maquette
.layout-container {
header[role="banner"] {
width: 100%;
background-color: white;
@media (min-width: $breakpoint_desktop) {
position: sticky;
top: -12vh;
box-shadow: none;
}
position: sticky;
top: 0;
z-index: 99;
box-shadow: none;
> div:first-of-type {
z-index: 99;
position: relative;
display: grid;
grid-template-columns: repeat(16, 1fr);
> div{
height: 12vh;
grid-row: 1;
max-height: 100%;
width: 100%;
display: flex;
align-items: center;
height: $header_height;
// Conteneurs Drupal des blocs logos / burger
> div {
height: $header_height;
display: flex;
align-items: center;
> div {
width: 100%;
display: flex;
justify-content: center;
align-items: center;
height: 100%;
> div {
height: 12vh;
height: 100%;
a {
display: block;
height: 100%;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
height: 100%;
}
img {
width: auto;
height: auto;
max-width: 100%;
max-height: 100%;
max-height: calc($header_height - 1rem);
}
}
}
}
#block-erabletheme-logorep-2 {
img {
padding-top: 0.8rem;
padding-bottom: 0.8rem;
}
grid-column: 1 / 5;
@media (min-width: $breakpoint_tablet) {
grid-column: 0 / 4;
}
@media (min-width: $breakpoint_desktop) {
grid-column: 1 / 3;
}
}
#block-erabletheme-logoepau-2 {
grid-column: 5 / 9;
> div {
align-items: flex-start;
justify-content: flex-start;
> div > a > img {
transform: translateX(-20px);
padding-top: 1.2rem;
padding-bottom: 1.2rem;
}
}
@media (min-width: $breakpoint_tablet) {
grid-column: 4 / 7;
> div > div > a > img {
padding-top: 1.5rem;
padding-bottom: 1.5rem;
}
}
@media (min-width: $breakpoint_desktop) {
grid-column: 3 / 8;
}
@media (min-width: $breakpoint_desktop_large) {
grid-column: 3 / 6;
> div > div > a > img {
transform: translateX(-40px);
padding-top: 30px;
padding-bottom: 30px;
}
}
}
#block-erabletheme-logorep-2,
#block-erabletheme-logoepau-2,
#block-erabletheme-logoerable {
grid-column: 10 / 15;
@media (min-width: $breakpoint_desktop) {
grid-column: 14 / 16;
}
img {
padding-right: 1rem;
padding-top: 0.8rem;
padding-bottom: 0.8rem;
}
padding: 0 1rem;
}
#block-erabletheme-logorep-2 {
padding-left: 1.25rem;
}
#block-erabletheme-logoerable {
margin-left: auto; // pousse le burger à droite
}
#block-erabletheme-socialmedialinks {
display: none;
}
#block-erabletheme-header {
grid-column: 15 / 17;
@media (min-width: $breakpoint_desktop) {
grid-column: 16 / 17;
}
height: $header_height;
#hamburger {
cursor: pointer;
width: auto;
height: 100%;
width: $header_height; // carré 72x72
height: $header_height;
background-color: $fluo_green;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-around;
padding: 0.5rem 0;
h2 {
font-size: $sm_font_size;
font-family: 'Marianne', sans-serif;
font-weight: 800;
text-align: center;
}
justify-content: center;
.burger-icon {
width: 2rem;
height: 1.5rem;
display: flex;
flex-direction: column;
justify-content: space-between;
padding-bottom: 0.5rem;
position: relative;
width: 1.75rem;
height: 1rem;
$bar_thickness: 2px;
$bar_transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), top 0.35s cubic-bezier(0.4, 0, 0.2, 1), bottom 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s ease;
div {
border-bottom: solid 1px black;
width: 100%;
position: absolute;
left: 0;
right: 0;
height: $bar_thickness;
background-color: black;
opacity: 1;
transition: opacity 0.2s ease-out, transform 0.4s ease-out;
transform: none;
border-radius: 1px;
transform-origin: center center;
transition: $bar_transition;
}
div:nth-of-type(1) { top: 0; }
div:nth-of-type(2) {
top: 50%;
transform: translateY(-50%);
opacity: 1;
}
div:nth-of-type(3) { bottom: 0; }
}
.burger-icon.open {
div:first-of-type {
transform: translate(0rem, 0.5rem) rotate(-45deg);
div:nth-of-type(1) {
top: 50%;
transform: translateY(-50%) rotate(45deg);
}
div:nth-of-type(2) {
opacity: 0;
}
div:last-of-type {
transform: translate(0rem, -0.5rem) rotate(45deg);
div:nth-of-type(3) {
bottom: 50%;
transform: translateY(50%) rotate(-45deg);
}
}
}
ul:not(.social-media-links--platforms) {
position: absolute;
left: 0;
top: $header_height;
z-index: -1;
display: none;
height: auto;
@@ -172,7 +140,7 @@
text-align: center;
line-height: 1.2;
color: white;
font-family: 'Marianne', sans-serif;
font-family: $marianne;
font-weight: 800;
padding: 4px 6px;
background-color: rgba(255, 255, 255, 0);
@@ -205,8 +173,6 @@
}
}
}
}
}
> li.visible {
@@ -237,86 +203,90 @@
ul.active {
padding: 30px 0;
padding-top: 3rem;
max-height: 100vh;
max-height: calc(100vh - #{$header_height});
overflow-y: scroll;
}
}
#block-erabletheme-navigationprincipale {
margin-top: 0 !important;
}
}
> div:nth-of-type(2) {
z-index: 98;
position: relative;
z-index: 98;
position: relative;
}
}
#block-erabletheme-navigationprincipale {
background: linear-gradient(to bottom, white, rgba(255, 255, 255, 0.8) 50%, transparent);
width: 100%;
display: none;
position: absolute;
padding-top: 1rem;
@media (min-width: $breakpoint_desktop) {
display: block;
}
ul {
width: 100%;
display: flex;
padding: 1rem 10vw;
justify-content: space-around;
li {
font-family: 'Marianne', sans-serif;
font-size: $m_font_size;
padding: 9px 16px;
background-color: white;
transition: background-color 0.3s ease;
&:first-of-type {
display: flex;
justify-items: center;
&::after {
content: url(../assets/icons/arrow-down-s-line.svg);
display: inline-block;
height: 1rem;
width: 1rem;
margin-left: 0.2rem;
}
}
&:hover, &.submenu-open {
background-color: $fluo_green;
}
a {
font-weight: 800;
color: black;
&:is-active {
background-color: $fluo_green;
}
}
}
}
}
#block-erabletheme-leprogramme {
position: fixed;
background-color: white;
max-height: 0vh;
overflow: hidden;
display: none;
transition: max-height 0.6s ease;
> h2 {
background: linear-gradient(to bottom, white, rgba(255, 255, 255, 0.8) 50%, transparent);
width: 100%;
display: none;
}
ul {
padding: 1rem 1.5rem;
li {
font-family: 'Marianne', sans-serif;
font-size: $m_font_size;
margin: 0.5rem 0;
a {
color: black;
&:hover, &.is-active {
font-weight: 800;
}
}
position: absolute;
padding-top: 1rem;
@media (min-width: $breakpoint_desktop) {
display: block;
}
ul {
width: 100%;
display: flex;
padding: 1rem 10vw;
justify-content: space-around;
li {
font-family: $marianne;
font-size: $fs_sm;
padding: 9px 16px;
background-color: white;
transition: background-color 0.3s ease;
&:first-of-type {
display: flex;
justify-items: center;
&::after {
content: url(../assets/icons/arrow-down-s-line.svg);
display: inline-block;
height: 1rem;
width: 1rem;
margin-left: 0.2rem;
}
}
&:hover, &.submenu-open {
background-color: $fluo_green;
}
a {
font-weight: 800;
color: black;
&:is-active {
background-color: $fluo_green;
}
}
}
}
}
#block-erabletheme-leprogramme {
position: fixed;
background-color: white;
max-height: 0vh;
overflow: hidden;
display: none;
transition: max-height 0.6s ease;
> h2 {
display: none;
}
ul {
padding: 1rem 1.5rem;
li {
font-family: $marianne;
font-size: $fs_sm;
margin: 0.5rem 0;
a {
color: black;
&:hover, &.is-active {
font-weight: 800;
}
}
}
}
}
}
}

View File

@@ -31,8 +31,7 @@
<div{{ attributes }}>
{{ title_prefix }}
{% if label %}
<div id="hamburger">
<h2{{ title_attributes }}>{{ label }}</h2>
<div id="hamburger" aria-label="{{ label }}" role="button" tabindex="0">
<div class="burger-icon">
<div></div>
<div></div>

View File

@@ -28,13 +28,15 @@
* @ingroup themeable
*/
#}
<div{{ attributes.addClass('map-projets') }}>
<div class="map-projets-section">
{{ title_prefix }}
{% if label %}
<h2{{ title_attributes }}>{{ label }}</h2>
<h2{{ title_attributes.addClass('map-projets-title') }}>{{ label }}</h2>
{% endif %}
{{ title_suffix }}
{% block content %}
{{ content }}
{% endblock %}
<div{{ attributes.addClass('map-projets') }}>
{% block content %}
{{ content }}
{% endblock %}
</div>
</div>

View File

@@ -30,11 +30,16 @@
#}
<div{{ attributes }}>
<div class="home_introduction">
<div class="logo">
<img src="{{ directory }}/assets/logo_erable.png" alt="Logo Érable" />
<div class="intro_main">
<div class="intro_logo">
<img src="{{ directory }}/assets/logo_erable.png" alt="Logo Érable" />
</div>
<div class="intro_separator" aria-hidden="true"></div>
<div class="intro_body">
{% block content %}
{{ content }}
{% endblock %}
</div>
</div>
{% block content %}
{{ content }}
{% endblock %}
</div>
</div>