diff --git a/.estlintrc.ts b/.estlintrc.ts index a1f90a1..0053b06 100644 --- a/.estlintrc.ts +++ b/.estlintrc.ts @@ -5,7 +5,11 @@ export default { files: ["*.ts", "*.tsx"], processor: "@graphql-eslint/graphql", parser: "@typescript-eslint/parser", - extends: ["@launchware/eslint-config-react", "eslint:recommended", "plugin:@typescript-eslint/recommended"], + extends: [ + "@launchware/eslint-config-react", + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + ], env: { es6: true, }, diff --git a/.gitignore b/.gitignore index 76f31e7..a8d62bc 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ node_modules/ public src/gatsby-types.d.ts yarn-error.log +.DS_Store diff --git a/.vscode/settings.json b/.vscode/settings.json index 4e0115c..af14547 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,5 @@ { + "cSpell.words": ["frontmatter", "Roboto", "tailwindcss"], "cSpell.words": [ "fortawesome", "frontmatter", diff --git a/package.json b/package.json index 69585c7..9dbc5f4 100644 --- a/package.json +++ b/package.json @@ -74,4 +74,4 @@ "tailwindcss": "^3.3.0", "typescript": "^4.9.5" } -} +} \ No newline at end of file diff --git a/src/assets/images/decorative-circle.png b/src/assets/images/decorative-circle.png new file mode 100644 index 0000000..c57d01a Binary files /dev/null and b/src/assets/images/decorative-circle.png differ diff --git a/src/components/index-page/IndexExasperation.tsx b/src/components/index-page/IndexExasperation.tsx new file mode 100644 index 0000000..6063f32 --- /dev/null +++ b/src/components/index-page/IndexExasperation.tsx @@ -0,0 +1,39 @@ +import React from "react"; + +import decorativeCircle from "../../assets/images/decorative-circle.png"; +import "./css/index-exasperation.css"; + +export const IndexExasperation = () => { + return ( +
+
+ +
+ +
+
+

+ Creating custom software should be exhilarating, not exasperating +

+

+ Turning your vision into reality can be overwhelming, and partnering with the wrong + software development team can leave you feeling stressed out and frustrated. What’s + worse, you could invest a massive amount of time and money without a working product to + show for it at the end of it all. +

+

+ When it comes to your software, the stakes are too high. Your project should have its + chance to make lives better. That's why our custom development team collaborates with + our clients to make sure their software solves the right problems and that they build + the right products. +

+
+
+
+ ); +}; diff --git a/src/components/index-page/IndexHero.tsx b/src/components/index-page/IndexHero.tsx new file mode 100644 index 0000000..889aff7 --- /dev/null +++ b/src/components/index-page/IndexHero.tsx @@ -0,0 +1,22 @@ +import React from "react"; + +import "./css/index-hero.css"; + +export const IndexHero = () => { + return ( +
+
+
+

Make your software a success

+

+ Software development that helps your organization reach its goals +

+ +
+
+ +
+
+
+ ); +}; diff --git a/src/components/index-page/css/index-exasperation.css b/src/components/index-page/css/index-exasperation.css new file mode 100644 index 0000000..d7396d5 --- /dev/null +++ b/src/components/index-page/css/index-exasperation.css @@ -0,0 +1,35 @@ +.index-exasperation { + @apply parent-section; + @apply md:bg-launch-black bg-launch-neutral-20 relative z-20; +} + +.index-exasperation__contents { + @apply contents-container; + @apply relative z-40 lg:flex-row md:flex-col flex-col-reverse; +} + +.index-exasperation__decorative-circle { + @apply -z-10 absolute -left-32 -top-80 hidden md:block; +} + +.index-exasperation__text-container { + @apply flex flex-col md:items-start px-4 md:px-8 pt-8 lg:p-0; + @apply lg:max-w-md md:text-white; +} + +.index-exasperation__heading { + @apply text-3xl text-left; +} + +.index-exasperation__text { + @apply pt-4; + @apply text-lg; +} + +.index-exasperation__image-container { + @apply px-4 md:px-8 py-8 lg:p-0; +} + +.index-exasperation__image { + @apply rounded-image; +} diff --git a/src/components/index-page/css/index-hero.css b/src/components/index-page/css/index-hero.css new file mode 100644 index 0000000..ba7ccf9 --- /dev/null +++ b/src/components/index-page/css/index-hero.css @@ -0,0 +1,33 @@ +.index-hero { + @apply parent-section; + @apply bg-white relative z-30; +} + +.index-hero__contents { + @apply contents-container; +} + +.index-hero__text-container { + @apply flex flex-col md:items-start px-4 pt-8 md:p-0; + @apply md:text-left text-center; +} + +.index-hero__heading { + @apply text-3xl mb-6 px-6 md:px-0; +} + +.index-hero__text { + @apply text-lg px-6 md:px-0; +} + +.index-hero__image-container { + @apply px-4 py-8 md:p-0; +} + +.index-hero__image { + @apply rounded-image; +} + +.index-hero__button { + @apply xl:mt-12 mt-4; +} diff --git a/src/css/buttons.css b/src/css/buttons.css index 6e77d5a..f40a962 100644 --- a/src/css/buttons.css +++ b/src/css/buttons.css @@ -1,6 +1,6 @@ .button, input.button { - @apply bg-launch-orange text-white font-bold py-1 px-3 rounded-md hover:text-launch-orange hover:bg-white border-launch-orange border-x-2 border-y-2; + @apply bg-launch-orange text-white font-bold py-2 px-3 rounded-md hover:text-launch-orange hover:bg-white border-launch-orange border-x-2 border-y-2; } .button__full-width { diff --git a/src/css/index.css b/src/css/index.css index dc5ec0f..a8a03d6 100644 --- a/src/css/index.css +++ b/src/css/index.css @@ -8,6 +8,18 @@ .pad-container { @apply px-4 sm:px-10 max-w-7xl mx-auto; } + + .parent-section { + @apply flex justify-center w-full xl:py-16 py-4; + } + + .contents-container { + @apply flex flex-col justify-between items-center w-full max-w-7xl md:flex-row md:px-10; + } + + .rounded-image { + @apply rounded-3xl; + } } @font-face { diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 58fd66d..bda1c3a 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,20 +1,17 @@ import React from "react"; -import { LaunchWareLogo } from "../components/layout/LaunchWareLogo"; import { PageProps } from "gatsby"; -import "../css/index.css"; +import { IndexExasperation } from "../components/index-page/IndexExasperation"; +import { IndexHero } from "../components/index-page/IndexHero"; +import { LaunchWareLogo } from "../components/layout/LaunchWareLogo"; import { Layout } from "../components/layout/Layout"; +import "../css/index.css"; const IndexPage = (pageProps: PageProps) => { return ( -
-
- -

Coming Soon

- Archive Blog Content -
-
+ +
); }; diff --git a/tailwind.config.ts b/tailwind.config.ts index de066b3..144327f 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -1,16 +1,13 @@ -const { fontFamily } = require('tailwindcss/defaultTheme') +const { fontFamily } = require("tailwindcss/defaultTheme"); export default { purge: [], darkMode: false, - content: [ - "./src/pages/**/*.{js,jsx,ts,tsx}", - "./src/components/**/*.{js,jsx,ts,tsx}", - ], + content: ["./src/pages/**/*.{js,jsx,ts,tsx}", "./src/components/**/*.{js,jsx,ts,tsx}"], theme: { extend: { fontFamily: { - "inter": ["Inter", "Roboto", "sans-serif", ...fontFamily.sans] + inter: ["Inter", "Roboto", "sans-serif", ...fontFamily.sans], }, colors: { white: "#ffffff", @@ -23,8 +20,9 @@ export default { "launch-black-50": "#918B8E", "launch-black-30": "#B9B5B7", "launch-black-10": "#E2E0E1", + "launch-neutral-20": "#F9FAFB", }, - } + }, }, variants: { extend: {},