From 6499600f11f62a2748db5b9bde502fd85c8a70b7 Mon Sep 17 00:00:00 2001 From: Zallom Date: Fri, 22 May 2026 00:54:35 +0200 Subject: [PATCH 1/7] feat(landing-fr): port Webflow homepage to TSX (FR only) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 5 sections décomposées en composants modulaires : - Hero (titre dégradé, pre-title pill, 2 CTAs) - Servers (marquee CSS-only de 15 serveurs Discord clients, sans JS Webflow) - About (4 KPI counters + fetch docs.raidprotect.bot/counts.json comme l'original) - Features (6 cartes vers /docs/features/*) - Pricing (3 tiers : Gratuit / Founder 2,99 $ / Business) 50 images Webflow copiées dans static/img/landing/. Page composée via un unique dans src/pages/index.tsx. Traductions EN/DE/ES/PT à venir dans une sous-PR séparée. --- src/components/landing/About/index.tsx | 175 +++++++++++++++ .../landing/About/styles.module.css | 139 ++++++++++++ src/components/landing/Features/index.tsx | 104 +++++++++ .../landing/Features/styles.module.css | 160 +++++++++++++ src/components/landing/Hero/index.tsx | 43 ++++ src/components/landing/Hero/styles.module.css | 85 +++++++ src/components/landing/Pricing/index.tsx | 136 ++++++++++++ .../landing/Pricing/styles.module.css | 202 +++++++++++++++++ src/components/landing/Servers/index.tsx | 210 ++++++++++++++++++ .../landing/Servers/styles.module.css | 145 ++++++++++++ .../landing/styles/shared.module.css | 164 ++++++++++++++ src/pages/index.tsx | 34 ++- static/img/landing/411d8a698dd15ddf.webp | Bin 0 -> 1644 bytes static/img/landing/RP-embed-p-1080.webp | Bin 0 -> 7906 bytes static/img/landing/RP-embed-p-500.webp | Bin 0 -> 3770 bytes static/img/landing/RP-embed-p-800.webp | Bin 0 -> 6056 bytes static/img/landing/RP-embed.webp | Bin 0 -> 16550 bytes static/img/landing/favicon.png | Bin 0 -> 1130 bytes static/img/landing/icon-02.svg | 3 + static/img/landing/icon-geranium.svg | 25 +++ static/img/landing/iconAntiraidWhite.svg | 3 + static/img/landing/iconAntispamWhite.svg | 3 + static/img/landing/iconArtofWar3.webp | Bin 0 -> 3796 bytes static/img/landing/iconBloxFruitsFR.webp | Bin 0 -> 4800 bytes static/img/landing/iconCaptchaWhite.svg | 5 + static/img/landing/iconChatzone.webp | Bin 0 -> 5986 bytes static/img/landing/iconClashGG.webp | Bin 0 -> 1646 bytes static/img/landing/iconClashRoyaleFR.webp | Bin 0 -> 4066 bytes static/img/landing/iconCyrilmp4.webp | Bin 0 -> 2592 bytes static/img/landing/iconDiscord.svg | 3 + static/img/landing/iconDistrict10.webp | Bin 0 -> 3738 bytes static/img/landing/iconDmlockWhite.svg | 6 + static/img/landing/iconEclipse.webp | Bin 0 -> 2430 bytes static/img/landing/iconFlexingSeal.webp | Bin 0 -> 1076 bytes static/img/landing/iconFortniteHouse.webp | Bin 0 -> 6176 bytes static/img/landing/iconGenshinImpactFR.webp | Bin 0 -> 3292 bytes static/img/landing/iconGitHub.svg | 10 + static/img/landing/iconJobless.webp | Bin 0 -> 1036 bytes static/img/landing/iconLigue1.webp | Bin 0 -> 1662 bytes static/img/landing/iconLinkedIn.svg | 10 + static/img/landing/iconMastu.webp | Bin 0 -> 4784 bytes static/img/landing/iconMetaLock.webp | Bin 0 -> 4730 bytes static/img/landing/iconNationsGlory.webp | Bin 0 -> 1244 bytes static/img/landing/iconPUBGMobileFrance.webp | Bin 0 -> 2684 bytes static/img/landing/iconPUBGMobileUK.webp | Bin 0 -> 4848 bytes static/img/landing/iconReportWhite.svg | 3 + static/img/landing/iconRocketBaguette.webp | Bin 0 -> 4300 bytes .../img/landing/iconRocketLeagueFrance.webp | Bin 0 -> 5144 bytes static/img/landing/iconSlashFR.webp | Bin 0 -> 1722 bytes static/img/landing/iconTagWhite.svg | 5 + static/img/landing/iconTeamVitality.webp | Bin 0 -> 4714 bytes static/img/landing/iconTheForge.webp | Bin 0 -> 2528 bytes static/img/landing/iconWankilStudio.webp | Bin 0 -> 5190 bytes static/img/landing/iconWeWard.webp | Bin 0 -> 1522 bytes static/img/landing/iconX.svg | 3 + static/img/landing/iconYouTube.svg | 3 + static/img/landing/iconZetFar.webp | Bin 0 -> 3330 bytes static/img/landing/logoRaidProtect.svg | 22 ++ static/img/landing/pattern-01.svg | 1 + static/img/landing/serverBadgePartner.svg | 12 + static/img/landing/serverBadgeVerified.svg | 11 + static/img/landing/webclip.png | Bin 0 -> 9440 bytes 62 files changed, 1704 insertions(+), 21 deletions(-) create mode 100644 src/components/landing/About/index.tsx create mode 100644 src/components/landing/About/styles.module.css create mode 100644 src/components/landing/Features/index.tsx create mode 100644 src/components/landing/Features/styles.module.css create mode 100644 src/components/landing/Hero/index.tsx create mode 100644 src/components/landing/Hero/styles.module.css create mode 100644 src/components/landing/Pricing/index.tsx create mode 100644 src/components/landing/Pricing/styles.module.css create mode 100644 src/components/landing/Servers/index.tsx create mode 100644 src/components/landing/Servers/styles.module.css create mode 100644 src/components/landing/styles/shared.module.css create mode 100644 static/img/landing/411d8a698dd15ddf.webp create mode 100644 static/img/landing/RP-embed-p-1080.webp create mode 100644 static/img/landing/RP-embed-p-500.webp create mode 100644 static/img/landing/RP-embed-p-800.webp create mode 100644 static/img/landing/RP-embed.webp create mode 100644 static/img/landing/favicon.png create mode 100644 static/img/landing/icon-02.svg create mode 100644 static/img/landing/icon-geranium.svg create mode 100644 static/img/landing/iconAntiraidWhite.svg create mode 100644 static/img/landing/iconAntispamWhite.svg create mode 100644 static/img/landing/iconArtofWar3.webp create mode 100644 static/img/landing/iconBloxFruitsFR.webp create mode 100644 static/img/landing/iconCaptchaWhite.svg create mode 100644 static/img/landing/iconChatzone.webp create mode 100644 static/img/landing/iconClashGG.webp create mode 100644 static/img/landing/iconClashRoyaleFR.webp create mode 100644 static/img/landing/iconCyrilmp4.webp create mode 100644 static/img/landing/iconDiscord.svg create mode 100644 static/img/landing/iconDistrict10.webp create mode 100644 static/img/landing/iconDmlockWhite.svg create mode 100644 static/img/landing/iconEclipse.webp create mode 100644 static/img/landing/iconFlexingSeal.webp create mode 100644 static/img/landing/iconFortniteHouse.webp create mode 100644 static/img/landing/iconGenshinImpactFR.webp create mode 100644 static/img/landing/iconGitHub.svg create mode 100644 static/img/landing/iconJobless.webp create mode 100644 static/img/landing/iconLigue1.webp create mode 100644 static/img/landing/iconLinkedIn.svg create mode 100644 static/img/landing/iconMastu.webp create mode 100644 static/img/landing/iconMetaLock.webp create mode 100644 static/img/landing/iconNationsGlory.webp create mode 100644 static/img/landing/iconPUBGMobileFrance.webp create mode 100644 static/img/landing/iconPUBGMobileUK.webp create mode 100644 static/img/landing/iconReportWhite.svg create mode 100644 static/img/landing/iconRocketBaguette.webp create mode 100644 static/img/landing/iconRocketLeagueFrance.webp create mode 100644 static/img/landing/iconSlashFR.webp create mode 100644 static/img/landing/iconTagWhite.svg create mode 100644 static/img/landing/iconTeamVitality.webp create mode 100644 static/img/landing/iconTheForge.webp create mode 100644 static/img/landing/iconWankilStudio.webp create mode 100644 static/img/landing/iconWeWard.webp create mode 100644 static/img/landing/iconX.svg create mode 100644 static/img/landing/iconYouTube.svg create mode 100644 static/img/landing/iconZetFar.webp create mode 100644 static/img/landing/logoRaidProtect.svg create mode 100644 static/img/landing/pattern-01.svg create mode 100644 static/img/landing/serverBadgePartner.svg create mode 100644 static/img/landing/serverBadgeVerified.svg create mode 100644 static/img/landing/webclip.png diff --git a/src/components/landing/About/index.tsx b/src/components/landing/About/index.tsx new file mode 100644 index 0000000..432457e --- /dev/null +++ b/src/components/landing/About/index.tsx @@ -0,0 +1,175 @@ +import React, {type ReactNode, useEffect, useState} from 'react'; +import clsx from 'clsx'; +import shared from '../styles/shared.module.css'; +import styles from './styles.module.css'; + +type Counts = { + servers: number; + users: number; + captcha: number; + antispam: number; +}; + +type FormattedValue = { + value: string; + unit: string; +}; + +function formatValue(value: number): FormattedValue { + if (value >= 1_000_000) { + return {value: (value / 1_000_000).toFixed(1), unit: 'M'}; + } + return {value: (value / 1_000).toFixed(1), unit: 'k'}; +} + +function StatCounter({ + rawValue, + label, + fallback, +}: { + rawValue?: number; + label: string; + fallback: string; +}) { + if (rawValue == null) { + return ( +
+
+ {fallback} +
+
{label}
+
+ ); + } + const formatted = formatValue(rawValue); + return ( +
+
+ {formatted.value} + {formatted.unit} +
+
{label}
+
+ ); +} + +export default function About(): ReactNode { + const [counts, setCounts] = useState(null); + + useEffect(() => { + let cancelled = false; + fetch('https://docs.raidprotect.bot/counts.json') + .then((res) => { + if (!res.ok) throw new Error('Erreur lors de la récupération des données'); + return res.json(); + }) + .then((data: Counts) => { + if (!cancelled) setCounts(data); + }) + .catch((err) => { + // Stats are best-effort; failure is non-blocking + // eslint-disable-next-line no-console + console.error('Erreur de mise à jour des statistiques :', err); + }); + return () => { + cancelled = true; + }; + }, []); + + return ( +
+
+
+

+ Nos résultats ont un{' '} + impact +

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+
+
+ ); +} diff --git a/src/components/landing/About/styles.module.css b/src/components/landing/About/styles.module.css new file mode 100644 index 0000000..84b3210 --- /dev/null +++ b/src/components/landing/About/styles.module.css @@ -0,0 +1,139 @@ +.section { + overflow-x: clip; +} + +.titleGrid { + display: grid; + grid-template-rows: auto; + grid-template-columns: 1.25fr 1fr; + grid-column-gap: 100px; + grid-row-gap: 100px; + margin-bottom: 30px; +} + +.title { + font-family: var(--ifm-heading-font-family); + color: #fff; + font-size: 50px; + font-weight: 600; + line-height: 1.2em; + margin: 0; +} + +.counterGrid { + display: grid; + grid-template-rows: auto; + grid-template-columns: 1fr 1fr; + grid-column-gap: 100px; + grid-row-gap: 100px; + align-items: center; +} + +.imageWrap { + position: relative; +} + +.curve { + width: 100%; + height: auto; + display: block; +} + +.curveLine { + stroke-dasharray: 1400; + stroke-dashoffset: 1400; + animation: rpDraw 1.5s cubic-bezier(0.4, 0, 0.2, 1) forwards; +} + +@keyframes rpDraw { + to { + stroke-dashoffset: 0; + } +} + +.curvePulse { + transform-origin: 860px 28px; + animation: rpPulse 1.8s ease-out infinite; +} + +@keyframes rpPulse { + 0% { + transform: scale(1); + opacity: 0.9; + } + 70% { + transform: scale(2.8); + opacity: 0; + } + 100% { + transform: scale(2.8); + opacity: 0; + } +} + +@media (prefers-reduced-motion: reduce) { + .curveLine, + .curvePulse { + animation: none !important; + } + .curveLine { + stroke-dashoffset: 0; + } +} + +.stats { + display: grid; + grid-template-rows: auto auto; + grid-template-columns: 1fr 1fr; + grid-column-gap: 60px; + grid-row-gap: 60px; + align-items: start; +} + +.counterItem { + display: flex; + flex-flow: column; +} + +.counterTitle { + font-family: var(--ifm-heading-font-family); + margin-bottom: 0; + font-size: 44px; + font-weight: 600; + line-height: 1.3em; + color: #fff; +} + +.counterLabel { + color: #e1e0e9; + font-size: 18px; + margin-top: 4px; +} + +@media screen and (max-width: 991px) { + .titleGrid { + grid-template-columns: 1fr; + grid-column-gap: 10px; + grid-row-gap: 10px; + } + .counterGrid { + grid-template-columns: 1fr; + } + .stats { + grid-column-gap: 50px; + grid-row-gap: 50px; + } +} + +@media screen and (max-width: 767px) { + .title { + font-size: 42px; + } + .counterTitle { + font-size: 30px; + } + .stats { + grid-column-gap: 30px; + grid-row-gap: 30px; + } +} diff --git a/src/components/landing/Features/index.tsx b/src/components/landing/Features/index.tsx new file mode 100644 index 0000000..22cae77 --- /dev/null +++ b/src/components/landing/Features/index.tsx @@ -0,0 +1,104 @@ +import React, {type ReactNode} from 'react'; +import clsx from 'clsx'; +import shared from '../styles/shared.module.css'; +import styles from './styles.module.css'; + +type Feature = { + href: string; + icon: string; + iconAlt: string; + title: string; + description: string; +}; + +const FEATURES: Feature[] = [ + { + href: 'https://docs.raidprotect.bot/features/anti-spam', + icon: '/img/landing/iconAntispamWhite.svg', + iconAlt: 'RaidProtect icon Antispam', + title: 'Protection anti-spam', + description: + 'Sanctionnez instantanément les tentatives de spam, sans aucune intervention de votre part.', + }, + { + href: 'https://docs.raidprotect.bot/features/raid-mode', + icon: '/img/landing/iconAntiraidWhite.svg', + iconAlt: 'RaidProtect icon Antiraid', + title: 'Blocage des raids', + description: + "Vous craignez un raid ? Notre bot est capable de le détecter et de le bloquer avant même qu'il impacte votre serveur.", + }, + { + href: 'https://docs.raidprotect.bot/features/captcha', + icon: '/img/landing/iconCaptchaWhite.svg', + iconAlt: 'RaidProtect icon Captcha', + title: 'Protection contre les robots', + description: + "Grâce au captcha, vos membres doivent prouver qu'ils sont humains. Dites adieu aux comptes automatisés.", + }, + { + href: 'https://docs.raidprotect.bot/features/utilities', + icon: '/img/landing/iconReportWhite.svg', + iconAlt: 'RaidProtect icon Report', + title: 'Modération & administration', + description: + "Gérez votre serveur comme un pro avec nos diverses fonctionalités de modération et d'administration.", + }, + { + href: 'https://docs.raidprotect.bot/features/tag-role', + icon: '/img/landing/iconTagWhite.svg', + iconAlt: 'RaidProtect icon Tag', + title: 'Rôle de Tag', + description: + 'Le Rôle de Tag permet d’attribuer automatiquement un rôle aux membres qui ajoutent le tag de votre serveur.', + }, + { + href: 'https://docs.raidprotect.bot/features/dm-lock', + icon: '/img/landing/iconDmlockWhite.svg', + iconAlt: 'RaidProtect icon DM Lock', + title: 'Fermeture des MP', + description: + 'Un bouclier inédit contre le spam, le scam et les arnaques par message privé.', + }, +]; + +export default function Features(): ReactNode { + return ( +
+
+
+

+ Nos fonctionnalités +

+

+ Découvrez ce qui fait de nous l'un des meilleurs bots pour protéger + votre serveur Discord des utilisateurs malintentionnés. +

+
+
+ +
+
+ ); +} diff --git a/src/components/landing/Features/styles.module.css b/src/components/landing/Features/styles.module.css new file mode 100644 index 0000000..9d1d528 --- /dev/null +++ b/src/components/landing/Features/styles.module.css @@ -0,0 +1,160 @@ +.section { + position: relative; +} + +.titleWrap { + z-index: 2; + position: relative; + margin: 0 auto 70px auto; + width: 50%; + text-align: center; + display: flex; + flex-flow: column; +} + +.title { + margin: 0 0 10px 0; + font-family: var(--ifm-heading-font-family); + color: #fff; + font-size: 50px; + font-weight: 600; + line-height: 1.2em; +} + +.subtitle { + margin: 0; + color: #e1e0e9; + font-size: 18px; + font-weight: 400; +} + +.grid { + position: relative; + display: grid; + grid-template-rows: auto; + grid-template-columns: 1fr 1fr 1fr; + grid-column-gap: 50px; + grid-row-gap: 50px; +} + +.decoration { + background-image: linear-gradient(180deg, #d35f5f 40%, #a561a3); + opacity: 0.5; + filter: blur(140px); + width: 450px; + height: 100px; + margin: auto; + position: absolute; + inset: 0; + z-index: 0; + pointer-events: none; +} + +.item { + z-index: 2; + position: relative; + display: flex; + flex-flow: column; + align-items: center; + text-align: center; + text-decoration: none; + transition: transform 0.3s; + column-gap: 20px; + row-gap: 20px; + color: inherit; +} + +.item:hover { + transform: scale(1.04); + text-decoration: none; + color: inherit; +} + +.iconWrap { + flex: none; + display: flex; + align-items: center; + justify-content: center; + width: 80px; + height: 80px; + padding: 1px; + border-radius: 50%; + background-image: linear-gradient( + 135deg, + #726cb3, + #d35f5f 60%, + #a561a3 + ); +} + +.iconBg { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + height: 100%; + border-radius: 50%; + background-color: #1b1a25; +} + +.icon { + width: 32px; + height: 32px; +} + +.itemTitle { + margin: 0 0 10px 0; + font-family: var(--ifm-heading-font-family); + color: #fff; + font-size: 26px; + font-weight: 600; + line-height: 1.3em; +} + +.itemDescription { + margin: 0; + color: #e1e0e9; + font-size: 18px; +} + +@media screen and (max-width: 1279px) { + .grid { + grid-column-gap: 50px; + grid-row-gap: 50px; + } +} + +@media screen and (min-width: 1280px) { + .grid { + grid-column-gap: 90px; + grid-row-gap: 100px; + } + .titleWrap { + width: 95%; + } +} + +@media screen and (max-width: 991px) { + .titleWrap { + width: 100%; + } + .grid { + grid-template-columns: 1fr 1fr; + } + .iconWrap { + width: 70px; + height: 70px; + } +} + +@media screen and (max-width: 767px) { + .title { + font-size: 42px; + } + .itemTitle { + font-size: 22px; + } + .grid { + grid-column-gap: 30px; + } +} diff --git a/src/components/landing/Hero/index.tsx b/src/components/landing/Hero/index.tsx new file mode 100644 index 0000000..1038c59 --- /dev/null +++ b/src/components/landing/Hero/index.tsx @@ -0,0 +1,43 @@ +import React, {type ReactNode} from 'react'; +import clsx from 'clsx'; +import shared from '../styles/shared.module.css'; +import styles from './styles.module.css'; + +export default function Hero(): ReactNode { + return ( +
+
+
+
+
+ Utilisé par plus de 350 000 serveurs +
+
+

+ Le meilleur bot Discord de{' '} + sécurité +

+

+ Empêchez les utilisateurs malintentionnés de nuire à votre serveur + Discord. +

+ +
+
+
+ ); +} diff --git a/src/components/landing/Hero/styles.module.css b/src/components/landing/Hero/styles.module.css new file mode 100644 index 0000000..3015b24 --- /dev/null +++ b/src/components/landing/Hero/styles.module.css @@ -0,0 +1,85 @@ +.section { + padding-top: 90px; + padding-bottom: 150px; + position: relative; + overflow-x: clip; +} + +.content { + z-index: 2; + text-align: center; + display: flex; + flex-flow: column; + justify-content: space-between; + align-items: center; + position: relative; +} + +.preTitleWrap { + border-radius: 50px; + background-color: #1b1a25; + background-image: linear-gradient(180deg, #d35f5f 40%, #a561a3); + margin-bottom: 20px; + padding: 1px; + display: inline-block; + overflow: hidden; +} + +.preTitleText { + border-radius: 50px; + background-color: #1b1a25; + padding: 7px 14px 5px; + font-size: 16px; + font-weight: 400; + line-height: 1.5em; + color: #fff; + text-align: center; +} + +.title { + margin: 0 0 10px 0; + font-family: var(--ifm-heading-font-family); + color: #fff; + font-size: 68px; + font-weight: 600; + line-height: 1.2em; +} + +.description { + width: 75%; + font-family: var(--ifm-font-family-base); + margin-top: 0; + margin-bottom: 50px; + color: #e1e0e9; + font-size: 18px; +} + +.buttonList { + display: flex; + flex-flow: wrap; + justify-content: center; + align-items: center; + column-gap: 30px; + row-gap: 15px; +} + +@media screen and (max-width: 991px) { + .section { + padding-top: 50px; + padding-bottom: 100px; + } + .description { + width: 100%; + margin-bottom: 30px; + } +} + +@media screen and (max-width: 767px) { + .section { + padding-top: 30px; + padding-bottom: 80px; + } + .title { + font-size: 48px; + } +} diff --git a/src/components/landing/Pricing/index.tsx b/src/components/landing/Pricing/index.tsx new file mode 100644 index 0000000..257a2cd --- /dev/null +++ b/src/components/landing/Pricing/index.tsx @@ -0,0 +1,136 @@ +import React, {type ReactNode} from 'react'; +import clsx from 'clsx'; +import shared from '../styles/shared.module.css'; +import styles from './styles.module.css'; + +const CHECK_ICON = '/img/landing/icon-02.svg'; + +function FeatureItem({children}: {children: ReactNode}) { + return ( +
+ +
{children}
+
+ ); +} + +export default function Pricing(): ReactNode { + return ( +
+
+
+
+

+ Garder une longueur{' '} + d'avance +

+

+ Ajoutez RaidProtect et commencez à protéger votre serveur dès + aujourd'hui. +

+
+ +
+ {/* Basic */} +
+
Basic
+
+

Gratuit

+
+

+ La sécurité essentielle assurée pour toujours +

+
+ Protections anti-spam + Blocage automatique des raids + Filtrage des bots malveillants + Modération & administration + + Et bien plus encore... + +
+ +
+ + {/* Founder */} +
+
+ Founder +
+
+

Abonnement

+

2,99 $

+
+

+ Offre de lancement réservée aux premiers abonnés +

+
+ Profil du bot personnalisable + Noms de sanctions custom + Accès avancé à l'Auth Manager + Accès étendu au Display Public + Accès à la Bêta publique + Rôle exclusif sur notre serveur +
+ +
+ + {/* Business */} +
+
+ Business +
+
+

Sur demande

+
+

+ Pour les projets aux exigences de sécurité élevées +

+
+ Les fonctionnalités Founder + Instance dédiée et isolée + Audit initial de votre serveur + Intégration avec vos outils + Fonctionnalités sur mesure + Suivi régulier avec un expert + Support prioritaire +
+ +
+
+
+
+ ); +} diff --git a/src/components/landing/Pricing/styles.module.css b/src/components/landing/Pricing/styles.module.css new file mode 100644 index 0000000..d213038 --- /dev/null +++ b/src/components/landing/Pricing/styles.module.css @@ -0,0 +1,202 @@ +.section { + overflow-x: clip; + padding-top: 150px; + padding-bottom: 150px; +} + +.titleWrap { + text-align: center; + width: 60%; + margin: 0 auto 40px auto; + position: relative; +} + +.titleInner { + z-index: 2; + position: relative; +} + +.title { + margin: 0 0 10px 0; + font-family: var(--ifm-heading-font-family); + color: #fff; + font-size: 50px; + font-weight: 600; + line-height: 1.2em; +} + +.description { + margin: 0 0 40px 0; + color: #e1e0e9; + font-size: 18px; +} + +.decoration { + background-image: linear-gradient(180deg, #d35f5f 40%, #a561a3); + filter: blur(110px); + width: 50%; + height: 90px; + margin: 179px auto auto auto; + position: absolute; + inset: 0; + z-index: 0; + pointer-events: none; +} + +.grid { + z-index: 2; + position: relative; + display: grid; + grid-template-rows: auto; + grid-template-columns: 1fr 1fr 1fr; + grid-column-gap: 30px; + grid-row-gap: 30px; + margin-bottom: 30px; +} + +.item { + display: flex; + flex-flow: column; + justify-content: flex-start; + align-items: flex-start; + border: 1px solid #242328; + border-radius: 20px; + background-color: #070417; + padding: 30px; +} + +.itemCenter { + border-color: #d35f5f; + background-color: #1b1a25; +} + +.preTitle { + border: 1px solid #d35f5f; + border-radius: 50px; + background-color: #242328; + color: #fff; + text-align: center; + margin-bottom: 20px; + padding: 8px 20px; + font-size: 16px; + line-height: 1.3em; + font-family: var(--ifm-font-family-base); +} + +.preTitleFounder { + border-color: #ffab22; + background-color: #1b1a25; +} + +.preTitleEnterprise { + border-color: #5f6fd3; +} + +.priceWrap { + display: flex; + flex-flow: wrap; + justify-content: flex-start; + align-items: baseline; + width: 100%; + column-gap: 10px; + row-gap: 5px; + margin-bottom: 20px; +} + +.price { + margin: 0; + font-family: var(--ifm-heading-font-family); + color: #fff; + font-size: 30px; + font-weight: 600; + line-height: 1.2em; +} + +.priceCenter { + text-align: right; + background-image: linear-gradient(180deg, #d35f5f 40%, #a561a3); + -webkit-text-fill-color: transparent; + -webkit-background-clip: text; + background-clip: text; +} + +.itemTagline { + margin: 0; + color: #e1e0e9; + font-size: 18px; + line-height: 1.5em; +} + +.featureList { + display: flex; + flex-flow: column; + width: 100%; + margin-top: 50px; + margin-bottom: 50px; + column-gap: 15px; + row-gap: 15px; +} + +.featureItem { + display: flex; + align-items: flex-start; + justify-content: flex-start; + column-gap: 8px; + row-gap: 8px; + color: #e1e0e9; +} + +.featureIcon { + flex: none; + width: 18px; + height: 18px; + margin-top: 5px; +} + +.buttonList { + display: flex; + flex-flow: column; + align-items: stretch; + justify-content: flex-start; + width: 100%; + margin-top: auto; + text-align: center; + column-gap: 15px; + row-gap: 15px; +} + +@media screen and (max-width: 991px) { + .section { + padding-top: 100px; + padding-bottom: 100px; + } + .titleWrap { + width: 100%; + } + .grid { + grid-template-columns: 1fr 1fr; + } + .featureList { + margin-top: 30px; + margin-bottom: 30px; + } +} + +@media screen and (max-width: 767px) { + .section { + padding-top: 80px; + padding-bottom: 80px; + } + .title { + font-size: 42px; + } + .grid { + grid-template-columns: 1fr; + grid-column-gap: 20px; + grid-row-gap: 20px; + margin-bottom: 20px; + } + .item { + padding: 20px; + } +} diff --git a/src/components/landing/Servers/index.tsx b/src/components/landing/Servers/index.tsx new file mode 100644 index 0000000..4d8090a --- /dev/null +++ b/src/components/landing/Servers/index.tsx @@ -0,0 +1,210 @@ +import React, {type ReactNode} from 'react'; +import clsx from 'clsx'; +import shared from '../styles/shared.module.css'; +import styles from './styles.module.css'; + +type Badge = 'verified' | 'partner' | null; + +type Server = { + name: string; + icon: string; + alt: string; + href: string; + members: string; + badge: Badge; +}; + +const SERVERS: Server[] = [ + { + name: 'Wankil Studio', + icon: '/img/landing/iconWankilStudio.webp', + alt: 'Wankil Studio Discord server icon', + href: 'https://discord.com/invite/wankilstudio', + members: '40 000 membres', + badge: 'verified', + }, + { + name: 'Rocket League France', + icon: '/img/landing/iconRocketLeagueFrance.webp', + alt: 'Rocket League France Discord server icon', + href: 'https://discord.com/invite/rlfr', + members: '196 500 membres', + badge: 'partner', + }, + { + name: 'Slash FR', + icon: '/img/landing/iconSlashFR.webp', + alt: 'Slash FR Discord server icon', + href: 'https://discord.com/invite/fr', + members: '48 500 membres', + badge: null, + }, + { + name: "ZetFar's Family", + icon: '/img/landing/iconZetFar.webp', + alt: 'ZetFar Discord server icon', + href: 'https://discord.com/invite/zetfar', + members: '135 000 membres', + badge: 'verified', + }, + { + name: 'Ligue 1 McDonald’s', + icon: '/img/landing/iconLigue1.webp', + alt: 'Ligue 1 Discord server icon', + href: 'https://discord.com/invite/ligue1', + members: '15 000 membres', + badge: 'verified', + }, + { + name: 'Jobless', + icon: '/img/landing/iconJobless.webp', + alt: 'Jobless Discord server icon', + href: 'https://discord.com/invite/jobless', + members: '56 500 membres', + badge: 'partner', + }, + { + name: 'Blox Fruits FR', + icon: '/img/landing/iconBloxFruitsFR.webp', + alt: 'Blox Fruits FR Discord server icon', + href: 'https://discord.com/invite/bloxfruitsfr', + members: '124 000 membres', + badge: null, + }, + { + name: 'CYRILmp4', + icon: '/img/landing/iconCyrilmp4.webp', + alt: 'CYRILmp4 Discord server icon', + href: 'https://discord.com/invite/cyrilmp4', + members: '22 500 membres', + badge: 'partner', + }, + { + name: 'Fortnite House', + icon: '/img/landing/iconFortniteHouse.webp', + alt: 'Fortnite House Discord server icon', + href: 'https://discord.com/invite/officiel', + members: '66 500 membres', + badge: 'partner', + }, + { + name: 'PUBG MOBILE FRANCE', + icon: '/img/landing/iconPUBGMobileFrance.webp', + alt: 'PUBG MOBILE FRANCE Discord server icon', + href: 'https://discord.com/invite/pubgmfr', + members: '18 000 membres', + badge: 'verified', + }, + { + name: 'NationGlory', + icon: '/img/landing/iconNationsGlory.webp', + alt: 'NationsGlory server icon', + href: 'https://discord.com/invite/nationsglory', + members: '51 000 membres', + badge: 'partner', + }, + { + name: 'MASTU', + icon: '/img/landing/iconMastu.webp', + alt: 'MASTU Discord server icon', + href: 'https://discord.com/invite/mastu', + members: '17 000 membres', + badge: 'partner', + }, + { + name: 'Clash Royale FR', + icon: '/img/landing/iconClashRoyaleFR.webp', + alt: 'Clash Royale FR Discord server icon', + href: 'https://discord.com/invite/clashfr', + members: '34 000 membres', + badge: 'partner', + }, + { + name: 'TEAM VITALITY', + icon: '/img/landing/iconTeamVitality.webp', + alt: 'TEAM VITALITY Discord server icon', + href: 'https://discord.com/invite/teamvitality', + members: '19 500 membres', + badge: null, + }, + { + name: 'Genshin Impact FR', + icon: '/img/landing/iconGenshinImpactFR.webp', + alt: 'Genshin Impact FR Discord server icon', + href: 'https://discord.com/invite/genshinimpactfr', + members: '55 000 membres', + badge: 'partner', + }, +]; + +function BadgeImg({badge}: {badge: Badge}) { + if (!badge) return null; + const src = + badge === 'verified' + ? '/img/landing/serverBadgeVerified.svg' + : '/img/landing/serverBadgePartner.svg'; + const alt = + badge === 'verified' + ? 'Discord server badge verified' + : 'Discord server badge partner'; + return ( + {alt} + ); +} + +function ServerCard({server}: {server: Server}) { + return ( + +
+ {server.alt} +
+
+
{server.name}
+ +
+
{server.members}
+
+
+
+ ); +} + +export default function Servers(): ReactNode { + return ( +
+
+

Nous protégeons les plus grands

+
+
+
+ {SERVERS.map((server) => ( + + ))} +
+ +
+
+
+
+ ); +} diff --git a/src/components/landing/Servers/styles.module.css b/src/components/landing/Servers/styles.module.css new file mode 100644 index 0000000..b3be400 --- /dev/null +++ b/src/components/landing/Servers/styles.module.css @@ -0,0 +1,145 @@ +.section { + z-index: 3; + position: relative; +} + +.title { + text-align: center; + margin: 0 0 20px 0; + color: #e1e0e9; + font-family: var(--ifm-font-family-base); + font-size: 18px; + font-weight: 400; +} + +.marqueeWrap { + position: relative; + width: 100%; + overflow: hidden; + display: flex; + align-items: center; + --marquee-fade-width: 80px; + -webkit-mask-image: linear-gradient( + 90deg, + transparent, + #000 var(--marquee-fade-width), + #000 calc(100% - var(--marquee-fade-width)), + transparent + ); + mask-image: linear-gradient( + 90deg, + transparent, + #000 var(--marquee-fade-width), + #000 calc(100% - var(--marquee-fade-width)), + transparent + ); +} + +.track { + display: flex; + flex: none; + align-items: center; + width: max-content; + color: #fff; + opacity: 0.85; + animation: marquee 60s linear infinite; +} + +.marqueeWrap:hover .track { + animation-play-state: paused; +} + +.group { + display: flex; + align-items: center; +} + +.server { + display: flex; + flex-flow: column; + align-items: flex-start; + justify-content: flex-start; + min-width: 275px; + margin-right: 30px; + padding: 30px; + border: 1px solid #444950; + border-radius: 0.8rem; + background-color: #242328; + color: #fff; + text-decoration: none; + transition: border-color 0.2s ease-in-out; +} + +.server:hover { + border-color: #d35f5f; + text-decoration: none; + color: #fff; +} + +.avatarInfo { + display: flex; + align-items: center; + column-gap: 15px; + row-gap: 15px; + font-size: 14px; + line-height: 1.5em; +} + +.avatar { + flex: none; + width: 50px; + height: 50px; + object-fit: cover; + border-radius: 50%; +} + +.infos { + display: flex; + flex-flow: column; + align-items: flex-start; + justify-content: center; + row-gap: 6px; +} + +.nameRow { + display: flex; + align-items: center; +} + +.name { + color: #fff; + font-size: 18px; + font-weight: 600; + font-family: var(--ifm-font-family-base); +} + +.badge { + margin-left: 10px; +} + +.memberCount { + color: #e1e0e9; + font-size: 14px; +} + +@keyframes marquee { + from { + transform: translate3d(0, 0, 0); + } + to { + transform: translate3d(-50%, 0, 0); + } +} + +@media (prefers-reduced-motion: reduce) { + .track { + animation: none; + } +} + +@media screen and (max-width: 767px) { + .server { + min-width: 240px; + padding: 20px; + } +} diff --git a/src/components/landing/styles/shared.module.css b/src/components/landing/styles/shared.module.css new file mode 100644 index 0000000..0a2a1cf --- /dev/null +++ b/src/components/landing/styles/shared.module.css @@ -0,0 +1,164 @@ +/* Shared landing-page tokens & utilities, mirroring the Webflow source */ + +.landing { + /* Colors from raidprotectbot.webflow.css */ + --color-black: #040114; + --color-gray-1: #070417; + --color-gray-2: #1b1a25; + --color-gray-3: #242328; + --color-gray-4: #e1e0e9; + --color-white: #ffffff; + --color-primary-1: #726cb3; + --color-primary-4: #a561a3; + --color-primary-rp: #d35f5f; + --color-darker-primary: #bd5454; + --color-border-doc: #444950; + --color-founder: #ffab22; + --color-enterprise: #5f6fd3; + + --radius-sm: 10px; + --radius-md: 20px; + --radius-lg: 50px; + --radius-doc: 0.8rem; + + --gradient-1: linear-gradient(180deg, var(--color-primary-rp) 40%, var(--color-primary-4)); + --gradient-feature-icon: linear-gradient( + 135deg, + var(--color-primary-1), + var(--color-primary-rp) 60%, + var(--color-primary-4) + ); + + color: var(--color-gray-4); + font-size: 18px; + line-height: 1.5em; + background-color: var(--color-black); +} + +.container { + max-width: 1360px; + margin-left: auto; + margin-right: auto; + padding-left: 30px; + padding-right: 30px; +} + +.sectionSpacing { + padding-top: 150px; + padding-bottom: 150px; +} + +.sectionSpacingTop { + padding-top: 150px; +} + +.sectionSpacingBottom { + padding-bottom: 150px; +} + +.textGradient { + background-image: var(--gradient-1); + -webkit-text-fill-color: transparent; + -webkit-background-clip: text; + background-clip: text; +} + +.btnPrimary { + display: inline-block; + border: 1px solid var(--color-darker-primary); + border-radius: var(--radius-lg); + background-color: var(--color-darker-primary); + color: #fff; + text-align: center; + padding: 20px 28px 18px; + font-size: 18px; + font-weight: 500; + line-height: 1.1em; + text-decoration: none; + transition: border-color 0.3s, background-color 0.3s, transform 0.3s, color 0.3s; +} + +.btnPrimary:hover { + text-decoration: none; + color: #fff; + border-color: var(--color-darker-primary); + background-color: var(--color-darker-primary); + transform: translate3d(0, -3px, 0.01px); +} + +.btnPrimaryFounder { + border-color: var(--color-founder); + background-color: var(--color-founder); + color: #fff; +} + +.btnPrimaryFounder:hover { + border-color: var(--color-founder); + background-color: var(--color-founder); +} + +.btnSecondary { + display: inline-block; + border: 1px solid var(--color-darker-primary); + border-radius: var(--radius-lg); + background-color: transparent; + color: var(--color-white); + text-align: center; + padding: 20px 28px 18px; + font-size: 18px; + line-height: 1.1em; + text-decoration: none; + transition: border-color 0.3s, transform 0.3s, background-color 0.3s, color 0.3s; +} + +.btnSecondary:hover { + text-decoration: none; + color: #fff; + border-color: var(--color-darker-primary); + background-color: var(--color-darker-primary); + transform: translate3d(0, -3px, 0.01px); +} + +.btnSecondaryEnterprise { + border-color: var(--color-enterprise); +} + +.btnSecondaryEnterprise:hover { + border-color: var(--color-enterprise); + background-color: var(--color-enterprise); +} + +@media screen and (max-width: 991px) { + .sectionSpacing { + padding-top: 100px; + padding-bottom: 100px; + } + .sectionSpacingTop { + padding-top: 100px; + } + .sectionSpacingBottom { + padding-bottom: 100px; + } +} + +@media screen and (max-width: 767px) { + .container { + padding-left: 20px; + padding-right: 20px; + } + .sectionSpacing { + padding-top: 80px; + padding-bottom: 80px; + } + .sectionSpacingTop { + padding-top: 80px; + } + .sectionSpacingBottom { + padding-bottom: 80px; + } + .btnPrimary, + .btnSecondary { + padding: 20px 26px 16px; + font-size: 16px; + } +} diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 64dc99a..5c61249 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,30 +1,22 @@ import React, {type ReactNode} from 'react'; import Layout from '@theme/Layout'; -import Link from '@docusaurus/Link'; -import Translate, {translate} from '@docusaurus/Translate'; +import Hero from '@site/src/components/landing/Hero'; +import Servers from '@site/src/components/landing/Servers'; +import About from '@site/src/components/landing/About'; +import Features from '@site/src/components/landing/Features'; +import Pricing from '@site/src/components/landing/Pricing'; export default function Home(): ReactNode { return ( -
-

- RaidProtect -

-

- - La nouvelle page d'accueil arrive bientôt. En attendant, retrouvez toute la documentation ci-dessous. - -

-
- - Accéder à la documentation - -
+ title="RaidProtect • Sécurisez votre serveur Discord" + description="RaidProtect est un bot Discord français ayant pour mission de protéger simplement votre serveur des utilisateurs malintentionnés."> +
+ + + + +
); diff --git a/static/img/landing/411d8a698dd15ddf.webp b/static/img/landing/411d8a698dd15ddf.webp new file mode 100644 index 0000000000000000000000000000000000000000..db9fa672d58b622a3c0ecbea6ba42a7848b909c9 GIT binary patch literal 1644 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 literal 0 HcmV?d00001 diff --git a/static/img/landing/RP-embed-p-500.webp b/static/img/landing/RP-embed-p-500.webp new file mode 100644 index 0000000000000000000000000000000000000000..e53508722bb7fe1b4281c81824322c16fb846045 GIT binary patch literal 3770 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∋Zn?y=S=Z{GE-)xfORP*U{5ka{#w+c-`RA{h=-m#jsq)^7d`Qf zckc0CCaS5UdhnF&S5E#N{>tczQpwLOfNA?%m1>VI7d?~iX1=+B)Zo_rRHHYuQY{rn zFCKn{Sz%Zu@xMNL1bg0x8xmIa=%`q?#*pxp0hdUD82m!%Kfly=zZGk4;rnC)=Ka2U z;~&NVgTn|&6KyA+iK1E4Gi?_!9h5>vP`%tIv z1WuHpY|TfFyX!DAKW?)vRjO@iSYRkIT8YA0kk^za*^y@$p!>}>DByvxD0~OOmP|U0 z&}$osLp);Mpgl}M1m^6NjETQS$tp!Ko!&i-BGy1?>3-^gQdoYh1_CennO)pBi|JeX z6Jr`_BSeJP{`UXp{|0yDa9scZ literal 0 HcmV?d00001 diff --git a/static/img/landing/RP-embed-p-800.webp b/static/img/landing/RP-embed-p-800.webp new file mode 100644 index 0000000000000000000000000000000000000000..0b19aae76fb1b5da86484cb2662fa0b922d81000 GIT binary patch literal 6056 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 SF=0Qan+WUu@1yAdng0W>0>3u^ literal 0 HcmV?d00001 diff --git a/static/img/landing/RP-embed.webp b/static/img/landing/RP-embed.webp new file mode 100644 index 0000000000000000000000000000000000000000..88c8559d1700a57c5e2181f3940f23a691d954fa GIT binary patch literal 16550 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 + + diff --git a/static/img/landing/icon-geranium.svg b/static/img/landing/icon-geranium.svg new file mode 100644 index 0000000..e1a5ad8 --- /dev/null +++ b/static/img/landing/icon-geranium.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/img/landing/iconAntiraidWhite.svg b/static/img/landing/iconAntiraidWhite.svg new file mode 100644 index 0000000..df1d271 --- /dev/null +++ b/static/img/landing/iconAntiraidWhite.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/img/landing/iconAntispamWhite.svg b/static/img/landing/iconAntispamWhite.svg new file mode 100644 index 0000000..4b3f4f4 --- /dev/null +++ b/static/img/landing/iconAntispamWhite.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/img/landing/iconArtofWar3.webp b/static/img/landing/iconArtofWar3.webp new file mode 100644 index 0000000000000000000000000000000000000000..12bb9f705b2132acea3a58f8df86b8384786c73e GIT binary patch literal 3796 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 Ka&{rCQ2+p$0bV2k literal 0 HcmV?d00001 diff --git a/static/img/landing/iconBloxFruitsFR.webp b/static/img/landing/iconBloxFruitsFR.webp new file mode 100644 index 0000000000000000000000000000000000000000..55d3cec5874c8b0de58a71b6d54ee566841ac48b GIT binary patch literal 4800 zcmV;x5Yn9?L)7txmX& z`%eh`jeD;=9FO)ZsK0T4y#C|qZ-cx8y`{jm0sgu88UKapU)e8U4=el-eM{I6^soLe zRPX%!$$e}8v)nKC1Jje(PwvmNU+v3n+j-o`k$<CIn+1I*#$p5`vOsr z(-RGp6Hnu?sW_UUu)beZ5!)}}OwOL&rI--3NithG<}S^w4A$Q~8QBm6iN`jZWhVC~ zlUJ6(^%J#7~av!b_#u_cxLhEv@xvOGo zh~<}Vf3f~)<+DyA=jkU3ht4e_RH?yVgWj?s9zL<;Fo&s?WleN&^iIxs52xF7jfNOn z^Cme0s}~NW<3FgJIx>$T3swsm%G&+qXrLhlTu>jx*%hROvLFSD4jy8wvhgoA=&;Oq zCZ|zVb&$*Q56lYhiz2)pDs$JBwF)NZK`*Q;ho5;4$rp9BPz;mLDBP}`^P^-^mu3u4 zOIhwG8j1XMohTTv8tE`M5^r{xfzqcS0RI02l*Jr(JQTNc1i$Px41EUTE9phM{A<>i zqv(wBi`Wz;#x^rHndEp(oYp=aNZYn&+jz4ql?7wiTJ08Ul8xN6Zm3A%C7DA4zu_^` z`>`r*H~eT(@I%=+Pe<{V) zD~_hDR}*hrS;-Rq1-8ue*`l;&Wr%7&oeAj#hvJY&m3^A7CWW5_VME^6AL^Ir&ug}Y z7j|2`QKlkc!OIsz;HdIxi`;$r$c3p4g0t@iTO55_qEqKAnDu`ae#P;aqJ?3Qd()R> zA^Y^uv4Gr>?=3jI?U=cz<$g$$D95cb{pT@5rdBS_(P^ZXlw*o1My1{LrKdR0{wM#t zsN`Kk(|g>aD^oZR=pw%IZxkdX6RG|&SadGd`T|`kEAE|~u3)|@4;e27(+gX9wzd&p zG%95{%rFeq03rf&Wt#V+=!5-tMfTO5*91wYGG2xT!7y;bZMe*ao9fmU&XAnC^2>mL zB(M|AcDte;bef86K;=_PW%Pbh#9eQu&Ffaj{CrEo_ z)iO*tEV6SYkWiyEAKo_7i)a#u2^)cp8CP+Bc#auJ0e`B?fmHRmaSzRFIJ)&2?W!;O z@iyvNKueaWbUTsB*x}7k9lRdPb&Lnc;bW znFRi_c1rj&@Ah1=V+VQYV^$KR7QfvAxmiCDa{!qc)|ig)OyAGCPhI5g^~H#)&9+eS zCOb`xpUSbgh0S);O^;A?c^%3U4iqcmExZqC3zVw$i{CYH7Qr*~@=3S)K~gY>`NDQ_ zO1`$nlal&e=#tA$0%Uo2e&L_qL%nkX8x$B!0%-V=_i<+|y`VGl?cc{76!N_Qs=_X0 zsttD1VMj7>-~frFY2j`XsWhjR{!w2N_hrN|ynY%7ad+!0<@ckdum>wo_`zs1-L+y~ zBNA`C!RA4z_aPbKZCFH-1~}5BvOOHc=DulZa@Y9Q8BRCRU9jeg0hco?>!-iS5=bK~ z%HJ1xyD2>2%9Y>366^!Qm|;%T`_-UmUocF_fpxZv-mUN%mGMEI6d&KP(4ruBoNb4h z;hV%kuABt^tOv%x?LD}^>x#i-fJ0dLGj629Hp5WiNn-4pEUc|=dmn3kkdgbSEtg-YGa40E?hiyN^I{;ygS9N zb*9K-!)m&y2C!h@JvoDS_5p}hrjhrae&-|?qrMbkLjrR#N=x(8Oo_FX=(8r%4vVMS z8xQA1piKTz!5rz-I|Fi2P}#Wpy03tAHwB^FyN15Lj8YxkF0ac|m{MZ%R zQ`0>kJ7s(lG4{ZW+&rl@`0l{!r$jkvYaCf;yz~X}x={66%)%bwP(Ov0rxFFXeKn5R zTCug=gq<}G0?$_Gu(7TTZm#NOT=bv$W}dUZ70DjXfD3Tdbx$q|5!8L#&mAk^spEPH zwxDz$yP^qWri?88w<972($(EcbFP2Vr0#=5scTm(9ov1i0``|x(MJsoTaQ&2C8yq) z_#NDP&=6OT;|a1?=)KbeofpB-^5Cziqw&Pr0JK#TX}Iw}g2k`0`@7!ZAofd;d9fkd zm}$A(B=PZ03kV_aFC436>a%@<(JmO;&3DXpxJ!V#&b8`GkAn=viqsn~^x3So9&!P^ z4+#R6Bw%6DJ^Cw1g5(9BfCr!9qY*Dqi1?$E!6_1wB@cV4A7~XCB3-bhy*L4ppV%By z2C^eo?8A7_cY-|~2a;Zx!&=nXMqrQKMO~nI@WLmnO9^@v;zaIyKFzg{cA_#r*I}UE zMB5h&C~iEduHSE;n35djef&`Hov{dvukRyZi>M8wk8U6+mU%PzFvw?*`u4%kxOPWm zN$YrVfF1(EZG18i!5(av$#>%GOMz3aW}^NoP4c#l(~qmGHAJ+-uw0L^!6*AVYmRUd z!TYHEiJw)L_$nlf7Y@#K$q--u>Rn9@|Gqin@E}Sp;=DXi!azMBt2|3I5R<~7V>Jd0 zPoTk`VvsOy&O2A@3-|)Im4OiwP|NC4{N+oImrX_sVCYx1aIX9WzJeeTO)>lLD*LTG z@s(MAp9SAfgsHJF?OnsWu~q5NT(sl)z*d5;$be`AnBM&66ah#Yb@942h=P;*EL&DVRu8?>>sp# zGZCe1e*=C-5IFC;02xkRl<^#B8AsIt#4h^;$I=MV0B~Qm zKKG$Y@(q2A4DZYv6|RqFWFB#ifDFu8QbFMv<0i=DTh%rev20>ODmGPZn;R0!iIfM$cG_RbQBIH3cst{^v4b(k(2`pWOK0p$hiSRc7?Kv#y z#IHl+ok+`iROqr|6Q*b~Q=%Z?X3Vh5D0~9E7_kH%0j*QNgrq}$L$!Zun+m_NY+^~?q_9)aN>W;_*@jSCnr;lj zh=U5|a>ePsYO~Muw8nJ<1yA5TQ;`tTwv!dL69=b-U{Mq#7lDe7-U1Hc;Cr#fa=5x@ z+sg|&R5%1d1@-e#t$|c`jdF(Z!<=9~X#7acudvM8H}nQZ1H{4V4dj~_e(SNqnTK$! zqCwsDUPE1_O?hoEquR$DnwHf23OoWWHg+LE!E&P4a927qd8gtB)#>ABa#QJaJVbx@ zgzdDFF*o-2wdcg(cx|%k6c}9RO=S`#-VM0MZ-X z=F^jP(+6sWydR#;ne2iCq%2lK{#7iMyt2-2@8_v_29{fSU;wbWNPuS&h?*y^QJQ|J z@%dwZ4Mr`e^@DVd0?DW)*Q@CuS+{G#8uIZzBaXfX8HK5{;mRgRLT zZja6VaI_KsPB2P-dE;)Fs--U%C_wNEUg!0a00PqTeu?L!dp@{7TuP_$);Auz3eA2Y z3^uI`ik_cjcis|h{>IX*RSEmh)55ig{OKsWo-+_i(|?H_4R|ekvUK#xZl?*e-dTW^ zO4HzcO&phHK|cC9V?(ATlc;NAMs%OE?%?ceUgqu5xje}Lkz8<_i`GJaJp7J-M_yE7 zdM4VFmSaz(#x)T&^qeD- z2ZL*eGFDMa2>Bp69g{5R4JGOe`lX}N$iU~!xVPvWP1BBuEduakFMr}wY4K5o{0Kea zlyAmT|30&Zr(SWWA7P4A;Y`3Kn$bG;_SZbaB+OwwJKN5jF2nzA*w^N#BGl#6BY|a3 zX~s+ancKI{%*_{B{Lz%JtYmpi-Q74b!`02GF#}nmn6#5MrEn8J#PZwqYk78TueDe| zYvn1#9Zs7X0OuUGMcURK5QCz0&{h*eKW-}>xE-KFxq@x4Wt_Z@%jz`g&p#N$dOA0R z;2xK~ku-lrds}694_+Eb%4dLd>)VqNfDrwr=%1|V@w4kOh0>5Wr^RU@zZSh6fug3O zF|DEmV1c{s=?`Y1P0iQ8A$uWx=9<4usI5owbphPSHkyKAbr24JhYtVj#lN0v< z!~)0smii7Gg#i=N=kes^;6#Z|m^=*ngu|U^bdTM1jIYHz*UG>pK`vF6UF|((>i#^^QJ{X_uHB zJCQ)0Z)^CU=`dO>(sO?!l^VTa2|AI*SXDs2=6l4JgUaYdnE0tmI%m0Y6I!{hmXMo1 zpELUQ+Sy8c8;|74IZeb-2)dBy_)03jVwFEA&t*+zqI&9#NMZ_yJ&gyn>leQXV86OA%a=-n; z!_%;6P7t8Te9bssS<+8SJ28mHVyThHTqHcrLZLT+TthP(ifVya!}iLqi7H^hIJyBcCx^h z#D0@6N;X$>OWXkj39-0A;;3L3YrDx!o~njkOf3+fZJw$_S3cBE|x(iwkO6twt!_%7H`hC)a+I7-6-Az6h{<{x& zc)QqOb`VrqBf+@FEbdqcDAC2`vTe|WTLaC8N~vMv;|nVBoc(r?W@jiKS^?{F#*1Ah azaLSxXJ;^4@N!aWM+i93${uNl7ytlyNosxo literal 0 HcmV?d00001 diff --git a/static/img/landing/iconCaptchaWhite.svg b/static/img/landing/iconCaptchaWhite.svg new file mode 100644 index 0000000..2b52714 --- /dev/null +++ b/static/img/landing/iconCaptchaWhite.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/static/img/landing/iconChatzone.webp b/static/img/landing/iconChatzone.webp new file mode 100644 index 0000000000000000000000000000000000000000..62d5fa5dae7b1b0cbf36574ef7be2a535aeac2e1 GIT binary patch literal 5986 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 literal 0 HcmV?d00001 diff --git a/static/img/landing/iconClashRoyaleFR.webp b/static/img/landing/iconClashRoyaleFR.webp new file mode 100644 index 0000000000000000000000000000000000000000..ade9f1e5a07c9f80b9260a257b71ae8a29be83d8 GIT binary patch literal 4066 zcmV<84;}DQNk&H64*&pHMM6+kP&gpY4*&r0J^-BoDu4ih06uLjl0~E=)W`N^3k5l^1Ipc(f(tASmAdslK)v-c>K-zyn1Thck~+RgZ~TvR@ZNg|ElnJ z%vaC!Ey#an+K%_fonG4hUu9o^v;=ou&hcf61AdG3ivM%UkL>^OJ%s;YI^U-&Sl%}O zXmHXlg~2NKx8AoF!N8G5ds!8ZlRr%%dRM)^(LBOiRPe0GD=_J|f(4t|Os4aTwRif| zAKUf}m6UQA+Fc1Tv}P#O?Q9jy@IhA_i{l9m%fVOipcISzO%q$#nT4T|)NF;&&M(C} zV9hN6{1JPEST6P@0Rq!;Ge{#YdKO|5^ddMS=4P$~H3g#}jTL)Vq_N#tD72f-AEGq6 zn9>kn`;kaR<>#O!kwB!GCKXlg;-o4h5LlQ9;ksO%`vv);1lfbY8Q$k%%eb_W?KIgo z6~!)^AH?V(LL)uv-9BZDy+_J~P)~YDdKVX?rnBMws(VOLeCSGS#)|go+e{3rf1KZ#sI(o;(zqy(#y+if9vESP$1f!{{ATLgkjv|mKgt*01j#4 z&1whuSeshpCDz%4qrt7A-<<};jIdu1pwZb267HFt2%Nf|TG}8{k=5wVxb%GABlS{k=C zcQzgK%t#jB;B)yG5k}+Ff;@7{Raf+Tdv`h)+}E@;UOYP?l%|S$Wi3p**#?>dh}@O? z9)Z&xkeD?N&0dz+HxkVh&0l9aRic?$A2vUl5q@_sLEoYnYXbH zpKQBF@C5^vi0R8PF|&Ede6=lxc=k9yae}fsR-|@T@BR6-YU356yp9i8NfIJD6%-2F zw#OX@?tO9#y4-&=w@M=6JSr*ccDCd1yU_tzO|~Sn>o2m9U#97HO_P5R?m)*{)9pz- z?*FIbv}ElOamhG)^PtC+IbDvr4Tzz5JZV@QHE+OC43Y(+SU`K`YA=k5e4W>K9bUe5 zvR3BOn7i|iabTVBN1-3C05OHd_cWfTwC1~OkZcdy!)KHl!Z<+`=^cE(o%l*eh774hG{?H(91cZ#JVu+4`WM zHd>2CULB}k8kb79w5zDRj89D{6~&4iEquxdmd&1#6kZ+)d28UPom6a>3~Ad3Mkf$$ zutAeyR(h+*r0jF<(^K=-YOt~!tQ|!t`D{TKj^~;SJK)N;sJJ;F9ns>@&Q84AmOt!m zuB+?|1w4L`@UN!r4~c3XduP*b5s*s>0T3JgR{V!lv2d@M9xMJj)vGv!oq#wIBfmeQ zOsu^l9NG8$TI{4gV7TH=Htr-v^`w6{GX}8^I9Vzgs=`ZmkXKE|BGbpCLF!U;KgE*t z#65Nw5W0s{>r^vp%US)+Eq}~RFedVh1l^U(j7e(jQJObHA-PKvi~oPo93Nr32ZR`- z4;hEmxR<@^ua8&z0ZuT>2@*$k+O;sVxcknvHqy<5m03jNK4dEG{k#}0Wcr_tZ&D2R zL&nImq?dwk3a}7(1gQMH*bQe?hbZ@R5$~$J#fqPJb#tAWrsfDx%Kw$=8-sr@{n~Bf zEQKN5)sNxKdd8KuH^6F^tj1w2jQh3LyvNe--bhvs{cpfb)^=b7m{^G{ov`HX!}3&B z_l$zQv;Wyu9cQH6&(I-x1b(W z3E{ash=VJ#(70ZDHv$_PYy1noq7D%Phx6;`0V5KmuX)_ZgJlxZAc{Ev zBYF1b3!BFjCY*ELGB*w}%$=*I8`6>B&lQlB&9-GA&i>=lL(^#3#E}xVV2+>PaS{Hx zn4{|S3cQ6C`ynClfU%(j)JKu9KdFGgm}Pi?MC6*FPCJ?}6Sr4Kaq z_@DAF&73cWVrO8+kgJV(ws*|m8ChsaM@*jnJu?()ctrE0kDgOu%fZ{iPq>d)U-XMu zr^(boaGxX^`%kjJCdU7bqH&}^WoGWB_T43ZKH=(<2#F6iO|4oc3ZZ+q10l~=sN7|&?=EzBfi{S=2@7jM@ZG@x+6vocpwnw~cY-;Y|Z_kVl-tf~e! z=f|QJjc2PG`A}Ngc>I|@*EMh3NzBTz(h^3(xCg;ae25XKSEJeBWL6p3oF)3PL)gj2 zidz@sDqSiu7rJ1y&G}JBJ`zm0?=;|1795CVrMTNDaMU;9ofHYR0-#&zUxCY16CDm* zpQ{5Dzdy=MBp6VXy`k`>DKiSg;B)6ra3WZGosj%VjAd8=&A=SoItZl=PN+*QWIN? zRxr9a6%I>`!S|tB2RxOVjnFxy*nhkTLI~+ZdS31At9AI+PQ-pIRGPxt~ZW z^!Sc>f+T-MovXxOntzdNx+))~NCy7hswo>$KP!#Wxx%m`((BJ2ErYcG;CaL&tW##~BNS$RS01}JNDDFYcOIy@r4i75RZZ!*kVnw(bKZuT@EPfkM#Ou~f>szF zU3z!4td`i5F`B$;O5+1vG@dG0E-sGILar`R!xSDh>*cCZ+7Q-Yg7H`{cO-}eYONgf zYeXavdyf7;d!10+D8{pXPyifPwWm@30b)KZiMqpI6*DbH_E$IJ4~JHPftLicVmJ3( zz8E*nOziC4ta}ekBq82Uh`h1aSb;7;lkoF4mA6hqE*Qag1#-~kk<4FGn|JHczQzP} z$iPQa9c4r*4jsk%R4BfG56rpIS+~J)rY?`ynTzw@UT~ zU>?^@28#z?@L9jhCIjj)uN{~m-sBIRC%Yr<*^yd8Tgw?e_qynSMsR>0nYw^6i|762 zGb#@oRWcVL;KV%4b{0CjLjl`v*yZ%)n3o)o`G$-Nq^VrV`M<8LL0afPcwgL_nRX7p zTa+sXs<)VO!MjJd zh#gJnO#Q2J7YRr^CQhBMpmu?N`Md3du2U)p1l;zMLT58yMely2_*(i9m{(g&RME9P z!Npqy(xcIq=7a%gCV*LR^z_C2VNCcz+(hA z48dLI)}n`*3V?x%5IitFX|1t97Z=9aS1hP z>rUBOO&@KL(#-BGYV~{hWzS}zMSj94;8uoX?ZJ&*@jd@Kx6jIpCgKg3G~HA&xXum~ z9V0LC;0l-Qw%7NT$U6GJA55;Ws}wX8i0AKM?<1@skiu&IR1KK)N3wkhii{YKGV@c1 zWQAZmmd#MXAG8t;dw%c*&nLh}l?kp*jqEZU;Zuek6*3Z?k;oMLN$efcXAEWWC@VI@ zrZsKOS#*^rkp33d(XHh6Pc9NAZrsp^D>m&alltt00jPe?f6?@`9r@_rvmwbD`g@?K z5yq(e&Mr&5@JD=hmq_my)52URoo)NqAcmpz)totd01xHK*zcML_cmjZBuU;uT%gFZ zAHeVKSgi4JuSHo}%yhDIe!?=ISx2PW{S7|}5dglg@Z2H*cZ)mJH25Y&N5jP$4m2rz z8;9Wn#Ga)bX`#yW+lyNoPb`!ojibW9d~w!wr-xktT@^z#SK=mxES zC>m@@5HJ0Qx@o>l^xK|NOiE>BYQ#SFF#RhaCu7|Thj#MZslB~a6J-l0Gz$>Dy5A!F6U#cF>!#THEeI_k`r<6iB)G4!31k?En#vT?e4%8LP+84Bfg)d^-+*w^*SW$f&{iZgF(Gr&RD;f?~N$&8Q zQN0E9-X)M5Zj-n&ZdjCzs%*lo%ewQ30tcWsNTQ}6a4V?}INLnC&@_Fmc(<%4YW;ZU zI`(V96)?4YRm@?wQTp?(m_<6bv$#+vM8gZK;h&&iRist3(%rUj8VX}Z-^?Se#PWM^ z=Q|gYSL2S*=v4jiCKRTkC1XeCh5cODXZEt#-13|N0RH)mHr}kMV^jaCQyDHeRs2=| zlY(-`wpkVma)*}L@kXy)w@uHa)i6~;Jg%lGpSI}{-ES#qR=Y~hW8$3}zYli)Z&;%@ zWrL(`YfYkRxbjH6g98he<|1fDaKvPwP{@BE7XavxD(+P=^2HGs)LvrW+q!JNt4xQI z_ecB27cviGtLPmCy5jwh>jhjoE%3Jn@@@27=NI)Xrn%D^NJrtY&;gsq%)GP^P{PMK zeqr~>2hwmfD;#^3z1Y5Xapv7JEv9!ZpKWdx2-`LMyG@ttip)(@e3kfi<0kaGof-;y z7H!adUIaXKf-54@jie9)pc#je?Nnis2w(*#VueSRr#*EVLjsJ~od`2~$)D|!+|Bs+ zVyoPbsBHasY~tyYNi7G4)&Cx_W|v%EuHT#-{)uxq?;k1#* znq}2P4d_zDCZ&S8#czXJbmOD0CFUsU02bUse(OC zcm_1at;%yDGRvR)hcmJCqa`oTRh?fV;=!UF_6d5KEY@skJIKmK!~+K>eL~JZrEL!H zc|a5Acp;m!hA^KieoShW`h6*mHh(FpoUiaUl789TS{H72slm3{tM~Z8I7_ZpMD7QR z{-qnrBzDE3K8?PY>Q z%2oihzcNay-|OGda2bkhU5HBBF1M@vKu#&$&hI`rneLx*K_EG(@Hwxpvm+=S{UesW zCvSsO5Gx=o?0&!>(@UKqLYI9)ewM(DM}*kAvJ^U+hB6pH-2@RvSr+=xq0;@}P4|_S z+62jk{<5T7Rj*61JY|N+>jJonFjs`qt~6t>YSNP+I*EC-%iAaJD0ellnA0FIxEx9H zoSBtUT|MgALe0~(P)RU}L^*a&2s*4kRgelqiU56?!tXd^|G2L`{IW_Mr>qC)8q z%Qb(^){;KRna5W!2n_`)?C?}aE7SkEu*kCe#1)eClbovxL3dKjCn4Tu=uXVRNcY(a z{`SwiQ1Ax0nu$w$_JT@`haasE8=k7(CIC2kapR_&I8&XD{D|WtIY9JCrmNr0+8^7# zDO54ngwrAt;RwYfk9is2piEG_^5?zR&p@jIgr9NQbqeASQk`c0JX4_ zt=4V$E%w>|RYz@{DyzK5UXM|oJno}7ju%tlJ(G{Jq=`!nNwe3TgV0YaCA1_yN2qhn z7ky!uc_8{G>)V^nagv&qe;kbG%+EfE)*pMXPuPqm7P}-Lmll5SW|qAY*%UL&$T@BB z=h?R__0gu9Pj=_fOVJtw+lk`yr|}^peE02ec-eH1If!O{zP^^vtJW}&!+xKae%_8M zr}=(zr(nSn^m2SyzJmf64tIl4W@jr8M|_{K*`PDuQZ)?#5ubf-o8#RUp4kMI=}y-8 z5$U&fg4VH~vZ4;%C!$tG7&zL-9d0Eqnxs=OObd`}5gmvw0wDU)?9tM`bpv@h#Ie)1 z_*wb<*Q3t9JA5U7F9&)r+W8{)<=9Sd^{>KJpv3BmN~kbK|6F_p(}GZ~5T@8j1rrN@ zCn3nUo?4U!*)OR%`Zwx#XJfw@k$!MzLJ#pT%WFJXXyz?6P~4>wIT<*a7}O(3BN6yHf`%_ zQSfk^(V9mF1*oh*XN%jRkM36`ie+R@6%CLG0;jf1g*C*A)Uz#0^%d25vGNzFg430U zt>1K?2KOq5byBO!&b&V1w-zr54?g*dp(9ZqkM_@Vkm9B@`1OS-D!zz<`SN>jh}Vi3 zqCcBA|K>^51RyIPTFTG{7IQC1Ew8{*tV@Wq>2L{Q@<0ck`|`->sxZ+1hc3GdF=J_^ zG%}Ma{w+jTr2N(Oq%;uF@J8{UC->o?<0>pdtfsW}t9-oebTg*bP)}7DbD4U~j6`-r ztZ5@*m*)a{3zo6r|1`1S%lwqEaJ;4izA9LdO|1+|d*3<2k4q3J`Grm)FtbciDW5=5 zk`*Zt(K3L+fh8%Q?)P2;sY%#8dnj{`F#^v%zwxWkPwq46zRcQO5KAJ>JENi)^5sN$ z0a*RW*3xa-@5ckoX^d~=1CfO`gV5A^KR1D{ge0{@wejbmOB!|eE)`!rp?&m6zyJVt CNFzf4 literal 0 HcmV?d00001 diff --git a/static/img/landing/iconDiscord.svg b/static/img/landing/iconDiscord.svg new file mode 100644 index 0000000..8a937d5 --- /dev/null +++ b/static/img/landing/iconDiscord.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/img/landing/iconDistrict10.webp b/static/img/landing/iconDistrict10.webp new file mode 100644 index 0000000000000000000000000000000000000000..d9454266c1aea28b66ea7cf16230d16018d16d33 GIT binary patch literal 3738 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≪vh%UbmrBu-wS74gE8^KXCc)9rm~b7$G!Z zwh+DkCo81hmpd5nPc2b@wL0o4YESq0;D0PiQ597sneK1Cg5LfW50S~87o!5P&oGcG zG%0%z&u7`gG|3If{i8efcSq(6_(P^Kg<#Ibb&A_x;%ck{ffX|E`BJ?V%)vj?XMJ_5 zlyG8(vBmpOTU@-d;ia`9J8j}O@K0Pn*D&uV{9@1mt@;V5BU+BLwfmQ2a$|q%F}BIm zK?a7uBTKVzBm%ecN0-ZsX*!I@;_VUz-N$EX%)zp6#2gy5&;9Z7(U|q9Zip16T;eJc z%*I(*f#KhI5=xf&ma-aApxD2LmavSpzm0OS%DTvaSDOoZl~Q%_!nsJzyDTGCoI^2P z3_$d@DbYJ(Usbij>1?;kN_cvmUKcRiPSMa6tzQ3&Ns)rnxJRC2u~ucW5SfMy_(L)& zu1MC03+SVT>1)2GpQu1-kM2JX%8ILB)_XTy-)wFBu^GiIAA3Et0##x{<@7Z}e9Am%FM)I>y zGPw>G_Hi4pO}qfu+BJtBr+;%htE|R-c32Erx|ayY`H7ok7}KJXoy|>c2Hl}bhlPK1 zF9JS>)s`dE<|=1Xf?U;MqS3-*T6y+?Hsow46`_e-sosuSp1)IXS;%@Ly|RyiKRr7| zte5nZb-}5i^L|tJQ~Y}i-bT)9y!I231maS2x4pXbASJ{U;raPgOCGsC}2~6E&u=k E0A>DaIRF3v literal 0 HcmV?d00001 diff --git a/static/img/landing/iconDmlockWhite.svg b/static/img/landing/iconDmlockWhite.svg new file mode 100644 index 0000000..eaa8a8e --- /dev/null +++ b/static/img/landing/iconDmlockWhite.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/static/img/landing/iconEclipse.webp b/static/img/landing/iconEclipse.webp new file mode 100644 index 0000000000000000000000000000000000000000..b5ced10056d2413a192f9104bed804f2e2c0a5a4 GIT binary patch literal 2430 zcmV-^34!)fNk&F?2><|BMM6+kP&goJ2><{PF#w$bDu4ih06uLplSm{Yp`j-h+Bkp> ziDUrAdI4BoK<1Cw&SL}j=<8wYSC<3zSK()yf7uUJPxW86KK{J`KWRGKKX5&S{JOoD ze|W!QrROpk=8VaI(m(z8(Wgi#j)Y?Ed8>uTk|~<=&XPIzePS2&wA;%gvC2&CsQ+&& zcTM(1+!xVcj*#N&!ZQeX=W>|rzS#_9ZxU2TZO#;NF!l2p`aMR|X|r9F3p<3vr;<30 z6@QUc5s&LG>jIHoyRro3 z8yTaUc#P26{G3}lJ`_CKnWb%`KL;asvSV!9|A?Yxg5~Zc8({d=3%N(~Qr+kVfJR9p_D1D5*)(n< z&k*e7)pZ!nnhMVV0RH_~mhZf0O)GJcm6nJm-3-^ObDmE5`QnaB(} zazc7Jj`Nd`M+9HnoxRu+-0(={0* zoC#9#Uw4HJ{t>-fc0{7Gr^_%M*^`-L%>JYGF0U1%*m-e{?hAwzPpl=xt;RjP>uGNN z1}$);V*sP`MG~7*XYtpH)NGExI=){x&(_&ACE4gRNJ&%)6u>|MwBN_6vZ#FtwF?;4 zYM5eumlS}U-4?)?|6xS+>Zf)hkw{8+jY-i{6~cBe z$V-;GP|rQxb~c*NI}z#VEdKBoAvyAIYJR=?!LvuRFeIs8u7!uW>n6i3`jR5n{kXpI znFMC}8N&~_ZVNhAG-l^})8&7HWPGr=Tq~bauMe*sYzXTCaKVyz5HrVm3yM1+%c#qY7pDb_U?!V=CLe(W^7~xMQ5FwWL zSkT5CqTZ=gzk5#nXnJll{u;=YKm+8GJBaGIz<+S~Y@TkM`?$vMmakR;?xgfJ=ROuKLLXA;!V^FG;mWoTtLLZQ7le+rgCku5#J=d|JAZNFP4IrdU+O_F!6ThPV7& z!VHbAK&pQukTW?yn24T%GJIQ1#g-z%&)zPU9!U7b8lgU@G*^2n$?I|o;QV5fQEPor zpHvzvy_6mGxdm{3F-fXD8=bzp)2fhL)>Vc!XmLbsEGk^JXyfCn`wlK}<>p@HxC=-O|3X96v!?T1LzpIlNAc zFCoG3>7r^rvoV0?HoqOWBv9Xx^G*O!UIjrm{#xp@5Zv_(f(WnVYw!y*N9$>iw9_IQ z4eu;J(AV2Wbi~TEi=uv(-|8^J4>DS9* z%PhtImAmvPyB8ESVmTswi*@AvHAW{uYn1H***6{j^1s3CT*^VuB(0pRx3{Y<`-emC zH#D92*5f$d{YdqLGCg}m(E-(OUOqO5MNrG zN1bZZ{Ih~Oee`ZqP4(cV?#l^&h1(}SG;8hMvNor1dxe)KUBJxwsALg$hs}a<>}tUN zQ_g>2`LIonBwacse!1H++RG0!dp{Ju5+_ptdD|@zwRZ1W@Inmm-O9ZB2wW5&RRXu} zxFJi9{d5eYSL{rvgnVVCGETHi*iue}`{h|0dwj{L`Jnnc3j8QM-;V9oW7v%^dyH1bi7-kkE!*~aIi@W5^<5fZhSd92xSh<~cyAhuYn+NP_ zfkLU@0E2oo(Vr@$b7g+F8v))ek{Y% zt&LSSSgoya5ZeADL)DHY0)NlId=m5cy|G*hrAJ2J}9V= zxEAGz2(X2gtu*n1ZS_sL6W8mlSG38j-JeKd#K#D-_XfElOpjq-jh2MkiH_~ z_1pD{bd9cBjMDJghn7O?qJ%cqNEa+?HL!WjhO8w0b$YvQB?f+4}w^VS17Wz7hF zTOM%k!2I7Mofo?@XZoDLjSp9aiZY`)vIA3Wt~^W1Dya0nrY<5B0mj;0>Bq4BF7)*H wa4s~(SSudKon^K6RV+PDQY()p}oV`hYs&VzrEd z^6Um4%P@=87tiXGJwC<%6z=ztZDe9wo~I#^_pKK_Adkm#fURG-O#)eXbSz(}E}LvP zj<^0L-qIt(B&M zLEQ=80002~_`t#)NP*V?7R2(r9o3MpKmRoV7nK)@uk1#-J&Z|2dxp9`C@B?wfQ-E| zwec`%P}^QGQhMDjEH6T3qXa{($$adw216P6rmnS&FXNC^=Yt&HuGGe&ZQA;Qhv{MR z`kqQ$4FuFxBbyTmUMLONH&DBhhi&6C^+C3^?=(6 zD+2RSN|=BS-YoZRq_`8r!LyWfUzOTTGRF+UMM$<$j6m-Gt7QO^h$QI6Xa%Jhk~k8W$nG)W)gNQwq20m05x*`1SUw7?otNUyjp-~&MVT6 zhr7^!GfmQAzmFAS<@=itp2^+&6Lr#9d${IF^h18K_IE^Ze!q*XJp&!3dYLn zA~;g21oGp3!@HX>XplSsB>PLdyu6Ue(q`a1&B$5EN3oz0KP|WsU2&@PDhQk$zW*&N ua|$Gq9KqDBY))RIX^KR%%VfLFDXZ1YTC3l|AnE`A zeaD@NhzTGKTg>r?j@cJD;062Gp=D+Z$!{h4{^AJ#>PuLyf*C8GFR+5YKEJ|{X>GR5 z%9hWq6{j_O(PyRoi&;yOIlU#;u+%$8iuehaHFe(~B|+y0{j72S2c5cgWbU%&cQb8T zrCGvqTAyjhJrUS@b%Z8ce_%0x*s8;bH!3V>rDu?GldrL`*TyKe=x-MHw?#_rc35C% zw?Z5LW0{{(<|&ri%?wuKup<`pJA+j?0@Kl zWOQrL?K+0;V;h})0o`}}zrPpIm2GtPF?1hKLAS<4XPQ1bx{U2>gPz6qEYTut2_g%d zMbvr+*?A(OB(ft_E0C?IGIF@eMiq7AI!85U51?|^)}qf)eMWWfM|FR_SOHV1wH|e2 zIztV16%iG?8le-2PEf;B96bH;#^?zjjsH3YEunEJ@J=+(2ODw)%atL)Xo-i!OHr7w zBI%=0V>ukTSU9x&4-}QH6!s1eL=T0362rAY5e&PDAU}qpoaxBt%%o@+xYD@`DC&)_ zZ0~g${IHz#jJ@i~;JrG6v`yzF$frr?=1j@g%zdMobbsQWPW>Nrl7R7- zinS1@=EBx`=4~5G(X$=nEfH_1qY&*_7?q~^yB@%_)`AO|9jGp|NpQD|NVr2=YD(q4g7zD z{xf~8?sum|F9R9 z{r0|@>;?KS(K|k`RsZex4E=lb()I8Ad;kC4XZ7R%`^fSzNq$*FPM_i+;qg_ujuFQg z@)cvo2B;+Kt`^G6%Bcs^rXN!Kt7br!o}`t^`h;E90PN|GCGds?Dg*d;cU~$LzkA6h z2gnSkp)sHih~Ys>a9g1xTtInHIog#q2U`4cY|QR+ygYxKCJkx?rXx@?L?~72M(DE? zNxG~N{X(#~r9fZ#eKt0PM+GJC#$o>4U?DeABEE6jBu(=C@fiR^JguNqP}ufwn5)OD zpJZy!sCF0;Q8%RRR2-`PBfQw-g`*T!!uVj4HpyvtDF~1-dvYSdDwjPOvkriHj|a~b z>7tzC^P+9o#g={x+MMOJ*?5XZ^C$c1eqtL`Syr0o0EdcMUfI`sy*`ZlH}3S2^Hf4? z#EGK|L%h*&)cLYqyk$1Rr>>7Wx(WsQcPz({qu+-2KZ`stjGzmU$e$){Z4Ft(YU8gG z2XWjXvHgl@&@OG*5)sI)<$CvKFGyzhruDN7Kslgb!pA*(F)2Hu#`RSV$Ni2w5xEb- z`M?1F{-Ho5ZR!`7oxaeNxDd zdny&r^a&)(7B;|?vlV%1?U4eh8{sk2+7#lWDqTeNw}Qtk|^rtwBFUza#m zz&gkFk@0h(Mg1>b-0WCyQa3g7_H&=pX660CWJ~)jP;ddjoMMeJ1X4PY)Up|0G`T=y z)ww2sA9SLx(iG)XYtJfw>zJOQ`imD5IJeD@!;EDo3=gPAtFFDH6WUIs20}=u7v;W}S3S|( ze~DHhVcX2e3%qBM3%{#6o-;h_+L8Mp_j$~tBBb19Ncqw&3xInB-jLnjIHbyvPn8K_I8_wFH=ZGUUYmCul0}PH)^H_PGiO7< z@x?>DE~tVpf)Trokgh|z!Ft8Of{FgeT%3MsBBjLeO@LDi&1wD2&25V>HpUOH=24ql zLe!n!a!)3^5j_R4h_F!Hr&YDsCrO|87^(UqN`^I(g}70h{HmEAxW9pKE&>bcs1^*w1ptfE~**_N#k%skiUFiuP^V~ zyWzC4Phmw9Hvrw9qbYmEVN%is_7aY`av9IDnZ7(Kx%lhXqr zQ7bV;e;8<5+JLnm z7Iqp$2fh-Xj^&p{PgnM`~nU`<7vakMHPFH_U?pVm=z2Hrgztkk;k_| zNf#-qkDsA@7o7MC9`33Z6j^Gb?2}9bo_#49Zwb2i=to!wpF_)AMT!sKmOX?*zlaWz zzW0o6`a|?Xp_(KJvO!O^XNPmz+)v)?vMk5rn(izwWWs9 zT^L+6QGN7!n~2q=0e9s-EZ3CZzi&gp7C3At>pUc4BJr{@P_CpuA|idZxhLYwz;^K2 zF@u088+aQy!q7BxQ=1|2%5z10Prwj_4yMldUca;D;PsSz_aB;vJ<~>80)RNC!LM{) z*_QDWzbRIoq4BpDr5u|b9so}@fk-YShUeL8uudR=WQ=L?B+O-`<*9us*34ew4?s!~ zG&Ko~mq0nYDh3FS3vlhuLDVAxAp#!-@vYJv)5`p4P&uw=S!^>b!_q{mC6MUbLz0Of zc77VFqUGr5aQ(ki2y9kMVkry;d?t5*kv;Gvbl3S(H}(h2JWI)h(4>5OhC;WKSTelPW{~W~0TtU#|q4 z(&*GiUZ8P%GdsF}FZJMy(}8ao-|7&}4{~nao`V5Yf3LnbHwHTdNo|qhcl8VXyHa`^ z{TH`+TP+8PW@NE7j3wW=6#GgpD{@0{a0{o_p*5X&sb$0qhRp~Ndn|5VIl+}gE> zcE)KlrsCfylHwMsq!5rd|9);DSO00du@+syp)HqPR{FI}|#OR#AZ$09l6cD`tpdw?DBeGxQV~ymG{e zQQj(J8p4}`$-@EkU^&WUE0ra6xoibi=rXszZc?NxLRhykOCDTK+7+BlJ>0BsA9k+Z zVAri3kV|HWk!~b1isbT={DB>MSG3Zw){46bhB5vb8VQy=863__tBLZ8qWvLe%R4&1 z5dB>5HW5sbC1Vcnzdt*9>XH^OBCZ~O z45$YJ(T5$B6;zQDizl8hYpKxV9kbON<0oq?BF|_{ozmHkVBjV3O8x5lmzuU+TCnNN zsG_ooZ~<*;ppl6xt_)b^=f2L~ra5F71t--QE)qT?+b~J};F0+G=&mqL7CNHae2#U7 z665U{?6UuX41tUB7OgM2(nHFAySZ1tWQGzLf!Wi$HuvTi<>m0?>M71#fg1-9zfsAet#G!s7te+wY$}ZzHPp7MD@msyyBj*^47U~U74nE(0Xe2p|KkC~WnoJVj|(^ zNPtxuv=GvSPAF5qL}1~Du2H`)z$t}P7LlHGM_v%xH&jH$t8VMh7_i9iZS=&^@^MxJ@=nLo!aHtp_t_gVjHFchKC~&xl_JFTsl8O$VRN|A!L0hv( zpn~_>LaKr^>a?bQ$`mpp!^aNdn0$sLv+-joQNu-HBwevVGv+4*GrpVE_g1f7gXpTv zruS#sLzO{;ly^DC7vh(sJThs2IUwo04wcD-`3FZK0A&ADMe8GB@!JuBpgnVMx{X!* zML5;zZw>fI#o4)Z2g5l#UkvlLncP*Ad~3{-5`V8tHV(b_aJa$==#i1Y^}I&|N5Rt1 zk1=>2AJf=tLk|i6CDSJl#4hhpA7NXYne+iB6Lli3VzwYmrf)L_3)JeGurm}_hf~p4 z4cB=}yBj<8^QP4Nu{CrjwP6fD@t@y1pUt)qQ|Jq+RG*x|^q1aXbX{*d|LR*k>b|D! zxE01j@L#zTk-@j*Km{AMlhW|sPMn@^H!F6`0gW3HzqJNsF&oqUy5OJ2sZM{+A$QVIgimlWjQDZg~91w~f z|C8-(=|2%Ps-KB%5)>P)cLhFi|G?hZdgxksHKVk1t4G$k?CWEOd+Tbk6xi0C=b2Bf z0{jB(NkrQemr*7trdLwy=c5^1F(RyBK9lw*kv}l|G$PqCc1h^A2M2q;v5AH|Flm4i zgWiC5Krs@`X}anP@{%82Bfc7l>m$3Up|l8KPYb9N2sv$WhBV++t$N-a@r!L34&uZS zzfO6fE_Eh~sAtp0#1ja7kyY#}g8XG{u0Uuf@XiyFqb`ZVB7dHYjQ1(?^{;$k5?maj z!urSqp`-tb6X1SEz67}~y&uM&-u#X|z;fuUKv@6KEd*Kb#GN=P*lw^D#=6HGEaZ9q zYF`zLMUIiKEuD9rF3ps@gkr7}>-^!r%;|7+6LNfE!ns5=Bh&$;e8{bDPx#%J_^SpF z{O^mN;~v_A4Gc!!ZK{>$;8Jo1{Ypl`$k3Yw1pOzGMjL0w$LnxY1;tq^+~}1{`6;5R z@nOV_pK*;(>JK>R#23)z%x59^*%9=3YvxM2??J@H+LizV;NXrF5Ux{mg@f(_V?zVb zmNMj#-<|zbBZkUTz6s9puX6Tw{^U*{8oon9e9Rp!OA{u*=Eh@5D3bFFg%LxaTx*?G zHV2Nz)7bo*QvJu-ZDdp!N7n(QHRtb_DE*K3@VO-5sAB!H}7QXTt*$6IREZ9(*95p
  • OTC>ofw$A&*b5lBjLU3be*~8}9;1~f_8j*=a2Sk@pPiOSC*91KNb1~i)Ow6XZt&7~Rr<`DR8U^Z z4{a-ITgdL`Z)Wr=s(Z)LdUux*XQ@V?p;b`CiyvvtBT_)Ydb{ipE!e2_fC8ZLMnHo? znTVN{3xY@+4+_RkhdpxF+~WJpt>2x32Hy0q_nk&VEG7dZHPT<(Xeo4SzWoe84kWDQ z*h5X`+_Lp1Y*edP+U^T`1qc$+ROU4`qpow?kNmhS)GFNT1C1*z+OGJRM}M~Q6-(0{wUje0k+!UH|w*S2$& zZ4m`dU=(pp>KXm8WCE)ejRZ@~N!uuN{U9!y_@hF=va0ZYq`(oQ>$X_=?8REQ{>j(^ z=zjQyMD##Ui`EQi`o>>Jdg~8h9h2%M@}eWxo(+sG92Xu!93nK z7u7V*u=ATG;bhDZY3b`bK135kNO?GrV#IQS3A@TsDXYE&v4{Vg`Xw{fmmAS}8h7zj zWoB7f29F`S?UKG!puk3|g`xs`FN2x(+{!FpHB^?&5M>S6Ik}s15v83+IUav83BoKq yb>Byxozm_9)pVuVo@;&@_@A?Bs53eW0L*8@*&F=7!m@me9GCv~KpMaR0000QzxDk9 literal 0 HcmV?d00001 diff --git a/static/img/landing/iconGenshinImpactFR.webp b/static/img/landing/iconGenshinImpactFR.webp new file mode 100644 index 0000000000000000000000000000000000000000..fdf60b969362823cfee04cbe937334564f64c6e7 GIT binary patch literal 3292 zcmV<23?uVWNk&H03;+OEMM6+kP&gpS3;+O-HUOOgDu4ih06u9dkwv5;p_uxv{6GeT zvoW74=}A(7_#SXJZ}h*}H_p#BuD{{>nA^eTW6v+sr}{5Ro~FI&TT0$Ies9DdIU+|v z%!%^FMz zeQ9Ju!`T3m|867x07s= z^dOE|;^+n}K>3&Jsn@diwOHmklQaHWOb#1GOU%e_IUeSc&J`QU{|54oEnV~83?ZNI zz)Nkp`#kU+j|D2+{)TQhF~4m!jP9jJL{}GdS>3ri>`%S~f-X^Ql8DHOy` zKXlNTdlVv&Dv_Z5QLiQ42SGc*fX~hQn8o}Ez`%3i^8E$YIyoRF{-}_2{A0I?eh5_g z#BC_#ev2C>Xjt?i={DL^8}gu>yjZ2Z+K#V1(@L@Zg*3jl&)@b72$Mq=<>lhdVgWY!sVr2&ru8ISQdyIbKlnkAYTru`- zQ#h9+&q$w(k2u-L)X0>`$A{OV5Kn&078Sq$he>WBvIFymlw$@#m#9e26bJy))X5dw zROj)HPQ7RxS6xN!cD!`n`n@7>fCo?mzBrDwHXcmEFi?0YL?2gT9X~OZ`LMa??MeDS zRr7erGUZ$Sox8B(OZ(=O%QA5E4yozHF8%K?`LQ)oZ6AM$4OxMz$uH=QRqv&8C?DMQ zRTILm+|G^B1yGYd>mO#M3diRiTc0Qp~?*^VA;ge5cOM(%1*^ln+N;ni`B zHnt%CjBdXWvXB*4M4~nsiF_)eA)F>cv~!{>Zu4T3_0se>bE=}NWSi$F2e+Z7Isbj2 zQMcM#{mW*Q4-1~y;TLK05%gXw*~-Yf!1(tGqN_PS{2n_M;va3qJG5p3*4ONoU%aWC zrIFt@B*DXshHPTUb-e(PhTe|u7_e?D=kFFhTa*0v)JF!BJ2a-pm}o2Uc?8R@hYitPu&q*3&gS6c8iWRmI))J3Br%|A=wQvSrjI`#!H` zmMlM>vI$7l%5)Qo%2MJ|$^$d&Jx4)Gt@0mgn7WVjSxE8j@iVkgJ1&3Qu2)&+3*x#~ zFb$Sal}yNZG1*Kq^$^H6_8?wsUT?cA?V9PWsU(tItv2MqnxTiqoKVFC;1TK|lu|Y%j^*;{;byAM%TF__OYp7^x($^|j@j zi^o^18)c@wur`waGsbJZ1>!qkJ}~c5%beGC=uZ;tXaRf;AYPRFH)TRp-#J}%zZF)} zLs3ylO;fu*@+%z6fa^DZjv8(yXdF3w$Pj0iib>B2iO8GZ$9NLwjzu-pC84TN(#& z3Q|YpTU63Q@9QVSzcffJ@H7>r6b>NdH_&bUr?q(yY^3J5f9X*fd2{r?J~PwMBC&(t zp)w<`LcWU`wJ?2an%>09X65-lrG#QKqg22?zvXBE0^U6wGv3nfr;pDE)vwt}ymRh7 zdy1%aGdMAfh<*8Wl{ChCv|<=-8NEk8XRv7)- zHSiC@{%*6~Rk)-(=cG!ASI1J32J$y(;p`*4a#i7AOfm98&9^+z+KOurV+Ts7XG2~& z-&}*;r#&O$GqL&GC300qkIGB|qbjBtyY_fZ$Ns;XhXRw)=@phnu07M4R3mE9%Ipea z$;Oi(4nUCu=rRlp@fk!(?4nZw(Jm$WBkNYLuMnumpV@^&-REdg0@^&JC1F?Z5&$J_ zY!ys$dj;L-XOiCzNLbGc>Sb5QKziP7^uhmaVo0i9uJ~_zr-E>x3d7}Tv|G4OwydqZJ z!p~4K7fIo4u1wpEO68a)Sal|;Q6Px~)7d}Fz#od+7q@Zz0{Xw=={+R6o;pWv`&jOczkJbg+~WK~ndqn&~W&zYk6n#y{_9^JKPnQGo9 zHocEc=>B16-n!5`O-LQhPlG9gi4Amopqm{ z?XcS`O}YUqfiO#QUJq(U5PDa9+Yt4_UgKzx9FQ$sy0#?8`eCY~Wtd(4EJ+=rb>+u8 z(6>dBjn@<0-12LWj*F_09wpM_h;h6mOy$Ztn<~G_WiQ7=xEa}oV#&Wh90|)p!|1Ys zA=RE=V_`8GCs})M5*19p?U2{;L^~@!{{aSSet(_AVWt5sb1@>e<(AWrW19LA#IsxD ztIWLA5+G4ne)imQp2YQMW$|7Qy9PJF2(RaBeJAt- zbkj!tk?N(QYDKpoeEPtmM+{x`osYtL)a|6O?P!xs_Qcs3QQwpk{8LGY_%_T03Vt|hSKifVthoBTTT<>q|vZmPi^;NiSoXRjAlu2J|;)HP+ zO+A=eJN+$)oOF*tvu~fAb4MaZYOHRy_wMA?xThci5v0!)ZPAbAb^lftiiV2^7{Jb* zjv__I^$HL~jv@j@b)qp}W5IfBUhmMxPsU?h{KNxbU0HMp4;jX9a%_(GxqJ};TnTb9>S0llG^jKw9|D6a#&jn^!ER_5xfB=^-OU$p|zF7 zW1=bMe5a+-rqz@~kkY1-*ZEGS2W8eF_^X-u{8U#{ew@d_SMf-gR7G19SxPuJ*f9cL zoYKD2CKJJ~5O!Gya8n`ed&hf|(OqKOz!WR&8!D2JWX+^sW0oQ;6KypYZ$?r+6a281 zIr#anw-8COD=~ZgCh&?Z9 zfP?ckXjozfVj3#r%US!G?<${vc}uQV(NB`Q`eRuftVm zGnn9>3y#o^w>r`P+Ki!RYHF;qUIfN@xo%E)eR!76l+i_XpBPO^NXSquc&a@VSNEmqDwBD a;xFVN)e}D)fb8y&713xh8ba84us{H?mvATm literal 0 HcmV?d00001 diff --git a/static/img/landing/iconGitHub.svg b/static/img/landing/iconGitHub.svg new file mode 100644 index 0000000..80ac1a0 --- /dev/null +++ b/static/img/landing/iconGitHub.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/static/img/landing/iconJobless.webp b/static/img/landing/iconJobless.webp new file mode 100644 index 0000000000000000000000000000000000000000..b9b660d38ea2582b9fc916026460cb568560c57e GIT binary patch literal 1036 zcmV+n1oQh+Nk&El1ONb6MM6+kP&gp?0{{Rp8UUREDu4ih06uLpmPaHbA|WV~%HV(v ziD?qx08J(TQtfyAm*HKMAJ+a`x!2ma`p4ss09Iez|NK7~|0=rrF}v!0{a@=}n$M)a z@q2;)F8;^=H?QyQpR%v+0kUD{)`a7zo;UpXe2qGXk#G2UH~0Nb*Ux1685{h@$xQeE zqBOI(s}v54Q(hhs`iI`r#ozgGGN5yvK2fB}>UPeOA+%O|>eTwKjT9|N1x|r6&mjSC ze&VouRRmpPGn;1r1gbyh6!Cc;PcueY zzZ)=1QZVb`jt@R#C6);Qbn`!YP~?G`6(`MDvK(n4bKzq0Mvy7g0sDuc1Q}6_NSYid zu8TNfhcrHF1?XNcw&ES==FvRc=#xYai(C#KVFDpxXAt`PRBmXc}*nxblP(~r{AE$4)%~UXjYtM zvK4}K4N~;(hKR1poWiHdS8I)-HBb+s@~`&bIoVFc^^ccQqxfjb1+Ui}i7*jub_5AB zsDusAeOM>IgSvOG%!LnuL#I*?xo}=$K6X?hGE^M`6`JTINtjnDKO=Yc8W``8a}gi` z`W{vO{vDu9I&}_Xd6Sev&Q69mI|g2p%urvY(#dvyz6O8TLSg0)7|;_(9BH`eHPxm24#XwJSYLoB;o8? z6lWErc_F|nz9y`W+3&X~$Z#SR8_tDmvWLmh7IzAlg4pujJOAMCUAcrgfbH51)UUhK zDn^qt{U3R{|IR5CF*n%$n#!k$*h(?>W7}d*?8i37^^c^E9mEoPi$8THBE zD=fpEY{Yse#pK$Ksh{qYRaB+1erJL7Szu^22X(KYoE@<(p-$Vf_#c-CF#20|!&hJc G0002>S@2>2 literal 0 HcmV?d00001 diff --git a/static/img/landing/iconLigue1.webp b/static/img/landing/iconLigue1.webp new file mode 100644 index 0000000000000000000000000000000000000000..3aeef05691b9f62bc94a8506fc7bcebd0435b1fc GIT binary patch literal 1662 zcmV-^27&ofNk&F?1^@t8MM6+kP&goJ1^@u?AOM{KDu4ih06uLtmq;WdA|WOjSvY_V ziDn8G$Z)_vz-im{&&UtR@0N<6_C298_17Qf{@lIS|8n*L<^j$F_N&wf@(=Srv0m&S z#=q5n7WWVOo&NXx$G`{bPo!tC$L&|J2kcj-x9uOoC+*+vN3(zaYsXK%^i_I0+AYy+ z$^B^j9&{bnERX(sj1R1SW54gY0(>Lb1NnFNKSJFP{ZH&0`sg_z(a*^`C_Kl)O(4NG@0L$tPp?$5P50hmoqNtV_ zEfNd}Vq_0T-FCP8l;-`9nl?nhNVTUY$E0wZOYU1q-P1B$=S%yqmpZn^E@!p{lQ|v4(Hg?`EjI6VO}{$Fhi4c-D0HZ7&Gt{|Agtr1 z?Qa{tMTCyr&7Supvtjf*x8IDlaAe^Fw4)=5uHtFb@;-XjI%AW9Q9YCR(QHU8S-Vu8 z6JUN6$d_A0YrKZhKQ`!Q#0D~Oi3peG0qRU{Z@Fu^Hd1*PL)V#GZ(Lz92V5H{sAt%gZE8TaHe14;ueB$-D!s zYrE>%cy}ZqUKCr+cg1;BFS*I#TgX~#Cj~mzMFhd26ESqlBz$C(rs~Kn{Kua<+~0xF`dPY zZWo_Pfh_Nt%;LY_c)}mv_nqON&SA97;NMQ|43c5DHN!1GF^H8Zo5Ni@8a`U{1J^+x zo?Z&_Jf-|`UG@8dqb^FUp^n74(seiSG(B8`LTy0obj&DvUwj>g-G9w!+TWy*x=PqW zr^?mvLxD5?8vL1FtDp1jQ%{LvOMNUu?s*c# z9SY&^6oA*?!P|WtgYQ>W5n+V2fl>LpgA>%>zPK|s0qf?(TK&BqUYMJ$a`GV7)wPM! z0@F1==&U2m+r*lE&)=cqFBI}mv%Nj8IwKk`K8|eC+tZzEJod2s_ZuUI1&3W#9o%bh zUrZiY+NIBNO;^|8sDI{yw@$ed&Ajrp$j1=CB6=|Tko>S$z1r^kb0n!+wcNzuNu0Wc zHZb2X3y62IYf+C3k~ob;vrsnBAlFjeMQ(xd%$8=-;96=&J>r-x##qPnv1~ETc!CwP zW`~|XZ10SXyXshUJVz&XC<>V{l_HxD{!1!}v+Q_~qA4L>ud7m|&50*S9ZPl0r`TOJ ztrpI8d=9<^Y`j7=pIa2-g$owJdAk-!qTvn7IYCtjMXnI1XU5*t3XIqGl)TL|Gc$KO zY~kAZ{!5DNh;CJ*-Ck&a0 I000000BJf?>;M1& literal 0 HcmV?d00001 diff --git a/static/img/landing/iconLinkedIn.svg b/static/img/landing/iconLinkedIn.svg new file mode 100644 index 0000000..d730c0b --- /dev/null +++ b/static/img/landing/iconLinkedIn.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/static/img/landing/iconMastu.webp b/static/img/landing/iconMastu.webp new file mode 100644 index 0000000000000000000000000000000000000000..2152f05aee91ceb0a0690336816abdbc5aa0ae94 GIT binary patch literal 4784 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

    IY_$ZEeC3f#$ zgF{Ree|J3REwZm_v%QKju?SWpdJA_5igs_E@`BC&3IA0qjF`Z515tpAedUCyfZ4L~ z(BsFX@tu$m>aKs-(`o0msM*E2O({ZG#LzS$wTZkY3rUY10oEA-ulDvoOy}8|-y*lL zxD5kyqd?AsXA{&f&Xf9U>Es&#ELFXk*+(d^1%%!ZQxzw=kknW?Zg~(?^mI%QTyWsi zyN>{BO@P%9oAcI3b~bQy<_N;#th?SNx(}l<*8CXNs5~!b`t6bn{{Sc>EJGlGrx?p7 zK+wBxpuxxqc?@r(iW%om`@YcM{%f)aoDHz!clW7x2Acp9FVqKc2Z0Zs_{9su2eyWM z;rfj?rg$`(x!S_H!-p6I%+0XcU9?{Y9urb`jlLHj{x)>cKkZ63!^_xO-=q2p+~^iQ zn$*7Nhtcr5Hh>v9Q4eDuM}7=A&8nrnMV_zNeF!PGKKw4cLR&BT|NXV6FL|#;1{z8%PywkPN)hWBe=&A=KK8#q4n7Tp_6}0e z&VSWh?pf>SI|IhyFwR3Km;qh-|BN$WW9CQ;F<|{CHmZwVan_eLK$7{04VKMdb`-E6m1e*x|i9e_P)j z)oh;0DRFVsELHN9gU8FPytp6xL-ZsjcZ?wgVWIh_h%^?j5SW&^gQgg3qt9MCd>gNl zXPHm*5nD21*%7xoU!BT7@e6Ho6VpZsVul?k6rE4}Juhpz-}ZuD=VvSi4B8_l8bYhf zzXngH={3pS!u|lETa3D{pZ^u(V2ISX>TTG%Lh+qLcmXR)B1u?iGS0JE@cD<||CO<^ zOs1ocoi12k0X)D$;(6u>dqa}ZE_Dmz5x)bg7%uL|Dvmjwr*^lImunWZGBG%6(uJ(R z(SDQprswS=2Cba3c~(imVZJFfbFY1WqpnDyC2Fr?FeDFJFBXwuY$J$Z{w Ka@s8xN&o<|!c#E- literal 0 HcmV?d00001 diff --git a/static/img/landing/iconMetaLock.webp b/static/img/landing/iconMetaLock.webp new file mode 100644 index 0000000000000000000000000000000000000000..ab75bb5262402ba3d71d0edc288a60a5dfa04633 GIT binary patch literal 4730 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 I2v7h30JOMEYXATM literal 0 HcmV?d00001 diff --git a/static/img/landing/iconNationsGlory.webp b/static/img/landing/iconNationsGlory.webp new file mode 100644 index 0000000000000000000000000000000000000000..2cde6d0ac49d6f1bb5e6eff1b57fea06d51e2247 GIT binary patch literal 1244 zcmV<21S9)WNk&H01ONb6MM6+kP&il$0000G0001g004gg06|PpND%-4009S3{fGzy zkP!a=S0ehK`Ue13P&go*1ONaK8~~jGDu4ih06uLplSiZ@A)zXh8aRLri9rqkN)oLL zm7mz>*e(eKe~OKh;#iRs(&)_M?J&UD&_tXYP@cQn1LtRs+-Zqa*p=vT>8Esoc=qSt zh`_=gp!1)_HokMyNk`=e3Iy64+nv6=Dk0Dv%&lbHiG|Sw0+v<4uV~iwrt{(xBv7%# z5$0GJq3qP@UE{rKW8kU{B=`qF%<<)V#e{WcJZ!^K8EH^i%fQEU{{5?XltRZCcma}< ziPb(U9Xjw(2YSv z{xKMOPa`^%0OQjV73GQclRMEBl}UD=_DvA6AQQVM)h^i9PWZ-nJEKT{0?lh9L_J}x~ITAp;%`2HH6xY6&%OUIG^gmguxQY-WwJ{cdP6N6At)Q1> zt=G-=MN0il_H1+;Q(#!YM>4jAN;nk$g&)7lEvepibEg^t3jSDv;xJextSJOi9f$kE zKquNuHt5%20*|*SZ#fGcj|CT zEq_>g^F?Qa{caQe?z>4)+b8JJ++&9<)!opm%YNvnIz5p`XNPD3nQcwGMQ4ZV*$bn} z-D_uHz~q0e@}H|&T0aP8K%-I?65&IuRMot~TUmC^awv8C^uK+`qcMJWuQ24LL-)+tIfNk2B}6;^k|u zvH`je4j&_RFq1-}B2tF)jskZyq4ZFmTCsUR@%hn%Gtiud*jx?O!Vtpl{Xo4`72W?l zMNuZi>~!=f%p(aWTRV4^azM^pxC|fQ`Jnxg4v@B=>S|hiP5{ zYYNWyrI(FcljLOEIb8LdyTf`@DH@c`NF(n9~$83_KMSbw?lWv`L>HD zAdbQigBv@WXz0XuZB|M0vLkR+T%wmzd&2gY*g9<6D8n!6ydIol4$nB;&uo~gcyN72 z_P*&$)v##a`}>)vbpQdnFH<3G2MbAjma?bF;s%VTGUQ5GK>E3D84JW83EvC1H2#HR z@H2?m;zM{IgQv`ANmUrlK@ru;|JxC3)9^gCk?Scp7Zv_4RE0((sO7~i2+z5enhTEr G0000h-)-Ok literal 0 HcmV?d00001 diff --git a/static/img/landing/iconPUBGMobileFrance.webp b/static/img/landing/iconPUBGMobileFrance.webp new file mode 100644 index 0000000000000000000000000000000000000000..832c71cd561b6f69109b416747775545cf9524a1 GIT binary patch literal 2684 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 literal 0 HcmV?d00001 diff --git a/static/img/landing/iconPUBGMobileUK.webp b/static/img/landing/iconPUBGMobileUK.webp new file mode 100644 index 0000000000000000000000000000000000000000..7712f12a73b10f8548dc02267b64d267cdb81a4f GIT binary patch literal 4848 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 Wf=cBmwxe`;jnM#PbqH->0002d1$-I+ literal 0 HcmV?d00001 diff --git a/static/img/landing/iconReportWhite.svg b/static/img/landing/iconReportWhite.svg new file mode 100644 index 0000000..825b4bc --- /dev/null +++ b/static/img/landing/iconReportWhite.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/img/landing/iconRocketBaguette.webp b/static/img/landing/iconRocketBaguette.webp new file mode 100644 index 0000000000000000000000000000000000000000..56df15ff82ce4d223067d0f2de5c57b4addb8ec8 GIT binary patch literal 4300 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 + + + + diff --git a/static/img/landing/iconTeamVitality.webp b/static/img/landing/iconTeamVitality.webp new file mode 100644 index 0000000000000000000000000000000000000000..fc58127cbfbad115d1d4284cbe0deb7ce06c9565 GIT binary patch literal 4714 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 literal 0 HcmV?d00001 diff --git a/static/img/landing/iconTheForge.webp b/static/img/landing/iconTheForge.webp new file mode 100644 index 0000000000000000000000000000000000000000..4f0e1962408b9fd3f1c1834c477a66f46b23ac51 GIT binary patch literal 2528 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 AS^xk5 literal 0 HcmV?d00001 diff --git a/static/img/landing/iconWeWard.webp b/static/img/landing/iconWeWard.webp new file mode 100644 index 0000000000000000000000000000000000000000..dd4c76974775e5dccc5cd83f83b7d74c7ec088df GIT binary patch literal 1522 zcmVwM0hi0#>z(lc_M*~UEQuY83U8eS(>D- z#%Z+3*7{?jv9fg5sj?dpXEN)~DI0nfZ7-=&fOW1Cwa;q>en@-H%6#G9t@r%|L{-%C zSSJuTUB^R^K+bF9?`DAj0RH)9#xt=`FA?`D0`Pmg`_(aq%oraQ$7UUI-Ct0jz5)e+ zC6q()7n{M=6PIL`on4oCc0uGp&5c?(S<;U9Y%`Xuxfbazn zD#`!hgbdsp*aUXjJ%97bwzz_CtIr$i`flr3g;AzmQ_*8;>jWpLKrir#=;!0kYXQQS zs7tU3@f>CNmD#_b+^b>bov!|xZ--lCjuZPoX5U!w6^h$#KuFVts{!{>c|L?dcax}A zqQ>;4y8D}*>M(U!V&O~G)9gH}BnsPJq=iL0;i#xais#PEk=4Waf zngd*rPygl(bS@5Z~rk1oy@15BpKj z#FWN&l!@teEYC8BD%L(%-i<+oM0Z*Mw@taK);yZNQ;-b3_h0%R+NQ7mj=P-=0MqZC zVbCDMQR77b1Mb}wnVI8Bf6-SweDp!47V7Ql$P8u630l}~w+ACo&G|}=ZAT^^M32Mb zf6mF7b#yW3AoK*=oGm6#a%r#TOqTyP_r>OqK_wA==RZFW)V{o{vKZsM5B&Ss4T0(< zv_Jn;W*)A$>0pb)p>oD6&DOxuU$vzdr{TptTdyzSdIV@lnjhABRLyy0ZkW0&6jD2j z#Mrl0{oK`<`mSREu8{w?bk!vW(9Q^xRn=4|N$4-44VqP-gIGJc_33UZn!`KTg6~y@ z!9(8iG}?Q);;FL63-i;(5rsQm+!YZe*m$QIr;qNRyU8QoLcj+hDDQi#c<>?^uv;0!Eebx~^3{=FQ$V|UZRt1&vB8U) z=B7e4Nk2(bC*=9U00{wxmZ~;aU;!^Tn?IuN9a>cJf~{p*KuZOQE9&!QPkTl;YycWfehL&N?EhSoo8Nhzzx4fdEWtrgIrM>ZfX$cuERJ+5an zMkRBPCg;E`%uULzkN*;JAL-Ej$B@SD&iqMe4F+Hc9 zCrGr;40UW;hI2GNoPaYOhXKf%dz=?C#u>*g8 z*s#zk5$X_AjSGLuPVCP3GsP+w6EPX;>|=9eRRjf1fEreuL5eGVSZ(brX#6cbOlzTQ zJ1TyZ>}j-GGJk*Qa=XJG0M${)Oa!!xn`d%NB31rFSuaVlJNxV|8_)ep#~Zl-2fie= z8RnMisp;GsPmr6bkjBp?D+_;(#XfcpJ~(H#AX*vsE0xmCx<}6}__gwUPgeY}9y)iI zfVX|ZfeqfD(NRDATWh6+x1DiyI>`l8zwft%4*hFA1z;Rz6jCvg;`2L({Xn($5nDRj z)?ZX9l-~-;4;nOlZ9v|x7Cu^az=blH(%y*P0#VALZX7{tz8dvbn{(co1z}%)8Kzkm Yc4|6t=0B4hP#=6{&;S4c000000AT3wMF0Q* literal 0 HcmV?d00001 diff --git a/static/img/landing/iconX.svg b/static/img/landing/iconX.svg new file mode 100644 index 0000000..9acfb6b --- /dev/null +++ b/static/img/landing/iconX.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/img/landing/iconYouTube.svg b/static/img/landing/iconYouTube.svg new file mode 100644 index 0000000..fcf1429 --- /dev/null +++ b/static/img/landing/iconYouTube.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/img/landing/iconZetFar.webp b/static/img/landing/iconZetFar.webp new file mode 100644 index 0000000000000000000000000000000000000000..81694ec4b4cd6e9f0ed7b4bf645535a0595df263 GIT binary patch literal 3330 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 + + + + + + + + + + + + + + + + + + + + + diff --git a/static/img/landing/pattern-01.svg b/static/img/landing/pattern-01.svg new file mode 100644 index 0000000..75e229c --- /dev/null +++ b/static/img/landing/pattern-01.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/landing/serverBadgePartner.svg b/static/img/landing/serverBadgePartner.svg new file mode 100644 index 0000000..9960d7b --- /dev/null +++ b/static/img/landing/serverBadgePartner.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/static/img/landing/serverBadgeVerified.svg b/static/img/landing/serverBadgeVerified.svg new file mode 100644 index 0000000..f677182 --- /dev/null +++ b/static/img/landing/serverBadgeVerified.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/static/img/landing/webclip.png b/static/img/landing/webclip.png new file mode 100644 index 0000000000000000000000000000000000000000..8eb16d3b8b05e29c472f2c63935c1a99fd56114a GIT binary patch literal 9440 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 Date: Fri, 22 May 2026 01:03:20 +0200 Subject: [PATCH 2/7] =?UTF-8?q?fix(landing):=20pointer=20les=20liens=20fon?= =?UTF-8?q?ctionnalit=C3=A9s=20vers=20/docs=20internes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Les 6 liens de la section Features pointaient encore vers docs.raidprotect.bot (extérieur). On passe en Docusaurus interne qui respecte la migration vers /docs et évite le full reload. --- src/components/landing/Features/index.tsx | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/components/landing/Features/index.tsx b/src/components/landing/Features/index.tsx index 22cae77..752f0c7 100644 --- a/src/components/landing/Features/index.tsx +++ b/src/components/landing/Features/index.tsx @@ -1,10 +1,11 @@ import React, {type ReactNode} from 'react'; import clsx from 'clsx'; +import Link from '@docusaurus/Link'; import shared from '../styles/shared.module.css'; import styles from './styles.module.css'; type Feature = { - href: string; + to: string; icon: string; iconAlt: string; title: string; @@ -13,7 +14,7 @@ type Feature = { const FEATURES: Feature[] = [ { - href: 'https://docs.raidprotect.bot/features/anti-spam', + to: '/docs/features/anti-spam', icon: '/img/landing/iconAntispamWhite.svg', iconAlt: 'RaidProtect icon Antispam', title: 'Protection anti-spam', @@ -21,7 +22,7 @@ const FEATURES: Feature[] = [ 'Sanctionnez instantanément les tentatives de spam, sans aucune intervention de votre part.', }, { - href: 'https://docs.raidprotect.bot/features/raid-mode', + to: '/docs/features/raid-mode', icon: '/img/landing/iconAntiraidWhite.svg', iconAlt: 'RaidProtect icon Antiraid', title: 'Blocage des raids', @@ -29,7 +30,7 @@ const FEATURES: Feature[] = [ "Vous craignez un raid ? Notre bot est capable de le détecter et de le bloquer avant même qu'il impacte votre serveur.", }, { - href: 'https://docs.raidprotect.bot/features/captcha', + to: '/docs/features/captcha', icon: '/img/landing/iconCaptchaWhite.svg', iconAlt: 'RaidProtect icon Captcha', title: 'Protection contre les robots', @@ -37,7 +38,7 @@ const FEATURES: Feature[] = [ "Grâce au captcha, vos membres doivent prouver qu'ils sont humains. Dites adieu aux comptes automatisés.", }, { - href: 'https://docs.raidprotect.bot/features/utilities', + to: '/docs/features/utilities', icon: '/img/landing/iconReportWhite.svg', iconAlt: 'RaidProtect icon Report', title: 'Modération & administration', @@ -45,7 +46,7 @@ const FEATURES: Feature[] = [ "Gérez votre serveur comme un pro avec nos diverses fonctionalités de modération et d'administration.", }, { - href: 'https://docs.raidprotect.bot/features/tag-role', + to: '/docs/features/tag-role', icon: '/img/landing/iconTagWhite.svg', iconAlt: 'RaidProtect icon Tag', title: 'Rôle de Tag', @@ -53,7 +54,7 @@ const FEATURES: Feature[] = [ 'Le Rôle de Tag permet d’attribuer automatiquement un rôle aux membres qui ajoutent le tag de votre serveur.', }, { - href: 'https://docs.raidprotect.bot/features/dm-lock', + to: '/docs/features/dm-lock', icon: '/img/landing/iconDmlockWhite.svg', iconAlt: 'RaidProtect icon DM Lock', title: 'Fermeture des MP', @@ -80,7 +81,7 @@ export default function Features(): ReactNode {

    From b8cecb44926ab97a236008addbe64f7edaa99843 Mon Sep 17 00:00:00 2001 From: Zallom Date: Fri, 22 May 2026 01:04:26 +0200 Subject: [PATCH 3/7] fix(footer): pointer Documentation vers /docs Le lien Documentation du footer pointait vers /, qui est maintenant la landing depuis la migration vers routeBasePath /docs. --- docusaurus.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index b683829..09d5f2f 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -356,7 +356,7 @@ export default async function createConfigAsync() { }, { label: 'Documentation', - to: '/', + to: '/docs', target: '_self' }, { From 217daab29c23afee08f6924dd747139bb38af1c2 Mon Sep 17 00:00:00 2001 From: Zallom Date: Fri, 22 May 2026 01:21:05 +0200 Subject: [PATCH 4/7] =?UTF-8?q?fix(footer):=20pointer=20les=20liens=20l?= =?UTF-8?q?=C3=A9gaux=20en=20interne=20et=20retirer=20urls.{legal,terms,pr?= =?UTF-8?q?ivacy,cookies}?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Maintenant que les pages existent dans le site Docusaurus, Link résout automatiquement /legal, /terms, /privacy, /cookies (avec préfixe locale en i18n). Le mapping customFields.urls.* n'est plus nécessaire pour ces pages. --- docusaurus.config.ts | 36 ++++-------------------------------- 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 09d5f2f..9896d9f 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -69,34 +69,6 @@ export default async function createConfigAsync() { es: '/es/', pt: '/pt/' }, - legal: { - fr: 'https://raidprotect.bot/legal', - en: 'https://raidprotect.bot/en/legal', - de: 'https://raidprotect.bot/de/legal', - es: 'https://raidprotect.bot/es/legal', - pt: 'https://raidprotect.bot/pt/legal' - }, - terms: { - fr: 'https://raidprotect.bot/terms', - en: 'https://raidprotect.bot/en/terms', - de: 'https://raidprotect.bot/de/terms', - es: 'https://raidprotect.bot/es/terms', - pt: 'https://raidprotect.bot/pt/terms' - }, - privacy: { - fr: 'https://raidprotect.bot/privacy', - en: 'https://raidprotect.bot/en/privacy', - de: 'https://raidprotect.bot/de/privacy', - es: 'https://raidprotect.bot/es/privacy', - pt: 'https://raidprotect.bot/pt/privacy' - }, - cookies: { - fr: 'https://raidprotect.bot/cookies', - en: 'https://raidprotect.bot/en/cookies', - de: 'https://raidprotect.bot/de/cookies', - es: 'https://raidprotect.bot/es/cookies', - pt: 'https://raidprotect.bot/pt/cookies' - }, geranium: { fr: 'https://i.dfr.gg/geranium.webm', en: 'https://i.dfr.gg/en-geranium.webm', @@ -376,22 +348,22 @@ export default async function createConfigAsync() { items: [ { label: 'Mentions légales', - to: 'legal', + to: '/legal', target: '_self' }, { label: 'Conditions d\'utilisation', - to: 'terms', + to: '/terms', target: '_self' }, { label: 'Politique de confidentialité', - to: 'privacy', + to: '/privacy', target: '_self' }, { label: 'Politique des cookies', - to: 'cookies', + to: '/cookies', target: '_self' } ], From 3de46edcbb88acc6f4044a69e0368dd034bd42de Mon Sep 17 00:00:00 2001 From: Zallom Date: Fri, 22 May 2026 11:18:36 +0200 Subject: [PATCH 5/7] refactor(landing): inline About/Features/Pricing dans index.tsx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Seuls Hero et Servers restent des composants extraits (ils seront réutilisés dans les pages /frame/* à venir). Les 3 autres sections étaient spécifiques à la landing sans plan de réutilisation : on évite le surdécoupage en les fondant dans la page (un seul index.tsx + index.module.css avec classes préfixées par section). --- src/components/landing/About/index.tsx | 175 ------ .../landing/About/styles.module.css | 139 ----- src/components/landing/Features/index.tsx | 105 ---- .../landing/Features/styles.module.css | 160 ------ src/components/landing/Pricing/index.tsx | 136 ----- .../landing/Pricing/styles.module.css | 202 ------- src/pages/index.module.css | 509 ++++++++++++++++++ src/pages/index.tsx | 425 ++++++++++++++- 8 files changed, 927 insertions(+), 924 deletions(-) delete mode 100644 src/components/landing/About/index.tsx delete mode 100644 src/components/landing/About/styles.module.css delete mode 100644 src/components/landing/Features/index.tsx delete mode 100644 src/components/landing/Features/styles.module.css delete mode 100644 src/components/landing/Pricing/index.tsx delete mode 100644 src/components/landing/Pricing/styles.module.css create mode 100644 src/pages/index.module.css diff --git a/src/components/landing/About/index.tsx b/src/components/landing/About/index.tsx deleted file mode 100644 index 432457e..0000000 --- a/src/components/landing/About/index.tsx +++ /dev/null @@ -1,175 +0,0 @@ -import React, {type ReactNode, useEffect, useState} from 'react'; -import clsx from 'clsx'; -import shared from '../styles/shared.module.css'; -import styles from './styles.module.css'; - -type Counts = { - servers: number; - users: number; - captcha: number; - antispam: number; -}; - -type FormattedValue = { - value: string; - unit: string; -}; - -function formatValue(value: number): FormattedValue { - if (value >= 1_000_000) { - return {value: (value / 1_000_000).toFixed(1), unit: 'M'}; - } - return {value: (value / 1_000).toFixed(1), unit: 'k'}; -} - -function StatCounter({ - rawValue, - label, - fallback, -}: { - rawValue?: number; - label: string; - fallback: string; -}) { - if (rawValue == null) { - return ( -
    -
    - {fallback} -
    -
    {label}
    -
    - ); - } - const formatted = formatValue(rawValue); - return ( -
    -
    - {formatted.value} - {formatted.unit} -
    -
    {label}
    -
    - ); -} - -export default function About(): ReactNode { - const [counts, setCounts] = useState(null); - - useEffect(() => { - let cancelled = false; - fetch('https://docs.raidprotect.bot/counts.json') - .then((res) => { - if (!res.ok) throw new Error('Erreur lors de la récupération des données'); - return res.json(); - }) - .then((data: Counts) => { - if (!cancelled) setCounts(data); - }) - .catch((err) => { - // Stats are best-effort; failure is non-blocking - // eslint-disable-next-line no-console - console.error('Erreur de mise à jour des statistiques :', err); - }); - return () => { - cancelled = true; - }; - }, []); - - return ( -
    -
    -
    -

    - Nos résultats ont un{' '} - impact -

    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - -
    -
    -
    -
    - ); -} diff --git a/src/components/landing/About/styles.module.css b/src/components/landing/About/styles.module.css deleted file mode 100644 index 84b3210..0000000 --- a/src/components/landing/About/styles.module.css +++ /dev/null @@ -1,139 +0,0 @@ -.section { - overflow-x: clip; -} - -.titleGrid { - display: grid; - grid-template-rows: auto; - grid-template-columns: 1.25fr 1fr; - grid-column-gap: 100px; - grid-row-gap: 100px; - margin-bottom: 30px; -} - -.title { - font-family: var(--ifm-heading-font-family); - color: #fff; - font-size: 50px; - font-weight: 600; - line-height: 1.2em; - margin: 0; -} - -.counterGrid { - display: grid; - grid-template-rows: auto; - grid-template-columns: 1fr 1fr; - grid-column-gap: 100px; - grid-row-gap: 100px; - align-items: center; -} - -.imageWrap { - position: relative; -} - -.curve { - width: 100%; - height: auto; - display: block; -} - -.curveLine { - stroke-dasharray: 1400; - stroke-dashoffset: 1400; - animation: rpDraw 1.5s cubic-bezier(0.4, 0, 0.2, 1) forwards; -} - -@keyframes rpDraw { - to { - stroke-dashoffset: 0; - } -} - -.curvePulse { - transform-origin: 860px 28px; - animation: rpPulse 1.8s ease-out infinite; -} - -@keyframes rpPulse { - 0% { - transform: scale(1); - opacity: 0.9; - } - 70% { - transform: scale(2.8); - opacity: 0; - } - 100% { - transform: scale(2.8); - opacity: 0; - } -} - -@media (prefers-reduced-motion: reduce) { - .curveLine, - .curvePulse { - animation: none !important; - } - .curveLine { - stroke-dashoffset: 0; - } -} - -.stats { - display: grid; - grid-template-rows: auto auto; - grid-template-columns: 1fr 1fr; - grid-column-gap: 60px; - grid-row-gap: 60px; - align-items: start; -} - -.counterItem { - display: flex; - flex-flow: column; -} - -.counterTitle { - font-family: var(--ifm-heading-font-family); - margin-bottom: 0; - font-size: 44px; - font-weight: 600; - line-height: 1.3em; - color: #fff; -} - -.counterLabel { - color: #e1e0e9; - font-size: 18px; - margin-top: 4px; -} - -@media screen and (max-width: 991px) { - .titleGrid { - grid-template-columns: 1fr; - grid-column-gap: 10px; - grid-row-gap: 10px; - } - .counterGrid { - grid-template-columns: 1fr; - } - .stats { - grid-column-gap: 50px; - grid-row-gap: 50px; - } -} - -@media screen and (max-width: 767px) { - .title { - font-size: 42px; - } - .counterTitle { - font-size: 30px; - } - .stats { - grid-column-gap: 30px; - grid-row-gap: 30px; - } -} diff --git a/src/components/landing/Features/index.tsx b/src/components/landing/Features/index.tsx deleted file mode 100644 index 752f0c7..0000000 --- a/src/components/landing/Features/index.tsx +++ /dev/null @@ -1,105 +0,0 @@ -import React, {type ReactNode} from 'react'; -import clsx from 'clsx'; -import Link from '@docusaurus/Link'; -import shared from '../styles/shared.module.css'; -import styles from './styles.module.css'; - -type Feature = { - to: string; - icon: string; - iconAlt: string; - title: string; - description: string; -}; - -const FEATURES: Feature[] = [ - { - to: '/docs/features/anti-spam', - icon: '/img/landing/iconAntispamWhite.svg', - iconAlt: 'RaidProtect icon Antispam', - title: 'Protection anti-spam', - description: - 'Sanctionnez instantanément les tentatives de spam, sans aucune intervention de votre part.', - }, - { - to: '/docs/features/raid-mode', - icon: '/img/landing/iconAntiraidWhite.svg', - iconAlt: 'RaidProtect icon Antiraid', - title: 'Blocage des raids', - description: - "Vous craignez un raid ? Notre bot est capable de le détecter et de le bloquer avant même qu'il impacte votre serveur.", - }, - { - to: '/docs/features/captcha', - icon: '/img/landing/iconCaptchaWhite.svg', - iconAlt: 'RaidProtect icon Captcha', - title: 'Protection contre les robots', - description: - "Grâce au captcha, vos membres doivent prouver qu'ils sont humains. Dites adieu aux comptes automatisés.", - }, - { - to: '/docs/features/utilities', - icon: '/img/landing/iconReportWhite.svg', - iconAlt: 'RaidProtect icon Report', - title: 'Modération & administration', - description: - "Gérez votre serveur comme un pro avec nos diverses fonctionalités de modération et d'administration.", - }, - { - to: '/docs/features/tag-role', - icon: '/img/landing/iconTagWhite.svg', - iconAlt: 'RaidProtect icon Tag', - title: 'Rôle de Tag', - description: - 'Le Rôle de Tag permet d’attribuer automatiquement un rôle aux membres qui ajoutent le tag de votre serveur.', - }, - { - to: '/docs/features/dm-lock', - icon: '/img/landing/iconDmlockWhite.svg', - iconAlt: 'RaidProtect icon DM Lock', - title: 'Fermeture des MP', - description: - 'Un bouclier inédit contre le spam, le scam et les arnaques par message privé.', - }, -]; - -export default function Features(): ReactNode { - return ( -
    -
    -
    -

    - Nos fonctionnalités -

    -

    - Découvrez ce qui fait de nous l'un des meilleurs bots pour protéger - votre serveur Discord des utilisateurs malintentionnés. -

    -
    -
    - -
    -
    - ); -} diff --git a/src/components/landing/Features/styles.module.css b/src/components/landing/Features/styles.module.css deleted file mode 100644 index 9d1d528..0000000 --- a/src/components/landing/Features/styles.module.css +++ /dev/null @@ -1,160 +0,0 @@ -.section { - position: relative; -} - -.titleWrap { - z-index: 2; - position: relative; - margin: 0 auto 70px auto; - width: 50%; - text-align: center; - display: flex; - flex-flow: column; -} - -.title { - margin: 0 0 10px 0; - font-family: var(--ifm-heading-font-family); - color: #fff; - font-size: 50px; - font-weight: 600; - line-height: 1.2em; -} - -.subtitle { - margin: 0; - color: #e1e0e9; - font-size: 18px; - font-weight: 400; -} - -.grid { - position: relative; - display: grid; - grid-template-rows: auto; - grid-template-columns: 1fr 1fr 1fr; - grid-column-gap: 50px; - grid-row-gap: 50px; -} - -.decoration { - background-image: linear-gradient(180deg, #d35f5f 40%, #a561a3); - opacity: 0.5; - filter: blur(140px); - width: 450px; - height: 100px; - margin: auto; - position: absolute; - inset: 0; - z-index: 0; - pointer-events: none; -} - -.item { - z-index: 2; - position: relative; - display: flex; - flex-flow: column; - align-items: center; - text-align: center; - text-decoration: none; - transition: transform 0.3s; - column-gap: 20px; - row-gap: 20px; - color: inherit; -} - -.item:hover { - transform: scale(1.04); - text-decoration: none; - color: inherit; -} - -.iconWrap { - flex: none; - display: flex; - align-items: center; - justify-content: center; - width: 80px; - height: 80px; - padding: 1px; - border-radius: 50%; - background-image: linear-gradient( - 135deg, - #726cb3, - #d35f5f 60%, - #a561a3 - ); -} - -.iconBg { - display: flex; - align-items: center; - justify-content: center; - width: 100%; - height: 100%; - border-radius: 50%; - background-color: #1b1a25; -} - -.icon { - width: 32px; - height: 32px; -} - -.itemTitle { - margin: 0 0 10px 0; - font-family: var(--ifm-heading-font-family); - color: #fff; - font-size: 26px; - font-weight: 600; - line-height: 1.3em; -} - -.itemDescription { - margin: 0; - color: #e1e0e9; - font-size: 18px; -} - -@media screen and (max-width: 1279px) { - .grid { - grid-column-gap: 50px; - grid-row-gap: 50px; - } -} - -@media screen and (min-width: 1280px) { - .grid { - grid-column-gap: 90px; - grid-row-gap: 100px; - } - .titleWrap { - width: 95%; - } -} - -@media screen and (max-width: 991px) { - .titleWrap { - width: 100%; - } - .grid { - grid-template-columns: 1fr 1fr; - } - .iconWrap { - width: 70px; - height: 70px; - } -} - -@media screen and (max-width: 767px) { - .title { - font-size: 42px; - } - .itemTitle { - font-size: 22px; - } - .grid { - grid-column-gap: 30px; - } -} diff --git a/src/components/landing/Pricing/index.tsx b/src/components/landing/Pricing/index.tsx deleted file mode 100644 index 257a2cd..0000000 --- a/src/components/landing/Pricing/index.tsx +++ /dev/null @@ -1,136 +0,0 @@ -import React, {type ReactNode} from 'react'; -import clsx from 'clsx'; -import shared from '../styles/shared.module.css'; -import styles from './styles.module.css'; - -const CHECK_ICON = '/img/landing/icon-02.svg'; - -function FeatureItem({children}: {children: ReactNode}) { - return ( -
    - -
    {children}
    -
    - ); -} - -export default function Pricing(): ReactNode { - return ( -
    -
    -
    -
    -

    - Garder une longueur{' '} - d'avance -

    -

    - Ajoutez RaidProtect et commencez à protéger votre serveur dès - aujourd'hui. -

    -
    - -
    - {/* Basic */} -
    -
    Basic
    -
    -

    Gratuit

    -
    -

    - La sécurité essentielle assurée pour toujours -

    -
    - Protections anti-spam - Blocage automatique des raids - Filtrage des bots malveillants - Modération & administration - - Et bien plus encore... - -
    - -
    - - {/* Founder */} -
    -
    - Founder -
    -
    -

    Abonnement

    -

    2,99 $

    -
    -

    - Offre de lancement réservée aux premiers abonnés -

    -
    - Profil du bot personnalisable - Noms de sanctions custom - Accès avancé à l'Auth Manager - Accès étendu au Display Public - Accès à la Bêta publique - Rôle exclusif sur notre serveur -
    - -
    - - {/* Business */} -
    -
    - Business -
    -
    -

    Sur demande

    -
    -

    - Pour les projets aux exigences de sécurité élevées -

    -
    - Les fonctionnalités Founder - Instance dédiée et isolée - Audit initial de votre serveur - Intégration avec vos outils - Fonctionnalités sur mesure - Suivi régulier avec un expert - Support prioritaire -
    - -
    -
    -
    -
    - ); -} diff --git a/src/components/landing/Pricing/styles.module.css b/src/components/landing/Pricing/styles.module.css deleted file mode 100644 index d213038..0000000 --- a/src/components/landing/Pricing/styles.module.css +++ /dev/null @@ -1,202 +0,0 @@ -.section { - overflow-x: clip; - padding-top: 150px; - padding-bottom: 150px; -} - -.titleWrap { - text-align: center; - width: 60%; - margin: 0 auto 40px auto; - position: relative; -} - -.titleInner { - z-index: 2; - position: relative; -} - -.title { - margin: 0 0 10px 0; - font-family: var(--ifm-heading-font-family); - color: #fff; - font-size: 50px; - font-weight: 600; - line-height: 1.2em; -} - -.description { - margin: 0 0 40px 0; - color: #e1e0e9; - font-size: 18px; -} - -.decoration { - background-image: linear-gradient(180deg, #d35f5f 40%, #a561a3); - filter: blur(110px); - width: 50%; - height: 90px; - margin: 179px auto auto auto; - position: absolute; - inset: 0; - z-index: 0; - pointer-events: none; -} - -.grid { - z-index: 2; - position: relative; - display: grid; - grid-template-rows: auto; - grid-template-columns: 1fr 1fr 1fr; - grid-column-gap: 30px; - grid-row-gap: 30px; - margin-bottom: 30px; -} - -.item { - display: flex; - flex-flow: column; - justify-content: flex-start; - align-items: flex-start; - border: 1px solid #242328; - border-radius: 20px; - background-color: #070417; - padding: 30px; -} - -.itemCenter { - border-color: #d35f5f; - background-color: #1b1a25; -} - -.preTitle { - border: 1px solid #d35f5f; - border-radius: 50px; - background-color: #242328; - color: #fff; - text-align: center; - margin-bottom: 20px; - padding: 8px 20px; - font-size: 16px; - line-height: 1.3em; - font-family: var(--ifm-font-family-base); -} - -.preTitleFounder { - border-color: #ffab22; - background-color: #1b1a25; -} - -.preTitleEnterprise { - border-color: #5f6fd3; -} - -.priceWrap { - display: flex; - flex-flow: wrap; - justify-content: flex-start; - align-items: baseline; - width: 100%; - column-gap: 10px; - row-gap: 5px; - margin-bottom: 20px; -} - -.price { - margin: 0; - font-family: var(--ifm-heading-font-family); - color: #fff; - font-size: 30px; - font-weight: 600; - line-height: 1.2em; -} - -.priceCenter { - text-align: right; - background-image: linear-gradient(180deg, #d35f5f 40%, #a561a3); - -webkit-text-fill-color: transparent; - -webkit-background-clip: text; - background-clip: text; -} - -.itemTagline { - margin: 0; - color: #e1e0e9; - font-size: 18px; - line-height: 1.5em; -} - -.featureList { - display: flex; - flex-flow: column; - width: 100%; - margin-top: 50px; - margin-bottom: 50px; - column-gap: 15px; - row-gap: 15px; -} - -.featureItem { - display: flex; - align-items: flex-start; - justify-content: flex-start; - column-gap: 8px; - row-gap: 8px; - color: #e1e0e9; -} - -.featureIcon { - flex: none; - width: 18px; - height: 18px; - margin-top: 5px; -} - -.buttonList { - display: flex; - flex-flow: column; - align-items: stretch; - justify-content: flex-start; - width: 100%; - margin-top: auto; - text-align: center; - column-gap: 15px; - row-gap: 15px; -} - -@media screen and (max-width: 991px) { - .section { - padding-top: 100px; - padding-bottom: 100px; - } - .titleWrap { - width: 100%; - } - .grid { - grid-template-columns: 1fr 1fr; - } - .featureList { - margin-top: 30px; - margin-bottom: 30px; - } -} - -@media screen and (max-width: 767px) { - .section { - padding-top: 80px; - padding-bottom: 80px; - } - .title { - font-size: 42px; - } - .grid { - grid-template-columns: 1fr; - grid-column-gap: 20px; - grid-row-gap: 20px; - margin-bottom: 20px; - } - .item { - padding: 20px; - } -} diff --git a/src/pages/index.module.css b/src/pages/index.module.css new file mode 100644 index 0000000..bec9b26 --- /dev/null +++ b/src/pages/index.module.css @@ -0,0 +1,509 @@ +/* ===== About section ===== */ + +.aboutSection { + overflow-x: clip; +} + +.aboutTitleGrid { + display: grid; + grid-template-rows: auto; + grid-template-columns: 1.25fr 1fr; + grid-column-gap: 100px; + grid-row-gap: 100px; + margin-bottom: 30px; +} + +.aboutTitle { + font-family: var(--ifm-heading-font-family); + color: #fff; + font-size: 50px; + font-weight: 600; + line-height: 1.2em; + margin: 0; +} + +.counterGrid { + display: grid; + grid-template-rows: auto; + grid-template-columns: 1fr 1fr; + grid-column-gap: 100px; + grid-row-gap: 100px; + align-items: center; +} + +.imageWrap { + position: relative; +} + +.curve { + width: 100%; + height: auto; + display: block; +} + +.curveLine { + stroke-dasharray: 1400; + stroke-dashoffset: 1400; + animation: rpDraw 1.5s cubic-bezier(0.4, 0, 0.2, 1) forwards; +} + +@keyframes rpDraw { + to { + stroke-dashoffset: 0; + } +} + +.curvePulse { + transform-origin: 860px 28px; + animation: rpPulse 1.8s ease-out infinite; +} + +@keyframes rpPulse { + 0% { + transform: scale(1); + opacity: 0.9; + } + 70% { + transform: scale(2.8); + opacity: 0; + } + 100% { + transform: scale(2.8); + opacity: 0; + } +} + +@media (prefers-reduced-motion: reduce) { + .curveLine, + .curvePulse { + animation: none !important; + } + .curveLine { + stroke-dashoffset: 0; + } +} + +.stats { + display: grid; + grid-template-rows: auto auto; + grid-template-columns: 1fr 1fr; + grid-column-gap: 60px; + grid-row-gap: 60px; + align-items: start; +} + +.counterItem { + display: flex; + flex-flow: column; +} + +.counterTitle { + font-family: var(--ifm-heading-font-family); + margin-bottom: 0; + font-size: 44px; + font-weight: 600; + line-height: 1.3em; + color: #fff; +} + +.counterLabel { + color: #e1e0e9; + font-size: 18px; + margin-top: 4px; +} + +@media screen and (max-width: 991px) { + .aboutTitleGrid { + grid-template-columns: 1fr; + grid-column-gap: 10px; + grid-row-gap: 10px; + } + .counterGrid { + grid-template-columns: 1fr; + } + .stats { + grid-column-gap: 50px; + grid-row-gap: 50px; + } +} + +@media screen and (max-width: 767px) { + .aboutTitle { + font-size: 42px; + } + .counterTitle { + font-size: 30px; + } + .stats { + grid-column-gap: 30px; + grid-row-gap: 30px; + } +} + +/* ===== Features section ===== */ + +.featuresSection { + position: relative; +} + +.featuresTitleWrap { + z-index: 2; + position: relative; + margin: 0 auto 70px auto; + width: 50%; + text-align: center; + display: flex; + flex-flow: column; +} + +.featuresTitle { + margin: 0 0 10px 0; + font-family: var(--ifm-heading-font-family); + color: #fff; + font-size: 50px; + font-weight: 600; + line-height: 1.2em; +} + +.featuresSubtitle { + margin: 0; + color: #e1e0e9; + font-size: 18px; + font-weight: 400; +} + +.featuresGrid { + position: relative; + display: grid; + grid-template-rows: auto; + grid-template-columns: 1fr 1fr 1fr; + grid-column-gap: 50px; + grid-row-gap: 50px; +} + +.featuresDecoration { + background-image: linear-gradient(180deg, #d35f5f 40%, #a561a3); + opacity: 0.5; + filter: blur(140px); + width: 450px; + height: 100px; + margin: auto; + position: absolute; + inset: 0; + z-index: 0; + pointer-events: none; +} + +.featuresItem { + z-index: 2; + position: relative; + display: flex; + flex-flow: column; + align-items: center; + text-align: center; + text-decoration: none; + transition: transform 0.3s; + column-gap: 20px; + row-gap: 20px; + color: inherit; +} + +.featuresItem:hover { + transform: scale(1.04); + text-decoration: none; + color: inherit; +} + +.featuresIconWrap { + flex: none; + display: flex; + align-items: center; + justify-content: center; + width: 80px; + height: 80px; + padding: 1px; + border-radius: 50%; + background-image: linear-gradient( + 135deg, + #726cb3, + #d35f5f 60%, + #a561a3 + ); +} + +.featuresIconBg { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + height: 100%; + border-radius: 50%; + background-color: #1b1a25; +} + +.featuresIcon { + width: 32px; + height: 32px; +} + +.featuresItemTitle { + margin: 0 0 10px 0; + font-family: var(--ifm-heading-font-family); + color: #fff; + font-size: 26px; + font-weight: 600; + line-height: 1.3em; +} + +.featuresItemDescription { + margin: 0; + color: #e1e0e9; + font-size: 18px; +} + +@media screen and (max-width: 1279px) { + .featuresGrid { + grid-column-gap: 50px; + grid-row-gap: 50px; + } +} + +@media screen and (min-width: 1280px) { + .featuresGrid { + grid-column-gap: 90px; + grid-row-gap: 100px; + } + .featuresTitleWrap { + width: 95%; + } +} + +@media screen and (max-width: 991px) { + .featuresTitleWrap { + width: 100%; + } + .featuresGrid { + grid-template-columns: 1fr 1fr; + } + .featuresIconWrap { + width: 70px; + height: 70px; + } +} + +@media screen and (max-width: 767px) { + .featuresTitle { + font-size: 42px; + } + .featuresItemTitle { + font-size: 22px; + } + .featuresGrid { + grid-column-gap: 30px; + } +} + +/* ===== Pricing section ===== */ + +.pricingSection { + overflow-x: clip; + padding-top: 150px; + padding-bottom: 150px; +} + +.pricingTitleWrap { + text-align: center; + width: 60%; + margin: 0 auto 40px auto; + position: relative; +} + +.pricingTitleInner { + z-index: 2; + position: relative; +} + +.pricingTitle { + margin: 0 0 10px 0; + font-family: var(--ifm-heading-font-family); + color: #fff; + font-size: 50px; + font-weight: 600; + line-height: 1.2em; +} + +.pricingDescription { + margin: 0 0 40px 0; + color: #e1e0e9; + font-size: 18px; +} + +.pricingDecoration { + background-image: linear-gradient(180deg, #d35f5f 40%, #a561a3); + filter: blur(110px); + width: 50%; + height: 90px; + margin: 179px auto auto auto; + position: absolute; + inset: 0; + z-index: 0; + pointer-events: none; +} + +.pricingGrid { + z-index: 2; + position: relative; + display: grid; + grid-template-rows: auto; + grid-template-columns: 1fr 1fr 1fr; + grid-column-gap: 30px; + grid-row-gap: 30px; + margin-bottom: 30px; +} + +.pricingItem { + display: flex; + flex-flow: column; + justify-content: flex-start; + align-items: flex-start; + border: 1px solid #242328; + border-radius: 20px; + background-color: #070417; + padding: 30px; +} + +.pricingItemCenter { + border-color: #d35f5f; + background-color: #1b1a25; +} + +.preTitle { + border: 1px solid #d35f5f; + border-radius: 50px; + background-color: #242328; + color: #fff; + text-align: center; + margin-bottom: 20px; + padding: 8px 20px; + font-size: 16px; + line-height: 1.3em; + font-family: var(--ifm-font-family-base); +} + +.preTitleFounder { + border-color: #ffab22; + background-color: #1b1a25; +} + +.preTitleEnterprise { + border-color: #5f6fd3; +} + +.priceWrap { + display: flex; + flex-flow: wrap; + justify-content: flex-start; + align-items: baseline; + width: 100%; + column-gap: 10px; + row-gap: 5px; + margin-bottom: 20px; +} + +.price { + margin: 0; + font-family: var(--ifm-heading-font-family); + color: #fff; + font-size: 30px; + font-weight: 600; + line-height: 1.2em; +} + +.priceCenter { + text-align: right; + background-image: linear-gradient(180deg, #d35f5f 40%, #a561a3); + -webkit-text-fill-color: transparent; + -webkit-background-clip: text; + background-clip: text; +} + +.itemTagline { + margin: 0; + color: #e1e0e9; + font-size: 18px; + line-height: 1.5em; +} + +.featureList { + display: flex; + flex-flow: column; + width: 100%; + margin-top: 50px; + margin-bottom: 50px; + column-gap: 15px; + row-gap: 15px; +} + +.featureItem { + display: flex; + align-items: flex-start; + justify-content: flex-start; + column-gap: 8px; + row-gap: 8px; + color: #e1e0e9; +} + +.featureIcon { + flex: none; + width: 18px; + height: 18px; + margin-top: 5px; +} + +.buttonList { + display: flex; + flex-flow: column; + align-items: stretch; + justify-content: flex-start; + width: 100%; + margin-top: auto; + text-align: center; + column-gap: 15px; + row-gap: 15px; +} + +@media screen and (max-width: 991px) { + .pricingSection { + padding-top: 100px; + padding-bottom: 100px; + } + .pricingTitleWrap { + width: 100%; + } + .pricingGrid { + grid-template-columns: 1fr 1fr; + } + .featureList { + margin-top: 30px; + margin-bottom: 30px; + } +} + +@media screen and (max-width: 767px) { + .pricingSection { + padding-top: 80px; + padding-bottom: 80px; + } + .pricingTitle { + font-size: 42px; + } + .pricingGrid { + grid-template-columns: 1fr; + grid-column-gap: 20px; + grid-row-gap: 20px; + margin-bottom: 20px; + } + .pricingItem { + padding: 20px; + } +} diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 5c61249..99249f2 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,12 +1,160 @@ -import React, {type ReactNode} from 'react'; +import React, {type ReactNode, useEffect, useState} from 'react'; +import clsx from 'clsx'; import Layout from '@theme/Layout'; +import Link from '@docusaurus/Link'; import Hero from '@site/src/components/landing/Hero'; import Servers from '@site/src/components/landing/Servers'; -import About from '@site/src/components/landing/About'; -import Features from '@site/src/components/landing/Features'; -import Pricing from '@site/src/components/landing/Pricing'; +import shared from '@site/src/components/landing/styles/shared.module.css'; +import styles from './index.module.css'; + +type Counts = { + servers: number; + users: number; + captcha: number; + antispam: number; +}; + +type FormattedValue = { + value: string; + unit: string; +}; + +function formatValue(value: number): FormattedValue { + if (value >= 1_000_000) { + return {value: (value / 1_000_000).toFixed(1), unit: 'M'}; + } + return {value: (value / 1_000).toFixed(1), unit: 'k'}; +} + +function StatCounter({ + rawValue, + label, + fallback, +}: { + rawValue?: number; + label: string; + fallback: string; +}) { + if (rawValue == null) { + return ( +
    +
    + {fallback} +
    +
    {label}
    +
    + ); + } + const formatted = formatValue(rawValue); + return ( +
    +
    + {formatted.value} + {formatted.unit} +
    +
    {label}
    +
    + ); +} + +const CHECK_ICON = '/img/landing/icon-02.svg'; + +function FeatureItem({children}: {children: ReactNode}) { + return ( +
    + +
    {children}
    +
    + ); +} + +type Feature = { + to: string; + icon: string; + iconAlt: string; + title: string; + description: string; +}; + +const FEATURES: Feature[] = [ + { + to: '/docs/features/anti-spam', + icon: '/img/landing/iconAntispamWhite.svg', + iconAlt: 'RaidProtect icon Antispam', + title: 'Protection anti-spam', + description: + 'Sanctionnez instantanément les tentatives de spam, sans aucune intervention de votre part.', + }, + { + to: '/docs/features/raid-mode', + icon: '/img/landing/iconAntiraidWhite.svg', + iconAlt: 'RaidProtect icon Antiraid', + title: 'Blocage des raids', + description: + "Vous craignez un raid ? Notre bot est capable de le détecter et de le bloquer avant même qu'il impacte votre serveur.", + }, + { + to: '/docs/features/captcha', + icon: '/img/landing/iconCaptchaWhite.svg', + iconAlt: 'RaidProtect icon Captcha', + title: 'Protection contre les robots', + description: + "Grâce au captcha, vos membres doivent prouver qu'ils sont humains. Dites adieu aux comptes automatisés.", + }, + { + to: '/docs/features/utilities', + icon: '/img/landing/iconReportWhite.svg', + iconAlt: 'RaidProtect icon Report', + title: 'Modération & administration', + description: + "Gérez votre serveur comme un pro avec nos diverses fonctionalités de modération et d'administration.", + }, + { + to: '/docs/features/tag-role', + icon: '/img/landing/iconTagWhite.svg', + iconAlt: 'RaidProtect icon Tag', + title: 'Rôle de Tag', + description: + 'Le Rôle de Tag permet d’attribuer automatiquement un rôle aux membres qui ajoutent le tag de votre serveur.', + }, + { + to: '/docs/features/dm-lock', + icon: '/img/landing/iconDmlockWhite.svg', + iconAlt: 'RaidProtect icon DM Lock', + title: 'Fermeture des MP', + description: + 'Un bouclier inédit contre le spam, le scam et les arnaques par message privé.', + }, +]; export default function Home(): ReactNode { + const [counts, setCounts] = useState(null); + + useEffect(() => { + let cancelled = false; + fetch('https://docs.raidprotect.bot/counts.json') + .then((res) => { + if (!res.ok) throw new Error('Erreur lors de la récupération des données'); + return res.json(); + }) + .then((data: Counts) => { + if (!cancelled) setCounts(data); + }) + .catch((err) => { + // Stats are best-effort; failure is non-blocking + // eslint-disable-next-line no-console + console.error('Erreur de mise à jour des statistiques :', err); + }); + return () => { + cancelled = true; + }; + }, []); + return ( - - - + + {/* About */} +
    +
    +
    +

    + Nos résultats ont un{' '} + impact +

    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    +
    +
    +
    + + {/* Features */} +
    +
    +
    +

    + Nos fonctionnalités +

    +

    + Découvrez ce qui fait de nous l'un des meilleurs bots pour protéger + votre serveur Discord des utilisateurs malintentionnés. +

    +
    +
    + +
    +
    + + {/* Pricing */} +
    +
    +
    +
    +

    + Garder une longueur{' '} + d'avance +

    +

    + Ajoutez RaidProtect et commencez à protéger votre serveur dès + aujourd'hui. +

    +
    + +
    + {/* Basic */} +
    +
    Basic
    +
    +

    Gratuit

    +
    +

    + La sécurité essentielle assurée pour toujours +

    +
    + Protections anti-spam + Blocage automatique des raids + Filtrage des bots malveillants + Modération & administration + + Et bien plus encore... + +
    + +
    + + {/* Founder */} +
    +
    + Founder +
    +
    +

    Abonnement

    +

    + 2,99 $ +

    +
    +

    + Offre de lancement réservée aux premiers abonnés +

    +
    + Profil du bot personnalisable + Noms de sanctions custom + Accès avancé à l'Auth Manager + Accès étendu au Display Public + Accès à la Bêta publique + Rôle exclusif sur notre serveur +
    + +
    + + {/* Business */} +
    +
    + Business +
    +
    +

    Sur demande

    +
    +

    + Pour les projets aux exigences de sécurité élevées +

    +
    + Les fonctionnalités Founder + Instance dédiée et isolée + Audit initial de votre serveur + Intégration avec vos outils + Fonctionnalités sur mesure + Suivi régulier avec un expert + Support prioritaire +
    + +
    +
    +
    +
  • ); From 9742a6ad77c42eb1fcf31ea30a9feeda3af60363 Mon Sep 17 00:00:00 2001 From: Zallom Date: Fri, 22 May 2026 11:39:07 +0200 Subject: [PATCH 6/7] feat(landing): Hero pre-title dynamique sur counts.servers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le Hero reçoit serverCount en prop et affiche un nombre arrondi au palier inférieur de 50 000 (Math.floor(count/50000)*50000) avec toLocaleString fr-FR. Effet checkpoint : 358 000 → 350 000, 401 000 → 400 000. Fallback 350 000 au SSR avant que le fetch côté client renvoie les vraies stats. --- src/components/landing/Hero/index.tsx | 19 +++++++++++++++++-- src/pages/index.tsx | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/components/landing/Hero/index.tsx b/src/components/landing/Hero/index.tsx index 1038c59..912654b 100644 --- a/src/components/landing/Hero/index.tsx +++ b/src/components/landing/Hero/index.tsx @@ -3,14 +3,29 @@ import clsx from 'clsx'; import shared from '../styles/shared.module.css'; import styles from './styles.module.css'; -export default function Hero(): ReactNode { +type HeroProps = { + /** Nombre brut de serveurs, arrondi à la dizaine de milliers inférieure + * (pallier 50 000) pour produire un chiffre stable façon checkpoint. */ + serverCount?: number; +}; + +const PRE_TITLE_FALLBACK = 350_000; +const PRE_TITLE_STEP = 50_000; + +function roundedServerCount(raw: number | undefined): number { + if (raw == null || !Number.isFinite(raw)) return PRE_TITLE_FALLBACK; + return Math.floor(raw / PRE_TITLE_STEP) * PRE_TITLE_STEP; +} + +export default function Hero({serverCount}: HeroProps): ReactNode { + const formatted = roundedServerCount(serverCount).toLocaleString('fr-FR'); return (
    - Utilisé par plus de 350 000 serveurs + Utilisé par plus de {formatted} serveurs

    diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 99249f2..69d2115 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -160,7 +160,7 @@ export default function Home(): ReactNode { title="RaidProtect • Sécurisez votre serveur Discord" description="RaidProtect est un bot Discord français ayant pour mission de protéger simplement votre serveur des utilisateurs malintentionnés.">
    - + {/* About */} From 06421d683c2873a91860d45e76a72dbd80877fda Mon Sep 17 00:00:00 2001 From: Zallom Date: Fri, 22 May 2026 11:58:19 +0200 Subject: [PATCH 7/7] feat(landing): smooth scroll vers #features (et autres ancres) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit scroll-behavior: smooth global sur html, scopé par prefers-reduced-motion pour respecter les utilisateurs qui désactivent les animations. --- src/css/custom.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/css/custom.css b/src/css/custom.css index 21f433d..9b3423f 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -4,6 +4,12 @@ * work well for content-centric websites. */ +@media (prefers-reduced-motion: no-preference) { + html { + scroll-behavior: smooth; + } +} + /* You can override the default Infima variables here. */ html[data-theme='dark'] { --ifm-background-color: #040114;