This commit is contained in:
NoobDeveloper412 2024-09-30 22:13:38 +05:00
commit e43246769e
71 changed files with 5524 additions and 461 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

BIN
public/events/masonry/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,016 KiB

BIN
public/events/masonry/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 KiB

BIN
public/events/masonry/3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

BIN
public/events/masonry/4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 KiB

BIN
public/events/masonry/5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
public/events/masonry/6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 KiB

BIN
public/events/masonry/7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 932 KiB

BIN
public/events/masonry/8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 MiB

BIN
public/events/masonry/9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,017 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

BIN
public/membersLogo/GCC.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
public/membersLogo/Urbe.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

View file

@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
<script xmlns="" id="eppiocemhmnlbhjplcgkofciiegomcon" />
<script xmlns="" />
<script xmlns="" />
<g clip-path="url(#clip0_291_2793)">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M19.7001 32.7386C19.7705 32.7792 19.8502 32.8001 19.9306 32.8001C20.0111 32.8001 20.188 32.7226 20.188 32.7226L30.85 26.581C30.8555 26.5783 30.8632 26.5744 30.8706 26.5702C30.942 26.5296 31.0002 26.4707 31.0406 26.4008C31.0819 26.3303 31.1036 26.25 31.1036 26.1685C31.1036 26.1588 31.1032 26.1499 31.1028 26.1432V13.8597C31.1036 13.8486 31.1036 13.8387 31.1036 13.8337L31.1036 13.8324C31.1036 13.7507 31.0818 13.671 31.0413 13.6009C31.0008 13.5302 30.9421 13.4718 30.872 13.4313C30.8644 13.4269 30.8564 13.4225 30.8484 13.4186L20.1868 7.27759C20.179 7.27231 20.1714 7.2677 20.165 7.26392L20.1644 7.26357C20.0937 7.22258 20.0136 7.20154 19.9325 7.20154H19.9306C19.8495 7.20154 19.77 7.22298 19.701 7.26236C19.692 7.26736 19.6837 7.2726 19.6762 7.27766L9.01204 13.4202C9.00655 13.423 8.99886 13.4269 8.99144 13.4311C8.92049 13.4717 8.86173 13.5311 8.82123 13.6011C8.78067 13.6712 8.75879 13.751 8.75879 13.8328C8.75879 13.8425 8.75919 13.8514 8.75956 13.858V26.1419C8.75876 26.153 8.75878 26.1629 8.75879 26.1679L8.75879 26.1693C8.75879 26.2509 8.78058 26.3312 8.82193 26.4019C8.86238 26.4712 8.92065 26.5297 8.98909 26.5693L8.99047 26.5701L8.99187 26.5709C9.00023 26.5755 9.00781 26.5793 9.01357 26.5822L19.6768 32.7242C19.6818 32.7275 19.6906 32.7333 19.7001 32.7386ZM30.8023 26.4503C30.7969 26.4534 30.7908 26.4564 30.7847 26.4595C30.788 26.4578 30.7915 26.4561 30.7946 26.4545C30.7973 26.4531 30.7999 26.4517 30.8023 26.4503ZM30.9649 26.1472C30.9651 26.1495 30.9652 26.152 30.9653 26.1545C30.9655 26.159 30.9657 26.1637 30.9657 26.1685C30.9657 26.167 30.9657 26.1655 30.9656 26.164C30.9655 26.1581 30.9652 26.1524 30.9649 26.1472ZM20.3983 26.9772L24.3592 29.2549L20.3951 31.538L20.3983 26.9772ZM15.5034 29.2548L19.4645 26.977L19.4676 31.538L15.5034 29.2548ZM25.7528 23.8924L29.7137 26.1701L25.7497 28.4532L25.7528 23.8924ZM20.3984 25.3628V20.8084L24.3514 23.0856L20.3984 25.3628ZM15.0439 22.2784V17.724L18.9969 20.0012L15.0439 22.2784ZM20.3984 19.1932V14.6389L24.3514 16.916L20.3984 19.1932ZM19.4649 13.0247L15.5038 10.7468L19.468 8.46363L19.4649 13.0247ZM10.1491 26.1701L14.1131 28.4532L14.11 23.8922L10.1491 26.1701ZM24.8194 23.8928L24.8225 28.4527L20.8658 26.1705L24.8194 23.8928ZM15.0438 23.8928L15.0406 28.4527L18.9974 26.1705L15.0438 23.8928ZM26.2198 23.0856L30.178 20.8025V25.3687L26.2198 23.0856ZM9.68483 20.8025V25.3687L13.643 23.0856L9.68483 20.8025ZM15.5111 23.085L19.4644 25.3624V20.8077L15.5111 23.085ZM29.7125 20.0004L25.7529 17.7227V22.2782L29.7125 20.0004ZM10.1503 20.0008L14.1099 22.2786V17.7231L10.1503 20.0008ZM24.8189 17.7233V22.278L20.8656 20.0006L24.8189 17.7233ZM30.178 14.6329V19.1992L26.2198 16.916L30.178 14.6329ZM13.643 16.916L9.68483 19.1992V14.6329L13.643 16.916ZM19.4644 14.6385V19.1928L15.5114 16.9157L19.4644 14.6385ZM29.7141 13.8315L25.7497 11.5482L25.7528 16.1095L29.7141 13.8315ZM14.1135 11.5484L14.1104 16.1095L10.1491 13.8315L14.1135 11.5484ZM24.8225 11.549L24.8194 16.1089L20.8658 13.8312L24.8225 11.549ZM18.9974 13.8312L15.0438 16.1089L15.0406 11.549L18.9974 13.8312ZM24.3596 10.7467L20.3951 8.46362L20.3983 13.0247L24.3596 10.7467Z"
fill="white" />
</g>
<defs>
<clipPath id="clip0_291_2793">
<rect width="40" height="40" fill="white" />
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
public/membersLogo/dyne.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -0,0 +1,36 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Ebene_1" x="0px" y="0px" viewBox="0 0 249.3 113.4" style="enable-background:new 0 0 249.3 113.4;" xml:space="preserve"><script xmlns="" id="eppiocemhmnlbhjplcgkofciiegomcon"/><script xmlns=""/><script xmlns=""/>
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#1D1D1B;}
.st2{fill:url(#SVGID_1_);}
.st3{fill:url(#SVGID_2_);}
.st4{fill:url(#SVGID_3_);}
.st5{fill:url(#SVGID_4_);}
</style>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="38.1501" y1="84.9116" x2="38.1501" y2="22.0279">
<stop offset="0" style="stop-color:#0000B4"/>
<stop offset="9.090910e-03" style="stop-color:#0000B4"/>
<stop offset="1" style="stop-color:#000050"/>
</linearGradient>
<path class="st2" d="M46.4,24.6c-0.7-0.1-1.3-0.1-2-0.1c-4.9,0-9.7,2-14,5.8c-2,1.8-3.9,4-5.6,6.4c-0.3-9.3-0.8-19.2-1.8-29.3H10.5 c2.7,28.4,2.4,53.2,1.9,75h0c0,0,0,0.1,0,0.1h12.5c0.4-21.8,5.8-35.8,13.9-43c2.2-1.9,4.3-2.8,6.2-2.6c9.9,1.1,8.3,31.9,7.6,45.6 h12.5c0.5-10.1,1.1-22.4-0.3-33C62.8,34,56.5,25.7,46.4,24.6z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="158.5772" y1="84.9116" x2="158.5772" y2="22.0279">
<stop offset="0" style="stop-color:#0000B4"/>
<stop offset="9.090910e-03" style="stop-color:#0000B4"/>
<stop offset="1" style="stop-color:#000050"/>
</linearGradient>
<path class="st3" d="M174.2,26.5c-3-1.4-6.2-2.1-9.4-2.1c-3.3,0-6.6,0.7-9.9,2.2c-9,4.1-16.5,13.5-20,25.2c-5.4,18-5.1,39.6-5,53.9 c0,0.4,0,0.7,0,1.1h12.5c0-0.4,0-0.8,0-1.2c-0.1-13.5-0.4-34,4.5-50.2c2.4-8.2,7.5-14.8,13.2-17.4c3.1-1.4,6.1-1.4,8.8-0.2 c2.9,1.4,4.4,4.3,5,6.6c1.6,5.2,0.8,11.5-2.1,16c-4.5,7.3-10.7,9.9-22.1,9.6l0,12.4c12,0.1,25.1-2.7,32.8-15.5 c4.6-7.6,6-17.6,3.4-26.2C184,34.2,179.8,29.1,174.2,26.5z"/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="99.3556" y1="84.9116" x2="99.3556" y2="22.0279">
<stop offset="0" style="stop-color:#0000B4"/>
<stop offset="9.090910e-03" style="stop-color:#0000B4"/>
<stop offset="1" style="stop-color:#000050"/>
</linearGradient>
<path class="st4" d="M99.4,24.1c-16.1,0-29.1,13.4-29.1,29.9c0,16.5,13.1,29.9,29.1,29.9c16.1,0,29.1-13.4,29.1-29.9 C128.5,37.5,115.4,24.1,99.4,24.1z M99.4,71.4c-9.2,0-16.6-7.8-16.6-17.4c0-9.6,7.4-17.4,16.6-17.4c9.2,0,16.6,7.8,16.6,17.4 C116,63.6,108.5,71.4,99.4,71.4z"/>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="215.3602" y1="84.9116" x2="215.3602" y2="22.0279">
<stop offset="0" style="stop-color:#0000B4"/>
<stop offset="9.090910e-03" style="stop-color:#0000B4"/>
<stop offset="1" style="stop-color:#000050"/>
</linearGradient>
<path class="st5" d="M220.5,24.1c-4.6,0-8.8,1.7-12.5,5.1c-1.4,1.3-2.7,2.8-3.9,4.4c-0.3-2.6-0.6-5.3-0.9-8.1h-12.6 c3,22.3,2.7,40.7,2.5,52c0,1.7-0.1,3.2-0.1,4.5c0,0.1,0,0.2,0,0.4h0h12.5c0.1-8.4,0.4-15.1,2.3-25.3C209.7,47,215.3,36,221,36.6 c4.5,0.4,6,5.8,6.5,10.8h12.6C239.4,32.4,230.9,24.1,220.5,24.1z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

View file

@ -0,0 +1,21 @@
<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
<script xmlns="" id="eppiocemhmnlbhjplcgkofciiegomcon" />
<script xmlns="" />
<script xmlns="" />
<g clip-path="url(#clip0_291_2790)">
<path
d="M31.0278 33.2414H8.30322V19.5073H31.0064L31.0278 33.2414ZM19.6404 20.6091C17.7008 20.6111 15.7917 21.0823 14.0826 21.9809C12.3735 22.8795 10.9172 24.1777 9.84302 25.7603C9.70091 25.921 9.62269 26.1266 9.62269 26.3392C9.62269 26.5519 9.70091 26.7575 9.84302 26.9182C10.9241 28.4935 12.3831 29.7847 14.0922 30.6786C15.8012 31.5725 17.708 32.0418 19.6453 32.0453C21.5825 32.0487 23.4911 31.5863 25.2034 30.6985C26.9158 29.8107 28.3796 28.5247 29.4665 26.9533C29.6216 26.7835 29.7073 26.5636 29.7073 26.3357C29.7073 26.1079 29.6216 25.888 29.4665 25.7181C28.3826 24.142 26.919 22.852 25.2051 21.9621C23.4913 21.0722 21.58 20.6099 19.6404 20.6161V20.6091Z"
fill="white" />
<path
d="M19.7049 18.223C17.7777 18.2192 15.8802 17.7575 14.175 16.8774C12.4699 15.9974 11.008 14.7252 9.91466 13.1701C9.73237 12.9801 9.63088 12.7291 9.63088 12.4683C9.63088 12.2075 9.73237 11.9565 9.91466 11.7665C11.0074 10.2141 12.4702 8.94656 14.1763 8.07387C15.8823 7.20118 17.78 6.74975 19.7044 6.75874C21.6289 6.76773 23.5221 7.23688 25.2196 8.12546C26.917 9.01405 28.3675 10.2952 29.4451 11.8577C29.5996 12.0264 29.685 12.2451 29.685 12.4718C29.685 12.6985 29.5996 12.9171 29.4451 13.0858C28.3688 14.6523 26.9197 15.9386 25.2227 16.8336C23.5258 17.7286 21.632 18.2055 19.7049 18.223ZM23.9448 12.5384C23.9647 11.7017 23.7297 10.8782 23.2698 10.1729C22.8099 9.46765 22.146 8.9127 21.3627 8.57888C20.5795 8.24506 19.7125 8.14752 18.8725 8.29873C18.0324 8.44994 17.2574 8.84303 16.6463 9.42781C16.0353 10.0126 15.616 10.7625 15.4419 11.5819C15.2678 12.4013 15.3469 13.2529 15.6689 14.0281C15.991 14.8032 16.5415 15.4667 17.2502 15.9339C17.9589 16.4011 18.7935 16.6507 19.6476 16.651C20.7701 16.6513 21.8482 16.2211 22.6513 15.4526C23.4543 14.684 23.9186 13.6381 23.9448 12.5384Z"
fill="white" />
<path
d="M19.6618 30.4832C18.8289 30.4694 18.0189 30.2146 17.3333 29.751C16.6478 29.2874 16.1173 28.6356 15.8087 27.8775C15.5001 27.1194 15.4269 26.2888 15.5986 25.4901C15.7702 24.6914 16.1789 23.9602 16.7733 23.3884C17.3677 22.8166 18.1213 22.4298 18.9394 22.2764C19.7576 22.123 20.6037 22.21 21.3715 22.5264C22.1393 22.8429 22.7946 23.3746 23.2549 24.0548C23.7153 24.735 23.9602 25.5334 23.9589 26.3496C23.9571 26.8985 23.8441 27.4415 23.6265 27.9472C23.4089 28.453 23.0911 28.9114 22.6914 29.2959C22.2917 29.6804 21.8181 29.9833 21.298 30.1871C20.778 30.3909 20.2218 30.4916 19.6618 30.4832Z"
fill="white" />
</g>
<defs>
<clipPath id="clip0_291_2790">
<rect width="40" height="40" fill="white" />
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

4716
public/membersLogo/nomos.svg Normal file

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 703 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -5,6 +5,7 @@ import contributors from "../contributors.json";
import SpeakerGrid from "./SpeakerGrid.astro"; import SpeakerGrid from "./SpeakerGrid.astro";
import SliderTestimonial from "./SliderTestimonial.astro"; import SliderTestimonial from "./SliderTestimonial.astro";
import MembersGrid from "./MembersGrid.astro"; import MembersGrid from "./MembersGrid.astro";
import { fade } from "astro:transitions";
// Accept sectionsConfig as a prop // Accept sectionsConfig as a prop
const { const {
@ -91,8 +92,8 @@ const sortedSections = sectionsConfig
<h1 class="my-6 glitch-text ">Speakers</h1> <h1 class="my-6 glitch-text ">Speakers</h1>
<SpeakerGrid <SpeakerGrid
people={core.people} people={core.people}
team={core.teams["core-team"]} team={core.teams["core-speakers"]}
core={false} core={true}
/> />
</div> </div>
)} )}
@ -102,8 +103,8 @@ const sortedSections = sectionsConfig
<h1 class="my-6 glitch-text">Core Contributors</h1> <h1 class="my-6 glitch-text">Core Contributors</h1>
<SpeakerGrid <SpeakerGrid
people={core.people} people={core.people}
team={core.teams["core-team"]} team={core.teams["core-contributors"]}
core={true} core={false}
/> />
</div> </div>
)} )}
@ -145,9 +146,11 @@ const sortedSections = sectionsConfig
)} )}
{section.name === "membersGrid" && ( {section.name === "membersGrid" && (
<div class="middle-pane-medium mt-16"> <div class="mx-4 mt-16">
<h1 class="my-6 glitch-text">Members</h1> <h1 class="my-6 middle-pane-medium glitch-text">Members</h1>
<MembersGrid people={core.people} team={core.teams["core-team"]} /> <div class="middle-pane-medium">
<MembersGrid people={core.people} team={core.teams["members"]} core={false} />
</div>
</div> </div>
)} )}
</div> </div>

