diff --git a/components/Hero/Hero.js b/components/Hero/Hero.js new file mode 100644 index 0000000..8363a8c --- /dev/null +++ b/components/Hero/Hero.js @@ -0,0 +1,68 @@ +import Image from 'next/image'; +import n2ds from '/public/assets/images/n2ds.png'; + +import Title from '../Title/Title'; +import Caption from '../Caption/Caption'; +import Button from '../Button/Button'; + +import styles from './Hero.module.css'; + +import { DiscordLogo, GithubLogo, Heart } from 'phosphor-react'; + +export default function Hero() { + return ( +
+
+

Game servers

+ Recreated. + Pretendo is a free and open source replacement for Nintendos servers for both the 3DS and Wii U, allowing online connectivity for all, even after the original servers are discontinued +
+ + + + + + + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ ); +} diff --git a/components/Hero/Hero.module.css b/components/Hero/Hero.module.css new file mode 100644 index 0000000..852633f --- /dev/null +++ b/components/Hero/Hero.module.css @@ -0,0 +1,89 @@ +.hero { + display: grid; + grid-template-columns: 3fr 2fr; + align-items: center; +} + +.subtitle { + font-weight: 300; + font-size: 2rem; + margin: 0; + margin-bottom: -0.75rem; + color: var(--text-shade-3); +} + +.buttons { + display: grid; + grid-auto-flow: column; + grid-auto-columns: max-content; + gap: 1rem; + margin-top: 2.5rem; +} + + +.images .lightCircle { + position: relative; + display: flex; + align-items: center; + justify-content: center; + background: var(--accent-shade-3); + border-radius: 50%; + width: 512px; + height: 512px; +} + +.images .lightCircle::before { + content: ''; + position: absolute; + background: var(--bg-shade-0); + width: 2048px; + height: 2048px; + bottom: 0; + left: 0; + border-radius: 50%; + z-index: -1; +} + +.images .lightCircle .n2ds { + transform: translateX(-7.5%); +} + +.images svg { + position: absolute; + top: -128px; +} + +.animateDot { + animation: dotAnimation 10s infinite; +} +@keyframes dotAnimation { + 0% { + cx: 0; + cy: 0; + } + 50% { + cx: 10px; + cy: 10px; + } + 100% { + cx: 0; + cy: 0; + } +} + + +@media screen and (max-width: 1500px) { + .images { + transform: scale(0.75); + } +} + +@media screen and (max-width: 1024px) { + .hero { + grid-template-columns: 1fr; + } + + .images { + display: none; + } +} diff --git a/pages/index.js b/pages/index.js index 107ba79..2ad59c0 100644 --- a/pages/index.js +++ b/pages/index.js @@ -5,6 +5,7 @@ import Title from '../components/Title/Title'; import Section from '../components/Section/Section'; import ShowcaseSection from '../components/ShowcaseSection/ShowcaseSection'; import Faq from '../components/Faq/Faq'; +import Hero from '../components/Hero/Hero'; import Image from 'next/image'; @@ -16,6 +17,7 @@ import juxtImage from '../public/assets/images/showcase/juxt.png'; import networkImage from '../public/assets/images/showcase/network.png'; import pcmouseImage from '../public/assets/images/showcase/pcmouse.png'; import wiiuchatImage from '../public/assets/images/showcase/wiiuchat.png'; +import Caption from '../components/Caption/Caption'; const showcaseImages = { juxt: juxtImage, @@ -38,7 +40,16 @@ export default function Home({ locale }) { const router = useRouter(); return (
+
+ +
+
+ What we make. + + Our project has many components. Here are some of them. + +
{locale.showcase.map((element, i) => { return (
-
- Frequently Asked Questions. -

{locale.faq.text}

- -
+
+ {locale.faq.title} +

{locale.faq.text}

+ +
); } diff --git a/pages/index.module.css b/pages/index.module.css index a2798eb..3c28c94 100644 --- a/pages/index.module.css +++ b/pages/index.module.css @@ -5,6 +5,22 @@ margin: 1.5rem 0; } +.showcaseSection { + position: relative; + padding-bottom: 0; +} + +.showcaseSection::after { + content: ""; + width: 400vw; + height: calc(100% + 256px); + margin-left: -50vw; + background: linear-gradient(0deg, rgba(19, 22, 36, 0) 0%, var(--bg-shade-0) 100%); + position: absolute; + top: 48px; + z-index: -1; +} + .showcaseTail { display: flex; align-items: center;