diff --git a/index.html b/index.html index e0dcd1d..40739de 100644 --- a/index.html +++ b/index.html @@ -31,6 +31,11 @@ + + + + +
diff --git a/src/App.css b/src/App.css index 1eaa180..f7c95b5 100644 --- a/src/App.css +++ b/src/App.css @@ -69,57 +69,71 @@ /* *=========== Green theme =========== */ @layer base { - :root { - --background: 0 0% 100%; - --foreground: 240 10% 3.9%; - --card: 0 0% 100%; - --card-foreground: 240 10% 3.9%; - --popover: 0 0% 100%; - --popover-foreground: 240 10% 3.9%; - --primary: 142.1 76.2% 36.3%; - --primary-foreground: 355.7 100% 97.3%; - --secondary: 240 4.8% 95.9%; - --secondary-foreground: 240 5.9% 10%; - --muted: 240 4.8% 95.9%; - --muted-foreground: 240 3.8% 46.1%; - --accent: 240 4.8% 95.9%; - --accent-foreground: 240 5.9% 10%; - --destructive: 0 84.2% 60.2%; - --destructive-foreground: 0 0% 98%; - --border: 240 5.9% 90%; - --input: 240 5.9% 90%; - --ring: 142.1 76.2% 36.3%; - --radius: 0.5rem; - } - - .dark { - --background: 20 14.3% 4.1%; - --foreground: 0 0% 95%; - --card: 24 9.8% 10%; - --card-foreground: 0 0% 95%; - --popover: 0 0% 9%; - --popover-foreground: 0 0% 95%; - --primary: 142.1 70.6% 45.3%; - --primary-foreground: 144.9 80.4% 10%; - --secondary: 240 3.7% 15.9%; - --secondary-foreground: 0 0% 98%; - --muted: 0 0% 15%; - --muted-foreground: 240 5% 64.9%; - --accent: 12 6.5% 15.1%; - --accent-foreground: 0 0% 98%; - --destructive: 0 62.8% 30.6%; - --destructive-foreground: 0 85.7% 97.3%; - --border: 240 3.7% 15.9%; - --input: 240 3.7% 15.9%; - --ring: 142.4 71.8% 29.2%; - } + :root { + --background: 0 0% 100%; + --foreground: 240 10% 3.9%; + --card: 0 0% 100%; + --card-foreground: 240 10% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 240 10% 3.9%; + --primary: 166, 95%, 29%; + --primary-foreground: 355.7 100% 97.3%; + --secondary: 50, 96%, 59%; + --secondary-foreground: 240 5.9% 10%; + --muted: 50, 96%, 59%; + --muted-foreground: 240 3.8% 46.1%; + --accent: 50, 96%, 59%; + --accent-foreground: 240 5.9% 10%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; + --ring: 142.1 76.2% 36.3%; + --radius: 0.5rem; + + /* Fonts */ + --font-dotgothic16: "DotGothic16", sans-serif; + --font-space-mono: "Space Mono", monospace; + } + + .dark { + --background: 20 14.3% 4.1%; + --foreground: 0 0% 95%; + --card: 24 9.8% 10%; + --card-foreground: 0 0% 95%; + --popover: 0 0% 9%; + --popover-foreground: 0 0% 95%; + --primary: 166, 95%, 29%; + --primary-foreground: 144.9 80.4% 10%; + --secondary: 50, 96%, 59%; + --secondary-foreground: 0 0% 98%; + --muted: 0 0% 15%; + --muted-foreground: 240 5% 64.9%; + --accent: 12 6.5% 15.1%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 85.7% 97.3%; + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + --ring: 142.4 71.8% 29.2%; + } } @layer base { - * { - @apply border-border; - } - body { - @apply bg-background text-foreground; - } -} + * { + @apply border-border; + } + + body { + @apply bg-background text-foreground font-space-mono; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + @apply font-dotgothic16; + } +} \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx index 0aab127..80ce3ad 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -9,7 +9,7 @@ import {ScrollToTop} from "@/components/ScrollToTop"; import {Services} from "@/containers/Services"; import {Sponsors} from "@/containers/Sponsors"; import {Team} from "@/containers/Team"; -import {Applications} from "@/containers/Testimonials"; +import {Applications} from "@/containers/Applications"; import "./App.css"; diff --git a/src/assets/images/flag-cameroon.webp b/src/assets/images/flag-cameroon.webp new file mode 100644 index 0000000..3a046a1 Binary files /dev/null and b/src/assets/images/flag-cameroon.webp differ diff --git a/src/assets/index.ts b/src/assets/index.ts new file mode 100644 index 0000000..0f5a18f --- /dev/null +++ b/src/assets/index.ts @@ -0,0 +1,8 @@ +// logo +import logoLight from "./logo/light.svg"; +import logoDark from "./logo/dark.svg"; + +// Images +import cameroonFlag from "./images/flag-cameroon.webp"; + +export { logoLight, logoDark, cameroonFlag }; \ No newline at end of file diff --git a/src/components/HeroNetwork.tsx b/src/components/HeroNetwork.tsx new file mode 100644 index 0000000..4a19d09 --- /dev/null +++ b/src/components/HeroNetwork.tsx @@ -0,0 +1,112 @@ +import { useEffect, useRef } from "react"; + +const COLORS = ["#fcd116", "#ce1126", "#009a44", "#ffffff"]; +const NODE_COUNT = 70; +const MAX_DIST = 130; + +interface Node { + x: number; + y: number; + vx: number; + vy: number; + r: number; + color: string; + opacity: number; +} + +const hexAlpha = (hex: string, alpha: number): string => + hex + Math.floor(alpha * 255).toString(16).padStart(2, "0"); + +export default function HeroNetwork() { + const canvasRef = useRef