View file

@ -14,7 +14,7 @@ const { title, subtext, variant = "primary" } = Astro.props;
}`} }`}
> >
<span <span
class={`absolute bg-black z-10 top-[-20px] px-[12px] uppercase text-[1rem] ${variant === "secondary" ? "text-[#909090]" : "text-white"} font-bold`} class={`absolute bg-black z-10 top-[-20px] px-[12px] uppercase text-[0.8rem] md:text-[1rem] ${variant === "secondary" ? "text-[#909090]" : "text-white"} font-bold`}
> >
{title} {title}
</span> </span>
@ -33,4 +33,4 @@ const { title, subtext, variant = "primary" } = Astro.props;
</div> </div>
) )
} }
</div> </div>

View file

@ -31,14 +31,17 @@ import AboutItem from "../components/AboutItem.astro";
</div> </div>
<div> <div>
<div class="flex items-center flex-nowrap space-x-5"> <div class="flex items-center flex-nowrap space-x-5">
<span <a href="">
class="font-bold text-white underline"
style="text-underline-offset: 4px;"
>
PRIVACY EXPLORER PRIVACY EXPLORER
</span>
<span
class="font-bold text-white underline"
style="text-underline-offset: 4px;"
>
</span>
</a>
</div> </div>
<span class="text-[1rem] mt-0 w-full" <span class="text-[0.8rem] md:text-[1rem] mt-0 w-full"
>For Projects, Use-case list, Market & Funding info >For Projects, Use-case list, Market & Funding info
</span> </span>
</div> </div>
@ -59,7 +62,7 @@ import AboutItem from "../components/AboutItem.astro";
HACKATHON IDEA GENERATOR HACKATHON IDEA GENERATOR
</span> </span>
</div> </div>
<span class="text-[1rem] mt-0 w-full" <span class="text-[0.8rem] md:text-[1rem] mt-0 w-full"
>Helps developers build applications that address real-world >Helps developers build applications that address real-world
problems, that people will actually use. problems, that people will actually use.
</span> </span>
@ -105,4 +108,4 @@ import AboutItem from "../components/AboutItem.astro";
<a class="button inverted"><button>Privacy Academy</button></a> <a class="button inverted"><button>Privacy Academy</button></a>
</div> </div>
</div> </div>
</AboutItem> </AboutItem>

View file

