diff --git a/assets/styles/antd-custom.less b/assets/styles/antd-custom.less
index 79af7e6b..4e36e72c 100644
--- a/assets/styles/antd-custom.less
+++ b/assets/styles/antd-custom.less
@@ -15,6 +15,12 @@ html {
--brand-tertiary: @brand-tertiary;
}
+body {
+ // Support animations
+ background: @brand-secondary;
+ overflow-x: hidden;
+}
+
//
// Theme
//
diff --git a/components/layout/base-layout.tsx b/components/layout/base-layout.tsx
index 43df08ef..5d70e5eb 100644
--- a/components/layout/base-layout.tsx
+++ b/components/layout/base-layout.tsx
@@ -14,7 +14,7 @@ interface Props {
const BaseLayout = ({ children, showSearch, stickyHeader }: Props) => (
- {children}
+ {children}
);
diff --git a/components/layout/header/nav-bar.module.scss b/components/layout/header/nav-bar.module.scss
index bab4f494..5760284c 100644
--- a/components/layout/header/nav-bar.module.scss
+++ b/components/layout/header/nav-bar.module.scss
@@ -3,7 +3,8 @@
z-index: 50; // Stay above ant components
&.sticky {
- position: fixed;
+ position: sticky;
+ top: 0;
}
.brand {
diff --git a/components/pages/home/section/opening-section.tsx b/components/pages/home/section/opening-section.tsx
index 4819168f..b6760d6d 100644
--- a/components/pages/home/section/opening-section.tsx
+++ b/components/pages/home/section/opening-section.tsx
@@ -18,18 +18,18 @@ const OpeningSection = () => {
return (
-
+
-
+
The fastest and easiest way to automatically test and build your game
projects
-
+
{/* eslint-disable-next-line jsx-a11y/anchor-is-valid,jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */}
⇩
diff --git a/components/pages/home/section/the-perks-section.tsx b/components/pages/home/section/the-perks-section.tsx
index a5bd8463..73c02742 100644
--- a/components/pages/home/section/the-perks-section.tsx
+++ b/components/pages/home/section/the-perks-section.tsx
@@ -88,7 +88,7 @@ const cards = [
];
const ThePerksSection = () => {
- const column = { xs: 24, sm: 24, md: 12, lg: 12, xl: 8, xxl: 8 };
+ const column = { xs: 24, sm: 24, md: 12, lg: 12, xl: 8, xxl: 6 };
return (
@@ -97,7 +97,7 @@ const ThePerksSection = () => {
{cards.map((card, index) => (
-
+
{
+ const topLevelRoute = useTopLevelRoute();
+
+ const transitions = useTransition(topLevelRoute, {
+ from: { opacity: 0, transform: 'translate3d(50%, 0%, 0px)' },
+ enter: { opacity: 1, transform: 'translate3d(0%, 0px, 0px)' },
+ config: config.default,
+ });
+
+ return (
+ <>
+ {transitions((animatedStyles, item) => {
+ return (
+
+ {children(item)}
+
+ );
+ })}
+ >
+ );
+};
diff --git a/pages/_app.tsx b/pages/_app.tsx
index 9adfb079..2b71e79b 100644
--- a/pages/_app.tsx
+++ b/pages/_app.tsx
@@ -10,19 +10,28 @@ import { configureStore } from '@reduxjs/toolkit';
import { reducer } from 'logic';
import { FirebaseAppProvider } from 'reactfire';
import config from 'core/config';
+import { AnimatedPageTransition } from '@/core/routing/animated-page-transition';
import '../assets/styles/antd-custom.less';
import 'highlight.js/styles/dracula.css';
const store = configureStore({ reducer });
-export default function App({ Component, pageProps }: AppProps) {
+export default function App({ Component: SsrComponent, pageProps: ssrPageProps }: AppProps) {
return (
-
+
+ {({ Component, pageProps }) => {
+ return Component ? (
+
+ ) : (
+
+ );
+ }}
+