From 85a3f0f7be6fb1bfde71ade431bc58b7feccc612 Mon Sep 17 00:00:00 2001 From: isUnknown Date: Tue, 7 Oct 2025 16:21:26 +0200 Subject: [PATCH 01/10] back : add main pages --- site/blueprints/pages/about.yml | 1 + site/blueprints/pages/home.yml | 1 + site/blueprints/pages/impacts.yml | 1 + site/blueprints/pages/investigations.yml | 1 + site/blueprints/pages/resources.yml | 1 + site/blueprints/pages/support.yml | 1 + site/config/config.php | 25 ++++++++++++++++++++++++ site/snippets/footer.php | 2 ++ site/snippets/header.php | 15 ++++++++++++++ site/templates/about.php | 2 ++ site/templates/home.php | 2 ++ site/templates/impacts.php | 2 ++ site/templates/investigations.php | 2 ++ site/templates/resources.php | 2 ++ site/templates/support.php | 2 ++ 15 files changed, 60 insertions(+) create mode 100644 site/blueprints/pages/about.yml create mode 100644 site/blueprints/pages/home.yml create mode 100644 site/blueprints/pages/impacts.yml create mode 100644 site/blueprints/pages/investigations.yml create mode 100644 site/blueprints/pages/resources.yml create mode 100644 site/blueprints/pages/support.yml create mode 100644 site/config/config.php create mode 100644 site/snippets/footer.php create mode 100644 site/snippets/header.php create mode 100644 site/templates/about.php create mode 100644 site/templates/home.php create mode 100644 site/templates/impacts.php create mode 100644 site/templates/investigations.php create mode 100644 site/templates/resources.php create mode 100644 site/templates/support.php diff --git a/site/blueprints/pages/about.yml b/site/blueprints/pages/about.yml new file mode 100644 index 0000000..6f11445 --- /dev/null +++ b/site/blueprints/pages/about.yml @@ -0,0 +1 @@ +title: À propos diff --git a/site/blueprints/pages/home.yml b/site/blueprints/pages/home.yml new file mode 100644 index 0000000..06870fd --- /dev/null +++ b/site/blueprints/pages/home.yml @@ -0,0 +1 @@ +title: Accueil diff --git a/site/blueprints/pages/impacts.yml b/site/blueprints/pages/impacts.yml new file mode 100644 index 0000000..fad6765 --- /dev/null +++ b/site/blueprints/pages/impacts.yml @@ -0,0 +1 @@ +title: Impacts diff --git a/site/blueprints/pages/investigations.yml b/site/blueprints/pages/investigations.yml new file mode 100644 index 0000000..02639fe --- /dev/null +++ b/site/blueprints/pages/investigations.yml @@ -0,0 +1 @@ +title: Investigations diff --git a/site/blueprints/pages/resources.yml b/site/blueprints/pages/resources.yml new file mode 100644 index 0000000..35ad676 --- /dev/null +++ b/site/blueprints/pages/resources.yml @@ -0,0 +1 @@ +title: Resources diff --git a/site/blueprints/pages/support.yml b/site/blueprints/pages/support.yml new file mode 100644 index 0000000..d61b2e9 --- /dev/null +++ b/site/blueprints/pages/support.yml @@ -0,0 +1 @@ +title: Nous soutenir diff --git a/site/config/config.php b/site/config/config.php new file mode 100644 index 0000000..1395ec8 --- /dev/null +++ b/site/config/config.php @@ -0,0 +1,25 @@ + true, + 'thumbs' => [ + 'quality' => 80, + 'presets' => [ + 'grid' => 400, + 'default' => [ + 'width' => 1024, 'format' => 'webp' + ], + 'full' => 2048, + 'format' => 'webp' + ], + 'srcsets' => [ + 'default' => [200, 400, 600, 800, 1024, 1440, 2048], + 'webp' => [ + '300w' => ['width' => 300 * 1.2, 'format' => 'webp'], + '600w' => ['width' => 600 * 1.2, 'format' => 'webp'], + '900w' => ['width' => 900 * 1.2, 'format' => 'webp'], + '1200w' => ['width' => 1200 * 1.2, 'format' => 'webp'], + ], + ], + ], +]; \ No newline at end of file diff --git a/site/snippets/footer.php b/site/snippets/footer.php new file mode 100644 index 0000000..691287b --- /dev/null +++ b/site/snippets/footer.php @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/site/snippets/header.php b/site/snippets/header.php new file mode 100644 index 0000000..e5a82da --- /dev/null +++ b/site/snippets/header.php @@ -0,0 +1,15 @@ + + + + + + + + <?php if ($page->isHomePage() == false): ?> + <?= $page->title() ?> |  + <?php endif ?> + <?= $site->title() ?> + + + + diff --git a/site/templates/about.php b/site/templates/about.php new file mode 100644 index 0000000..8e54641 --- /dev/null +++ b/site/templates/about.php @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/site/templates/home.php b/site/templates/home.php new file mode 100644 index 0000000..8e54641 --- /dev/null +++ b/site/templates/home.php @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/site/templates/impacts.php b/site/templates/impacts.php new file mode 100644 index 0000000..8e54641 --- /dev/null +++ b/site/templates/impacts.php @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/site/templates/investigations.php b/site/templates/investigations.php new file mode 100644 index 0000000..8e54641 --- /dev/null +++ b/site/templates/investigations.php @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/site/templates/resources.php b/site/templates/resources.php new file mode 100644 index 0000000..8e54641 --- /dev/null +++ b/site/templates/resources.php @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/site/templates/support.php b/site/templates/support.php new file mode 100644 index 0000000..8e54641 --- /dev/null +++ b/site/templates/support.php @@ -0,0 +1,2 @@ + + \ No newline at end of file From a1dfa1728c5d10d6560c4cc79d7ca1da13b03893 Mon Sep 17 00:00:00 2001 From: isUnknown Date: Tue, 14 Oct 2025 17:29:13 +0200 Subject: [PATCH 02/10] add nofollow noindex meta tag --- site/snippets/header.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/site/snippets/header.php b/site/snippets/header.php index e5a82da..56196ea 100644 --- a/site/snippets/header.php +++ b/site/snippets/header.php @@ -4,6 +4,7 @@ + <?php if ($page->isHomePage() == false): ?> <?= $page->title() ?> |  @@ -12,4 +13,4 @@ - +

Index

