diff --git a/public/gdsc/whatwedo/engineer.png b/public/gdsc/whatwedo/engineer.png
new file mode 100644
index 0000000..030ffe6
Binary files /dev/null and b/public/gdsc/whatwedo/engineer.png differ
diff --git a/public/gdsc/whatwedo/go.jpeg b/public/gdsc/whatwedo/go.jpeg
new file mode 100644
index 0000000..a451e3d
Binary files /dev/null and b/public/gdsc/whatwedo/go.jpeg differ
diff --git a/public/gdsc/whatwedo/incident.png b/public/gdsc/whatwedo/incident.png
new file mode 100644
index 0000000..1dcfed7
Binary files /dev/null and b/public/gdsc/whatwedo/incident.png differ
diff --git a/public/gdsc/whatwedo/kotlin.jpeg b/public/gdsc/whatwedo/kotlin.jpeg
new file mode 100644
index 0000000..a316c98
Binary files /dev/null and b/public/gdsc/whatwedo/kotlin.jpeg differ
diff --git a/public/gdsc/whatwedo/rust.jpeg b/public/gdsc/whatwedo/rust.jpeg
new file mode 100644
index 0000000..43c9553
Binary files /dev/null and b/public/gdsc/whatwedo/rust.jpeg differ
diff --git a/public/gdsc/whatwedo/wec.png b/public/gdsc/whatwedo/wec.png
new file mode 100644
index 0000000..44c0cdb
Binary files /dev/null and b/public/gdsc/whatwedo/wec.png differ
diff --git a/public/technologies/android.png b/public/technologies/android.png
new file mode 100644
index 0000000..759efc8
Binary files /dev/null and b/public/technologies/android.png differ
diff --git a/public/technologies/ethereum.svg b/public/technologies/ethereum.svg
new file mode 100644
index 0000000..f094e5a
--- /dev/null
+++ b/public/technologies/ethereum.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/technologies/flutter.png b/public/technologies/flutter.png
new file mode 100644
index 0000000..58f8af6
Binary files /dev/null and b/public/technologies/flutter.png differ
diff --git a/public/technologies/githubactions.png b/public/technologies/githubactions.png
new file mode 100644
index 0000000..76c7183
Binary files /dev/null and b/public/technologies/githubactions.png differ
diff --git a/public/technologies/gitlab.svg b/public/technologies/gitlab.svg
new file mode 100644
index 0000000..062d894
--- /dev/null
+++ b/public/technologies/gitlab.svg
@@ -0,0 +1,6 @@
+
\ No newline at end of file
diff --git a/public/technologies/hardhat.svg b/public/technologies/hardhat.svg
new file mode 100644
index 0000000..f3177f6
--- /dev/null
+++ b/public/technologies/hardhat.svg
@@ -0,0 +1,28 @@
+
\ No newline at end of file
diff --git a/public/technologies/kotlin.svg b/public/technologies/kotlin.svg
new file mode 100644
index 0000000..ea04e21
--- /dev/null
+++ b/public/technologies/kotlin.svg
@@ -0,0 +1,20 @@
+
diff --git a/public/technologies/kubernetes.svg b/public/technologies/kubernetes.svg
new file mode 100644
index 0000000..0c267b8
--- /dev/null
+++ b/public/technologies/kubernetes.svg
@@ -0,0 +1,9 @@
+
\ No newline at end of file
diff --git a/public/technologies/metamask.svg b/public/technologies/metamask.svg
new file mode 100644
index 0000000..4bbdb48
--- /dev/null
+++ b/public/technologies/metamask.svg
@@ -0,0 +1,98 @@
+
diff --git a/public/next.svg b/public/technologies/next.svg
similarity index 100%
rename from public/next.svg
rename to public/technologies/next.svg
diff --git a/public/technologies/rails.svg b/public/technologies/rails.svg
new file mode 100644
index 0000000..84f10f2
--- /dev/null
+++ b/public/technologies/rails.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/technologies/solidity.svg b/public/technologies/solidity.svg
new file mode 100644
index 0000000..9349ea3
--- /dev/null
+++ b/public/technologies/solidity.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/technologies/svelte.svg b/public/technologies/svelte.svg
new file mode 100644
index 0000000..7cee5e1
--- /dev/null
+++ b/public/technologies/svelte.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/public/technologies/swift.svg b/public/technologies/swift.svg
new file mode 100644
index 0000000..f04f27f
--- /dev/null
+++ b/public/technologies/swift.svg
@@ -0,0 +1,14 @@
+
diff --git a/public/technologies/tailwind.svg b/public/technologies/tailwind.svg
new file mode 100644
index 0000000..66bf63c
--- /dev/null
+++ b/public/technologies/tailwind.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/public/technologies/travisci.png b/public/technologies/travisci.png
new file mode 100644
index 0000000..1baec6a
Binary files /dev/null and b/public/technologies/travisci.png differ
diff --git a/src/app/sigs/DomainsCards.jsx b/src/app/sigs/DomainsCards.jsx
new file mode 100644
index 0000000..ab86bc7
--- /dev/null
+++ b/src/app/sigs/DomainsCards.jsx
@@ -0,0 +1,72 @@
+import { useState } from "react"
+import thresolds from "./helpers/threshold"
+import { useMotionValueEvent, motion } from "framer-motion"
+
+
+const spring = {
+ type: "spring",
+ stiffness: 100,
+ damping: 20,
+}
+
+
+
+export default function WhatwedoSection ({ cards, cutoffs, scrollYProgress }) {
+ let getCurrent = thresolds(cutoffs)
+
+ let [ current, setCurrent ] = useState({ active: 0, prev: 0 })
+ let [ position, setPosition ] = useState({ top: "0px", bottom: "", position: "absolute" })
+
+ useMotionValueEvent(scrollYProgress, "change", y => {
+ if (y==0) setPosition({ top: "0px", bottom: "", position: "absolute" })
+ else if (y<1) setPosition({ top: "20vh", bottom: "", position: "fixed" })
+ else setPosition({ top: "", bottom: "0px", position: "absolute" })
+
+ let newCurrent = getCurrent(y)
+
+ if (newCurrent != current.active) {
+ setCurrent({ active: newCurrent, prev: current.active })
+ }
+ })
+
+ return (
+
+
+
+ {
+ cards[current.active].map((cur, i) => {
+ let prev = cards[current.prev][i]
+ let direction = 1
+ if (current.prev > current.active) direction = -1
+
+ return (
+
+
+ {prev}
+
+
+ {cur}
+
+
+ )
+ })
+ }
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/src/app/sigs/LogoCard.jsx b/src/app/sigs/LogoCard.jsx
new file mode 100644
index 0000000..7628044
--- /dev/null
+++ b/src/app/sigs/LogoCard.jsx
@@ -0,0 +1,7 @@
+export default function Card ({ bg="#fbfef9", size=60, src }) {
+ return (
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/src/app/sigs/gdsc/WhatWeDoSection.jsx b/src/app/sigs/gdsc/WhatWeDoSection.jsx
new file mode 100644
index 0000000..be17c52
--- /dev/null
+++ b/src/app/sigs/gdsc/WhatWeDoSection.jsx
@@ -0,0 +1,61 @@
+"use client"
+
+import { useEffect, useState } from "react"
+
+export default function WhatWeDoSection () {
+ let [ count, setCount ] = useState(0)
+
+ useEffect(() => {
+ let id = setInterval(()=> setCount(i => i+1), 3000)
+
+ return () => clearInterval(id)
+ }, [])
+
+ let projectImages = [
+ "/gdsc/whatwedo/incident.png",
+ "/gdsc/whatwedo/engineer.png",
+ "/gdsc/whatwedo/wec.png",
+ ]
+
+ let handsOnImages = [
+ "/gdsc/whatwedo/rust.jpeg",
+ "/gdsc/whatwedo/go.jpeg",
+ "/gdsc/whatwedo/kotlin.jpeg",
+ ]
+
+ return (
+
+
+
What we do
+
+
+
+
+
+
+
+
+
+
+
Projects
+
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Itaque et aliquid quisquam inventore deleniti ipsam in dolor temporibus incidunt consectetur, ducimus corporis soluta rerum maxime doloremque. Maxime repellat iste qui!
+
+
+
+
+
+
+
+
+
+
+
+
Hands-On Sessions
+
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Itaque et aliquid quisquam inventore deleniti ipsam in dolor temporibus incidunt consectetur, ducimus corporis soluta rerum maxime doloremque. Maxime repellat iste qui!
+
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/src/app/sigs/gdsc/cards.jsx b/src/app/sigs/gdsc/cards.jsx
new file mode 100644
index 0000000..dd3b5c1
--- /dev/null
+++ b/src/app/sigs/gdsc/cards.jsx
@@ -0,0 +1,29 @@
+import Card from "../LogoCard"
+import rg from "../helpers/radial_gradient"
+
+export default [
+ [
+ ,
+ ,
+ ,
+ ,
+ ],
+ [
+ ,
+ ,
+ ,
+ ,
+ ],
+ [
+ ,
+ ,
+ ,
+ ,
+ ],
+ [
+ ,
+ ,
+ ,
+ ,
+ ],
+]
\ No newline at end of file
diff --git a/src/app/sigs/gdsc/page.jsx b/src/app/sigs/gdsc/page.jsx
new file mode 100644
index 0000000..750ee6c
--- /dev/null
+++ b/src/app/sigs/gdsc/page.jsx
@@ -0,0 +1,56 @@
+"use client"
+
+import { useRef } from "react"
+import DomainsCards from "../DomainsCards.jsx"
+import cards from "./cards"
+import { useScroll } from "framer-motion"
+import WhatWeDoSection from "./WhatWeDoSection"
+
+export default function GDSC () {
+ let container_ref = useRef(null)
+
+ let { scrollYProgress } = useScroll({
+ target: container_ref,
+ offset: ["start 0.20", "0.75 20vh"]
+ })
+
+ return (
+
+
+
+
+
Google Developer Student Club
+
everything dev.
+
+
+
+
+
+
+
+
Web Development
+
Lorem ipsum dolor sit amet consectetur adipisicing elit. Ducimus consectetur doloremque incidunt quidem qui nihil et esse laudantium, rerum dolorum? Nesciunt a perspiciatis magni molestias velit! Possimus quia vitae repellendus!
+
+
+
App Development
+
Lorem ipsum dolor sit amet consectetur adipisicing elit. Ducimus consectetur doloremque incidunt quidem qui nihil et esse laudantium, rerum dolorum? Nesciunt a perspiciatis magni molestias velit! Possimus quia vitae repellendus!
+
+
+
DevOPs
+
Lorem ipsum dolor sit amet consectetur adipisicing elit. Ducimus consectetur doloremque incidunt quidem qui nihil et esse laudantium, rerum dolorum? Nesciunt a perspiciatis magni molestias velit! Possimus quia vitae repellendus!
+
+
+
Blockchain Teahnology
+
Lorem ipsum dolor sit amet consectetur adipisicing elit. Ducimus consectetur doloremque incidunt quidem qui nihil et esse laudantium, rerum dolorum? Nesciunt a perspiciatis magni molestias velit! Possimus quia vitae repellendus!
+
+
+
+
+
+
+
+
+ )
+}
+
+
diff --git a/src/app/sigs/helpers/radial_gradient.js b/src/app/sigs/helpers/radial_gradient.js
new file mode 100644
index 0000000..5ba5842
--- /dev/null
+++ b/src/app/sigs/helpers/radial_gradient.js
@@ -0,0 +1,3 @@
+export default function rg (color) {
+ return `radial-gradient(${color}, #fbfef9 70%)`
+}
\ No newline at end of file
diff --git a/src/app/sigs/helpers/threshold.js b/src/app/sigs/helpers/threshold.js
new file mode 100644
index 0000000..c1ad5b8
--- /dev/null
+++ b/src/app/sigs/helpers/threshold.js
@@ -0,0 +1,11 @@
+export default function thresolds (cutoffs) {
+ function getCurrent (y) {
+ let i
+ for (i=0 ; i