@ -1,28 +1,29 @@
--- ---
const { const {
images = [ images = [
"/events/masonry/1.webp", { webp: "/events/masonry/1.webp", png: "/events/masonry/1.png" },
"/events/masonry/2.webp", { webp: "/events/masonry/2.webp", png: "/events/masonry/2.png" },
"/events/masonry/3.webp", { webp: "/events/masonry/3.webp", png: "/events/masonry/3.png" },
"/events/masonry/4.webp", { webp: "/events/masonry/4.webp", png: "/events/masonry/4.png" },
"/events/masonry/5.webp", { webp: "/events/masonry/5.webp", png: "/events/masonry/5.png" },
"/events/masonry/6.webp", { webp: "/events/masonry/6.webp", png: "/events/masonry/6.png" },
"/events/masonry/7.webp", { webp: "/events/masonry/7.webp", png: "/events/masonry/7.png" },
"/events/masonry/8.webp", { webp: "/events/masonry/8.webp", png: "/events/masonry/8.png" },
"/events/masonry/9.webp", { webp: "/events/masonry/9.webp", png: "/events/masonry/9.png" },
], ],
} = Astro.props; } = Astro.props;
--- ---
<!-- Display gallery with webp images -->
<div <div
class="middle-pane-big grid grid-cols-2 lg:flex lg:flex-nowrap gap-2 md:gap-[3px]" class="middle-pane-big grid grid-cols-2 lg:flex lg:flex-nowrap gap-2 md:gap-[3px] pb-2 md:pb-0"
> >
{ {
images.slice(0, 4).map((image, index) => ( images.slice(0, 4).map((image, index) => (
<div class="flex-auto overflow-hidden"> <div class="flex-auto overflow-hidden">
<img <img
class="object-cover w-full max-h-28 md:max-h-[223px] cursor-pointer gallery-image" class="object-cover w-full max-h-[75px] md:max-h-[200px] cursor-pointer gallery-image"
src={image} src={image.webp}
alt={`Image ${index + 1}`} alt={`Image ${index + 1}`}
data-index={index} data-index={index}
/> />
@ -32,14 +33,14 @@ const {
</div> </div>
<div <div
class="middle-pane-big grid grid-cols-2 lg:flex lg:flex-nowrap gap-2 md:gap-[3px]" class="middle-pane-big grid grid-cols-2 lg:flex lg:flex-nowrap gap-2 md:gap-[3px]"
> >
{ {
images.slice(4).map((image, index) => ( images.slice(4).map((image, index) => (
<div class="flex-auto overflow-hidden"> <div class="flex-auto overflow-hidden">
<img <img
class="object-cover w-full max-h-28 md:max-h-[223px] cursor-pointer gallery-image" class="object-cover w-full max-h-[75px] md:max-h-[200px] cursor-pointer gallery-image"
src={image} src={image.webp}
alt={`Image ${index + 5}`} alt={`Image ${index + 5}`}
data-index={index + 4} data-index={index + 4}
/> />
@ -48,6 +49,7 @@ class="middle-pane-big grid grid-cols-2 lg:flex lg:flex-nowrap gap-2 md:gap-[3px
} }
</div> </div>
<!-- Modal for fullscreen images -->
<div <div
class="image-modal hidden fixed inset-0 bg-black flex-col flex items-center justify-center z-50" class="image-modal hidden fixed inset-0 bg-black flex-col flex items-center justify-center z-50"
> >
@ -60,6 +62,7 @@ class="middle-pane-big grid grid-cols-2 lg:flex lg:flex-nowrap gap-2 md:gap-[3px
class="w-full h-full object-contain modal-image" class="w-full h-full object-contain modal-image"
src="" src=""
alt="Selected Image" alt="Selected Image"
loading="lazy"
/> />
</div> </div>
@ -68,7 +71,7 @@ class="middle-pane-big grid grid-cols-2 lg:flex lg:flex-nowrap gap-2 md:gap-[3px
images.map((image, index) => ( images.map((image, index) => (
<img <img
class="w-24 h-24 object-contain cursor-pointer thumbnail-image" class="w-24 h-24 object-contain cursor-pointer thumbnail-image"
src={image} src={image.webp}
alt={`Thumbnail ${index + 1}`} alt={`Thumbnail ${index + 1}`}
data-index={index} data-index={index}
/> />
@ -80,15 +83,15 @@ class="middle-pane-big grid grid-cols-2 lg:flex lg:flex-nowrap gap-2 md:gap-[3px
<script> <script>
let selectedIndex = 0; let selectedIndex = 0;
const images = [ const images = [
"/events/masonry/1.webp", { webp: "/events/masonry/1.webp", png: "/events/masonry/1.png" },
"/events/masonry/2.webp", { webp: "/events/masonry/2.webp", png: "/events/masonry/2.png" },
"/events/masonry/3.webp", { webp: "/events/masonry/3.webp", png: "/events/masonry/3.png" },
"/events/masonry/4.webp", { webp: "/events/masonry/4.webp", png: "/events/masonry/4.png" },
"/events/masonry/5.webp", { webp: "/events/masonry/5.webp", png: "/events/masonry/5.png" },
"/events/masonry/6.webp", { webp: "/events/masonry/6.webp", png: "/events/masonry/6.png" },
"/events/masonry/7.webp", { webp: "/events/masonry/7.webp", png: "/events/masonry/7.png" },
"/events/masonry/8.webp", { webp: "/events/masonry/8.webp", png: "/events/masonry/8.png" },
"/events/masonry/9.webp", { webp: "/events/masonry/9.webp", png: "/events/masonry/9.png" },
]; ];
function openModal(index) { function openModal(index) {
@ -102,7 +105,7 @@ class="middle-pane-big grid grid-cols-2 lg:flex lg:flex-nowrap gap-2 md:gap-[3px
} }
function updateModalImage() { function updateModalImage() {
const imageSrc = images[selectedIndex]; const imageSrc = images[selectedIndex].png;
document.querySelector(".modal-image").src = imageSrc; document.querySelector(".modal-image").src = imageSrc;
} }

View file

@ -1,86 +1,9 @@
--- ---
const { people, team } = Astro.props; const { team, people, core } = Astro.props;
// Dummy data for now:
let filteredPeople = [
{
id: "guy-zyskind",
name: "Guy Zyskind",
caption:
"Founder of [Secret Network](https://scrt.network/), CEO [SCRT Labs](https://www.scrtlabs.com/)",
country: "is",
refs: {
twitter: "GuyZys",
},
imageUrl: "https://data.web3privacy.info/img/people/guy-zyskind.jpg",
thumbs: {
"64": "https://data.web3privacy.info/img/people/thumbs/guy-zyskind-64px.webp",
"128":
"https://data.web3privacy.info/img/people/thumbs/guy-zyskind-128px.webp",
"400":
"https://data.web3privacy.info/img/people/thumbs/guy-zyskind-400px.webp",
},
},
{
id: "guy-zyskind",
name: "Guy Zyskind",
caption:
"Founder of [Secret Network](https://scrt.network/), CEO [SCRT Labs](https://www.scrtlabs.com/)",
country: "is",
refs: {
twitter: "GuyZys",
},
imageUrl: "https://data.web3privacy.info/img/people/guy-zyskind.jpg",
thumbs: {
"64": "https://data.web3privacy.info/img/people/thumbs/guy-zyskind-64px.webp",
"128":
"https://data.web3privacy.info/img/people/thumbs/guy-zyskind-128px.webp",
"400":
"https://data.web3privacy.info/img/people/thumbs/guy-zyskind-400px.webp",
},
},
{
id: "guy-zyskind",
name: "Guy Zyskind",
caption:
"Founder of [Secret Network](https://scrt.network/), CEO [SCRT Labs](https://www.scrtlabs.com/)",
country: "is",
refs: {
twitter: "GuyZys",
},
imageUrl: "https://data.web3privacy.info/img/people/guy-zyskind.jpg",
thumbs: {
"64": "https://data.web3privacy.info/img/people/thumbs/guy-zyskind-64px.webp",
"128":
"https://data.web3privacy.info/img/people/thumbs/guy-zyskind-128px.webp",
"400":
"https://data.web3privacy.info/img/people/thumbs/guy-zyskind-400px.webp",
},
},
{
id: "guy-zyskind",
name: "Guy Zyskind",
caption:
"Founder of [Secret Network](https://scrt.network/), CEO [SCRT Labs](https://www.scrtlabs.com/)",
country: "is",
refs: {
twitter: "GuyZys",
},
imageUrl: "https://data.web3privacy.info/img/people/guy-zyskind.jpg",
thumbs: {
"64": "https://data.web3privacy.info/img/people/thumbs/guy-zyskind-64px.webp",
"128":
"https://data.web3privacy.info/img/people/thumbs/guy-zyskind-128px.webp",
"400":
"https://data.web3privacy.info/img/people/thumbs/guy-zyskind-400px.webp",
},
},
];
// NOTE: Uncomment this if you want to filter people dynamically based upon a specific parameter const filteredPeople = core
? people.filter((p) => !team.includes(p.id)).filter((p) => p.imageUrl)
// const filteredPeople = people : team;
// .filter((p) => !team.includes(p.id))
// .filter((p) => p.imageUrl);
// Limit the number of members to 12 (2 rows with a max of 6 columns each) // Limit the number of members to 12 (2 rows with a max of 6 columns each)
const limitedPeople = filteredPeople.slice(0, 12); const limitedPeople = filteredPeople.slice(0, 12);
@ -102,24 +25,24 @@ function personLink(person) {
return "#"; return "#";
} }
} }
--- ---
<div <div
class="grid place-items-start grid-cols-3 lg:grid-cols-4 xl:grid-cols-6 gap-2" class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-2 gap-y-10 md:gap-y-2 mb-6"
> >
{ {
limitedPeople.map((person) => ( limitedPeople.map((person) => (
<div class="max-w-xs w-full max-h-[340px] bg-transparent overflow-hidden p-1 space-y-1 mb-2"> <div
<a href={personLink(person)}> class={`partner-item ${core ? "person-item" : ""} text-center items-center p-2`}
>
<a href={personLink(person)} class={`${core ? "person-item" : ""}`}>
<img <img
src={person.imageUrl} src={person.imageUrl}
alt={person.name} alt={person.name}
class="h-24 w-full md:h-48 object-cover object-center h-full grayscale" class="partner-img h-24 md:h-48 aspect-[16/11] w-full h-full object-contain p-0 "
/> />
</a> </a>
<div class="mt-4 flex items-center justify-center flex-col "> <div class="p-2 partner-text">
<h3 class="text-xs md:text-lg font-bold leading-6">{person.name}</h3> <h3 class="text-xs md:text-lg font-bold leading-6">{person.name}</h3>
{person.refs && ( {person.refs && (
<p class="text-xs md:text-sm text-gray-500"> <p class="text-xs md:text-sm text-gray-500">

View file

@ -12,29 +12,19 @@
> >
<div class="flex flex-col mb-4"> <div class="flex flex-col mb-4">
<p> <p>
Members are our chosen collaborators for mutual support and Sponsors are our value-aligned partners who help us maintain
growth. Rather than one-time deals for individual events or financial sustainability. They support our mission by contributing
projects, we strive for consistent collaboration to achieve to all our activities, whether it's a research project, an event,
lasting impact. a merchandise release.
</p> </p>
<span class="leading-[1.4rem]">
Become an integral part of our community! Join us with building
privacy platform we all need.
</span>
</div> </div>
<div class="flex flex-col z-[10] mb-4"> <div class="flex flex-col z-[10] mb-6">
<span class="text-white font-bold text-[18px]"> 2024 </span> <span class="text-white font-bold text-[18px]"> 2024 </span>
<ul class="text-white"> <ul class="text-white">
<a href="/" class="underline" style="text-underline-offset: 4px;"> <a href="/" class="underline" style="text-underline-offset: 4px;">
<li>Privacy</li></a <li>Privacy Scaling Exploration</li></a
> >
<a href="/" class="underline" style="text-underline-offset: 4px;">
<li>Scaling</li></a
>
<a href="/" class="underline" style="text-underline-offset: 4px;">
<li>Exploration</li></a
>
<a href="/" class="underline" style="text-underline-offset: 4px;"> <a href="/" class="underline" style="text-underline-offset: 4px;">
<li>Ethereum</li></a <li>Ethereum</li></a
> >
@ -49,7 +39,7 @@
> >
</ul> </ul>
</div> </div>
<div class="flex flex-col z-[10] mb-4"> <div class="flex flex-col z-[10] mb-8">
<span class="text-white font-bold text-[18px] leading-[1.4rem]"> <span class="text-white font-bold text-[18px] leading-[1.4rem]">
2023 2023
</span> </span>
@ -121,7 +111,7 @@
</div> </div>
</div> </div>
<div class="flex flex-col justify-between gap-8"> <div class="flex flex-col justify-between gap-8">
<div class=""> <div class="flex-1">
<div class="bg-white w-full px-[16px] text-black"> <div class="bg-white w-full px-[16px] text-black">
<h3 style="color:black !important" class="pb-[3px]">DONATE</h3> <h3 style="color:black !important" class="pb-[3px]">DONATE</h3>
</div> </div>
@ -129,15 +119,14 @@
<div <div
class="w-full md:border-x-4 md:border-b-4 border-l-0 md:border-b-0 border-b-4 border-white p-4" class="w-full md:border-x-4 md:border-b-4 border-l-0 md:border-b-0 border-b-4 border-white p-4"
> >
<div class="flex flex-col h-full justify-between gap-10 z-[10]"> <div class="flex flex-col h-full justify-between z-[10]">
<div class="flex flex-col my-4"> <div class="flex flex-col my-4">
<p> <p>
Members are our chosen collaborators for mutual support and Our diverse array of research, projects development, events and
growth. Rather than one-time deals for individual events or tools production is all offered freely, fueled by people and
projects, we strive for consistent collaboration to achieve organizations who care about digital privacy.
lasting impact.
</p> </p>
<p class="text-white mt-4"> <p class="text-white my-2">
<strong <strong
>Support our independence, help us to advocate for freedom</strong >Support our independence, help us to advocate for freedom</strong
> >
@ -168,7 +157,7 @@
</p> </p>
</div> </div>
</div> </div>
<a class="button inverted"><button>SPEAK AT OUR EVENTS</button></a> <a class="button inverted"><button>Become a speaker</button></a>
</div> </div>
</div> </div>
</div> </div>

View file

@ -14,15 +14,10 @@ import core from "../core.json";
<div class="flex flex-col h-full justify-between px-6 z-[10] relative"> <div class="flex flex-col h-full justify-between px-6 z-[10] relative">
<div class="flex flex-col my-4"> <div class="flex flex-col my-4">
<p> <p>
Members are our chosen collaborators for mutual support and For members who want to be more involved in the governance of our
growth. Rather than one-time deals for individual events or initiative, we offer the opportunity to participate in the
projects, we strive for consistent collaboration to achieve decisions and voting on our plans and other topics.
lasting impact.
</p> </p>
<span class="leading-[1.4rem]">
Become an integral part of our community! Join us with building
privacy platform we all need.
</span>
<div class="flex flex-col gap-[16px] md:p-[24px] z-[10]"> <div class="flex flex-col gap-[16px] md:p-[24px] z-[10]">
<span class="text-white font-bold text-[18px] leading-[1.4rem]"> <span class="text-white font-bold text-[18px] leading-[1.4rem]">
Benefits Benefits
@ -30,9 +25,8 @@ import core from "../core.json";
<ul class="list-disc ml-[18px] text-white"> <ul class="list-disc ml-[18px] text-white">
<li>You are supporting a good thing!</li> <li>You are supporting a good thing!</li>
<li>Guaranteed access to all our events</li> <li>Guaranteed access to all our events</li>
<li>Swag Privacy Pack</li> <li>Privacy Swag Pack</li>
<li>Deals from our partners</li> <li>Deals from our partners</li>
<li>Voting rights in our association</li>
</ul> </ul>
</div> </div>
</div> </div>
@ -40,24 +34,29 @@ import core from "../core.json";
<div <div
class="flex relative w-full md:justify-between md:flex-row flex-col gap-[8px] md:items-end" class="flex relative w-full md:justify-between md:flex-row flex-col gap-[8px] md:items-end"
> >
<div class="flex flex-col justify-end h-full gap-4 mb-4 md:mb-8 z-50"> <div
class="flex flex-col justify-end h-full gap-4 mb-4 md:mb-8 z-50"
>
<span>Price</span> <span>Price</span>
<span class="text-white font-bold text-[24px] leading-[1.4rem]"> <span
class="text-white font-bold text-lg md:text-[24px] leading-[1.4rem]"
>
€100 / Year €100 / Year
</span> </span>
<a class="button inverted" href={core.links.individual} <a class="button inverted" href={core.links.individual}
><button>BECOME A MEMBER</button></a ><button>BECOME A MEMBER</button></a
> >
<p class="max-w-72 text-sm"> <p class="max-w-72 text-sm">
After making your donation, kindly send us the tx hash, your After making your donation, kindly <span class="underline"
T-shirt size, and let us know if you would like your membership >send us</span
to be public or kept private. > the tx hash, your T-shirt size, and let us know if you would like
your membership to be public or kept private.
</p> </p>
</div> </div>
<img <img
src="/about/image1.png" src="/about/image1.png"
alt="" alt=""
class="absolute hidden md:block right-0 bottom-0 md:w-[280px] md:h-auto" class="absolute hidden md:block right-0 bottom-0 md:w-[280px] md:h-auto opacity-30"
/> />
</div> </div>
</div> </div>
@ -98,6 +97,14 @@ import core from "../core.json";
<li> <li>
<span class="font-bold leading-wide"> Access to Talent </span> <span class="font-bold leading-wide"> Access to Talent </span>
<p>
Connect with the right builders to test or develop your beta
projects or services.
</p>
</li>
<li>
<span class="font-bold leading-wide"> Targeted Outreach </span>
<p>Grow impact through strategic, targeted communications.</p> <p>Grow impact through strategic, targeted communications.</p>
</li> </li>
<li> <li>
@ -105,13 +112,6 @@ import core from "../core.json";
<p>Participate in speaking engagements and mentorship roles.</p> <p>Participate in speaking engagements and mentorship roles.</p>
</li> </li>
<li>
<span class="font-bold leading-wide">
Deals from our partners
</span>
<p>More details about the deals from our partners.</p>
</li>
<li> <li>
<span class="font-bold leading-wide"> Focused Engagement </span> <span class="font-bold leading-wide"> Focused Engagement </span>
<p> <p>
@ -132,7 +132,7 @@ import core from "../core.json";
<div class="flex flex-col justify-end h-full gap-2"> <div class="flex flex-col justify-end h-full gap-2">
<span>Our membership has multiple tiers ranging from</span> <span>Our membership has multiple tiers ranging from</span>
<span <span
class="text-white font-bold text-[24px] leading-[1.4rem]" class="text-white font-bold text-lg md:text-[24px] leading-[1.4rem]"
> >
7,000 to 70,000 € / year 7,000 to 70,000 € / year
</span> </span>
@ -140,7 +140,7 @@ import core from "../core.json";
>Membership for registered non-profit organizations is >Membership for registered non-profit organizations is
</span> </span>
<span <span
class="text-white font-bold text-[24px] leading-[1.4rem]" class="text-white font-bold text-lg md:text-[24px] leading-[1.4rem]"
> >
3,000 € / year 3,000 € / year
</span> </span>

View file

@ -1,45 +1,93 @@
--- ---
const testimonials = [ const testimonials = [
{ {
author: "Matteo", id: "jaromil",
text: `balance between Transparency and Privacy, accountable and unaccountable, manifest and secret, convex and concave, 1 and 0 is one of the most fun puzzles.`, author: "Jaromil",
imageUrl: "/review.png", designation: "Hacktivist, Founder & Director at Dyne.org Foundation",
reviewText:
"Privacy-by-design is the best way to approach the web3 frontier and develop something that empowers people and builds the critical mass for its sustainability. Web3Privacy Now focuses on the best possible goals for crypto developments: privacy, independence and decentralisation.",
imageUrl: "/testimonials/jaromil.png",
}, },
{ {
author: "Jane", id: "hackguru",
text: `This platform has opened my eyes to the potential of blockchain technology in a way that I never imagined. The community is vibrant and full of innovation.`, author: "HackGuru",
imageUrl: "/review.png", designation: "Developer Relation at Waku",
reviewText:
"They have been organising amazing pro-privacy initiatives. Been a big fan and excited to continue contributing to this amazing community : )",
imageUrl: "/testimonials/hack-guru.jpg",
}, },
{ {
author: "Alex", id: "lunar-dao",
text: `It's amazing to see how much transparency can coexist with privacy, and this is the best representation of how it can work. Great work!`, author: "Lunar Dao",
imageUrl: "/review.png", designation: null,
reviewText:
"A catalyst leading a brilliant charge into privacy content for the web3 ecosystem.",
imageUrl: "/testimonials/lunar-dao.jpg",
},
{
id: "amit-chaudhary",
author: "Amit Chaudhary",
designation: "Founder Labyrinth, Ex Head of DeFi Research Polygon",
reviewText:
"This is the best community for privacy that unites people to collaborate and turns user privacy into reality with exciting narratives.",
imageUrl: "/testimonials/amit-chaudary.jpg",
},
{
id: "andreea",
author: "Andreea",
designation: null,
reviewText:
"I loved the event, the place, the people, the conversations, the swag. You guys are incredible! I think I wont be attending other crypto events that much anymore.",
imageUrl: "/testimonials/andreea.jpg",
},
{
id: "cryptocanal",
author: "CryptoCanal",
designation: null,
reviewText:
"One event at a time, they are building an ecosystem to ensure that no one forgets the political frontiers being pushed by crypto. Web3Privacy Now has been rallying support and ensuring that privacy holds a prime spot at all the major conferences worldwide.",
imageUrl: "/testimonials/cryptocanal.jpg",
},
{
id: "matteo-tambussi",
author: "Matteo Tambussi",
designation: "Founder of Spaghetteth, Project Manager StakeCapital",
reviewText:
"The balance between Transparency and Privacy, accountable and unaccountable, manifest and secret, convex and concave, 1 and 0 is one of the most fun puzzles blockchain tech has to solve for the world. W3P community approaches this with incredible humility and an unravel-the-knot open debate approach. Also I like how they dress.",
imageUrl: "/testimonials/matteo-tambussi.jpg",
},
{
id: "pie-man",
author: "Pie Man",
designation: "Co-Founder Fairblock Network",
reviewText:
"Most bullish event by far in EthCC was Web3Privacy Now: right in the middle of the park without anything fancy going on, the only incentive to stay was lovely people with extreme passion for deep but practical steps, cryptography, and amazing applications.",
imageUrl: "/testimonials/pie-man.jpg",
}, },
]; ];
// Usage
let currentTestimonial = 0; let currentTestimonial = 0;
--- ---
<div class="w-full mx-auto px-8 border-2 border-[#202020]"> <div class="w-full mx-auto px-8 border-2 border-[#202020]">
<div class="relative" id="testimonial-container"> <div class="relative" id="testimonial-container">
<div <div
class="flex flex-col md:flex-row my-4 md:my-0 items-center justify-center testimonial-fade active overflow-hidden" class="flex flex-col md:flex-row my-4 md:my-0 items-center justify-center testimonial-fade active overflow-hidden person-item"
> >
<div> <img
<img src={testimonials[currentTestimonial].imageUrl}
src={testimonials[currentTestimonial].imageUrl} class="grayscale h-24 rounded-full"
class="grayscale" alt="Review Image"
alt="Review Image" id="testimonial-image"
id="testimonial-image" />
/>
</div>
<div class="relative lg:w-9/12"> <div class="relative lg:w-9/12">
<div class="relative py-12 px-8 text-gray-700 leading-relaxed"> <div class="relative py-12 px-8 text-gray-700 leading-relaxed">
<h2 class="font-bold" id="testimonial-author"> <h2 class="font-bold" id="testimonial-author">
{testimonials[currentTestimonial].author}: {testimonials[currentTestimonial].author}:
</h2> </h2>
<p class="leading-tight" id="testimonial-text"> <p class="leading-tight" id="testimonial-text">
"{testimonials[currentTestimonial].text}" "{testimonials[currentTestimonial].reviewText}"
</p> </p>
</div> </div>
</div> </div>
@ -98,22 +146,70 @@ let currentTestimonial = 0;
document.addEventListener("DOMContentLoaded", function () { document.addEventListener("DOMContentLoaded", function () {
const testimonials = [ const testimonials = [
{ {
author: "Matteo", id: "jaromil",
text: `balance between Transparency and Privacy, accountable and unaccountable, manifest and secret, convex and concave, 1 and 0 is one of the most fun puzzles.`, author: "Jaromil",
imageUrl: "/review.png", designation: "Hacktivist, Founder & Director at Dyne.org Foundation",
reviewText:
"Privacy-by-design is the best way to approach the web3 frontier and develop something that empowers people and builds the critical mass for its sustainability. Web3Privacy Now focuses on the best possible goals for crypto developments: privacy, independence and decentralisation.",
imageUrl: "/testimonials/jaromil.png",
}, },
{ {
author: "Jane", id: "hackguru",
text: `This platform has opened my eyes to the potential of blockchain technology in a way that I never imagined. The community is vibrant and full of innovation.`, author: "HackGuru",
imageUrl: "/review.png", designation: "Developer Relation at Waku",
reviewText:
"They have been organising amazing pro-privacy initiatives. Been a big fan and excited to continue contributing to this amazing community : )",
imageUrl: "/testimonials/hack-guru.jpg",
}, },
{ {
author: "Alex", id: "lunar-dao",
text: `It's amazing to see how much transparency can coexist with privacy, and this is the best representation of how it can work. Great work!`, author: "Lunar Dao",
imageUrl: "/review.png", designation: null,
reviewText:
"A catalyst leading a brilliant charge into privacy content for the web3 ecosystem.",
imageUrl: "/testimonials/lunar-dao.jpg",
},
{
id: "amit-chaudhary",
author: "Amit Chaudhary",
designation: "Founder Labyrinth, Ex Head of DeFi Research Polygon",
reviewText:
"This is the best community for privacy that unites people to collaborate and turns user privacy into reality with exciting narratives.",
imageUrl: "/testimonials/amit-chaudary.jpg",
},
{
id: "andreea",
author: "Andreea",
designation: null,
reviewText:
"I loved the event, the place, the people, the conversations, the swag. You guys are incredible! I think I wont be attending other crypto events that much anymore.",
imageUrl: "/testimonials/andreea.jpg",
},
{
id: "cryptocanal",
author: "CryptoCanal",
designation: null,
reviewText:
"One event at a time, they are building an ecosystem to ensure that no one forgets the political frontiers being pushed by crypto. Web3Privacy Now has been rallying support and ensuring that privacy holds a prime spot at all the major conferences worldwide.",
imageUrl: "/testimonials/cryptocanal.jpg",
},
{
id: "matteo-tambussi",
author: "Matteo Tambussi",
designation: "Founder of Spaghetteth, Project Manager StakeCapital",
reviewText:
"The balance between Transparency and Privacy, accountable and unaccountable, manifest and secret, convex and concave, 1 and 0 is one of the most fun puzzles blockchain tech has to solve for the world. W3P community approaches this with incredible humility and an unravel-the-knot open debate approach. Also I like how they dress.",
imageUrl: "/testimonials/matteo-tambussi.jpg",
},
{
id: "pie-man",
author: "Pie Man",
designation: "Co-Founder Fairblock Network",
reviewText:
"Most bullish event by far in EthCC was Web3Privacy Now: right in the middle of the park without anything fancy going on, the only incentive to stay was lovely people with extreme passion for deep but practical steps, cryptography, and amazing applications.",
imageUrl: "/testimonials/pie-man.jpg",
}, },
]; ];
let currentTestimonial = 0; let currentTestimonial = 0;
const container = document.getElementById("testimonial-container"); const container = document.getElementById("testimonial-container");
@ -135,7 +231,7 @@ let currentTestimonial = 0;
setTimeout(() => { setTimeout(() => {
// Update content after fade-out // Update content after fade-out
authorElement.innerText = testimonial.author; authorElement.innerText = testimonial.author;
textElement.innerText = `"${testimonial.text}"`; textElement.innerText = `"${testimonial.reviewText}"`;
imageElement.src = testimonial.imageUrl; imageElement.src = testimonial.imageUrl;
// Add fade-in class // Add fade-in class

View file

@ -1,12 +1,15 @@
--- ---
import { parseAndWrapCaptions } from "../../utils/captionParser";
const { people, team, core } = Astro.props; const { people, team, core } = Astro.props;
// Filter based on the `core` parameter // Filter based on the `core` parameter
const members = core const members = core ? people.filter((p) => {
? people.filter((p) => team.includes(p.id)) // If `core` is true, filter for team members return team.includes(p.id)
: people.filter((p) => !team.includes(p.id)); // If `core` is false or undefined, filter for non-team members }).filter((p) => p.imageUrl) : team;
const filteredPeople = members.filter((p) => p.imageUrl).slice(0, 12); // const filteredPeople = members.filter((p) => p.imageUrl).slice(0, 12);
const filteredPeople = members.filter((p) => p.imageUrl);
function personLink(person) { function personLink(person) {
if (person.refs?.twitter) { if (person.refs?.twitter) {
@ -19,6 +22,8 @@ function personLink(person) {
return `https://github.com/${person.refs.github}`; return `https://github.com/${person.refs.github}`;
} else if (person.refs?.matrix) { } else if (person.refs?.matrix) {
return `https://matrix.to/#/${person.refs.matrix}`; return `https://matrix.to/#/${person.refs.matrix}`;
} else if (person.refs?.designation) {
return `${person.refs.designation}`;
} else if (person.refs?.email) { } else if (person.refs?.email) {
return `mailto:${person.refs.email}`; return `mailto:${person.refs.email}`;
} else { } else {
@ -28,29 +33,40 @@ function personLink(person) {
--- ---
<div <div
class="grid grid-cols-3 lg:grid-cols-4 xl:grid-cols-6 md:gap-4 place-items-start" class="grid grid-cols-3 lg:grid-cols-4 xl:grid-cols-6 place-items-start"
> >
{ {
filteredPeople.map((person) => ( filteredPeople.map((person) => (
<div class="max-w-xs w-full max-h-[340px] bg-transparent overflow-hidden p-1 space-y-1 mb-2"> <div
<a href={personLink(person)}> class={`max-w-xs w-full max-h-[340px] bg-transparent overflow-hidden p-1 space-y-1 mb-2`}
>
<a href={personLink(person)} class={`${core ? "person-item" : ""}`}>
<img <img
src={person.imageUrl} src={person.imageUrl}
alt={person.name} alt={person.name}
class="h-24 w-full md:h-48 object-cover object-center h-full" class="min-h-[110px] w-full md:h-48 object-cover object-center transition duration-200 ease-in"
/> />
</a> </a>
<div class="mt-4"> <div class="mt-4">
<h3 class="text-xs md:text-lg font-bold leading-6">{person.name}</h3> <h3 class="text-[10px] pt-2 font-bold leading-3 md:leading-9 md:text-[16px] ">{person.name}</h3>
{person.refs && ( {person.refs && (
<p class="text-xs text-gray-500"> <p class="text-xs text-gray-500">
{person.refs.twitter && `@${person.refs.twitter}`} {person.refs.twitter && `@${person.refs.twitter}`}
{person.refs.email && ` | Email: ${person.refs.email}`}
{person.refs.bsky && ` | bsky: ${person.refs.bsky}`} {person.refs.bsky && ` | bsky: ${person.refs.bsky}`}
{person.refs.linkedin && ` | LinkedIn: ${person.refs.linkedin}`} {person.refs.linkedin && ` | LinkedIn: ${person.refs.linkedin}`}
{person.refs.github && ` | GitHub: ${person.refs.github}`} {person.refs.github && ` | GitHub: ${person.refs.github}`}
{person.refs.matrix && ` | Matrix: ${person.refs.matrix}`} {person.refs.matrix && ` | Matrix: ${person.refs.matrix}`}
{person.refs.email && ` | Email: ${person.refs.email}`} {person.refs.email && ` | Email: ${person.refs.email}`}
</p> </p>
<p class="text-xs text-gray-500" set:html={person.caption && parseAndWrapCaptions(person.caption)}></p>
<p class="text-xs text-gray-500">
{person.refs.designation && `${person.refs.designation}`}
</p>
)} )}
</div> </div>
</div> </div>

View file

@ -1,5 +1,5 @@
title: Web3Privacy Now title: Web3Privacy Now
description: Advocates worldwide are uniting to make privacy fundamental pillar of the Web3 industry, transforming it into a cultural movement that champions freedom and decentralization. description: The leading nonprofit advancing Privacy & Freedom in the web3 industry. In our Ecosystem, we foster a culture that empowers decentralization, open-source , and anti surveillance.
header: header:
menu: menu:
- name: Home - name: Home
@ -54,7 +54,9 @@ footer:
link: matrix link: matrix
hero: hero:
text: | text: |
Advocates worldwide are uniting to make privacy fundamental pillar of the Web3 industry, transforming it into a cultural movement that champions freedom and decentralization. The leading nonprofit advancing Privacy & Freedom in the web3 industry.
<br />
In our Ecosystem, we foster a culture that empowers decentralization, open-source, and anti surveillance.
landing: landing:
merch: | merch: |
To make humans gain control over their privacy by utilizing Web3 stack. So privacy would become a cultural phenomena & active lifestyle. To make humans gain control over their privacy by utilizing Web3 stack. So privacy would become a cultural phenomena & active lifestyle.

View file

@ -38,7 +38,7 @@
"received_events_url": "https://api.github.com/users/Msiusko/received_events", "received_events_url": "https://api.github.com/users/Msiusko/received_events",
"type": "User", "type": "User",
"site_admin": false, "site_admin": false,
"contributions": 3013 "contributions": 3030
}, },
{ {
"login": "burningtree", "login": "burningtree",
@ -80,7 +80,7 @@
"received_events_url": "https://api.github.com/users/EclecticSamurai/received_events", "received_events_url": "https://api.github.com/users/EclecticSamurai/received_events",
"type": "User", "type": "User",
"site_admin": false, "site_admin": false,
"contributions": 528 "contributions": 531
}, },
{ {
"login": "ethanolo-eth", "login": "ethanolo-eth",
@ -101,7 +101,7 @@
"received_events_url": "https://api.github.com/users/ethanolo-eth/received_events", "received_events_url": "https://api.github.com/users/ethanolo-eth/received_events",
"type": "User", "type": "User",
"site_admin": false, "site_admin": false,
"contributions": 521 "contributions": 499
}, },
{ {
"login": "niclaz", "login": "niclaz",
@ -122,7 +122,7 @@
"received_events_url": "https://api.github.com/users/niclaz/received_events", "received_events_url": "https://api.github.com/users/niclaz/received_events",
"type": "User", "type": "User",
"site_admin": false, "site_admin": false,
"contributions": 329 "contributions": 364
}, },
{ {
"login": "cryptomar1o", "login": "cryptomar1o",
@ -167,25 +167,25 @@
"contributions": 168 "contributions": 168
}, },
{ {
"login": "DeBelg", "login": "danielklein-arch",
"id": 38403795, "id": 82767072,
"node_id": "MDQ6VXNlcjM4NDAzNzk1", "node_id": "MDQ6VXNlcjgyNzY3MDcy",
"avatar_url": "https://avatars.githubusercontent.com/u/38403795?v=4", "avatar_url": "https://avatars.githubusercontent.com/u/82767072?v=4",
"gravatar_id": "", "gravatar_id": "",
"url": "https://api.github.com/users/DeBelg", "url": "https://api.github.com/users/danielklein-arch",
"html_url": "https://github.com/DeBelg", "html_url": "https://github.com/danielklein-arch",
"followers_url": "https://api.github.com/users/DeBelg/followers", "followers_url": "https://api.github.com/users/danielklein-arch/followers",
"following_url": "https://api.github.com/users/DeBelg/following{/other_user}", "following_url": "https://api.github.com/users/danielklein-arch/following{/other_user}",
"gists_url": "https://api.github.com/users/DeBelg/gists{/gist_id}", "gists_url": "https://api.github.com/users/danielklein-arch/gists{/gist_id}",
"starred_url": "https://api.github.com/users/DeBelg/starred{/owner}{/repo}", "starred_url": "https://api.github.com/users/danielklein-arch/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/DeBelg/subscriptions", "subscriptions_url": "https://api.github.com/users/danielklein-arch/subscriptions",
"organizations_url": "https://api.github.com/users/DeBelg/orgs", "organizations_url": "https://api.github.com/users/danielklein-arch/orgs",
"repos_url": "https://api.github.com/users/DeBelg/repos", "repos_url": "https://api.github.com/users/danielklein-arch/repos",
"events_url": "https://api.github.com/users/DeBelg/events{/privacy}", "events_url": "https://api.github.com/users/danielklein-arch/events{/privacy}",
"received_events_url": "https://api.github.com/users/DeBelg/received_events", "received_events_url": "https://api.github.com/users/danielklein-arch/received_events",
"type": "User", "type": "User",
"site_admin": false, "site_admin": false,
"contributions": 58 "contributions": 76
}, },
{ {
"login": "coinmandeer", "login": "coinmandeer",
@ -229,6 +229,111 @@
"site_admin": false, "site_admin": false,
"contributions": 45 "contributions": 45
}, },
{
"login": "NoobDeveloper412",
"id": 74310120,
"node_id": "MDQ6VXNlcjc0MzEwMTIw",
"avatar_url": "https://avatars.githubusercontent.com/u/74310120?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/NoobDeveloper412",
"html_url": "https://github.com/NoobDeveloper412",
"followers_url": "https://api.github.com/users/NoobDeveloper412/followers",
"following_url": "https://api.github.com/users/NoobDeveloper412/following{/other_user}",
"gists_url": "https://api.github.com/users/NoobDeveloper412/gists{/gist_id}",
"starred_url": "https://api.github.com/users/NoobDeveloper412/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/NoobDeveloper412/subscriptions",
"organizations_url": "https://api.github.com/users/NoobDeveloper412/orgs",
"repos_url": "https://api.github.com/users/NoobDeveloper412/repos",
"events_url": "https://api.github.com/users/NoobDeveloper412/events{/privacy}",
"received_events_url": "https://api.github.com/users/NoobDeveloper412/received_events",
"type": "User",
"site_admin": false,
"contributions": 45
},
{
"login": "Diex5",
"id": 71428580,
"node_id": "MDQ6VXNlcjcxNDI4NTgw",
"avatar_url": "https://avatars.githubusercontent.com/u/71428580?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/Diex5",
"html_url": "https://github.com/Diex5",
"followers_url": "https://api.github.com/users/Diex5/followers",
"following_url": "https://api.github.com/users/Diex5/following{/other_user}",
"gists_url": "https://api.github.com/users/Diex5/gists{/gist_id}",
"starred_url": "https://api.github.com/users/Diex5/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/Diex5/subscriptions",
"organizations_url": "https://api.github.com/users/Diex5/orgs",
"repos_url": "https://api.github.com/users/Diex5/repos",
"events_url": "https://api.github.com/users/Diex5/events{/privacy}",
"received_events_url": "https://api.github.com/users/Diex5/received_events",
"type": "User",
"site_admin": false,
"contributions": 38
},
{
"login": "DeBelg",
"id": 38403795,
"node_id": "MDQ6VXNlcjM4NDAzNzk1",
"avatar_url": "https://avatars.githubusercontent.com/u/38403795?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/DeBelg",
"html_url": "https://github.com/DeBelg",
"followers_url": "https://api.github.com/users/DeBelg/followers",
"following_url": "https://api.github.com/users/DeBelg/following{/other_user}",
"gists_url": "https://api.github.com/users/DeBelg/gists{/gist_id}",
"starred_url": "https://api.github.com/users/DeBelg/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/DeBelg/subscriptions",
"organizations_url": "https://api.github.com/users/DeBelg/orgs",
"repos_url": "https://api.github.com/users/DeBelg/repos",
"events_url": "https://api.github.com/users/DeBelg/events{/privacy}",
"received_events_url": "https://api.github.com/users/DeBelg/received_events",
"type": "User",
"site_admin": false,
"contributions": 37
},
{
"login": "DomWane",
"id": 82064987,
"node_id": "MDQ6VXNlcjgyMDY0OTg3",
"avatar_url": "https://avatars.githubusercontent.com/u/82064987?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/DomWane",
"html_url": "https://github.com/DomWane",
"followers_url": "https://api.github.com/users/DomWane/followers",
"following_url": "https://api.github.com/users/DomWane/following{/other_user}",
"gists_url": "https://api.github.com/users/DomWane/gists{/gist_id}",
"starred_url": "https://api.github.com/users/DomWane/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/DomWane/subscriptions",
"organizations_url": "https://api.github.com/users/DomWane/orgs",
"repos_url": "https://api.github.com/users/DomWane/repos",
"events_url": "https://api.github.com/users/DomWane/events{/privacy}",
"received_events_url": "https://api.github.com/users/DomWane/received_events",
"type": "User",
"site_admin": false,
"contributions": 31
},
{
"login": "MufCZ",
"id": 90514921,
"node_id": "MDQ6VXNlcjkwNTE0OTIx",
"avatar_url": "https://avatars.githubusercontent.com/u/90514921?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/MufCZ",
"html_url": "https://github.com/MufCZ",
"followers_url": "https://api.github.com/users/MufCZ/followers",
"following_url": "https://api.github.com/users/MufCZ/following{/other_user}",
"gists_url": "https://api.github.com/users/MufCZ/gists{/gist_id}",
"starred_url": "https://api.github.com/users/MufCZ/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/MufCZ/subscriptions",
"organizations_url": "https://api.github.com/users/MufCZ/orgs",
"repos_url": "https://api.github.com/users/MufCZ/repos",
"events_url": "https://api.github.com/users/MufCZ/events{/privacy}",
"received_events_url": "https://api.github.com/users/MufCZ/received_events",
"type": "User",
"site_admin": false,
"contributions": 29
},
{ {
"login": "0xdevant", "login": "0xdevant",
"id": 26415019, "id": 26415019,
@ -248,7 +353,7 @@
"received_events_url": "https://api.github.com/users/0xdevant/received_events", "received_events_url": "https://api.github.com/users/0xdevant/received_events",
"type": "User", "type": "User",
"site_admin": false, "site_admin": false,
"contributions": 21 "contributions": 27
}, },
{ {
"login": "Ressac-No1", "login": "Ressac-No1",
@ -293,43 +398,22 @@
"contributions": 12 "contributions": 12
}, },
{ {
"login": "Diex5", "login": "kleinpetr",
"id": 71428580, "id": 17269309,
"node_id": "MDQ6VXNlcjcxNDI4NTgw", "node_id": "MDQ6VXNlcjE3MjY5MzA5",
"avatar_url": "https://avatars.githubusercontent.com/u/71428580?v=4", "avatar_url": "https://avatars.githubusercontent.com/u/17269309?v=4",
"gravatar_id": "", "gravatar_id": "",
"url": "https://api.github.com/users/Diex5", "url": "https://api.github.com/users/kleinpetr",
"html_url": "https://github.com/Diex5", "html_url": "https://github.com/kleinpetr",
"followers_url": "https://api.github.com/users/Diex5/followers", "followers_url": "https://api.github.com/users/kleinpetr/followers",
"following_url": "https://api.github.com/users/Diex5/following{/other_user}", "following_url": "https://api.github.com/users/kleinpetr/following{/other_user}",
"gists_url": "https://api.github.com/users/Diex5/gists{/gist_id}", "gists_url": "https://api.github.com/users/kleinpetr/gists{/gist_id}",
"starred_url": "https://api.github.com/users/Diex5/starred{/owner}{/repo}", "starred_url": "https://api.github.com/users/kleinpetr/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/Diex5/subscriptions", "subscriptions_url": "https://api.github.com/users/kleinpetr/subscriptions",
"organizations_url": "https://api.github.com/users/Diex5/orgs", "organizations_url": "https://api.github.com/users/kleinpetr/orgs",
"repos_url": "https://api.github.com/users/Diex5/repos", "repos_url": "https://api.github.com/users/kleinpetr/repos",
"events_url": "https://api.github.com/users/Diex5/events{/privacy}", "events_url": "https://api.github.com/users/kleinpetr/events{/privacy}",
"received_events_url": "https://api.github.com/users/Diex5/received_events", "received_events_url": "https://api.github.com/users/kleinpetr/received_events",
"type": "User",
"site_admin": false,
"contributions": 12
},
{
"login": "MufCZ",
"id": 90514921,
"node_id": "MDQ6VXNlcjkwNTE0OTIx",
"avatar_url": "https://avatars.githubusercontent.com/u/90514921?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/MufCZ",
"html_url": "https://github.com/MufCZ",
"followers_url": "https://api.github.com/users/MufCZ/followers",
"following_url": "https://api.github.com/users/MufCZ/following{/other_user}",
"gists_url": "https://api.github.com/users/MufCZ/gists{/gist_id}",
"starred_url": "https://api.github.com/users/MufCZ/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/MufCZ/subscriptions",
"organizations_url": "https://api.github.com/users/MufCZ/orgs",
"repos_url": "https://api.github.com/users/MufCZ/repos",
"events_url": "https://api.github.com/users/MufCZ/events{/privacy}",
"received_events_url": "https://api.github.com/users/MufCZ/received_events",
"type": "User", "type": "User",
"site_admin": false, "site_admin": false,
"contributions": 11 "contributions": 11
@ -439,27 +523,6 @@
"site_admin": false, "site_admin": false,
"contributions": 5 "contributions": 5
}, },
{
"login": "ElektrikSheep",
"id": 182003614,
"node_id": "U_kgDOCtknng",
"avatar_url": "https://avatars.githubusercontent.com/u/182003614?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/ElektrikSheep",
"html_url": "https://github.com/ElektrikSheep",
"followers_url": "https://api.github.com/users/ElektrikSheep/followers",
"following_url": "https://api.github.com/users/ElektrikSheep/following{/other_user}",
"gists_url": "https://api.github.com/users/ElektrikSheep/gists{/gist_id}",
"starred_url": "https://api.github.com/users/ElektrikSheep/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/ElektrikSheep/subscriptions",
"organizations_url": "https://api.github.com/users/ElektrikSheep/orgs",
"repos_url": "https://api.github.com/users/ElektrikSheep/repos",
"events_url": "https://api.github.com/users/ElektrikSheep/events{/privacy}",
"received_events_url": "https://api.github.com/users/ElektrikSheep/received_events",
"type": "User",
"site_admin": false,
"contributions": 4
},
{ {
"login": "PEPE-3000", "login": "PEPE-3000",
"id": 168802462, "id": 168802462,
@ -502,48 +565,6 @@
"site_admin": false, "site_admin": false,
"contributions": 3 "contributions": 3
}, },
{
"login": "danielklein-arch",
"id": 82767072,
"node_id": "MDQ6VXNlcjgyNzY3MDcy",
"avatar_url": "https://avatars.githubusercontent.com/u/82767072?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/danielklein-arch",
"html_url": "https://github.com/danielklein-arch",
"followers_url": "https://api.github.com/users/danielklein-arch/followers",
"following_url": "https://api.github.com/users/danielklein-arch/following{/other_user}",
"gists_url": "https://api.github.com/users/danielklein-arch/gists{/gist_id}",
"starred_url": "https://api.github.com/users/danielklein-arch/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/danielklein-arch/subscriptions",
"organizations_url": "https://api.github.com/users/danielklein-arch/orgs",
"repos_url": "https://api.github.com/users/danielklein-arch/repos",
"events_url": "https://api.github.com/users/danielklein-arch/events{/privacy}",
"received_events_url": "https://api.github.com/users/danielklein-arch/received_events",
"type": "User",
"site_admin": false,
"contributions": 3
},
{
"login": "hackyguru",
"id": 66196424,
"node_id": "MDQ6VXNlcjY2MTk2NDI0",
"avatar_url": "https://avatars.githubusercontent.com/u/66196424?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/hackyguru",
"html_url": "https://github.com/hackyguru",
"followers_url": "https://api.github.com/users/hackyguru/followers",
"following_url": "https://api.github.com/users/hackyguru/following{/other_user}",
"gists_url": "https://api.github.com/users/hackyguru/gists{/gist_id}",
"starred_url": "https://api.github.com/users/hackyguru/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/hackyguru/subscriptions",
"organizations_url": "https://api.github.com/users/hackyguru/orgs",
"repos_url": "https://api.github.com/users/hackyguru/repos",
"events_url": "https://api.github.com/users/hackyguru/events{/privacy}",
"received_events_url": "https://api.github.com/users/hackyguru/received_events",
"type": "User",
"site_admin": false,
"contributions": 3
},
{ {
"login": "ligi", "login": "ligi",
"id": 111600, "id": 111600,
@ -565,27 +586,6 @@
"site_admin": false, "site_admin": false,
"contributions": 3 "contributions": 3
}, },
{
"login": "NoobDeveloper412",
"id": 74310120,
"node_id": "MDQ6VXNlcjc0MzEwMTIw",
"avatar_url": "https://avatars.githubusercontent.com/u/74310120?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/NoobDeveloper412",
"html_url": "https://github.com/NoobDeveloper412",
"followers_url": "https://api.github.com/users/NoobDeveloper412/followers",
"following_url": "https://api.github.com/users/NoobDeveloper412/following{/other_user}",
"gists_url": "https://api.github.com/users/NoobDeveloper412/gists{/gist_id}",
"starred_url": "https://api.github.com/users/NoobDeveloper412/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/NoobDeveloper412/subscriptions",
"organizations_url": "https://api.github.com/users/NoobDeveloper412/orgs",
"repos_url": "https://api.github.com/users/NoobDeveloper412/repos",
"events_url": "https://api.github.com/users/NoobDeveloper412/events{/privacy}",
"received_events_url": "https://api.github.com/users/NoobDeveloper412/received_events",
"type": "User",
"site_admin": false,
"contributions": 3
},
{ {
"login": "binarymonkee", "login": "binarymonkee",
"id": 54765136, "id": 54765136,
@ -712,6 +712,48 @@
"site_admin": false, "site_admin": false,
"contributions": 2 "contributions": 2
}, },
{
"login": "hackyguru",
"id": 66196424,
"node_id": "MDQ6VXNlcjY2MTk2NDI0",
"avatar_url": "https://avatars.githubusercontent.com/u/66196424?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/hackyguru",
"html_url": "https://github.com/hackyguru",
"followers_url": "https://api.github.com/users/hackyguru/followers",
"following_url": "https://api.github.com/users/hackyguru/following{/other_user}",
"gists_url": "https://api.github.com/users/hackyguru/gists{/gist_id}",
"starred_url": "https://api.github.com/users/hackyguru/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/hackyguru/subscriptions",
"organizations_url": "https://api.github.com/users/hackyguru/orgs",
"repos_url": "https://api.github.com/users/hackyguru/repos",
"events_url": "https://api.github.com/users/hackyguru/events{/privacy}",
"received_events_url": "https://api.github.com/users/hackyguru/received_events",
"type": "User",
"site_admin": false,
"contributions": 2
},
{
"login": "ElektrikSheep",
"id": 182003614,
"node_id": "U_kgDOCtknng",
"avatar_url": "https://avatars.githubusercontent.com/u/182003614?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/ElektrikSheep",
"html_url": "https://github.com/ElektrikSheep",
"followers_url": "https://api.github.com/users/ElektrikSheep/followers",
"following_url": "https://api.github.com/users/ElektrikSheep/following{/other_user}",
"gists_url": "https://api.github.com/users/ElektrikSheep/gists{/gist_id}",
"starred_url": "https://api.github.com/users/ElektrikSheep/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/ElektrikSheep/subscriptions",
"organizations_url": "https://api.github.com/users/ElektrikSheep/orgs",
"repos_url": "https://api.github.com/users/ElektrikSheep/repos",
"events_url": "https://api.github.com/users/ElektrikSheep/events{/privacy}",
"received_events_url": "https://api.github.com/users/ElektrikSheep/received_events",
"type": "User",
"site_admin": false,
"contributions": 2
},
{ {
"login": "nullfekt", "login": "nullfekt",
"id": 118863467, "id": 118863467,
@ -796,27 +838,6 @@
"site_admin": false, "site_admin": false,
"contributions": 2 "contributions": 2
}, },
{
"login": "aefhm",
"id": 4441690,
"node_id": "MDQ6VXNlcjQ0NDE2OTA=",
"avatar_url": "https://avatars.githubusercontent.com/u/4441690?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/aefhm",
"html_url": "https://github.com/aefhm",
"followers_url": "https://api.github.com/users/aefhm/followers",
"following_url": "https://api.github.com/users/aefhm/following{/other_user}",
"gists_url": "https://api.github.com/users/aefhm/gists{/gist_id}",
"starred_url": "https://api.github.com/users/aefhm/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/aefhm/subscriptions",
"organizations_url": "https://api.github.com/users/aefhm/orgs",
"repos_url": "https://api.github.com/users/aefhm/repos",
"events_url": "https://api.github.com/users/aefhm/events{/privacy}",
"received_events_url": "https://api.github.com/users/aefhm/received_events",
"type": "User",
"site_admin": false,
"contributions": 2
},
{ {
"login": "citypw", "login": "citypw",
"id": 1202023, "id": 1202023,
@ -922,6 +943,27 @@
"site_admin": false, "site_admin": false,
"contributions": 2 "contributions": 2
}, },
{
"login": "organizedpunk",
"id": 125484615,
"node_id": "U_kgDOB3q-Rw",
"avatar_url": "https://avatars.githubusercontent.com/u/125484615?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/organizedpunk",
"html_url": "https://github.com/organizedpunk",
"followers_url": "https://api.github.com/users/organizedpunk/followers",
"following_url": "https://api.github.com/users/organizedpunk/following{/other_user}",
"gists_url": "https://api.github.com/users/organizedpunk/gists{/gist_id}",
"starred_url": "https://api.github.com/users/organizedpunk/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/organizedpunk/subscriptions",
"organizations_url": "https://api.github.com/users/organizedpunk/orgs",
"repos_url": "https://api.github.com/users/organizedpunk/repos",
"events_url": "https://api.github.com/users/organizedpunk/events{/privacy}",
"received_events_url": "https://api.github.com/users/organizedpunk/received_events",
"type": "User",
"site_admin": false,
"contributions": 1
},
{ {
"login": "GasperX93", "login": "GasperX93",
"id": 47980720, "id": 47980720,
@ -964,48 +1006,6 @@
"site_admin": false, "site_admin": false,
"contributions": 1 "contributions": 1
}, },
{
"login": "kleinpetr",
"id": 17269309,
"node_id": "MDQ6VXNlcjE3MjY5MzA5",
"avatar_url": "https://avatars.githubusercontent.com/u/17269309?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/kleinpetr",
"html_url": "https://github.com/kleinpetr",
"followers_url": "https://api.github.com/users/kleinpetr/followers",
"following_url": "https://api.github.com/users/kleinpetr/following{/other_user}",
"gists_url": "https://api.github.com/users/kleinpetr/gists{/gist_id}",
"starred_url": "https://api.github.com/users/kleinpetr/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/kleinpetr/subscriptions",
"organizations_url": "https://api.github.com/users/kleinpetr/orgs",
"repos_url": "https://api.github.com/users/kleinpetr/repos",
"events_url": "https://api.github.com/users/kleinpetr/events{/privacy}",
"received_events_url": "https://api.github.com/users/kleinpetr/received_events",
"type": "User",
"site_admin": false,
"contributions": 1
},
{
"login": "wowario",
"id": 95735336,
"node_id": "U_kgDOBbTOKA",
"avatar_url": "https://avatars.githubusercontent.com/u/95735336?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/wowario",
"html_url": "https://github.com/wowario",
"followers_url": "https://api.github.com/users/wowario/followers",
"following_url": "https://api.github.com/users/wowario/following{/other_user}",
"gists_url": "https://api.github.com/users/wowario/gists{/gist_id}",
"starred_url": "https://api.github.com/users/wowario/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/wowario/subscriptions",
"organizations_url": "https://api.github.com/users/wowario/orgs",
"repos_url": "https://api.github.com/users/wowario/repos",
"events_url": "https://api.github.com/users/wowario/events{/privacy}",
"received_events_url": "https://api.github.com/users/wowario/received_events",
"type": "User",
"site_admin": false,
"contributions": 1
},
{ {
"login": "0xc22b", "login": "0xc22b",
"id": 1229910, "id": 1229910,
@ -1153,6 +1153,27 @@
"site_admin": false, "site_admin": false,
"contributions": 1 "contributions": 1
}, },
{
"login": "KeeJef",
"id": 27277414,
"node_id": "MDQ6VXNlcjI3Mjc3NDE0",
"avatar_url": "https://avatars.githubusercontent.com/u/27277414?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/KeeJef",
"html_url": "https://github.com/KeeJef",
"followers_url": "https://api.github.com/users/KeeJef/followers",
"following_url": "https://api.github.com/users/KeeJef/following{/other_user}",
"gists_url": "https://api.github.com/users/KeeJef/gists{/gist_id}",
"starred_url": "https://api.github.com/users/KeeJef/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/KeeJef/subscriptions",
"organizations_url": "https://api.github.com/users/KeeJef/orgs",
"repos_url": "https://api.github.com/users/KeeJef/repos",
"events_url": "https://api.github.com/users/KeeJef/events{/privacy}",
"received_events_url": "https://api.github.com/users/KeeJef/received_events",
"type": "User",
"site_admin": false,
"contributions": 1
},
{ {
"login": "therealjmj", "login": "therealjmj",
"id": 9435984, "id": 9435984,

View file

@ -413,6 +413,21 @@
"400": "https://data.web3privacy.info/img/people/thumbs/nick-almond-400px.webp" "400": "https://data.web3privacy.info/img/people/thumbs/nick-almond-400px.webp"
} }
}, },
{
"id": "david-chaum",
"name": "David Lee Chaum",
"caption": "Cryptographer, founder of [DigiCash](https://en.wikipedia.org/wiki/DigiCash)",
"country": "us",
"refs": {
"twitter": "chaumdotcom"
},
"imageUrl": "https://data.web3privacy.info/img/people/david-chaum.png",
"thumbs": {
"64": "https://data.web3privacy.info/img/people/thumbs/david-chaum-64px.webp",
"128": "https://data.web3privacy.info/img/people/thumbs/david-chaum-128px.webp",
"400": "https://data.web3privacy.info/img/people/thumbs/david-chaum-400px.webp"
}
},
{ {
"id": "auryn-macmillan", "id": "auryn-macmillan",
"name": "Auyrn Macmillan", "name": "Auyrn Macmillan",
@ -517,6 +532,21 @@
"400": "https://data.web3privacy.info/img/people/thumbs/andrea-togni-400px.webp" "400": "https://data.web3privacy.info/img/people/thumbs/andrea-togni-400px.webp"
} }
}, },
{
"id": "tor-ekeland",
"name": "Tor Ekeland",
"caption": "Attorney specializing in computer crime defense",
"country": "us",
"refs": {
"twitter": "TorEkelandPLLC"
},
"imageUrl": "https://data.web3privacy.info/img/people/tor-ekeland.png",
"thumbs": {
"64": "https://data.web3privacy.info/img/people/thumbs/tor-ekeland-64px.webp",
"128": "https://data.web3privacy.info/img/people/thumbs/tor-ekeland-128px.webp",
"400": "https://data.web3privacy.info/img/people/thumbs/tor-ekeland-400px.webp"
}
},
{ {
"id": "arturo-filasto", "id": "arturo-filasto",
"name": "Arturo Filasto", "name": "Arturo Filasto",
@ -622,6 +652,21 @@
"400": "https://data.web3privacy.info/img/people/thumbs/gabari-400px.webp" "400": "https://data.web3privacy.info/img/people/thumbs/gabari-400px.webp"
} }
}, },
{
"id": "vitalik-buterin",
"name": "Vitalik Buterin",
"caption": "Co-founder of [Ethereum](https://ethereum.org/)",
"country": "ca",
"refs": {
"twitter": "VitalikButerin"
},
"imageUrl": "https://data.web3privacy.info/img/people/vitalik-buterin.png",
"thumbs": {
"64": "https://data.web3privacy.info/img/people/thumbs/vitalik-buterin-64px.webp",
"128": "https://data.web3privacy.info/img/people/thumbs/vitalik-buterin-128px.webp",
"400": "https://data.web3privacy.info/img/people/thumbs/vitalik-buterin-400px.webp"
}
},
{ {
"id": "ameen-soleimani", "id": "ameen-soleimani",
"name": "Ameen Soleimani", "name": "Ameen Soleimani",
@ -648,6 +693,21 @@
"400": "https://data.web3privacy.info/img/people/thumbs/tibor-csoka-400px.webp" "400": "https://data.web3privacy.info/img/people/thumbs/tibor-csoka-400px.webp"
} }
}, },
{
"id": "michael-bauwens",
"name": "Michel Bauwens",
"caption": "Founder of the [P2P Foundation](https://p2pfoundation.net/)",
"country": "be",
"refs": {
"twitter": "mbauwens"
},
"imageUrl": "https://data.web3privacy.info/img/people/michael-bauwens.png",
"thumbs": {
"64": "https://data.web3privacy.info/img/people/thumbs/michael-bauwens-64px.webp",
"128": "https://data.web3privacy.info/img/people/thumbs/michael-bauwens-128px.webp",
"400": "https://data.web3privacy.info/img/people/thumbs/michael-bauwens-400px.webp"
}
},
{ {
"id": "ying-tong", "id": "ying-tong",
"name": "Ying Tong", "name": "Ying Tong",
@ -804,6 +864,21 @@
"400": "https://data.web3privacy.info/img/people/thumbs/afri-schoedon-400px.webp" "400": "https://data.web3privacy.info/img/people/thumbs/afri-schoedon-400px.webp"
} }
}, },
{
"id": "michael-parenti",
"name": "Michael Parenti",
"caption": "Cofounder of Bitcoiners Without Borders",
"country": "at",
"refs": {
"twitter": "exiledsurfer"
},
"imageUrl": "https://data.web3privacy.info/img/people/michael-parenti.png",
"thumbs": {
"64": "https://data.web3privacy.info/img/people/thumbs/michael-parenti-64px.webp",
"128": "https://data.web3privacy.info/img/people/thumbs/michael-parenti-128px.webp",
"400": "https://data.web3privacy.info/img/people/thumbs/michael-parenti-400px.webp"
}
},
{ {
"id": "scott-moore", "id": "scott-moore",
"name": "Scott Moore", "name": "Scott Moore",
@ -1126,6 +1201,21 @@
"400": "https://data.web3privacy.info/img/people/thumbs/tim-bansemer-400px.webp" "400": "https://data.web3privacy.info/img/people/thumbs/tim-bansemer-400px.webp"
} }
}, },
{
"id": "paul-dylan-ennis",
"name": "Paul Dylan Ennis",
"caption": "Lecturer, researcher in blockchain culture at [UCD](https://people.ucd.ie/paul.d.ennis)",
"country": "ie",
"refs": {
"twitter": "pdennis"
},
"imageUrl": "https://data.web3privacy.info/img/people/paul-dylan-ennis.png",
"thumbs": {
"64": "https://data.web3privacy.info/img/people/thumbs/paul-dylan-ennis-64px.webp",
"128": "https://data.web3privacy.info/img/people/thumbs/paul-dylan-ennis-128px.webp",
"400": "https://data.web3privacy.info/img/people/thumbs/paul-dylan-ennis-400px.webp"
}
},
{ {
"id": "dcbuilder", "id": "dcbuilder",
"name": "dcbuilder.eth", "name": "dcbuilder.eth",

View file

@ -1,5 +1,5 @@
{ {
"count": "700+", "count": "700+",
"contributors": 30, "contributors": 30,
"stars": 372 "stars": 374
} }

View file

@ -7,7 +7,7 @@
"2024-10-03T20:00:00.000Z" "2024-10-03T20:00:00.000Z"
], ],
"coverUrl": "https://images.lumacdn.com/event-covers/3q/4f28bcb7-a158-412a-92d8-27419b113e58", "coverUrl": "https://images.lumacdn.com/event-covers/3q/4f28bcb7-a158-412a-92d8-27419b113e58",
"guestCount": 70 "guestCount": 102
}, },
{ {
"url": "w3pn-meetup-devcon7", "url": "w3pn-meetup-devcon7",
@ -17,6 +17,6 @@
"2024-11-11T12:00:00.000Z" "2024-11-11T12:00:00.000Z"
], ],
"coverUrl": "https://images.lumacdn.com/event-covers/7g/87ce6260-c05a-46be-9576-93d5c02f766f", "coverUrl": "https://images.lumacdn.com/event-covers/7g/87ce6260-c05a-46be-9576-93d5c02f766f",
"guestCount": 465 "guestCount": 639
} }
] ]

View file

@ -1,4 +1,4 @@
{ {
"projects": 504, "projects": 494,
"contributors": 25 "contributors": 30
} }

View file

@ -152,12 +152,11 @@ function genHeading(str) {
<div class="w-full flex mt-20 sm:mt-32 middle-pane-medium"> <div class="w-full flex mt-20 sm:mt-32 middle-pane-medium">
<div> <div>
<div class="w3pn-logo w-64 sm:w-72 lg:w-80 xl:w-96" /> <div class="w3pn-logo w-64 sm:w-72 lg:w-80 xl:w-96" />
{/* <h1 class="glitch-text-interval text-6xl"> {/* <h1 class="glitch-text-interval text-6xl">
web3privacy summit #1 web3privacy summit #1
</h1> */} </h1> */}
<div class="text-left mt-10">{config.hero.text}</div> <div class="text-left mt-10" set:html={config.hero.text} />
<div class="mt-6"> <div class="mt-6">
<a class="button" href="/about"> <a class="button" href="/about">
<button> <button>
@ -192,7 +191,7 @@ function genHeading(str) {
<slot /> <slot />
<div <div
class="border border-t-2 border-b-0 border-l-0 border-r-0 border-[#0f0f0f] mt-20 pt-10 pb-10" class="border border-t-2 border-b-0 border-l-0 border-r-0 border-[#0f0f0f] mt-20 pt-10 pb-10 middle-pane-medium"
> >
<div <div
class="flex mx-6 gap-10 text-lg items-center flex-wrap align-top" class="flex mx-6 gap-10 text-lg items-center flex-wrap align-top"

View file

@ -321,7 +321,7 @@ export function ccRenderer (item) {
return cc return cc
} }
export function eventStatus (item) { export function eventStatus(item) {
const statuses = { const statuses = {
preregistration: { preregistration: {
title: 'Pre-registration', title: 'Pre-registration',
@ -340,10 +340,13 @@ export function eventStatus (item) {
color: 'text-green-800', color: 'text-green-800',
} }
} }
const date = dateInfo(item) const date = dateInfo(item);
const eventDate = new Date(item.date);
const currentDate = new Date();
return item.confirmed return item.confirmed
? (date.isDate ? statuses.past : statuses.confirmed) ? (eventDate < currentDate ? statuses.past : statuses.confirmed)
: (item.links?.rsvp ? statuses.preregistration : statuses.unconfirmed); : (item.links?.rsvp ? statuses.preregistration : statuses.unconfirmed);
} }

View file

@ -65,13 +65,7 @@ for (const e of upcomingEvents) {
subimage="/about/about.png" subimage="/about/about.png"
subtext="We are a think-and-do tank of hundreds of people, projects, and organizations committed to protecting and advancing civil liberties, decentralization, and open-source software." subtext="We are a think-and-do tank of hundreds of people, projects, and organizations committed to protecting and advancing civil liberties, decentralization, and open-source software."
> >
<div class="middle-pane-medium mt-10"> <div class="middle-pane-medium mt-10">th
<!-- <div class="mb-20">
<a href="https://docs.web3privacy.info/manifesto"
><img src="/bringing-100m-to-privacy-market.png" /></a
>
</div> -->
<div class="grid grid-cols-1 xl:grid-cols-2 gap-16 mb-[82px]"> <div class="grid grid-cols-1 xl:grid-cols-2 gap-16 mb-[82px]">
<div class="flex flex-col gap-[36px] md:order-2"> <div class="flex flex-col gap-[36px] md:order-2">
<div class="md:hidden block mb-[12px]"> <div class="md:hidden block mb-[12px]">

View file

@ -9,9 +9,19 @@ import { format } from "date-fns";
import EventItem from "../components/EventItem.astro"; import EventItem from "../components/EventItem.astro";
import { isFutureDate } from "../lib/date"; import { isFutureDate } from "../lib/date";
import EventMasonry from "../components/EventMasonry.astro"; import EventMasonry from "../components/EventMasonry.astro";
import * as config from "../config.yaml";
const events = core.events; const events = core.events;
const sectionsConfig = [
{ name: "socialLinks", visible: false, order: 2 },
{ name: "speakers", visible: true, order: 2 },
{ name: "contributors", visible: true, order: 3 },
{ name: "testimonials", visible: true, order: 4 },
{ name: "membersGrid", visible: true, order: 5 },
// { name: "community", visible: false, order: 6 },
];
const upcomingEvents = []; const upcomingEvents = [];
let eventsPast = 0; let eventsPast = 0;
let eventsUpcoming = 0; let eventsUpcoming = 0;
@ -80,8 +90,7 @@ for (const e of upcomingEvents) {
<div class="text-white mt-1 ml-1.5"> <div class="text-white mt-1 ml-1.5">
<a <a
href="https://github.com/web3privacy/web3privacy/blob/main/README.md#contents" href="https://github.com/web3privacy/web3privacy/blob/main/README.md#contents"
class="glitch-text" class="glitch-text">Web3 Privacy Database</a
>Web3 Privacy Database</a
> >
</div> </div>
</div> </div>
@ -116,7 +125,6 @@ for (const e of upcomingEvents) {
</div> </div>
<div class="middle-pane-medium mt-10"> <div class="middle-pane-medium mt-10">
<div class="mt-16"> <div class="mt-16">
<h1 class="glitch-text">Featured Events</h1> <h1 class="glitch-text">Featured Events</h1>
</div> </div>
@ -204,7 +212,58 @@ for (const e of upcomingEvents) {
> >
</div> </div>
</div> </div>
<AboutFooter /> <div class="middle-pane-medium mt-16">
<h1>
<a class="glitch-text" href="https://docs.web3privacy.info/get-involved">
Join the Community
</a>
</h1>
<div>{config.landing.community}</div>
<div
class="grid place-items-center grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-2 pt-4 w-full"
>
<a
href={core.links.twitter}
class="bg-[#101010] w-full flex items-center justify-center w-full h-40 overflow-hidden"
>
<button class="flex flex-col items-center justify-center">
<div class="icon twitter"></div>
@web3privacy
</button>
</a>
<a
href={core.links.telegram}
class="bg-[#101010] w-full flex items-center justify-center w-full h-40 overflow-hidden"
>
<button class="flex flex-col items-center justify-center">
<div class="icon telegram"></div>
Telegram
</button>
</a>
<a
href={core.links.signal}
class="bg-[#101010] w-full flex items-center justify-center w-full h-40 overflow-hidden"
>
<button class="flex flex-col items-center justify-center">
<div class="icon">
<img src="/icons/signal.svg" alt="" />
</div>
Signal
</button>
</a>
<a
href={core.links.matrix}
class="bg-[#101010] w-full flex items-center justify-center w-full h-40 overflow-hidden"
>
<button class="flex flex-col items-center justify-center">
<div class="icon matrix"></div>
matrix
</button>
</a>
</div>
</div>
<AboutFooter {sectionsConfig} />
<script is:inline> <script is:inline>
document.querySelectorAll(".w3pn-hp-grid > div").forEach((el) => { document.querySelectorAll(".w3pn-hp-grid > div").forEach((el) => {
el.addEventListener("click", () => { el.addEventListener("click", () => {

View file

@ -23,9 +23,7 @@ const sectionsConfig = [
subimage="/membership/membership.png" subimage="/membership/membership.png"
> >
<div class="middle-pane-medium my-10"> <div class="middle-pane-medium my-10">
<div <div class="flex items-center justify-center w-full text-center my-12">
class="flex items-center justify-center w-full text-center my-12"
>
<h3 class="max-w-[900px] w-full"> <h3 class="max-w-[900px] w-full">
for all privacy advocates, projects and companies, we offer a simple and for all privacy advocates, projects and companies, we offer a simple and
straightforward way to support us financially and become an integral straightforward way to support us financially and become an integral
@ -50,7 +48,9 @@ const sectionsConfig = [
</p> </p>
</div> </div>
<div class="flex gap-3 flex-wrap mb-4 justify-center md:justify-start mx-4"> <div
class="flex gap-3 flex-wrap mb-4 justify-center md:justify-start mx-4"
>
{ {
contributors.items.map((contrib) => ( contributors.items.map((contrib) => (
<div> <div>
@ -81,12 +81,18 @@ const sectionsConfig = [
<MembershipOtherOptionsWidget /> <MembershipOtherOptionsWidget />
</div> </div>
<div class="mt-16 middle-pane-medium"> <div class="mx-4 mt-16">
<h1 class="my-6 ">Members</h1> <h1 class="my-6 middle-pane-medium">Members</h1>
<MembersGrid people={core.people} team={core.teams["core-team"]} /> <div class="middle-pane-big">
<MembersGrid
people={core.people}
team={core.teams["members"]}
core={false}
/>
</div>
</div> </div>
<div class="middle-pane-medium my-10"> <div class="middle-pane-medium my-10 mt-20 md:mt-10">
<h1>Join the community</h1> <h1>Join the community</h1>
<p> <p>
We thrive on uniting diverse perspectives, skills, and visions. Both We thrive on uniting diverse perspectives, skills, and visions. Both
@ -136,9 +142,14 @@ const sectionsConfig = [
</div> </div>
</div> </div>
<div class="mt-16 middle-pane-medium"> <div class="mt-16 mx-4">
<h1 class="my-6 ">Community Partners</h1> <h1 class="my-6 middle-pane-medium">Community Partners</h1>
<MembersGrid people={core.people} team={core.teams["core-team"]} /> <div class="middle-pane-big">
<MembersGrid
people={core.people}
team={core.teams["community-partners"]}
/>
</div>
</div> </div>
<AboutFooter {sectionsConfig} /> <AboutFooter {sectionsConfig} />

View file

@ -39,7 +39,7 @@
transition-property: all; transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 500ms; transition-duration: 500ms;
text-transform: lowercase!important; text-transform: lowercase !important;
flex-wrap: nowrap; flex-wrap: nowrap;
} }
@ -52,6 +52,35 @@
opacity: 1; opacity: 1;
} }
/* Members, Community Partners & More */
.person-item {
cursor: pointer;
transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 500ms;
}
.partner-item:hover {
filter: grayscale(25%);
cursor: help;
outline: white;
outline-style: dashed;
outline-width: 3px;
}
.partner-item .partner-text {
color: #ffffff;
transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 300ms;
}
.person-item img {
filter: grayscale(100%);
}
.person-item:hover img {
filter: grayscale(0%);
}
@tailwind components; @tailwind components;
@layer components { @layer components {

19
utils/captionParser.js Normal file
View file

@ -0,0 +1,19 @@
export function parseAndWrapCaptions(caption) {
return caption.replace(/\[([^\]]+)\]\((https?:\/\/[^\)]+)\)/g, (match,text, content) => {
// Split the content by spaces to identify potential URLs
const parts = content.split(' ');
const url = parts.find(part => part.startsWith('https://'));
if (url) {
// If a URL is found, wrap the content in an anchor tag using the first URL
return `<a href="${url}"
target="_blank"
class="text-white underline"
style="text-underline-offset: 4px;"
>${text}</a>`;
} else {
// If no URL, join the parts with a comma
return content.split(' ').join(', ');
}
});
}