From 904dd353e8dfb8e4e48a21844573b8b1c82cfcb9 Mon Sep 17 00:00:00 2001 From: isUnknown Date: Tue, 14 Oct 2025 17:37:29 +0200 Subject: [PATCH 03/10] fix --- site/snippets/header.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/snippets/header.php b/site/snippets/header.php index 56196ea..cd20f03 100644 --- a/site/snippets/header.php +++ b/site/snippets/header.php @@ -3,8 +3,8 @@ - - + + <?php if ($page->isHomePage() == false): ?> <?= $page->title() ?> |  From ba0df6b5cb6b7ca84257b8526699d1268285677c Mon Sep 17 00:00:00 2001 From: isUnknown <adrien.payet@outlook.com> Date: Tue, 4 Nov 2025 08:33:39 +0100 Subject: [PATCH 04/10] support : integration except products --- assets/css/base/_body.scss | 41 ++ assets/css/base/_responsive.scss | 14 + assets/css/base/_var.scss | 55 ++ assets/css/components/_buttons.scss | 55 ++ assets/css/components/_comments-slider.scss | 74 ++ assets/css/components/_form-newsletter.scss | 81 +++ assets/css/components/_gauge.scss | 51 ++ assets/css/components/_heading.scss | 1 + assets/css/components/_list-socials.scss | 32 + assets/css/components/_nav-tabs.scss | 38 + assets/css/components/_player.scss | 53 ++ assets/css/components/_text.scss | 65 ++ assets/css/pages/dons/_section-donation.scss | 44 ++ assets/css/pages/dons/_section-hero.scss | 24 + assets/css/pages/dons/_section-player.scss | 30 + assets/css/pages/dons/_section-questions.scss | 78 ++ assets/css/pages/dons/_section-socials.scss | 8 + assets/css/pages/dons/_section-store.scss | 40 + assets/css/pages/dons/_sections.scss | 14 + assets/css/partials/_site-header.scss | 110 +++ assets/css/style.css | 681 ++++++++++++++++++ assets/css/style.css.map | 1 + assets/css/style.scss | 29 + assets/icons/arrow-left.svg | 6 + assets/icons/arrow-top-right.svg | 10 + assets/icons/facebook.svg | 7 + assets/icons/linkedin.svg | 7 + assets/icons/play-button.svg | 10 + assets/src/_reset.scss | 1 - assets/style.css | 1 - assets/style.css.map | 1 - assets/style.scss | 0 site/blueprints/blocks/heading.yml | 20 + site/blueprints/blocks/image.yml | 27 + site/blueprints/blocks/text.yml | 10 + site/blueprints/pages/investigation.yml | 104 +++ site/blueprints/pages/investigations.yml | 16 + site/blueprints/pages/product.yml | 1 + site/blueprints/pages/support.yml | 44 ++ site/snippets/header.php | 4 +- site/snippets/nav.php | 25 + site/templates/home.php | 11 + site/templates/investigation.php | 2 + site/templates/support.php | 225 ++++++ 44 files changed, 2146 insertions(+), 5 deletions(-) create mode 100644 assets/css/base/_body.scss create mode 100644 assets/css/base/_responsive.scss create mode 100644 assets/css/base/_var.scss create mode 100644 assets/css/components/_buttons.scss create mode 100644 assets/css/components/_comments-slider.scss create mode 100644 assets/css/components/_form-newsletter.scss create mode 100644 assets/css/components/_gauge.scss create mode 100644 assets/css/components/_heading.scss create mode 100644 assets/css/components/_list-socials.scss create mode 100644 assets/css/components/_nav-tabs.scss create mode 100644 assets/css/components/_player.scss create mode 100644 assets/css/components/_text.scss create mode 100644 assets/css/pages/dons/_section-donation.scss create mode 100644 assets/css/pages/dons/_section-hero.scss create mode 100644 assets/css/pages/dons/_section-player.scss create mode 100644 assets/css/pages/dons/_section-questions.scss create mode 100644 assets/css/pages/dons/_section-socials.scss create mode 100644 assets/css/pages/dons/_section-store.scss create mode 100644 assets/css/pages/dons/_sections.scss create mode 100644 assets/css/partials/_site-header.scss create mode 100644 assets/css/style.css create mode 100644 assets/css/style.css.map create mode 100644 assets/css/style.scss create mode 100644 assets/icons/arrow-left.svg create mode 100644 assets/icons/arrow-top-right.svg create mode 100644 assets/icons/facebook.svg create mode 100644 assets/icons/linkedin.svg create mode 100644 assets/icons/play-button.svg delete mode 100644 assets/src/_reset.scss delete mode 100644 assets/style.css delete mode 100644 assets/style.css.map delete mode 100644 assets/style.scss create mode 100644 site/blueprints/blocks/heading.yml create mode 100644 site/blueprints/blocks/image.yml create mode 100644 site/blueprints/blocks/text.yml create mode 100644 site/blueprints/pages/investigation.yml create mode 100644 site/blueprints/pages/product.yml create mode 100644 site/snippets/nav.php create mode 100644 site/templates/investigation.php diff --git a/assets/css/base/_body.scss b/assets/css/base/_body.scss new file mode 100644 index 0000000..3c0010e --- /dev/null +++ b/assets/css/base/_body.scss @@ -0,0 +1,41 @@ +* { + margin: 0; + padding: 0; + + box-sizing: border-box; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + -o-font-smoothing: antialiased +} +a { + color: currentColor; +} +button{ + background: none; + outline: none; + border: none; + color: var(--color-txt); +} +iframe{ + border: none; +} + +body{ + font-family: var(--font); + line-height: var(--leading-normal); + font-size: var(--fs-normal); + + color: var(--color-txt); + background-color: var(--color-bg); + padding: 0px var(--padding-body); + + width: 100vw; + overflow-x: hidden; +} + + + +//temp +main{ + // padding-top: calc(var(--header-h-shrinked) - var(--padding-body)); +} \ No newline at end of file diff --git a/assets/css/base/_responsive.scss b/assets/css/base/_responsive.scss new file mode 100644 index 0000000..41926a1 --- /dev/null +++ b/assets/css/base/_responsive.scss @@ -0,0 +1,14 @@ +$desktop: "screen and (min-width: 1200px)"; +$medium: "screen and (max-width: 1200px)"; +$small-up: "screen and (min-width: 720px)"; +$small: "screen and (max-width: 720px)"; +$x-small: "screen and (max-width: 560px)"; + + +@media #{$medium}{ + :root{ + --padding: 16px; + --padding-cards: 0.75rem; + --padding-cards-small: 0.5rem; + } +} diff --git a/assets/css/base/_var.scss b/assets/css/base/_var.scss new file mode 100644 index 0000000..8d3c8c6 --- /dev/null +++ b/assets/css/base/_var.scss @@ -0,0 +1,55 @@ +:root{ + --font: Arial, sans-serif; + + // --fs-small: 9px; + // --font-size: 12px; + // --fs-medium: 18px; + // --fs-big: 24px; + + --fs-x-small: 9px; + --fs-small: 13px; + --fs-normal: 18px; + --fs-medium: 22px; + --fs-big: 28px; + --fs-x-big: 36px; + + --leading-tight: 1; + --leading-normal: 1.2; + // --leading-relaxed: 1.4; + // --leading-loose: 1.8; + + --fw-normal: 400; + --fw-medium: 600; + + + --color-bg: #161616; + --color-txt: #FFFFFF; + --color-accent: #00FF00; + --color-accent-50: #e9ffe9; + --color-accent-100: #d8fdd8; + + --grey-100: #d8d8d8; + --grey-300: #B9B9B9; + --grey-400: #969696; + --grey-800: #383838; + + --border: 1px solid var(--color-txt); + + + --header-h: 140px; + --header-h-shrinked: 60px; + + + // responsive + --padding-body: 16px; + + + --radius-small: 4px; + --spacing: 40px; + --h-block: 40px; + + + + + +} \ No newline at end of file diff --git a/assets/css/components/_buttons.scss b/assets/css/components/_buttons.scss new file mode 100644 index 0000000..2fedcdd --- /dev/null +++ b/assets/css/components/_buttons.scss @@ -0,0 +1,55 @@ +.btn--bold .btn--bold__container{ + --size: 28px; + font-size: var(--fs-big); + height: var(--size); + + position: relative; + display: flex; + align-items: center; + gap: 0.75ch; + padding-right: 1ch; + color: var(--color-accent); + + font-weight: var(--fw-medium); + + text-decoration: none; + + cursor: pointer; + + .icon, .txt{ z-index: 10; } + + .icon{ + width: var(--size); + height: var(--size); + display: flex; + align-items: center; + justify-content: center; + padding-top: 1px; + padding-left: 2px; + + svg{ + width: 70%; + fill: var(--color-bg); + } + } + + &::before{ + content: ''; + display: block; + background-color: var(--color-accent); + border-radius: calc(var(--size)/2); + width: var(--size); + height: var(--size); + position: absolute; + left: 0px; + z-index: 0; + transition: width .2s + } + + &:hover{ + color: var(--color-bg); + &::before{ + width: 100%; + } + } +} \ No newline at end of file diff --git a/assets/css/components/_comments-slider.scss b/assets/css/components/_comments-slider.scss new file mode 100644 index 0000000..2e08bfa --- /dev/null +++ b/assets/css/components/_comments-slider.scss @@ -0,0 +1,74 @@ +.comments-slider { + display: flex; + overflow-x: auto; + scroll-snap-type: x mandatory; + scroll-behavior: smooth; + gap: 0; + padding: 0; + scrollbar-width: none; /* Firefox */ + + @media #{$small-up}{ + padding-left: 20%; + flex: 0 0 40%; + } + + } + + .comments-slider::-webkit-scrollbar { + display: none; + } + + .comment { + scroll-snap-align: start; + // background-color: #444; + + @media #{$small}{ + flex: 0 0 calc(100vw - var(--padding-body)*2); /* mobile */ + padding: 0px 2ch; + } + @media #{$small-up}{ + flex: 0 0 40%; + } + + } + + + .comment__text{ + font-size: var(--fs-medium); + font-weight: var(--fw-medium); + line-height: 1; + max-width: 40ch; + text-align: center; + } + + .comment__name { + margin-top: calc(var(--spacing)*0.5); + text-align: center; + } + + + + + + /* Dots */ + .comments-slider__dots { + display: flex; + @media #{$small-up}{ justify-content: center; } + @media #{$small}{ justify-content: flex-end; } + margin-top: 0.5rem; + gap: 0.4rem; + margin-top: calc(var(--spacing)*1.5); + } + .comments-slider__dots button { + width: 10px; + height: 10px; + border-radius: 50%; + border: none; + background: var(--grey-400); + cursor: pointer; + transition: background 0.3s; + } + .comments-slider__dots button.active { + background: var(--color-txt); + } + \ No newline at end of file diff --git a/assets/css/components/_form-newsletter.scss b/assets/css/components/_form-newsletter.scss new file mode 100644 index 0000000..f517914 --- /dev/null +++ b/assets/css/components/_form-newsletter.scss @@ -0,0 +1,81 @@ +.form__newsletter{ + --size: 24px; + + position: relative; + display: flex; + align-items: center; + + max-width: 36ch; + + margin: calc(var(--spacing)*1) auto; + margin-top: calc(var(--spacing)*1.5); + + + input[type="email"]{ + + height: var(--h-block); + width: 100%; + border-radius: calc(var(--h-block)*0.5); + outline: none; + border: none; + padding: 0 1ch; + + font-size: var(--fs-medium); + z-index: 40; + &::placeholder{ + font-size: var(--fs-medium); + } + + &:focus{ + outline: 3px solid var(--grey-400); + } + + + } + + + button[type="submit"].btn--bold{ + + z-index: 50; + position: absolute; + right: 3px; + + .btn--bold__container{ + z-index: 50; + padding-right: 0; + + &::before{ + left: auto; + right: 0; + } + + .txt{ + font-size: var(--fs-medium); + display: none; + padding-left: 1ch; + } + + &:hover{ + .txt{ + display: block; + } + } + } + + + // shadow on input + &::before{ + content: ''; + display: block; + width: 120px; + height: 30px; + background: linear-gradient(90deg,transparent 0%, var(--color-txt) 80%); + position: absolute; + left: -110px; + z-index: 40; + } + } + + + +} \ No newline at end of file diff --git a/assets/css/components/_gauge.scss b/assets/css/components/_gauge.scss new file mode 100644 index 0000000..849f48c --- /dev/null +++ b/assets/css/components/_gauge.scss @@ -0,0 +1,51 @@ +.gauge__container{ + width: 100%; + display: flex; + flex-wrap: wrap; + justify-content: space-between; +} + +#gauge{ + width: 100%; + margin-bottom: calc(var(--spacing)*0.25); + height: calc(var(--h-block)*0.5); + border-radius: calc(var(--h-block)*0.25); + background-color: var(--grey-400); + position: relative; + overflow: hidden; + &::before{ + content: ''; + display: block; + height: calc(var(--h-block)*0.5); + border-radius: calc(var(--h-block)*0.25); + width: 0%; + background-color: var(--color-txt); + position: absolute; + top: 0; + left: 0; + animation: fillGauge 1s ease forwards; + } + +} + +@keyframes fillGauge { + from { + width: 0%; + } + to { + width: var(--pourcent); + } +} + + +.gauge--infos{ + .property{ + font-size: var(--fs-small); + padding-bottom: 3px; + } + + &:last-of-type{ + text-align: right; + } +} + diff --git a/assets/css/components/_heading.scss b/assets/css/components/_heading.scss new file mode 100644 index 0000000..163b4d3 --- /dev/null +++ b/assets/css/components/_heading.scss @@ -0,0 +1 @@ + diff --git a/assets/css/components/_list-socials.scss b/assets/css/components/_list-socials.scss new file mode 100644 index 0000000..4f9c9d8 --- /dev/null +++ b/assets/css/components/_list-socials.scss @@ -0,0 +1,32 @@ +.list-socials{ + list-style-type: none; + + li { + margin-bottom: calc(var(--spacing)*0.25); + .link--external{ + display: flex; + align-items: center; + gap: 1ch; + text-decoration: none; + + + + .icon svg { + width: 25px; + fill: var(--color-txt); + } + + .arrow svg{ + position: relative; + top: 3px; + width: 12px; + fill: var(--grey-400); + } + + + } + } + + + +} \ No newline at end of file diff --git a/assets/css/components/_nav-tabs.scss b/assets/css/components/_nav-tabs.scss new file mode 100644 index 0000000..497c6e3 --- /dev/null +++ b/assets/css/components/_nav-tabs.scss @@ -0,0 +1,38 @@ +.nav--tabs{ + height: var(--h-block); + width: auto; + border: var(--border); + border-radius: var(--radius-small); + overflow: hidden; + + + display: inline-flex; + + width: auto; + margin: 0 auto; + margin-bottom: var(--spacing); + + + .nav--tabs__btn{ + font-size: var(--fs-small); + padding: 0 1ch; + + &.is-selected{ + background-color: var(--color-txt); + color: var(--color-bg); + } + + &:not(.is-selected):hover{ + background-color: var(--grey-800); + cursor: pointer; + } + + } + + .nav--tabs__btn + .nav--tabs__btn{ + border-left: var(--border); + + } + + +} \ No newline at end of file diff --git a/assets/css/components/_player.scss b/assets/css/components/_player.scss new file mode 100644 index 0000000..95a4e7f --- /dev/null +++ b/assets/css/components/_player.scss @@ -0,0 +1,53 @@ +.player__container { + width: 100%; + height: 100%; + + + + .player__element { + width: 100%; + height: 100%; + display: grid; + place-items: center; + overflow: hidden; + // display: none; + + + .player__btn { + svg { + fill: var(--color-txt); + width: 100%; + } + + position: absolute; + width: 60px; + height: 60px; + cursor: pointer; + } + + img, + video { + width: 100%; + height: 100%; + object-fit: cover; + } + + } + + + .player__iframe { + display: none; + width: 100%; + height: 100%; + iframe{ + width: 100%; + height: 100%; + + } + } + + + +} + + diff --git a/assets/css/components/_text.scss b/assets/css/components/_text.scss new file mode 100644 index 0000000..ae52854 --- /dev/null +++ b/assets/css/components/_text.scss @@ -0,0 +1,65 @@ +#page-don{ + + // text ----------------------------------------- + + .p__baseline-big{ + font-size: var(--fs-big); + font-weight: var(--fw-medium); + line-height: var(--leading-tight); + text-align: center; + margin: calc(var(--spacing)*1.75) 0; + } + + .p__baseline{ + font-size: var(--fs-medium); + font-weight: var(--fw-medium); + line-height: var(--leading-tight); + text-align: center; + margin: var(--spacing) 0; + } + + .p__details{ + font-size: var(--fs-small); + margin-bottom: 0.5em; + color: var(--grey-400); + } + + + // heading --------------------------------------------- + + .hero-heading{ + font-size: var(--fs-x-big); + line-height: var(--leading-tight); + font-weight: var(--fw-medium); + display: inline; + background: var(--color-txt); + color: var(--color-bg); + padding: 0 0.3em; + box-decoration-break: clone; + -webkit-box-decoration-break: clone; + text-align: center; + } + + .section__heading{ + font-size: var(--fs-medium); + font-weight: var(--fw-medium); + line-height: 1; + + height: calc(var(--spacing)*3); + border-bottom: var(--border); + text-align: center; + display: flex; + align-items: center; + justify-content: center; + } + + .subsection__heading{ + font-size: var(--fs-normal); + font-weight: var(--fw-medium); + line-height: 1; + margin-top: calc(var(--spacing)*0.75); + margin-bottom: calc(var(--spacing)*1); + } + + +} \ No newline at end of file diff --git a/assets/css/pages/dons/_section-donation.scss b/assets/css/pages/dons/_section-donation.scss new file mode 100644 index 0000000..0ae6977 --- /dev/null +++ b/assets/css/pages/dons/_section-donation.scss @@ -0,0 +1,44 @@ +#section__donation{ + display: flex; + flex-direction: column; + + + + .btn--donation__container{ + display: grid; + grid-template-columns: 1fr 1fr; + grid-gap: var(--padding-body); + margin-bottom: calc(var(--spacing)*0.75); + + .btn--donation__grow-2{ + grid-column: span 2; + } + } + + + .btn--donation{ + background-color: var(--color-txt); + color: var(--color-bg); + border-radius: var(--radius-small); + height: calc(var(--h-block)*2); + + .bold{ + font-size: var(--fs-medium); + font-weight: var(--fw-medium); + margin-bottom: 0.25em; + } + + .small{ + font-size: var(--fs-small); + } + + &:hover{ + background-color: var(--color-accent-50); + // outline: 4px solid var(--color-accent); + cursor: pointer; + } + + } + + +} \ No newline at end of file diff --git a/assets/css/pages/dons/_section-hero.scss b/assets/css/pages/dons/_section-hero.scss new file mode 100644 index 0000000..86b1aa8 --- /dev/null +++ b/assets/css/pages/dons/_section-hero.scss @@ -0,0 +1,24 @@ +#section__hero{ + + + .hero-heading__container{ + text-align: center; + margin-top: calc(var(--spacing)*1.5); + margin-bottom: calc(var(--spacing)*1.5); + } + + + + .btn--bold{ + display: block; + margin: var(--spacing) auto; + margin-bottom: calc(var(--spacing)*1.5); + } + + .jauge__container{ + margin-top: calc(var(--spacing)*1.5); + } + + + +} \ No newline at end of file diff --git a/assets/css/pages/dons/_section-player.scss b/assets/css/pages/dons/_section-player.scss new file mode 100644 index 0000000..b6f6422 --- /dev/null +++ b/assets/css/pages/dons/_section-player.scss @@ -0,0 +1,30 @@ +#section__player{ + + position: relative; + left: calc(var(--padding-body)*-1); + + @media #{$small}{ + width: 100vw; + // aspect-ratio: 1/1; + .player__container, .player__element, .player__iframe, iframe{ + width: 100%; + height: 75vh; + overflow: hidden; + } + + } + + @media #{$small-up}{ + position: relative; + width: 100vw; + height: 60vh; + .player__container, .player__element, .player__iframe, iframe{ + width: 100%; + height: 60vh; + overflow: hidden; + } + } + + + +} \ No newline at end of file diff --git a/assets/css/pages/dons/_section-questions.scss b/assets/css/pages/dons/_section-questions.scss new file mode 100644 index 0000000..4564232 --- /dev/null +++ b/assets/css/pages/dons/_section-questions.scss @@ -0,0 +1,78 @@ +#section__questions{ + details{ + border-bottom: var(--border); + + + summary{ + height: calc(var(--h-block)*1); + display: flex; + align-items: center; + justify-content: space-between; + cursor: pointer; + + &::after{ + content: "▶"; + font-size: 0.8em; + color: var(--grey-400); + } + } + + p{ + padding-top: calc(var(--spacing)*0.25); + margin-bottom: var(--spacing); + border-top: var(--border); + } + + + &::details-content { + + max-height: 0; + transition: max-height ease-in .5s; + overflow: hidden; + + // display: grid; + // grid-template-rows: 0fr; + // overflow: hidden; + // transition: grid-template-rows 1s; + + } + + &[open]{ + + + + &::details-content { + max-height: 1000px; + filter: none; + } + + + summary::after{ + transform: rotate(90deg); + transform-origin: center; + } + } + } + + + + .btn--bold{ + display: block; + margin: calc(var(--spacing) * 1.5) auto; + margin-bottom: 0; + } + + +} + + +// @keyframes fadeInDown { +// 0% { +// opacity: 0; +// transform: translateY(-1.25em); +// } +// 100% { +// opacity: 1; +// transform: translateY(0); +// } +// } \ No newline at end of file diff --git a/assets/css/pages/dons/_section-socials.scss b/assets/css/pages/dons/_section-socials.scss new file mode 100644 index 0000000..59227b1 --- /dev/null +++ b/assets/css/pages/dons/_section-socials.scss @@ -0,0 +1,8 @@ +#section__socials{ + + .list-socials{ + columns: 2; + + } + +} \ No newline at end of file diff --git a/assets/css/pages/dons/_section-store.scss b/assets/css/pages/dons/_section-store.scss new file mode 100644 index 0000000..4f2500f --- /dev/null +++ b/assets/css/pages/dons/_section-store.scss @@ -0,0 +1,40 @@ +#section__store{ + + + .store__product{ + + + margin-top: calc(var(--spacing)*1.5); + margin-bottom: calc(var(--spacing)*0.5); + position: relative; + + figure{ + aspect-ratio: 4/3; + background-color: var(--color-bg); + background-color: var(--data-bg); + margin-bottom: calc(var(--spacing)*0.5); + + + } + img{ + width: 100%; + height: 100%; + object-fit: contain; + } + + a{ + text-decoration: none; + } + + .link-block{ + display: block; + height: 100%; + width: 100%; + position: absolute; + top: 0; + left: 0; + cursor: pointer; + } + } + +} \ No newline at end of file diff --git a/assets/css/pages/dons/_sections.scss b/assets/css/pages/dons/_sections.scss new file mode 100644 index 0000000..08de315 --- /dev/null +++ b/assets/css/pages/dons/_sections.scss @@ -0,0 +1,14 @@ +.section__page-don:not(#section__player), .subsection__page-don{ + border-bottom: var(--border); + padding-bottom: calc(var(--spacing)*2); +} + + + +@media #{$small}{ + + #section__hero, #section__comments{ + padding-bottom: calc(var(--spacing)*0.5)!important; + } + +} \ No newline at end of file diff --git a/assets/css/partials/_site-header.scss b/assets/css/partials/_site-header.scss new file mode 100644 index 0000000..c45507a --- /dev/null +++ b/assets/css/partials/_site-header.scss @@ -0,0 +1,110 @@ +#site-header{ + + position: fixed; + left: 0px; + top: 0px; + z-index: 100000; + + width: 100vw; + height: var(--header-h); + padding: 0 var(--padding-body); + + background-color: transparent; + border-bottom: var(--border); + border-color: transparent; + + // display: grid; + // grid-template-columns: 1fr; + + display: flex; + align-items: center; + justify-content: space-between; + + .burger svg{ + fill: var(--color-txt); + width: 40px; + } + + + + .site-title{ + display: flex; + width: 120px; + overflow: hidden; + svg{ + fill: var(--color-txt); + + } + } + + + + nav{ + height: 0; + overflow: hidden; + opacity: 0; + } + nav ul{ + height: 100%; + display: flex; + align-items: center; + justify-content: center; + gap: 2ch; + list-style: none; + } + + + .header-left, .header-right{ + width: 100px; + } + + + .header-center{ + + display: flex; + flex-direction: column; + align-items: center; + + + } + + + #go-to-panier{ + display: flex; + justify-content: flex-end; + align-items: center; + gap: 1ch; + text-decoration: none; + + + #go-to-panier__nbr{ + + min-width: 2.6ch; + height: 2.6ch; + border-radius: 1.3ch; + border: var(--border); + display: flex; + align-items: center; + justify-content: center; + padding: 0 6px; + } + } + + + &.is-shrinked{ + background-color: var(--color-bg); + height: var(--header-h-shrinked); + transition: ease-in .3s; + border-color: var(--color-txt); + + nav{ + height: var(--h-block); + opacity: 1; + } + + .site-title{ + opacity: 0; + height: 0; + } + } +} \ No newline at end of file diff --git a/assets/css/style.css b/assets/css/style.css new file mode 100644 index 0000000..c1720e0 --- /dev/null +++ b/assets/css/style.css @@ -0,0 +1,681 @@ +@charset "UTF-8"; +:root { + --font: Arial, sans-serif; + --fs-x-small: 9px; + --fs-small: 13px; + --fs-normal: 18px; + --fs-medium: 22px; + --fs-big: 28px; + --fs-x-big: 36px; + --leading-tight: 1; + --leading-normal: 1.2; + --fw-normal: 400; + --fw-medium: 600; + --color-bg: #161616; + --color-txt: #FFFFFF; + --color-accent: #00FF00; + --color-accent-50: #e9ffe9; + --color-accent-100: #d8fdd8; + --grey-100: #d8d8d8; + --grey-300: #B9B9B9; + --grey-400: #969696; + --grey-800: #383838; + --border: 1px solid var(--color-txt); + --header-h: 140px; + --header-h-shrinked: 60px; + --padding-body: 16px; + --radius-small: 4px; + --spacing: 40px; + --h-block: 40px; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + -o-font-smoothing: antialiased; +} + +a { + color: currentColor; +} + +button { + background: none; + outline: none; + border: none; + color: var(--color-txt); +} + +iframe { + border: none; +} + +body { + font-family: var(--font); + line-height: var(--leading-normal); + font-size: var(--fs-normal); + color: var(--color-txt); + background-color: var(--color-bg); + padding: 0px var(--padding-body); + width: 100vw; + overflow-x: hidden; +} + +@media screen and (max-width: 1200px) { + :root { + --padding: 16px; + --padding-cards: 0.75rem; + --padding-cards-small: 0.5rem; + } +} +#page-don .p__baseline-big { + font-size: var(--fs-big); + font-weight: var(--fw-medium); + line-height: var(--leading-tight); + text-align: center; + margin: calc(var(--spacing) * 1.75) 0; +} +#page-don .p__baseline { + font-size: var(--fs-medium); + font-weight: var(--fw-medium); + line-height: var(--leading-tight); + text-align: center; + margin: var(--spacing) 0; +} +#page-don .p__details { + font-size: var(--fs-small); + margin-bottom: 0.5em; + color: var(--grey-400); +} +#page-don .hero-heading { + font-size: var(--fs-x-big); + line-height: var(--leading-tight); + font-weight: var(--fw-medium); + display: inline; + background: var(--color-txt); + color: var(--color-bg); + padding: 0 0.3em; + box-decoration-break: clone; + -webkit-box-decoration-break: clone; + text-align: center; +} +#page-don .section__heading { + font-size: var(--fs-medium); + font-weight: var(--fw-medium); + line-height: 1; + height: calc(var(--spacing) * 3); + border-bottom: var(--border); + text-align: center; + display: flex; + align-items: center; + justify-content: center; +} +#page-don .subsection__heading { + font-size: var(--fs-normal); + font-weight: var(--fw-medium); + line-height: 1; + margin-top: calc(var(--spacing) * 0.75); + margin-bottom: calc(var(--spacing) * 1); +} + +.btn--bold .btn--bold__container { + --size: 28px; + font-size: var(--fs-big); + height: var(--size); + position: relative; + display: flex; + align-items: center; + gap: 0.75ch; + padding-right: 1ch; + color: var(--color-accent); + font-weight: var(--fw-medium); + text-decoration: none; + cursor: pointer; +} +.btn--bold .btn--bold__container .icon, .btn--bold .btn--bold__container .txt { + z-index: 10; +} +.btn--bold .btn--bold__container .icon { + width: var(--size); + height: var(--size); + display: flex; + align-items: center; + justify-content: center; + padding-top: 1px; + padding-left: 2px; +} +.btn--bold .btn--bold__container .icon svg { + width: 70%; + fill: var(--color-bg); +} +.btn--bold .btn--bold__container::before { + content: ""; + display: block; + background-color: var(--color-accent); + border-radius: calc(var(--size) / 2); + width: var(--size); + height: var(--size); + position: absolute; + left: 0px; + z-index: 0; + transition: width 0.2s; +} +.btn--bold .btn--bold__container:hover { + color: var(--color-bg); +} +.btn--bold .btn--bold__container:hover::before { + width: 100%; +} + +.nav--tabs { + height: var(--h-block); + width: auto; + border: var(--border); + border-radius: var(--radius-small); + overflow: hidden; + display: inline-flex; + width: auto; + margin: 0 auto; + margin-bottom: var(--spacing); +} +.nav--tabs .nav--tabs__btn { + font-size: var(--fs-small); + padding: 0 1ch; +} +.nav--tabs .nav--tabs__btn.is-selected { + background-color: var(--color-txt); + color: var(--color-bg); +} +.nav--tabs .nav--tabs__btn:not(.is-selected):hover { + background-color: var(--grey-800); + cursor: pointer; +} +.nav--tabs .nav--tabs__btn + .nav--tabs__btn { + border-left: var(--border); +} + +.list-socials { + list-style-type: none; +} +.list-socials li { + margin-bottom: calc(var(--spacing) * 0.25); +} +.list-socials li .link--external { + display: flex; + align-items: center; + gap: 1ch; + text-decoration: none; +} +.list-socials li .link--external .icon svg { + width: 25px; + fill: var(--color-txt); +} +.list-socials li .link--external .arrow svg { + position: relative; + top: 3px; + width: 12px; + fill: var(--grey-400); +} + +.player__container { + width: 100%; + height: 100%; +} +.player__container .player__element { + width: 100%; + height: 100%; + display: grid; + place-items: center; + overflow: hidden; +} +.player__container .player__element .player__btn { + position: absolute; + width: 60px; + height: 60px; + cursor: pointer; +} +.player__container .player__element .player__btn svg { + fill: var(--color-txt); + width: 100%; +} +.player__container .player__element img, +.player__container .player__element video { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; +} +.player__container .player__iframe { + display: none; + width: 100%; + height: 100%; +} +.player__container .player__iframe iframe { + width: 100%; + height: 100%; +} + +.gauge__container { + width: 100%; + display: flex; + flex-wrap: wrap; + justify-content: space-between; +} + +#gauge { + width: 100%; + margin-bottom: calc(var(--spacing) * 0.25); + height: calc(var(--h-block) * 0.5); + border-radius: calc(var(--h-block) * 0.25); + background-color: var(--grey-400); + position: relative; + overflow: hidden; +} +#gauge::before { + content: ""; + display: block; + height: calc(var(--h-block) * 0.5); + border-radius: calc(var(--h-block) * 0.25); + width: 0%; + background-color: var(--color-txt); + position: absolute; + top: 0; + left: 0; + animation: fillGauge 1s ease forwards; +} + +@keyframes fillGauge { + from { + width: 0%; + } + to { + width: var(--pourcent); + } +} +.gauge--infos .property { + font-size: var(--fs-small); + padding-bottom: 3px; +} +.gauge--infos:last-of-type { + text-align: right; +} + +.form__newsletter { + --size: 24px; + position: relative; + display: flex; + align-items: center; + max-width: 36ch; + margin: calc(var(--spacing) * 1) auto; + margin-top: calc(var(--spacing) * 1.5); +} +.form__newsletter input[type=email] { + height: var(--h-block); + width: 100%; + border-radius: calc(var(--h-block) * 0.5); + outline: none; + border: none; + padding: 0 1ch; + font-size: var(--fs-medium); + z-index: 40; +} +.form__newsletter input[type=email]::-moz-placeholder { + font-size: var(--fs-medium); +} +.form__newsletter input[type=email]::placeholder { + font-size: var(--fs-medium); +} +.form__newsletter input[type=email]:focus { + outline: 3px solid var(--grey-400); +} +.form__newsletter button[type=submit].btn--bold { + z-index: 50; + position: absolute; + right: 3px; +} +.form__newsletter button[type=submit].btn--bold .btn--bold__container { + z-index: 50; + padding-right: 0; +} +.form__newsletter button[type=submit].btn--bold .btn--bold__container::before { + left: auto; + right: 0; +} +.form__newsletter button[type=submit].btn--bold .btn--bold__container .txt { + font-size: var(--fs-medium); + display: none; + padding-left: 1ch; +} +.form__newsletter button[type=submit].btn--bold .btn--bold__container:hover .txt { + display: block; +} +.form__newsletter button[type=submit].btn--bold::before { + content: ""; + display: block; + width: 120px; + height: 30px; + background: linear-gradient(90deg, transparent 0%, var(--color-txt) 80%); + position: absolute; + left: -110px; + z-index: 40; +} + +.comments-slider { + display: flex; + overflow-x: auto; + scroll-snap-type: x mandatory; + scroll-behavior: smooth; + gap: 0; + padding: 0; + scrollbar-width: none; /* Firefox */ +} +@media screen and (min-width: 720px) { + .comments-slider { + padding-left: 20%; + flex: 0 0 40%; + } +} + +.comments-slider::-webkit-scrollbar { + display: none; +} + +.comment { + scroll-snap-align: start; +} +@media screen and (max-width: 720px) { + .comment { + flex: 0 0 calc(100vw - var(--padding-body) * 2); /* mobile */ + padding: 0px 2ch; + } +} +@media screen and (min-width: 720px) { + .comment { + flex: 0 0 40%; + } +} + +.comment__text { + font-size: var(--fs-medium); + font-weight: var(--fw-medium); + line-height: 1; + max-width: 40ch; + text-align: center; +} + +.comment__name { + margin-top: calc(var(--spacing) * 0.5); + text-align: center; +} + +/* Dots */ +.comments-slider__dots { + display: flex; + margin-top: 0.5rem; + gap: 0.4rem; + margin-top: calc(var(--spacing) * 1.5); +} +@media screen and (min-width: 720px) { + .comments-slider__dots { + justify-content: center; + } +} +@media screen and (max-width: 720px) { + .comments-slider__dots { + justify-content: flex-end; + } +} + +.comments-slider__dots button { + width: 10px; + height: 10px; + border-radius: 50%; + border: none; + background: var(--grey-400); + cursor: pointer; + transition: background 0.3s; +} + +.comments-slider__dots button.active { + background: var(--color-txt); +} + +#site-header { + position: fixed; + left: 0px; + top: 0px; + z-index: 100000; + width: 100vw; + height: var(--header-h); + padding: 0 var(--padding-body); + background-color: transparent; + border-bottom: var(--border); + border-color: transparent; + display: flex; + align-items: center; + justify-content: space-between; +} +#site-header .burger svg { + fill: var(--color-txt); + width: 40px; +} +#site-header .site-title { + display: flex; + width: 120px; + overflow: hidden; +} +#site-header .site-title svg { + fill: var(--color-txt); +} +#site-header nav { + height: 0; + overflow: hidden; + opacity: 0; +} +#site-header nav ul { + height: 100%; + display: flex; + align-items: center; + justify-content: center; + gap: 2ch; + list-style: none; +} +#site-header .header-left, #site-header .header-right { + width: 100px; +} +#site-header .header-center { + display: flex; + flex-direction: column; + align-items: center; +} +#site-header #go-to-panier { + display: flex; + justify-content: flex-end; + align-items: center; + gap: 1ch; + text-decoration: none; +} +#site-header #go-to-panier #go-to-panier__nbr { + min-width: 2.6ch; + height: 2.6ch; + border-radius: 1.3ch; + border: var(--border); + display: flex; + align-items: center; + justify-content: center; + padding: 0 6px; +} +#site-header.is-shrinked { + background-color: var(--color-bg); + height: var(--header-h-shrinked); + transition: ease-in 0.3s; + border-color: var(--color-txt); +} +#site-header.is-shrinked nav { + height: var(--h-block); + opacity: 1; +} +#site-header.is-shrinked .site-title { + opacity: 0; + height: 0; +} + +.section__page-don:not(#section__player), .subsection__page-don { + border-bottom: var(--border); + padding-bottom: calc(var(--spacing) * 2); +} + +@media screen and (max-width: 720px) { + #section__hero, #section__comments { + padding-bottom: calc(var(--spacing) * 0.5) !important; + } +} +#section__player { + position: relative; + left: calc(var(--padding-body) * -1); +} +@media screen and (max-width: 720px) { + #section__player { + width: 100vw; + } + #section__player .player__container, #section__player .player__element, #section__player .player__iframe, #section__player iframe { + width: 100%; + height: 75vh; + overflow: hidden; + } +} +@media screen and (min-width: 720px) { + #section__player { + position: relative; + width: 100vw; + height: 60vh; + } + #section__player .player__container, #section__player .player__element, #section__player .player__iframe, #section__player iframe { + width: 100%; + height: 60vh; + overflow: hidden; + } +} + +#section__hero .hero-heading__container { + text-align: center; + margin-top: calc(var(--spacing) * 1.5); + margin-bottom: calc(var(--spacing) * 1.5); +} +#section__hero .btn--bold { + display: block; + margin: var(--spacing) auto; + margin-bottom: calc(var(--spacing) * 1.5); +} +#section__hero .jauge__container { + margin-top: calc(var(--spacing) * 1.5); +} + +#section__store .store__product { + margin-top: calc(var(--spacing) * 1.5); + margin-bottom: calc(var(--spacing) * 0.5); + position: relative; +} +#section__store .store__product figure { + aspect-ratio: 4/3; + background-color: var(--color-bg); + background-color: var(--data-bg); + margin-bottom: calc(var(--spacing) * 0.5); +} +#section__store .store__product img { + width: 100%; + height: 100%; + -o-object-fit: contain; + object-fit: contain; +} +#section__store .store__product a { + text-decoration: none; +} +#section__store .store__product .link-block { + display: block; + height: 100%; + width: 100%; + position: absolute; + top: 0; + left: 0; + cursor: pointer; +} + +#section__donation { + display: flex; + flex-direction: column; +} +#section__donation .btn--donation__container { + display: grid; + grid-template-columns: 1fr 1fr; + grid-gap: var(--padding-body); + margin-bottom: calc(var(--spacing) * 0.75); +} +#section__donation .btn--donation__container .btn--donation__grow-2 { + grid-column: span 2; +} +#section__donation .btn--donation { + background-color: var(--color-txt); + color: var(--color-bg); + border-radius: var(--radius-small); + height: calc(var(--h-block) * 2); +} +#section__donation .btn--donation .bold { + font-size: var(--fs-medium); + font-weight: var(--fw-medium); + margin-bottom: 0.25em; +} +#section__donation .btn--donation .small { + font-size: var(--fs-small); +} +#section__donation .btn--donation:hover { + background-color: var(--color-accent-50); + cursor: pointer; +} + +#section__questions details { + border-bottom: var(--border); +} +#section__questions details summary { + height: calc(var(--h-block) * 1); + display: flex; + align-items: center; + justify-content: space-between; + cursor: pointer; +} +#section__questions details summary::after { + content: "▶"; + font-size: 0.8em; + color: var(--grey-400); +} +#section__questions details p { + padding-top: calc(var(--spacing) * 0.25); + margin-bottom: var(--spacing); + border-top: var(--border); +} +#section__questions details::details-content { + max-height: 0; + transition: max-height ease-in 0.5s; + overflow: hidden; +} +#section__questions details[open]::details-content { + max-height: 1000px; + filter: none; +} +#section__questions details[open] summary::after { + transform: rotate(90deg); + transform-origin: center; +} +#section__questions .btn--bold { + display: block; + margin: calc(var(--spacing) * 1.5) auto; + margin-bottom: 0; +} + +#section__socials .list-socials { + -moz-columns: 2; + columns: 2; +}/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/assets/css/style.css.map b/assets/css/style.css.map new file mode 100644 index 0000000..5e06ab6 --- /dev/null +++ b/assets/css/style.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["style.css","base/_var.scss","base/_body.scss","base/_responsive.scss","components/_text.scss","components/_buttons.scss","components/_nav-tabs.scss","components/_list-socials.scss","components/_player.scss","components/_gauge.scss","components/_form-newsletter.scss","components/_comments-slider.scss","partials/_site-header.scss","pages/dons/_sections.scss","pages/dons/_section-player.scss","pages/dons/_section-hero.scss","pages/dons/_section-store.scss","pages/dons/_section-donation.scss","pages/dons/_section-questions.scss","pages/dons/_section-socials.scss"],"names":[],"mappings":"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","file":"style.css"} \ No newline at end of file diff --git a/assets/css/style.scss b/assets/css/style.scss new file mode 100644 index 0000000..f7744ef --- /dev/null +++ b/assets/css/style.scss @@ -0,0 +1,29 @@ +@charset "UTF-8"; +@import "base/var"; +@import "base/body"; +@import "base/responsive"; + +@import "components/text"; +@import "components/heading"; +@import "components/buttons"; +@import "components/nav-tabs"; +@import "components/list-socials"; + +@import "components/player"; +@import "components/gauge"; +@import "components/form-newsletter"; +@import "components/comments-slider"; + + +@import "partials/site-header"; + + +@import "pages/dons/sections"; +@import "pages/dons/section-player"; +@import "pages/dons/section-hero"; +@import "pages/dons/section-store"; +@import "pages/dons/section-donation"; +@import "pages/dons/section-questions"; +@import "pages/dons/section-socials"; + + diff --git a/assets/icons/arrow-left.svg b/assets/icons/arrow-left.svg new file mode 100644 index 0000000..09437b0 --- /dev/null +++ b/assets/icons/arrow-left.svg @@ -0,0 +1,6 @@ +<svg width="34px" height="34px" viewBox="0 0 16 13" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"> + <rect id="Artboard1" x="0" y="0" width="15.43" height="12.636" style="fill:none;"/> + <g id="Artboard11" serif:id="Artboard1"> + <path d="M0,7.29L0,5.373L9.801,5.373C10.67,5.373 11.757,5.4 12.387,5.427C11.952,5.022 11.366,4.455 10.888,3.969L8.432,1.404L9.366,0L15.43,6.318L9.366,12.636L8.432,11.232L10.888,8.667C11.366,8.181 11.952,7.614 12.387,7.236C11.757,7.263 10.67,7.29 9.801,7.29L0,7.29Z" style="fill-rule:nonzero;"/> + </g> +</svg> diff --git a/assets/icons/arrow-top-right.svg b/assets/icons/arrow-top-right.svg new file mode 100644 index 0000000..e46faa9 --- /dev/null +++ b/assets/icons/arrow-top-right.svg @@ -0,0 +1,10 @@ +<svg width="34px" height="34px" viewBox="0 0 34 34" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"> + <g transform="matrix(2.125,0,0,2.125,0,3.1875)"> + <rect x="0" y="0" width="15.43" height="12.636" style="fill:none;"/> + </g> + <g transform="matrix(1.5026,-1.5026,1.5026,1.5026,-4.69164,18.7124)"> + <g> + <path d="M0,7.29L0,5.373L9.801,5.373C10.67,5.373 11.757,5.4 12.387,5.427C11.952,5.022 11.366,4.455 10.888,3.969L8.432,1.404L9.366,0L15.43,6.318L9.366,12.636L8.432,11.232L10.888,8.667C11.366,8.181 11.952,7.614 12.387,7.236C11.757,7.263 10.67,7.29 9.801,7.29L0,7.29Z" style="fill-rule:nonzero;"/> + </g> + </g> +</svg> diff --git a/assets/icons/facebook.svg b/assets/icons/facebook.svg new file mode 100644 index 0000000..2ef5a54 --- /dev/null +++ b/assets/icons/facebook.svg @@ -0,0 +1,7 @@ +<svg width="34px" height="34px" viewBox="0 0 34 34" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"> + <g transform="matrix(0.999997,0,0,1,-0.499614,-0.41986)"> + <g id="facebook"> + <path d="M17.5,2.099C8.995,2.099 2.1,8.994 2.1,17.499C2.1,25.22 7.787,31.595 15.198,32.708L15.198,21.58L11.388,21.58L11.388,17.532L15.198,17.532L15.198,14.839C15.198,10.379 17.371,8.421 21.077,8.421C22.853,8.421 23.791,8.553 24.236,8.613L24.236,12.146L21.707,12.146C20.134,12.146 19.584,13.638 19.584,15.32L19.584,17.532L24.196,17.532L23.57,21.58L19.584,21.58L19.584,32.741C27.101,31.721 32.9,25.295 32.9,17.499C32.9,8.994 26.005,2.099 17.5,2.099Z" style="fill-rule:nonzero;"/> + </g> + </g> +</svg> diff --git a/assets/icons/linkedin.svg b/assets/icons/linkedin.svg new file mode 100644 index 0000000..7142601 --- /dev/null +++ b/assets/icons/linkedin.svg @@ -0,0 +1,7 @@ +<svg width="34px" height="34px" viewBox="0 0 34 34" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"> + <g transform="matrix(1.22222,0,0,1.22222,0.500004,0.500006)"> + <g id="linkedin"> + <path d="M23.786,0L3.214,0C1.44,0 0,1.44 0,3.214L0,23.786C0,25.56 1.44,27 3.214,27L23.786,27C25.56,27 27,25.56 27,23.786L27,3.214C27,1.44 25.56,0 23.786,0ZM8.357,10.286L8.357,22.5L4.5,22.5L4.5,10.286L8.357,10.286ZM4.5,6.731C4.5,5.831 5.271,5.143 6.429,5.143C7.586,5.143 8.312,5.831 8.357,6.731C8.357,7.631 7.637,8.357 6.429,8.357C5.271,8.357 4.5,7.631 4.5,6.731ZM22.5,22.5L18.643,22.5L18.643,16.071C18.643,14.786 18,13.5 16.393,13.474L16.341,13.474C14.786,13.474 14.143,14.799 14.143,16.071L14.143,22.5L10.286,22.5L10.286,10.286L14.143,10.286L14.143,11.931C14.143,11.931 15.384,10.286 17.878,10.286C20.43,10.286 22.5,12.041 22.5,15.596L22.5,22.5Z" style="fill-rule:nonzero;"/> + </g> + </g> +</svg> diff --git a/assets/icons/play-button.svg b/assets/icons/play-button.svg new file mode 100644 index 0000000..ea58eaf --- /dev/null +++ b/assets/icons/play-button.svg @@ -0,0 +1,10 @@ +<svg height="80px" width="80px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" + viewBox="0 0 512 512" xml:space="preserve"> +<g> + <g> + <path d="M500.203,236.907L30.869,2.24c-6.613-3.285-14.443-2.944-20.736,0.939C3.84,7.083,0,13.931,0,21.333v469.333 + c0,7.403,3.84,14.251,10.133,18.155c3.413,2.112,7.296,3.179,11.2,3.179c3.264,0,6.528-0.747,9.536-2.24l469.333-234.667 + C507.435,271.467,512,264.085,512,256S507.435,240.533,500.203,236.907z"/> + </g> +</g> +</svg> \ No newline at end of file diff --git a/assets/src/_reset.scss b/assets/src/_reset.scss deleted file mode 100644 index 2bb0934..0000000 --- a/assets/src/_reset.scss +++ /dev/null @@ -1 +0,0 @@ -@import "_reset.scss"; diff --git a/assets/style.css b/assets/style.css deleted file mode 100644 index ffeba9b..0000000 --- a/assets/style.css +++ /dev/null @@ -1 +0,0 @@ -/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/assets/style.css.map b/assets/style.css.map deleted file mode 100644 index 8d75751..0000000 --- a/assets/style.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"style.css"} \ No newline at end of file diff --git a/assets/style.scss b/assets/style.scss deleted file mode 100644 index e69de29..0000000 diff --git a/site/blueprints/blocks/heading.yml b/site/blueprints/blocks/heading.yml new file mode 100644 index 0000000..c17e29d --- /dev/null +++ b/site/blueprints/blocks/heading.yml @@ -0,0 +1,20 @@ +name: field.blocks.heading.name +icon: title +wysiwyg: true +preview: heading +fields: + level: + label: field.blocks.heading.level + type: toggles + empty: false + default: "h2" + labels: false + options: + - value: h3 + icon: h3 + text: H3 + text: + label: field.blocks.heading.text + type: writer + inline: true + placeholder: field.blocks.heading.placeholder diff --git a/site/blueprints/blocks/image.yml b/site/blueprints/blocks/image.yml new file mode 100644 index 0000000..392715d --- /dev/null +++ b/site/blueprints/blocks/image.yml @@ -0,0 +1,27 @@ +name: field.blocks.image.name +icon: image +preview: image +fields: + image: + label: field.blocks.image.name + type: files + query: model.images + multiple: false + image: + back: black + uploads: + template: blocks/image + alt: + label: field.blocks.image.alt + type: text + icon: title + help: Description de l’image, utile si elle ne s’affiche pas. Écrivez comme si vous expliquiez l'image à quelqu'un par téléphone. + caption: + label: field.blocks.image.caption + type: writer + icon: text + inline: true + link: + label: field.blocks.image.link + type: text + icon: url diff --git a/site/blueprints/blocks/text.yml b/site/blueprints/blocks/text.yml new file mode 100644 index 0000000..740ced6 --- /dev/null +++ b/site/blueprints/blocks/text.yml @@ -0,0 +1,10 @@ +name: field.blocks.text.name +icon: text +wysiwyg: true +preview: text +fields: + text: + type: writer + headings: + - 4 + placeholder: field.blocks.text.placeholder diff --git a/site/blueprints/pages/investigation.yml b/site/blueprints/pages/investigation.yml new file mode 100644 index 0000000..ffa08e1 --- /dev/null +++ b/site/blueprints/pages/investigation.yml @@ -0,0 +1,104 @@ +title: Investigation +create: + fields: + - subtitle + +tabs: + contentTab: + label: Contenu + icon: page + columns: + - width: 2/6 + fields: + created: + label: Première publication + type: date + display: DD / MM / YYYY + default: today + width: 1/4 + - width: 4/6 + fields: + subtitle: + label: Sous-titre + type: text + chapo: + label: Chapo + type: writer + nodes: false + buttons: false + cover: + label: Visuel de couverture + type: files + multiple: false + min: 1 + layout: cards + size: full + image: + ratio: 12/7 + cover: true + body: + label: Corps + type: layout + layouts: + - "1/1" + - "1/2, 1/2" + - "1/3, 1/3, 1/3" + fieldsets: + - heading + - text + - image + metadataTab: + label: Métadonnées + icon: table + fields: + incidentDate: + label: Date de l'incident + type: date + display: DD / MM / YYYY + width: 1/3 + incidentLocation: + label: Lieu de l'incident + type: text + width: 1/3 + incidentConsequences: + label: Conséquence(s) + type: text + width: 1/3 + keywords: + label: Mots-clés + type: tags + width: 1/2 + partners: + label: Partenaires + type: structure + width: 1/2 + fields: + name: + label: Nom + type: text + link: + label: Lien + type: link + options: + - url + line: + type: line + indexTeam: + label: Équipe Index + type: structure + columns: + responsability: + width: 1/2 + names: + width: 1/2 + fields: + responsability: + label: Responsabilité + type: text + width: 1/2 + names: + label: Nom + type: entries + width: 1/2 + field: + type: text diff --git a/site/blueprints/pages/investigations.yml b/site/blueprints/pages/investigations.yml index 02639fe..2aca985 100644 --- a/site/blueprints/pages/investigations.yml +++ b/site/blueprints/pages/investigations.yml @@ -1 +1,17 @@ title: Investigations + +tabs: + contentTab: + label: Contenu + sections: + investigations: + type: pages + template: investigation + text: "{{ page.title }}, {{ page.subtitle }}" + info: "{{ page.incidentConsequences }} à {{ page.incidentLocation }}" + layout: cards + size: huge + search: true + image: + cover: true + ratio: 12/7 diff --git a/site/blueprints/pages/product.yml b/site/blueprints/pages/product.yml new file mode 100644 index 0000000..1e51ea9 --- /dev/null +++ b/site/blueprints/pages/product.yml @@ -0,0 +1 @@ +title: Produit diff --git a/site/blueprints/pages/support.yml b/site/blueprints/pages/support.yml index d61b2e9..8b6f16c 100644 --- a/site/blueprints/pages/support.yml +++ b/site/blueprints/pages/support.yml @@ -1 +1,45 @@ title: Nous soutenir + +tabs: + contentTab: + sections: + supportFields: + type: fields + fields: + heroHeadline: + type: headline + label: Hero + heroMedia: + label: Media de couverture + type: files + multiple: false + layout: cards + help: image ou vidéo affichée dans le héro, sous la phrase d'accroche + heroCatchPhrase: + label: Phrase d'accroche + type: text + heroBaseline: + label: Baseline + type: text + donorLine: + type: line + donorHeadline: + label: Dons + type: headline + donorCatchPhrase: + label: Phrase d'accroche + type: text + FAQLine: + type: line + FAQHeadline: + label: Questions fréquentes + type: headline + FAQQuestions: + label: Questions / réponses + type: structure + fields: + question: + type: text + answer: + label: Réponse + type: text diff --git a/site/snippets/header.php b/site/snippets/header.php index cd20f03..27a8927 100644 --- a/site/snippets/header.php +++ b/site/snippets/header.php @@ -3,7 +3,7 @@ <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <link rel="stylesheet" href="<?= url('assets/style.css') ?>?version-cache-prevent<?= rand(0, 1000) ?>"> + <link rel="stylesheet" href="<?= url('assets/css/style.css') ?>?version-cache-prevent<?= rand(0, 1000) ?>"> <meta name="robots" content="noindex,nofollow"> <title> <?php if ($page->isHomePage() == false): ?> @@ -13,4 +13,4 @@ -

