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;