diff --git a/src/components/header.js b/src/components/header.js index b6290c129..1232d8f03 100644 --- a/src/components/header.js +++ b/src/components/header.js @@ -108,7 +108,7 @@ const navigation = [ { text: "Join the community", subtext: "Social channels", - url: "/#join-our-global-community", + url: "/community/", icon: "menu/forum.svg", type: 'internal' }, diff --git a/src/components/modules/community-item.js b/src/components/modules/community-item.js new file mode 100644 index 000000000..5158f4e77 --- /dev/null +++ b/src/components/modules/community-item.js @@ -0,0 +1,43 @@ +import React from "react"; +import Image from "../imageComponent"; +import { Link } from "gatsby"; + +export default function CommunityItem({ imageClass, content, className }) { + if (content.type === "internal") { + return ( +
+
+
+ +
+ {content.title} +
+ +
+
+
{content.title}
+ {content.text &&
{content.text}
} +
+
+
+ ); + } else if (content.type === "external" || content.type === undefined) { + return ( +
+
+
+ +
+ {content.title} +
+
+
+
+
{content.title}
+ {content.text &&
{content.text}
} +
+
+
+ ); + } +} diff --git a/src/datas/community/content.js b/src/datas/community/content.js new file mode 100644 index 000000000..d4d28d6f9 --- /dev/null +++ b/src/datas/community/content.js @@ -0,0 +1,21 @@ +export const FooterBoxes = [ + { + title: 'Join our global community', + text: 'View job openings and career opportunities in our ecosystem.', + button: { + text: 'Current openings', + href: 'https://celestia.pallet.com/jobs', + id: 'operator', + type: 'simple' + } + },{ + title: 'Build on our developer beta', + text: 'Join a growing modular ecosystem of developers building on testnet.', + button: { + text: 'Get started', + href: 'https://docs.celestia.org/', + id: 'operator', + type: 'simple' + } + } +] \ No newline at end of file diff --git a/src/datas/community/ecosystem.js b/src/datas/community/ecosystem.js new file mode 100644 index 000000000..069bfe12a --- /dev/null +++ b/src/datas/community/ecosystem.js @@ -0,0 +1,11 @@ +export const ecosystem = { + title: "Ecosystem", + text: "Discover a wide range of apps and services built in the Celestia ecosystem.", + image: "community/ecosystem.png", + button: { + text: "Dive in", + class: "simple", + type: "internal", + url: "/ecosystem/", + }, +}; diff --git a/src/datas/community/explore.js b/src/datas/community/explore.js new file mode 100644 index 000000000..7315d2202 --- /dev/null +++ b/src/datas/community/explore.js @@ -0,0 +1,38 @@ +export const explore = { + title: "Explore", + description: "Keep up with new resources and content.", + items: [ + { + id: 1, + title: "Youtube", + text: "A library of tutorials, guides, and ecosystem interviews.", + image: "community/youtube.png", + type: "external", + url: "https://www.youtube.com/channel/UCLlvAEzXBFZ-P3zS6BF2Bjg", + }, + { + id: 2, + title: "Podcast", + text: "Interviews and talks in audio form.", + image: "community/podcast.png", + type: "external", + url: "https://podcast.celestia.org/", + }, + { + id: 3, + title: "Resources", + text: "A collection of videos, podcasts, and blog posts.", + image: "community/resources.png", + type: "external", + url: "https://celestia.org/resources/", + }, + { + id: 4, + title: "Blog", + text: "News and updates from Celestia Labs.", + image: "community/blog.png", + type: "external", + url: "https://blog.celestia.org/", + }, + ], +}; diff --git a/src/datas/community/hero-data.js b/src/datas/community/hero-data.js new file mode 100644 index 000000000..dd105b784 --- /dev/null +++ b/src/datas/community/hero-data.js @@ -0,0 +1,18 @@ +export const heroData = { + title: "Celestia Community", + text: "Discover community hubs, discussion forums, and resources that are used by the global Celestia community.", + buttons: [ + { + text: "Build Modular", + class: "simple", + type: "internal", + url: "/", + }, + { + text: "Ask a question", + class: "white", + type: "internal", + url: "/", + }, + ], +}; diff --git a/src/datas/community/social-channels.js b/src/datas/community/social-channels.js new file mode 100644 index 000000000..d2ad58d52 --- /dev/null +++ b/src/datas/community/social-channels.js @@ -0,0 +1,54 @@ +export const socialChannels = { + title: "Social channels", + description: "Communication channels for the community, discussions, updates, and news.", + items: [ + { + id: 1, + title: "Twitter", + text: "The latest news and updates.", + image: "community/twitter.png", + type: "external", + url: "https://twitter.com/CelestiaOrg", + }, + { + id: 2, + title: "Discord", + text: "A hub for developers, node operators, and enthusiasts.", + image: "community/discord.png", + type: "external", + url: "https://discord.com/invite/YsnTPcSfWQ", + }, + { + id: 3, + title: "Telegram", + text: "Chat with the worldwide community.", + image: "community/telegram.png", + type: "external", + url: "https://t.me/CelestiaCommunity", + }, + { + id: 4, + title: "Reddit", + text: "The Celestia community on Reddit.", + image: "community/reddit.png", + type: "external", + url: "https://www.reddit.com/r/CelestiaNetwork/", + }, + { + id: 5, + title: "Github", + text: "Developer discussions and protocol contributions.", + image: "community/github.png", + type: "external", + url: "https://github.com/celestiaorg", + }, + { + id: 6, + title: "Forum", + text: "Ask questions and engage in research discussions.", + image: "community/forum.png", + type: "external", + url: "https://forum.celestia.org/", + }, + ], +}; diff --git a/src/images/community/blog.png b/src/images/community/blog.png new file mode 100644 index 000000000..a9e0d4c11 Binary files /dev/null and b/src/images/community/blog.png differ diff --git a/src/images/community/community.png b/src/images/community/community.png new file mode 100644 index 000000000..232dbdab2 Binary files /dev/null and b/src/images/community/community.png differ diff --git a/src/images/community/discord.png b/src/images/community/discord.png new file mode 100644 index 000000000..357ad5687 Binary files /dev/null and b/src/images/community/discord.png differ diff --git a/src/images/community/ecosystem.png b/src/images/community/ecosystem.png new file mode 100644 index 000000000..35c32346c Binary files /dev/null and b/src/images/community/ecosystem.png differ diff --git a/src/images/community/forum.png b/src/images/community/forum.png new file mode 100644 index 000000000..e423f4a16 Binary files /dev/null and b/src/images/community/forum.png differ diff --git a/src/images/community/github.png b/src/images/community/github.png new file mode 100644 index 000000000..d1db16532 Binary files /dev/null and b/src/images/community/github.png differ diff --git a/src/images/community/podcast.png b/src/images/community/podcast.png new file mode 100644 index 000000000..29cce0a63 Binary files /dev/null and b/src/images/community/podcast.png differ diff --git a/src/images/community/reddit.png b/src/images/community/reddit.png new file mode 100644 index 000000000..870df3688 Binary files /dev/null and b/src/images/community/reddit.png differ diff --git a/src/images/community/resources.png b/src/images/community/resources.png new file mode 100644 index 000000000..748372269 Binary files /dev/null and b/src/images/community/resources.png differ diff --git a/src/images/community/telegram.png b/src/images/community/telegram.png new file mode 100644 index 000000000..4a676fc11 Binary files /dev/null and b/src/images/community/telegram.png differ diff --git a/src/images/community/twitter.png b/src/images/community/twitter.png new file mode 100644 index 000000000..d08de2290 Binary files /dev/null and b/src/images/community/twitter.png differ diff --git a/src/images/community/youtube.png b/src/images/community/youtube.png new file mode 100644 index 000000000..b084d5e6a Binary files /dev/null and b/src/images/community/youtube.png differ diff --git a/src/pages/community.js b/src/pages/community.js new file mode 100644 index 000000000..16e49d1ec --- /dev/null +++ b/src/pages/community.js @@ -0,0 +1,94 @@ +import * as React from "react"; + +import { heroData } from "../datas/community/hero-data"; +import { socialChannels } from "../datas/community/social-channels"; +import { explore } from "../datas/community/explore"; +import { ecosystem } from "../datas/community/ecosystem"; +import { FooterBoxes } from "../datas/community/content"; +import Layout from "../components/layout"; +import { Helmet } from "react-helmet"; +import CommunityItem from "../components/modules/community-item"; +import Button from "../components/buttons/button"; +import Image from "../components/imageComponent"; + +const Community = () => { + return ( + + + Celestia - Community + +
+
+
+
+

{heroData.title}

+
+
+
+ {/* {heroData.buttons.map((button, index) => ( +
+
+
+
+ +
+
+
+
+

{socialChannels.title}

+ {socialChannels.description &&
{socialChannels.description}
} +
+
+
+ {socialChannels.items.map(function (item) { + return ; + })} +
+
+
+
+
+ +
+
+
+
+
+ {explore.items.map(function (item) { + return ; + })} +
+
+
+

{explore.title}

+ {explore.description &&
{explore.description}
} +
+
+
+
+ +
+
+
+
+
+ {ecosystem.title} +
+
+
+

{ecosystem.title}

+

{ecosystem.text}

+
+
+
+
+
+
+
+ ); +}; + +export default Community; diff --git a/src/scss/main.scss b/src/scss/main.scss index 295d3be44..ce15033ab 100644 --- a/src/scss/main.scss +++ b/src/scss/main.scss @@ -24,6 +24,7 @@ @import "modules/roadmapItem.scss"; @import "modules/learn.scss"; @import "modules/press-item.scss"; +@import "modules/community-item.scss"; @import "pages/page-home.scss"; @import "pages/page-resouces.scss"; @@ -34,6 +35,7 @@ @import "pages/page-what-is-celestia.scss"; @import "pages/page-ecosystem"; @import "pages/page-press.scss"; +@import "pages/page-community.scss"; @import "components/team.scss"; @import "components/technology.scss"; diff --git a/src/scss/modules/community-item.scss b/src/scss/modules/community-item.scss new file mode 100644 index 000000000..36990fe40 --- /dev/null +++ b/src/scss/modules/community-item.scss @@ -0,0 +1,105 @@ +.community-item { + border-radius: 12px; + padding: 10px 0px; + width: 100%; + height: 100%; + display: flex; + align-items: center; + @include media-breakpoint-down(md) { + padding: 0px; + } + + .logo-container { + width: 60px; + height: 60px; + align-items: center; + display: flex; + + .gatsby-image-wrapper { + height: auto; + width: 60px; + } + + img { + max-height: 100%; + } + } + + .title { + font-family: $ruberoid; + font-weight: bold; + font-size: 28px; + color: #000000; + letter-spacing: 0; + margin-top: 32px; + @include media-breakpoint-down(md) { + margin-top: 24px; + } + } + .text { + font-family: $inter; + font-weight: 300; + font-size: 14px; + color: #393939; + letter-spacing: 0; + line-height: 20px; + margin-top: 26px; + max-width: 450px; + } + + .link-wrapper { + .link { + font-family: $ruberoid; + font-style: normal; + font-weight: 700; + font-size: 14px; + line-height: 1em; + padding: 8px 0; + margin: -8px 0; + color: #000000; + transition: all 0.2s ease-in-out; + &:hover { + color: #393939; + & svg { + margin-left: 16px; + } + } + } + svg { + margin-left: 8px; + transition: all 0.2s ease-in-out; + will-change: margin; + } + } + + @include media-breakpoint-down(md) { + display: block; + } + + & .logo-container { + margin-right: 20px; + margin-top: 0; + + &.top { + align-self: flex-start; + } + &.center { + align-self: center; + } + } + + & .title { + margin-top: 0; + @include media-breakpoint-down(md) { + margin-top: 24px; + } + } + + & .text { + margin-top: 4px; + } + + & .text-box { + display: block; + } +} diff --git a/src/scss/pages/page-community.scss b/src/scss/pages/page-community.scss new file mode 100644 index 000000000..1f29cc4a0 --- /dev/null +++ b/src/scss/pages/page-community.scss @@ -0,0 +1,213 @@ +.community { + position: relative; + background: url(../images/BG/technology.png) no-repeat scroll top 400px right transparent; + background-size: 600px; + + @include media-breakpoint-down(xl) { + background-position: top 520px right; + background-size: 600px; + } + @include media-breakpoint-down(lg) { + background-position: top 250px right; + background-size: 800px; + } + @include media-breakpoint-down(md) { + background-position: top 600px right; + background-size: 600px; + } + @include media-breakpoint-down(sm) { + background-position: -100px 250px; + background-size: 800px; + } + &:before { + background: url(../images/community/community.png) no-repeat scroll top right transparent; + background-size: contain; + top: 30px; + right: 0; + left: 55%; + position: absolute; + content: ""; + width: 560px; + height: 560px; + z-index: 0; + + @include media-breakpoint-down(xl) { + width: 480px; + height: 480px; + top: 30px; + right: 60px; + left: unset; + } + @include media-breakpoint-down(lg) { + width: 380px; + height: 380px; + top: 70px; + right: 50px; + } + @include media-breakpoint-down(md) { + width: 72%; + height: 72%; + max-width: 450px; + right: unset; + left: 50%; + transform: translateX(-50%); + } + } + + main { + padding-top: 100px; + background: url(../images/BG/home.png) no-repeat scroll top 1000px left transparent; + background-size: 600px; + + @include media-breakpoint-down(xl) { + background-position: top 1000px left; + background-size: 600px; + } + @include media-breakpoint-down(lg) { + background-position: top 1600px left; + background-size: 600px; + } + @include media-breakpoint-down(md) { + background-position: top 1700px left; + background-size: 800px; + } + @include media-breakpoint-down(sm) { + background-position: top 1800px left; + background-size: 600px; + } + } + section { + padding-top: 50px; + padding-bottom: 50px; + @include media-breakpoint-down(sm) { + padding-top: 40px; + padding-bottom: 40px; + } + } + + .main { + max-width: 600px; + @include media-breakpoint-down(lg) { + max-width: 350px; + } + @include media-breakpoint-down(md) { + max-width: 100%; + } + @include media-breakpoint-down(sm) { + max-width: 100%; + } + } + + .subtitle { + font-family: $ruberoid; + font-weight: 500; + font-size: 18px; + color: #000000; + letter-spacing: 0; + line-height: 25px; + margin-bottom: 30px; + max-width: 400px; + @include media-breakpoint-down(sm) { + max-width: 100%; + } + } + + .description { + font-family: $inter; + font-weight: 300; + font-size: 16px; + color: #000000; + letter-spacing: 0; + line-height: 24px; + margin-top: 22px; + max-width: 400px; + @include media-breakpoint-down(sm) { + max-width: 100%; + } + } + + .hero { + @include media-breakpoint-down(md) { + padding-top: 455px; + } + @include media-breakpoint-down(sm) { + padding-top: 70vw; + } + } + + .social-channels { + padding-top: 100px; + @include media-breakpoint-down(md) { + padding-top: 60px; + } + .title { + max-width: 452px; + } + } + + .explore { + padding-top: 70px; + padding-bottom: 60px; + .title { + max-width: 452px; + } + } + + .ecosystem { + padding-bottom: 100px; + @include media-breakpoint-down(md) { + padding-bottom: 70px; + } + .title { + max-width: 452px; + margin-bottom: 30px; + @include media-breakpoint-down(md) { + margin-bottom: 16px; + } + } + .text { + margin-bottom: 30px; + } + .image-wrapper { + margin-left: auto; + margin-right: auto; + @include media-breakpoint-down(lg) { + max-width: 70%; + } + @include media-breakpoint-down(md) { + max-width: 80%; + } + @include media-breakpoint-down(sm) { + max-width: 90%; + } + } + } + + .connect, + .concepts, + .faqs { + .description { + max-width: 350px; + @include media-breakpoint-down(sm) { + max-width: 100%; + } + } + } + + .button-simple, + .button-white, + .button-icon, + .button-external { + margin-right: 20px; + @include media-breakpoint-down(sm) { + margin-bottom: 20px; + } + } + + .min-width-50 { + min-width: 50%; + } + .min-width-33 { + min-width: 33%; + } +}