Index

+ diff --git a/site/snippets/nav.php b/site/snippets/nav.php new file mode 100644 index 0000000..6f82145 --- /dev/null +++ b/site/snippets/nav.php @@ -0,0 +1,25 @@ + \ No newline at end of file diff --git a/site/templates/home.php b/site/templates/home.php index 8e54641..0b9d300 100644 --- a/site/templates/home.php +++ b/site/templates/home.php @@ -1,2 +1,13 @@ + + + Donner 15€ mensuellement + + + Donner 10€ ponctuellement + \ No newline at end of file diff --git a/site/templates/investigation.php b/site/templates/investigation.php new file mode 100644 index 0000000..8e54641 --- /dev/null +++ b/site/templates/investigation.php @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/site/templates/support.php b/site/templates/support.php index 8e54641..09937e3 100644 --- a/site/templates/support.php +++ b/site/templates/support.php @@ -1,2 +1,227 @@ + +
+
+
+
+ + +
+
+ +
+
+
+ + +
+
+

Pour continuer à enquêter, Index a besoin de vous

+
+

Minutieuses et approfondies, nos enquêtes représentent des mois de travail par plusieurs membres de notre équipe. Tout ceci a un coût important.

+ +
+ +
+ +
+

Donnateur·ices

+

288

+
+ +
+

