diff --git a/docs/src/components/Hero/StartScreen/styles.module.css b/docs/src/components/Hero/StartScreen/styles.module.css
index 1757e48..24e8c44 100644
--- a/docs/src/components/Hero/StartScreen/styles.module.css
+++ b/docs/src/components/Hero/StartScreen/styles.module.css
@@ -5,7 +5,22 @@
}
.heading {
- margin-top: 11.25rem;
+ width: 100%;
+ margin-top: 11rem;
+}
+
+.subheadingContainer {
+ width: 100%;
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.subheadingContainer svg {
+ height: 100%;
+ width: 100%;
+ max-width: 220px;
}
.headingLabel {
@@ -21,7 +36,7 @@
}
.headingLabel :nth-child(2) {
- color: var(--swm-purple-light-100);
+ color: var(--swm-cornflower-80);
}
.subheadingLabel {
@@ -32,12 +47,12 @@
letter-spacing: var(--swm-heading-letter-spacing-bigger);
margin-top: 3rem;
- margin-bottom: 5.5rem;
- width: 70%;
+ width: 80%;
color: var(--swm-landing-heading);
}
.buttonContainer {
+ margin-top: 3rem;
display: flex;
justify-content: flex-start;
}
@@ -51,11 +66,15 @@
font-size: 26px;
width: 100%;
}
+
+ .buttonContainer {
+ margin-top: -2rem;
+ }
}
@media (max-width: 420px) {
- .heading {
- margin-top: 9.5rem;
+ .heading {
+ margin-top: 6rem;
}
.headingLabel {
font-size: 26px;
@@ -64,4 +83,8 @@
margin: 1rem 0 2rem 0;
font-size: 20px;
}
+
+ .buttonContainer {
+ margin-top: -1rem;
+ }
}
diff --git a/docs/src/components/HomepageButton/styles.module.css b/docs/src/components/HomepageButton/styles.module.css
index 0170cb9..feffb4d 100644
--- a/docs/src/components/HomepageButton/styles.module.css
+++ b/docs/src/components/HomepageButton/styles.module.css
@@ -7,17 +7,12 @@
text-wrap: nowrap;
color: var(--swm-off-white);
- background-color: var(--swm-landing-button-purple);
+ background-color: var(--swm-navy-light-100);
cursor: pointer;
transition: background-color 0.3s, color 0.3s;
}
-[data-theme='dark'] .homepageButton {
- background-color: var(--swm-purple-light-100);
- border-color: var(--swm-purple-light-100);
-}
-
a.homepageButtonLink:hover {
text-decoration: none !important;
}
@@ -67,29 +62,14 @@ a.homepageButtonLink:hover {
/* Button - transparent styling */
.buttonTransparentStyling {
- background-color: transparent;
- color: var(--swm-landing-button-purple);
+ color: var(--swm-navy-light-100);
}
.buttonTransparentStyling svg {
- stroke: var(--swm-landing-button-purple);
-}
-
-.buttonTransparentStyling:hover {
- background-color: var(--swm-landing-button-purple);
- color: var(--swm-off-white);
-}
-
-.buttonTransparentStyling:hover svg {
- stroke: var(--swm-off-white);
+ stroke: var(--swm-navy-light-100);
}
-/* Button - purple styling */
-
-.buttonPurpleStyling {
- background-color: var(--swm-landing-button-purple);
- color: var(--swm-off-white);
-}
+/* Button - navy styling */
.buttonPurpleStyling svg {
stroke: var(--swm-off-white);
@@ -97,15 +77,15 @@ a.homepageButtonLink:hover {
.buttonPurpleStyling:hover {
background-color: transparent;
- color: var(--swm-landing-button-purple);
+ color: var(--swm-navy-light-100);
}
.buttonPurpleStyling:hover svg {
- stroke: var(--swm-landing-button-purple);
+ stroke: var(--swm-navy-light-100);
}
.buttonPurpleBorderStyling {
- border: 1px solid var(--swm-landing-button-purple);
+ border: 1px solid var(--swm-navy-light-100);
}
.arrow {
@@ -117,3 +97,41 @@ a.homepageButtonLink:hover {
width: 24px;
height: 24px;
}
+
+[data-theme='dark'] .homepageButton {
+ background-color: var(--swm-cornflower-100);
+ border-color: var(--swm-cornflower-100);
+}
+
+[data-theme='dark'] .homepageButton:hover {
+ border-color: var(--swm-off-white);
+}
+
+/* Button - transparent styling */
+
+[data-theme='dark'] .buttonTransparentStyling {
+ color: var(--swm-cornflower-100);
+}
+
+[data-theme='dark'] .buttonTransparentStyling svg {
+ stroke: var(--swm-cornflower-100);
+}
+
+/* Button - navy styling */
+
+[data-theme='dark'] .buttonPurpleStyling svg {
+ stroke: var(--swm-off-white);
+}
+
+[data-theme='dark'] .buttonPurpleStyling:hover {
+ background-color: transparent;
+ color: var(--swm-off-white);
+}
+
+[data-theme='dark'] .buttonPurpleStyling:hover svg {
+ stroke: var(--swm-off-white);
+}
+
+[data-theme='dark'] .buttonPurpleBorderStyling {
+ border: 1px solid var(--swm-cornflower-100);
+}
diff --git a/docs/src/components/ReactNativeExecuTorchFeatures/ReactNativeExecuTorchFeatureItem/index.tsx b/docs/src/components/ReactNativeExecuTorchFeatures/ReactNativeExecuTorchFeatureItem/index.tsx
new file mode 100644
index 0000000..8876f64
--- /dev/null
+++ b/docs/src/components/ReactNativeExecuTorchFeatures/ReactNativeExecuTorchFeatureItem/index.tsx
@@ -0,0 +1,17 @@
+import React, { PropsWithChildren } from 'react';
+import styles from './styles.module.css';
+
+interface Props extends PropsWithChildren {
+ title: string;
+}
+
+const ReactNativeExecuTorchFeatureItem = ({ title, children }: Props) => {
+ return (
+
+ );
+};
+
+export default ReactNativeExecuTorchFeatureItem;
diff --git a/docs/src/components/ReactNativeExecuTorchFeatures/ReactNativeExecuTorchFeatureItem/styles.module.css b/docs/src/components/ReactNativeExecuTorchFeatures/ReactNativeExecuTorchFeatureItem/styles.module.css
new file mode 100644
index 0000000..437537b
--- /dev/null
+++ b/docs/src/components/ReactNativeExecuTorchFeatures/ReactNativeExecuTorchFeatureItem/styles.module.css
@@ -0,0 +1,29 @@
+.featureItem {
+ background-color: var(--swm-cornflower-0);
+ box-shadow: -12px 12px 0px var(--swm-cornflower-80);
+ flex: 1;
+ padding: 1.5em;
+}
+
+[data-theme='dark'] .featureItem {
+ background-color: var(--swm-cornflower-60);
+ box-shadow: -12px 12px 0px var(--swm-cornflower-80);
+}
+
+[data-theme='dark'] .featureTitle,
+[data-theme='dark'] .featureBody {
+ color: var(--swm-navy-light-100);
+}
+
+.featureTitle {
+ margin-bottom: 40px;
+ font-weight: 600;
+ font-size: 24px;
+ text-transform: uppercase;
+}
+
+@media (max-width: 420px) {
+ .featureTitle {
+ font-size: 20px;
+ }
+}
diff --git a/docs/src/components/ReactNativeExecuTorchFeatures/ReactNativeExecuTorchFeatureList/index.tsx b/docs/src/components/ReactNativeExecuTorchFeatures/ReactNativeExecuTorchFeatureList/index.tsx
new file mode 100644
index 0000000..13d51e6
--- /dev/null
+++ b/docs/src/components/ReactNativeExecuTorchFeatures/ReactNativeExecuTorchFeatureList/index.tsx
@@ -0,0 +1,32 @@
+import React from 'react';
+import styles from './styles.module.css';
+import ReactNativeExecuTorchFeatureItem from '@site/src/components/ReactNativeExecuTorchFeatures/ReactNativeExecuTorchFeatureItem';
+
+const items = [
+ {
+ title: 'privacy first',
+ body: "React Native ExecuTorch allows on-device execution of AI models, eliminating the need for external API calls. This means your app's data stays on the device, ensuring maximum privacy for your users.",
+ },
+ {
+ title: 'cost effective',
+ body: "The on-device computing nature of React Native ExecuTorch means you don't have to worry about cloud infrastructure. This approach reduces server costs and minimizes latency.",
+ },
+ {
+ title: 'developer friendly',
+ body: "There's no need for deep AI expertise, we handle the complexities of AI models on the native side, making it simple for developers to use these models in React Native.",
+ },
+];
+
+const ReactNativeExecuTorchFeatureList = () => {
+ return (
+
+ {items.map((item, idx) => (
+
+ {item.body}
+
+ ))}
+
+ );
+};
+
+export default ReactNativeExecuTorchFeatureList;
diff --git a/docs/src/components/ReactNativeExecuTorchFeatures/ReactNativeExecuTorchFeatureList/styles.module.css b/docs/src/components/ReactNativeExecuTorchFeatures/ReactNativeExecuTorchFeatureList/styles.module.css
new file mode 100644
index 0000000..9989e8b
--- /dev/null
+++ b/docs/src/components/ReactNativeExecuTorchFeatures/ReactNativeExecuTorchFeatureList/styles.module.css
@@ -0,0 +1,10 @@
+.featureList {
+ display: flex;
+ gap: 1.5rem;
+}
+
+@media (max-width: 996px) {
+ .featureList {
+ flex-direction: column;
+ }
+}
diff --git a/docs/src/components/ReactNativeExecuTorchFeatures/index.tsx b/docs/src/components/ReactNativeExecuTorchFeatures/index.tsx
new file mode 100644
index 0000000..5d9c1dc
--- /dev/null
+++ b/docs/src/components/ReactNativeExecuTorchFeatures/index.tsx
@@ -0,0 +1,24 @@
+import React from 'react';
+import styles from './styles.module.css';
+import HomepageButton from '@site/src/components/HomepageButton';
+import ReactNativeExecuTorchFeatureList from '@site/src/components/ReactNativeExecuTorchFeatures/ReactNativeExecuTorchFeatureList';
+
+const ReactNativeExecuTorchFeatures = () => {
+ return (
+
+
Why React Native ExecuTorch?
+
+
+
Learn more about React Native ExecuTorch
+
+
+
+ );
+};
+
+export default ReactNativeExecuTorchFeatures;
diff --git a/docs/src/components/ReactNativeExecuTorchFeatures/styles.module.css b/docs/src/components/ReactNativeExecuTorchFeatures/styles.module.css
new file mode 100644
index 0000000..42a5745
--- /dev/null
+++ b/docs/src/components/ReactNativeExecuTorchFeatures/styles.module.css
@@ -0,0 +1,91 @@
+.featuresContainer {
+ display: flex;
+ flex-direction: column;
+ margin-top: 7.5rem;
+ gap: 5rem;
+}
+
+.featuresButton {
+ background-color: transparent;
+ color: var(--swm-navy-light-100);
+ border-color: var(--swm-navy-light-100);
+}
+
+[data-theme='dark'] .featuresButton {
+ background-color: transparent;
+ color: var(--swm-off-white);
+ border-color: var(--swm-off-white);
+}
+
+.featuresButton:hover {
+ background-color: var(--swm-navy-light-100);
+ border-color: var(--swm-navy-light-100);
+ color: var(--swm-off-white);
+}
+
+[data-theme='dark'] .featuresButton:hover {
+ background-color: var(--swm-cornflower-100);
+ border-color: var(--swm-cornflower-100);
+ color: var(--swm-off-white);
+}
+
+.featuresButton svg {
+ stroke: var(--swm-navy-light-100);
+}
+
+[data-theme='dark'] .featuresButton svg {
+ stroke: var(--swm-off-white);
+}
+
+.featuresButton:hover svg {
+ stroke: var(--swm-off-white);
+}
+
+.title {
+ font-size: var(--swm-h2-font-size);
+}
+
+.learnMoreSection {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: center;
+ gap: 5rem;
+}
+
+.learnMoreSection p {
+ font-size: 24px;
+ font-weight: 700;
+ line-height: 28.8px;
+ margin-bottom: 0;
+}
+
+@media (max-width: 996px) {
+ .featuresContainer {
+ margin-top: 3.5rem;
+ }
+ .learnMoreSection {
+ gap: 2rem;
+ }
+}
+
+@media (max-width: 768px) {
+ .learnMoreSection {
+ margin-top: 2.25rem;
+ flex-direction: column;
+ }
+ .featuresContainer {
+ margin-bottom: 0.5rem;
+ gap: 0;
+ }
+ .title {
+ margin-bottom: 1.5rem;
+ }
+}
+
+@media (max-width: 420px) {
+ .title {
+ margin-bottom: 1.5rem;
+ font-size: 24px;
+ }
+}
diff --git a/docs/src/components/Wave/WaveBottom/index.tsx b/docs/src/components/Wave/WaveBottom/index.tsx
new file mode 100644
index 0000000..3fa943b
--- /dev/null
+++ b/docs/src/components/Wave/WaveBottom/index.tsx
@@ -0,0 +1,12 @@
+import React from 'react';
+import BrowserOnly from '@docusaurus/BrowserOnly';
+import { useColorMode } from '@docusaurus/theme-common';
+import Wave from './wave';
+
+const WaveBottom = () => {
+ const theme = useColorMode().colorMode;
+
+ return
{() => } ;
+};
+
+export default WaveBottom;
diff --git a/docs/src/components/Wave/WaveBottom/styles.module.css b/docs/src/components/Wave/WaveBottom/styles.module.css
new file mode 100644
index 0000000..0bd33f0
--- /dev/null
+++ b/docs/src/components/Wave/WaveBottom/styles.module.css
@@ -0,0 +1,24 @@
+.waveBottom {
+ position: absolute;
+ z-index: -1;
+ bottom: 100px;
+ right: 0;
+}
+
+@media (max-width: 996px) {
+ .waveBottom {
+ bottom: 115px;
+ }
+}
+
+@media (max-width: 700px) {
+ .waveBottom {
+ bottom: 141px;
+ }
+}
+
+@media (max-width: 376px) {
+ .waveBottom {
+ bottom: 167px;
+ }
+}
diff --git a/docs/src/components/Wave/WaveBottom/wave.tsx b/docs/src/components/Wave/WaveBottom/wave.tsx
new file mode 100644
index 0000000..37e8d12
--- /dev/null
+++ b/docs/src/components/Wave/WaveBottom/wave.tsx
@@ -0,0 +1,127 @@
+import React from 'react';
+import styles from './styles.module.css';
+import useScreenSize from '@site/src/hooks/useScreenSize';
+
+const WaveLight = (
+
+
+
+
+
+
+
+
+
+);
+
+const WaveDark = (
+
+
+
+
+
+
+
+
+
+);
+
+const WaveLightMobile = (
+
+
+
+
+
+
+
+
+
+);
+
+const WaveDarkMobile = (
+
+
+
+
+
+
+
+
+
+);
+
+const Wave = ({ theme }) => {
+ const { windowWidth } = useScreenSize();
+
+ if (theme === 'dark') {
+ return windowWidth > 768 ? WaveDark : WaveDarkMobile;
+ }
+
+ return windowWidth > 768 ? WaveLight : WaveLightMobile;
+};
+
+export default Wave;
diff --git a/docs/src/components/Wave/WaveTop/index.tsx b/docs/src/components/Wave/WaveTop/index.tsx
new file mode 100644
index 0000000..c721039
--- /dev/null
+++ b/docs/src/components/Wave/WaveTop/index.tsx
@@ -0,0 +1,11 @@
+import React from 'react';
+import BrowserOnly from '@docusaurus/BrowserOnly';
+import { useColorMode } from '@docusaurus/theme-common';
+import Wave from './wave';
+
+const WaveTop = () => {
+ const theme = useColorMode().colorMode;
+ return
{() => } ;
+};
+
+export default WaveTop;
diff --git a/docs/src/components/Wave/WaveTop/styles.module.css b/docs/src/components/Wave/WaveTop/styles.module.css
new file mode 100644
index 0000000..4b347bd
--- /dev/null
+++ b/docs/src/components/Wave/WaveTop/styles.module.css
@@ -0,0 +1,13 @@
+.wave {
+ position: absolute;
+ bottom: 100%;
+ width: 100%;
+ z-index: -1;
+ margin-bottom: -5%;
+}
+
+@media (max-width: 768px) {
+ .wave {
+ margin-bottom: -29%;
+ }
+}
\ No newline at end of file
diff --git a/docs/src/components/Wave/WaveTop/wave.tsx b/docs/src/components/Wave/WaveTop/wave.tsx
new file mode 100644
index 0000000..90db6e4
--- /dev/null
+++ b/docs/src/components/Wave/WaveTop/wave.tsx
@@ -0,0 +1,147 @@
+import React from 'react';
+import styles from './styles.module.css';
+import useScreenSize from '@site/src/hooks/useScreenSize';
+
+const WaveLight = (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+);
+
+const WaveDark = (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+);
+
+const WaveLightMobile = (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+);
+
+const WaveDarkMobile = (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+);
+
+const Wave = ({ theme }) => {
+ const { windowWidth } = useScreenSize();
+
+ if (theme === 'dark') {
+ return windowWidth > 768 ? WaveDark : WaveDarkMobile;
+ }
+
+ return windowWidth > 768 ? WaveLight : WaveLightMobile;
+};
+
+export default Wave;
diff --git a/docs/src/css/colors.css b/docs/src/css/colors.css
index 73e8445..6ea5765 100644
--- a/docs/src/css/colors.css
+++ b/docs/src/css/colors.css
@@ -15,6 +15,15 @@
--swm-navy-dark-40: #abbcf5;
--swm-navy-dark-20: #c1c6e5;
+ /* react-native-executorch */
+ --swm-cornflower-100: #4B6CF4;
+ --swm-cornflower-80: #7394FF;
+ --swm-cornflower-60: #A6C2FF;
+ --swm-cornflower-0: #F7FAFF;
+
+ --swm-navy-100: #160042;
+ /* end react-native-executorch */
+
--swm-purple-light-100: #782aeb;
--swm-purple-light-80: #b58df1;
--swm-purple-light-60: #d1bbf3;
@@ -232,21 +241,21 @@
/* Landing */
--swm-landing-heading: var(--ifm-font-color-base);
- --swm-landing-heading-selected: var(--swm-purple-light-100);
+ --swm-landing-heading-selected: var(--swm-cornflower-80);
--swm-landing-heading-selected-border: var(--swm-navy-light-100);
--swm-landing-horse: var(--swm-navy-light-100);
- --swm-landing-button-purple: var(--swm-purple-light-100);
+ --swm-landing-button-purple: var(--swm-cornflower-80);
--swm-landing-feature-item: var(--swm-purple-light-40);
- --swm-landing-feature-item-shadow: var(--swm-purple-light-100);
+ --swm-landing-feature-item-shadow: var(--swm-cornflower-80);
--swm-landing-sponsors-color: var(--ifm-font-color-base);
/* Hire Us Section */
- --swm-hire-us-section-title: var(--swm-blue-light-60);
+ --swm-hire-us-section-title: var(--swm-cornflower-100);
--swm-hire-us-section: var(--swm-navy-light-100);
--swm-hire-us-section-color: var(--swm-off-white);
@@ -303,7 +312,7 @@
/* Color Mode */
--swm-color-mode-enabled: var(--swm-off-navy);
- --swm-color-mode-enabled-color-landing: var(--swm-purple-dark-120);
+ --swm-color-mode-enabled-color-landing: var(--swm-navy-100);
--swm-color-mode-disabled-color: var(--swm-navy-light-40);
/* Typography */
@@ -415,18 +424,18 @@
--swm-landing-horse: var(--swm-off-white);
- --swm-landing-button-purple: var(--swm-purple-dark-100);
+ --swm-landing-button-purple: var(--swm-cornflower-80);
- --swm-landing-feature-item: var(--swm-purple-dark-100);
+ --swm-landing-feature-item: var(--swm-cornflower-80);
--swm-landing-feature-item-shadow: var(--swm-purple-dark-140);
--swm-landing-sponsors-color: var(--swm-off-white);
/* Hire Us Section */
- --swm-hire-us-section-title: var(--swm-purple-dark-100);
- --swm-hire-us-section: var(--swm-off-white);
- --swm-hire-us-section-color: var(--swm-purple-light-100);
+ --swm-hire-us-section-title: var(--swm-cornflower-100);
+ --swm-hire-us-section: var(--swm-cornflower-100);
+ --swm-hire-us-section-color: var(--swm-white);
/* Cards */
--swm-card-background: var(--swm-navy);
diff --git a/docs/src/css/overrides.css b/docs/src/css/overrides.css
index bcab954..eaa21a3 100644
--- a/docs/src/css/overrides.css
+++ b/docs/src/css/overrides.css
@@ -9,7 +9,7 @@
background-color: #ffffff;
}
[data-theme='dark'][class*='plugin-pages'] {
- background-color: var(--swm-navy-dark-140);
+ background-color: var(--swm-navy-100);
}
table {
@@ -132,10 +132,6 @@ table thead tr {
}
}
-[class*='navbar__link']:not([class*='header-github']):not([role='button']) {
- display: none;
-}
-
/* TODO: Remove after @swmansion-t-rex-ui 0.0.10 patch */
button[class*='DocSearch-Button'] {
margin: 0 !important;
diff --git a/docs/src/hooks/usePageType.tsx b/docs/src/hooks/usePageType.tsx
new file mode 100644
index 0000000..75577ca
--- /dev/null
+++ b/docs/src/hooks/usePageType.tsx
@@ -0,0 +1,14 @@
+import { useLocation } from '@docusaurus/router';
+import useBaseUrl from '@docusaurus/useBaseUrl';
+
+const usePageType = () => {
+ const location = useLocation();
+ const baseUrl = useBaseUrl('/');
+
+ return {
+ isDocumentation: location.pathname.startsWith(`${baseUrl}docs`),
+ isLanding: location.pathname === baseUrl,
+ };
+};
+
+export default usePageType;
diff --git a/docs/src/hooks/useScreenSize.tsx b/docs/src/hooks/useScreenSize.tsx
new file mode 100644
index 0000000..08db813
--- /dev/null
+++ b/docs/src/hooks/useScreenSize.tsx
@@ -0,0 +1,32 @@
+import { useEffect, useState } from 'react';
+
+/*
+ * Caution - read before use!
+ * As this hook uses innerWidth prop, which belongs to the window object,
+ * it requires to use the viewport. Thus, building the production build of the
+ * application may fail, as the Docusaurus is using SSR to serve it.
+ * Remember to verify if user can use the viewport by using
+ * `ExecutionEnvironment.canUseViewport` method, `
` component or
+ * `useIsBrowser` hook.
+ */
+const useScreenSize = () => {
+ const [windowWidth, setWindowWidth] = useState(window.innerWidth);
+
+ useEffect(() => {
+ const handleWindowResize = () => {
+ setWindowWidth(window.innerWidth);
+ };
+
+ window.addEventListener('resize', handleWindowResize);
+
+ return () => {
+ window.removeEventListener('resize', handleWindowResize);
+ };
+ }, []);
+
+ return {
+ windowWidth,
+ };
+};
+
+export default useScreenSize;
diff --git a/docs/src/pages/index.tsx b/docs/src/pages/index.tsx
index 9b96097..31dedd4 100644
--- a/docs/src/pages/index.tsx
+++ b/docs/src/pages/index.tsx
@@ -1,10 +1,35 @@
import React from 'react';
-import { Redirect } from '@docusaurus/router';
+import Layout from '@theme/Layout';
+import styles from './styles.module.css';
+import HomepageStartScreen from '@site/src/components/Hero/StartScreen';
+import WaveTop from '@site/src/components/Wave/WaveTop';
+import ExecuTorchIntroduction from '../components/ExecuTorchIntroduction';
+import ReactNativeExecuTorchFeatures from '@site/src/components/ReactNativeExecuTorchFeatures';
+import { HireUsSection } from '@swmansion/t-rex-ui';
+import FooterBackground from '../components/FooterBackground';
-function Home() {
+const Home = () => {
return (
-
+
+
+
+
+
+
+
);
-}
+};
export default Home;
diff --git a/docs/src/pages/styles.module.css b/docs/src/pages/styles.module.css
index 47adf30..1635a7e 100644
--- a/docs/src/pages/styles.module.css
+++ b/docs/src/pages/styles.module.css
@@ -1,24 +1,81 @@
.container {
- width: 60%;
+ width: 70%;
margin: 0 auto;
display: flex;
flex-direction: column;
- gap: 7.5rem;
+ gap: 10rem;
}
-.waveContainer {
+.container > div {
+ z-index: 10;
+}
+
+.linearGradient {
position: relative;
+ width: 100%;
+ margin-top: 18rem;
+ background: linear-gradient(#7394FF, #FFFFFF);
+ padding-top: 8.25rem;
+}
+
+[data-theme='dark'] .linearGradient {
+ background: linear-gradient(#313c9c, #160042);
+}
+
+.hireUsSection {
+ z-index: 10;
+}
+
+[data-theme='dark'] .hireUsSection a div:hover {
+ border-color: var(--swm-off-white);
+ color: var(--swm-off-white);
+}
+
+[data-theme='dark'] .hireUsSection a div:hover svg{
+ stroke: var(--swm-off-white);
+}
+
+@media (max-width: 2560px) {
+ .linearGradient {
+ margin-top: 14rem;
+ }
+}
+
+@media (max-width: 1920px) {
+ .linearGradient {
+ margin-top: 12rem;
+ }
}
@media (max-width: 1440px) {
.container {
- width: 75%;
+ width: 80%;
+ }
+
+ .linearGradient {
+ margin-top: 10rem;
}
}
@media (max-width: 996px) {
.container {
width: 85%;
- gap: 3.5rem;
+ gap: 8rem;
}
-}
\ No newline at end of file
+
+ .linearGradient {
+ margin-top: 10rem;
+ }
+}
+
+@media (max-width: 768px) {
+ .linearGradient {
+ padding-top: 4rem;
+ }
+}
+
+@media (max-width: 420px) {
+ .linearGradient {
+ margin-top: 6rem;
+ }
+}