Objectif

+

200

+
+
+ +

Soutenez-nous avant le 31 décembre 2021

+ + + +

Le don donne droit à une réduction fiscale de 66%

+
+ + +
+

Index est une ONG d’investigation à but non-lucratif. Vos dons garantissent notre indépendance.

+ + + +
+ + + + + +
+ +

Le don donne droit à une réduction fiscale de 66%
Vous pouvez stopper votre don à tout moment

+
+ + +
+

Commentaires de donnateur·ices

+ +
+
+

Vous faites un travail admirable. Merci de faire avancer la Justice avec un grand J. Force à vous!

+

Olivier

+
+ +
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet.

+

Name

+
+ +
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet.

+

Name

+
+ +
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet.

+

Name

+
+
+
+
+ + +
+

Questions fréquentes

+ +
+ Pourquoi faire un don à index ? +

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor.

+
+ +
+ À quoi va servir mon don ? +

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Rerum tempore exercitationem asperiores ipsam pariatur! Esse ab, at labore doloribus sit aperiam quidem beatae id unde facere totam perferendis quod itaque voluptatem aut officia laudantium, aliquid quis earum quisquam alias soluta voluptatibus, voluptate porro? Reprehenderit officia debitis suscipit ab deleniti possimus dignissimos error illum labore. Quos cumque modi alias repellendus, necessitatibus qui impedit nisi! Veritatis illo quod praesentium, voluptates explicabo accusantium reprehenderit ullam provident quaerat ipsum dignissimos molestias, deserunt voluptas dolor.

+
+ +
+ Pourquoi faire un don à index ? +

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor.

+
+ +
+ Les dons sont-ils défiscalisables ? +

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Rerum tempore exercitationem asperiores ipsam pariatur! Esse ab, at labore doloribus sit aperiam quidem beatae id unde facere totam perferendis quod itaque voluptatem aut officia laudantium, aliquid quis earum quisquam alias soluta voluptatibus.

+
+ + +
+ Index, c’est quoi au juste ? +

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Rerum tempore exercitationem asperiores ipsam pariatur! Esse ab, at labore doloribus sit aperiam quidem beatae id unde facere totam perferendis quod itaque voluptatem aut officia laudantium, aliquid quis earum quisquam alias soluta voluptatibus, voluptate porro? Reprehenderit officia debitis suscipit ab deleniti possimus dignissimos error illum labore. Quos cumque modi alias repellendus, necessitatibus qui impedit nisi! Veritatis illo quod praesentium, voluptates explicabo accusantium reprehenderit ullam provident quaerat ipsum dignissimos molestias, deserunt voluptas dolor.

+
+ + +
+ +
+

Boutique

+

Vous pouvez également soutenir Index en commandant des articles disponibles sur notre boutique.

+ +
+ + + + + + + + + + + +
+
+ +
+

Nous suivre

+ +

Abonnez-vous
à la newsletter d’Index

+

Recevez nos dernière publications et actualités directement dans votre boite mail.

+ + + +

Votre adresse e-mail est uniquement utilisée pour vous envoyer notre newsletter ainsi que les informations relatives aux activités d’INDEX. Vous pouvez vous désinscrire à tout moment à l’aide du lien inclus dans chaque email.

+
+ +
+

Suivez Index sur les réseaux sociaux

+ +
+
\ No newline at end of file From 1637b26f58cd1b571281718ee800dd1f51453d06 Mon Sep 17 00:00:00 2001 From: isUnknown Date: Tue, 4 Nov 2025 09:05:55 +0100 Subject: [PATCH 05/10] support : integrate shop --- site/blueprints/pages/product.yml | 24 ++++++++++++++ site/blueprints/pages/shop.yml | 10 ++++++ site/config/config.php | 3 ++ site/config/menu.php | 22 +++++++++++++ site/templates/shop.php | 0 site/templates/support.php | 55 +++++-------------------------- 6 files changed, 68 insertions(+), 46 deletions(-) create mode 100644 site/blueprints/pages/shop.yml create mode 100644 site/config/menu.php create mode 100644 site/templates/shop.php diff --git a/site/blueprints/pages/product.yml b/site/blueprints/pages/product.yml index 1e51ea9..9963f7b 100644 --- a/site/blueprints/pages/product.yml +++ b/site/blueprints/pages/product.yml @@ -1 +1,25 @@ title: Produit + +tabs: + contentTab: + columns: + - width: 1/3 + sections: + gallery: + label: Galerie + type: files + layout: cards + min: 1 + max: 1 + - width: 2/3 + fields: + price: + label: Prix + type: number + after: € + width: 1/3 + description: + type: writer + nodes: false + marks: false + width: 2/3 diff --git a/site/blueprints/pages/shop.yml b/site/blueprints/pages/shop.yml new file mode 100644 index 0000000..37ea190 --- /dev/null +++ b/site/blueprints/pages/shop.yml @@ -0,0 +1,10 @@ +title: Boutique + +tabs: + contentTab: + sections: + products: + label: Produits + type: pages + template: product + ratio: 4/3 diff --git a/site/config/config.php b/site/config/config.php index 1395ec8..d761de4 100644 --- a/site/config/config.php +++ b/site/config/config.php @@ -22,4 +22,7 @@ return [ ], ], ], + 'panel' => [ + 'menu' => require_once __DIR__ . '/menu.php' + ] ]; \ No newline at end of file diff --git a/site/config/menu.php b/site/config/menu.php new file mode 100644 index 0000000..c9eabe6 --- /dev/null +++ b/site/config/menu.php @@ -0,0 +1,22 @@ + [ + 'label' => 'Soutien', + 'icon' => 'home', + 'link' => 'pages/support', + 'current' => function ($current) { + $path = Kirby::instance()->request()->path()->toString(); + return Str::contains($path, 'pages/support'); + }, + ], + 'shop' => [ + 'label' => 'Boutique', + 'icon' => 'cart', + 'link' => 'pages/boutique', + 'current' => function ($current) { + $path = Kirby::instance()->request()->path()->toString(); + return Str::contains($path, 'pages/boutique'); + }, + ], +]; \ No newline at end of file diff --git a/site/templates/shop.php b/site/templates/shop.php new file mode 100644 index 0000000..e69de29 diff --git a/site/templates/support.php b/site/templates/support.php index 09937e3..a39a081 100644 --- a/site/templates/support.php +++ b/site/templates/support.php @@ -144,55 +144,18 @@

Vous pouvez également soutenir Index en commandant des articles disponibles sur notre boutique.

- - - + children() as $product): ?> - - - - - - -
-
- -
-

Publication

-

Éclairages/Spotlights

-

35€

+ hasFiles()): ?> +
+ +
+ +

title() ?>

+ description() ?>
+
From 81cc9e59192318dabcd0961fd74bfaae1b114f0b Mon Sep 17 00:00:00 2001 From: isUnknown Date: Tue, 4 Nov 2025 09:36:54 +0100 Subject: [PATCH 06/10] config: update menu link from support to soutien MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update admin menu configuration to use the correct page slug 'soutien' instead of 'support'. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- site/config/menu.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/config/menu.php b/site/config/menu.php index c9eabe6..4b222d5 100644 --- a/site/config/menu.php +++ b/site/config/menu.php @@ -4,10 +4,10 @@ return [ 'home' => [ 'label' => 'Soutien', 'icon' => 'home', - 'link' => 'pages/support', + 'link' => 'pages/soutien', 'current' => function ($current) { $path = Kirby::instance()->request()->path()->toString(); - return Str::contains($path, 'pages/support'); + return Str::contains($path, 'pages/soutien'); }, ], 'shop' => [ From 3bcb51c829dc0be4723f2efcb6a0a13ab8baa2f0 Mon Sep 17 00:00:00 2001 From: isUnknown Date: Tue, 4 Nov 2025 10:06:50 +0100 Subject: [PATCH 07/10] feature: integrate Donorbox API for donation management MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add Donorbox configuration in site/config/config.php with API settings - Create controller for support page to fetch campaign data from API - Update support.php template with dynamic donation buttons and gauge - Transform static buttons into dynamic links with proper URL parameters - Add JavaScript for tab switching between one-time and monthly donations - Calculate donation percentage and display real-time campaign stats The donation buttons now link directly to Donorbox with pre-filled amounts and intervals. API integration is ready but requires API key configuration. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- assets/js/donation-tabs.js | 59 ++++++++++++++++++++++++++++++++++++ site/config/config.php | 6 ++++ site/controllers/support.php | 55 +++++++++++++++++++++++++++++++++ site/snippets/footer.php | 1 + site/templates/support.php | 46 ++++++++++++++-------------- 5 files changed, 144 insertions(+), 23 deletions(-) create mode 100644 assets/js/donation-tabs.js create mode 100644 site/controllers/support.php diff --git a/assets/js/donation-tabs.js b/assets/js/donation-tabs.js new file mode 100644 index 0000000..6325a54 --- /dev/null +++ b/assets/js/donation-tabs.js @@ -0,0 +1,59 @@ +/** + * Gestion des onglets de donation (ponctuel / mensuel) + */ +document.addEventListener('DOMContentLoaded', function() { + const tabButtons = document.querySelectorAll('.nav--tabs__btn'); + const donationLinks = document.querySelectorAll('.btn--donation[data-amount]'); + + if (tabButtons.length === 0 || donationLinks.length === 0) return; + + tabButtons.forEach(button => { + button.addEventListener('click', function() { + // Retirer la classe is-selected de tous les boutons + tabButtons.forEach(btn => btn.classList.remove('is-selected')); + + // Ajouter la classe is-selected au bouton cliqué + this.classList.add('is-selected'); + + // Récupérer l'intervalle (o = ponctuel, m = mensuel) + const interval = this.getAttribute('data-interval'); + + // Mettre à jour les liens de donation + donationLinks.forEach(link => { + const amount = link.getAttribute('data-amount'); + const currentHref = link.getAttribute('href'); + + // Remplacer l'intervalle dans l'URL + const newHref = currentHref.replace( + /default_interval=[om]/, + `default_interval=${interval}` + ); + + link.setAttribute('href', newHref); + + // Mettre à jour le texte (ajouter /mois pour mensuel) + const amountSpan = link.querySelector('.amount-value'); + const boldText = link.querySelector('.bold'); + + if (amountSpan && boldText) { + if (interval === 'm') { + boldText.innerHTML = `${amount}€/mois`; + } else { + boldText.innerHTML = `${amount}€`; + } + } + }); + + // Mettre à jour aussi le lien "Montant libre" + const freeAmountLink = document.querySelector('.btn--donation:not([data-amount])'); + if (freeAmountLink) { + const currentHref = freeAmountLink.getAttribute('href'); + const newHref = currentHref.replace( + /default_interval=[om]/, + `default_interval=${interval}` + ); + freeAmountLink.setAttribute('href', newHref); + } + }); + }); +}); diff --git a/site/config/config.php b/site/config/config.php index d761de4..8e65d31 100644 --- a/site/config/config.php +++ b/site/config/config.php @@ -24,5 +24,11 @@ return [ ], 'panel' => [ 'menu' => require_once __DIR__ . '/menu.php' + ], + 'donorbox' => [ + 'api_key' => '', // À remplir avec la clé API Donorbox + 'campaign_slug' => 'soutenir-index-en-2024', + 'campaign_url' => 'https://donorbox.org/soutenir-index-en-2024', + 'api_base_url' => 'https://donorbox.org/api/v1' ] ]; \ No newline at end of file diff --git a/site/controllers/support.php b/site/controllers/support.php new file mode 100644 index 0000000..d1b4138 --- /dev/null +++ b/site/controllers/support.php @@ -0,0 +1,55 @@ +option('donorbox'); + $apiKey = $config['api_key']; + $campaignSlug = $config['campaign_slug']; + + // Valeurs par défaut + $data = [ + 'amount_raised' => 0, + 'donor_count' => 0, + 'goal_amount' => 20000, // Objectif par défaut + 'percentage' => 0, + 'campaign_url' => $config['campaign_url'] + ]; + + // Si la clé API est configurée, récupérer les données en temps réel + if (!empty($apiKey)) { + try { + $apiUrl = $config['api_base_url'] . '/campaigns/' . $campaignSlug; + + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $apiUrl); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_HTTPHEADER, [ + 'Authorization: Bearer ' . $apiKey, + 'Content-Type: application/json' + ]); + + $response = curl_exec($ch); + $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + curl_close($ch); + + if ($httpCode === 200 && $response) { + $campaignData = json_decode($response, true); + + if ($campaignData) { + $data['amount_raised'] = $campaignData['amount_raised'] ?? 0; + $data['donor_count'] = $campaignData['donor_count'] ?? 0; + $data['goal_amount'] = $campaignData['goal_amount'] ?? 20000; + + // Calculer le pourcentage + if ($data['goal_amount'] > 0) { + $data['percentage'] = round(($data['amount_raised'] / $data['goal_amount']) * 100, 0); + } + } + } + } catch (Exception $e) { + // En cas d'erreur, on garde les valeurs par défaut + // Optionnel : logger l'erreur + } + } + + return $data; +}; diff --git a/site/snippets/footer.php b/site/snippets/footer.php index 691287b..c6f66be 100644 --- a/site/snippets/footer.php +++ b/site/snippets/footer.php @@ -1,2 +1,3 @@ + \ No newline at end of file diff --git a/site/templates/support.php b/site/templates/support.php index a39a081..0ac014d 100644 --- a/site/templates/support.php +++ b/site/templates/support.php @@ -22,16 +22,16 @@
-
+

Donnateur·ices

-

288

+

Objectif

-

200

+

@@ -47,32 +47,32 @@

Index est une ONG d’investigation à but non-lucratif. Vos dons garantissent notre indépendance.

- - - - - +

Le don donne droit à une réduction fiscale de 66%
Vous pouvez stopper votre don à tout moment

From cea38b4219f8c1562093bcf1f010aa66ee5f4133 Mon Sep 17 00:00:00 2001 From: isUnknown Date: Tue, 4 Nov 2025 10:07:50 +0100 Subject: [PATCH 08/10] add users in panel --- site/config/menu.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/site/config/menu.php b/site/config/menu.php index 4b222d5..dd4d475 100644 --- a/site/config/menu.php +++ b/site/config/menu.php @@ -19,4 +19,6 @@ return [ return Str::contains($path, 'pages/boutique'); }, ], + '-', + 'users' ]; \ No newline at end of file From b44f353208c14ad2912bb271063e28afc9d1d761 Mon Sep 17 00:00:00 2001 From: isUnknown Date: Tue, 4 Nov 2025 16:32:53 +0100 Subject: [PATCH 09/10] refactor: improve donation tabs code organization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Extract logic into dedicated functions for better readability - Create handleDonationIntervalChange() as main click handler - Separate concerns: updateLinkInterval, updateAmountDisplay, switchActiveTab - Remove unnecessary comments in favor of clear function names - Update footer to link script.js instead of donation-tabs.js 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .claude/settings.local.json | 11 +++++++ assets/js/donation-tabs.js | 59 ------------------------------------- assets/js/script.js | 51 ++++++++++++++++++++++++++++++++ site/snippets/footer.php | 2 +- site/snippets/header.php | 2 ++ 5 files changed, 65 insertions(+), 60 deletions(-) create mode 100644 .claude/settings.local.json delete mode 100644 assets/js/donation-tabs.js create mode 100644 assets/js/script.js diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..a48b55d --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,11 @@ +{ + "permissions": { + "allow": [ + "Bash(git add:*)", + "Bash(git commit:*)", + "Bash(cat:*)" + ], + "deny": [], + "ask": [] + } +} diff --git a/assets/js/donation-tabs.js b/assets/js/donation-tabs.js deleted file mode 100644 index 6325a54..0000000 --- a/assets/js/donation-tabs.js +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Gestion des onglets de donation (ponctuel / mensuel) - */ -document.addEventListener('DOMContentLoaded', function() { - const tabButtons = document.querySelectorAll('.nav--tabs__btn'); - const donationLinks = document.querySelectorAll('.btn--donation[data-amount]'); - - if (tabButtons.length === 0 || donationLinks.length === 0) return; - - tabButtons.forEach(button => { - button.addEventListener('click', function() { - // Retirer la classe is-selected de tous les boutons - tabButtons.forEach(btn => btn.classList.remove('is-selected')); - - // Ajouter la classe is-selected au bouton cliqué - this.classList.add('is-selected'); - - // Récupérer l'intervalle (o = ponctuel, m = mensuel) - const interval = this.getAttribute('data-interval'); - - // Mettre à jour les liens de donation - donationLinks.forEach(link => { - const amount = link.getAttribute('data-amount'); - const currentHref = link.getAttribute('href'); - - // Remplacer l'intervalle dans l'URL - const newHref = currentHref.replace( - /default_interval=[om]/, - `default_interval=${interval}` - ); - - link.setAttribute('href', newHref); - - // Mettre à jour le texte (ajouter /mois pour mensuel) - const amountSpan = link.querySelector('.amount-value'); - const boldText = link.querySelector('.bold'); - - if (amountSpan && boldText) { - if (interval === 'm') { - boldText.innerHTML = `${amount}€/mois`; - } else { - boldText.innerHTML = `${amount}€`; - } - } - }); - - // Mettre à jour aussi le lien "Montant libre" - const freeAmountLink = document.querySelector('.btn--donation:not([data-amount])'); - if (freeAmountLink) { - const currentHref = freeAmountLink.getAttribute('href'); - const newHref = currentHref.replace( - /default_interval=[om]/, - `default_interval=${interval}` - ); - freeAmountLink.setAttribute('href', newHref); - } - }); - }); -}); diff --git a/assets/js/script.js b/assets/js/script.js new file mode 100644 index 0000000..7e121fe --- /dev/null +++ b/assets/js/script.js @@ -0,0 +1,51 @@ +function updateLinkInterval(link, interval) { + const currentHref = link.getAttribute("href"); + const newHref = currentHref.replace( + /default_interval=[om]/, + `default_interval=${interval}` + ); + link.setAttribute("href", newHref); +} + +function updateAmountDisplay(link, amount, interval) { + const boldText = link.querySelector(".bold"); + if (!boldText) return; + + const suffix = interval === "m" ? "€/mois" : "€"; + boldText.innerHTML = `${amount}${suffix}`; +} + +function switchActiveTab(clickedButton, allButtons) { + allButtons.forEach((btn) => btn.classList.remove("is-selected")); + clickedButton.classList.add("is-selected"); +} + +function handleDonationIntervalChange(interval) { + const donationLinks = document.querySelectorAll(".btn--donation[data-amount]"); + const freeAmountLink = document.querySelector(".btn--donation:not([data-amount])"); + + donationLinks.forEach((link) => { + const amount = link.getAttribute("data-amount"); + updateLinkInterval(link, interval); + updateAmountDisplay(link, amount, interval); + }); + + if (freeAmountLink) { + updateLinkInterval(freeAmountLink, interval); + } +} + +document.addEventListener("DOMContentLoaded", function () { + const tabButtons = document.querySelectorAll(".nav--tabs__btn"); + const donationLinks = document.querySelectorAll(".btn--donation[data-amount]"); + + if (tabButtons.length === 0 || donationLinks.length === 0) return; + + tabButtons.forEach((button) => { + button.addEventListener("click", function () { + const interval = this.getAttribute("data-interval"); + switchActiveTab(this, tabButtons); + handleDonationIntervalChange(interval); + }); + }); +}); diff --git a/site/snippets/footer.php b/site/snippets/footer.php index c6f66be..0e1fcd2 100644 --- a/site/snippets/footer.php +++ b/site/snippets/footer.php @@ -1,3 +1,3 @@ - + \ No newline at end of file diff --git a/site/snippets/header.php b/site/snippets/header.php index 27a8927..0658cac 100644 --- a/site/snippets/header.php +++ b/site/snippets/header.php @@ -11,6 +11,8 @@ title() ?> + + From 778265feabf21c1b5c6ed4009ade7d8a08041bd2 Mon Sep 17 00:00:00 2001 From: isUnknown Date: Tue, 4 Nov 2025 16:34:33 +0100 Subject: [PATCH 10/10] config: change menu icon from home to money for support page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- site/config/menu.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/config/menu.php b/site/config/menu.php index dd4d475..a3f33c2 100644 --- a/site/config/menu.php +++ b/site/config/menu.php @@ -3,7 +3,7 @@ return [ 'home' => [ 'label' => 'Soutien', - 'icon' => 'home', + 'icon' => 'money', 'link' => 'pages/soutien', 'current' => function ($current) { $path = Kirby::instance()->request()->path()->toString();