diff --git a/app/page.tsx b/app/page.tsx index 56507f5..357edae 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -30,6 +30,7 @@ export default function Web() {
+
diff --git a/components/Modal/Modal.tsx b/components/Modal/Modal.tsx new file mode 100644 index 0000000..3257150 --- /dev/null +++ b/components/Modal/Modal.tsx @@ -0,0 +1,39 @@ +"use client" + +import { useState } from "react" + +interface ModalProps { + // The content of the modal + children: React.ReactNode + + // The visibility of the modal + isOpen: boolean + + // Function to close the modal + onClose: () => void +} + +export const Modal: React.FC = ({ children, isOpen, onClose }) => { + if (!isOpen) return null + + const hadleClose = (e: any) => { + if (e.target.id === "wrapper") onClose() + } + + return ( +
+
+

onClose()}> + X +

+
+ {children} +
+
+
+ ) +} diff --git a/components/OurServices/OurServices.tsx b/components/OurServices/OurServices.tsx index d9a5696..e96aaef 100644 --- a/components/OurServices/OurServices.tsx +++ b/components/OurServices/OurServices.tsx @@ -5,7 +5,7 @@ export default function OurServices() { return (
-
+

Our Services @@ -16,25 +16,28 @@ export default function OurServices() { powered by AI.

-
+
-
+
-
+
-

+

Web Devlopment

-

+

We craft engaging and responsive websites that captivate users and drive business growth.

- + Learn More -
+
-
+
-

+

IOS Application Development

@@ -70,7 +73,10 @@ export default function OurServices() { Our skilled team designs and develops intuitive iOS apps that seamlessly integrate with Apple devices.

-
+ Learn More -
+
-
+
-

+

Android Application Development

@@ -105,7 +111,10 @@ export default function OurServices() {

From concept to deployment, we create robust Android apps that cater to a diverse user base.

-
+ Learn More -
+
-
+
-

+

Apps for AR Devices

@@ -141,7 +150,10 @@ export default function OurServices() { Immerse users in augmented reality experiences with our cutting-edge applications for MetaQuest and Apple Vision Pro.

-
+ Learn More -
+

@@ -56,15 +64,24 @@ export default function AboutUs() {

-
- {/* */} +
+
+
+ setIsModalOpen(true)} + /> + setIsModalOpen(false)}> + + +
+
-
+
) } diff --git a/package.json b/package.json index 71456b1..85edfc9 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "@vercel/otel": "^0.3.0", "class-variance-authority": "^0.7.0", "clsx": "^2.1.0", + "flowbite-react": "^0.9.0", "framer-motion": "^11.0.25", "lodash": "^4.17.21", "next": "^14.0.3", diff --git a/styles/custom.css b/styles/custom.css index 6b22072..03837ce 100644 --- a/styles/custom.css +++ b/styles/custom.css @@ -14,3 +14,38 @@ color: var(--glow-color); } /* https://flowbite.com/docs/forms/radio/ */ + +.modal-wrapper { + width: 500px; + height: 600px; +} + +.modal { + background: white; + height: 100%; + width: 100%; + border-radius: 15px; + padding: 15px; +} + +.modal-overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; + background-color: rgba(0, 0, 0, 0.5); +} + +.modal-body { + padding-top: 10px; +} + +.modal-header { + display: flex; + justify-content: flex-end; + font-size: 25px; +} diff --git a/tailwind.config.js b/tailwind.config.js index 3363e90..0c51add 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-var-requires */ -const { pick, omit } = require("lodash") +const { pick, omit, max } = require("lodash") const colors = require("tailwindcss/colors") const defaultTheme = require("tailwindcss/defaultTheme") const { default: flattenColorPalette } = require("tailwindcss/lib/util/flattenColorPalette") @@ -15,6 +15,10 @@ module.exports = { "./src/**/*.{js,ts,jsx,tsx,mdx}", ], theme: { + // screens: { + // fold: { raw: "(min-width: 280px)" }, + // ...defaultTheme.screens, + // }, extend: { boxShadow: { "3xl": "0 35px 60px -15px rgba(0, 0, 200, 0.3)", diff --git a/yarn.lock b/yarn.lock index ce2af29..ebf54ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -45,7 +45,6 @@ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz" integrity sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA== -"@babel/core@^7.0.0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.16.0", "@babel/core@^7.21.3", "@babel/core@^7.22.0", "@babel/core@^7.22.5", "@babel/core@^7.22.9", "@babel/core@^7.23.3", "@babel/core@^7.7.5": "@babel/core@^7.0.0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.16.0", "@babel/core@^7.21.3", "@babel/core@^7.22.0", "@babel/core@^7.22.5", "@babel/core@^7.22.9", "@babel/core@^7.23.3", "@babel/core@^7.7.5": version "7.24.3" resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.3.tgz" @@ -1982,7 +1981,7 @@ resolved "https://registry.npmjs.org/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz" integrity sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ== -"@floating-ui/core@^1.0.0": +"@floating-ui/core@1.6.0", "@floating-ui/core@^1.0.0": version "1.6.0" resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz" integrity sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g== @@ -2035,6 +2034,15 @@ aria-hidden "^1.1.3" tabbable "^6.0.1" +"@floating-ui/react@0.26.10": + version "0.26.10" + resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.26.10.tgz#d4a4878bcfaed70963ec0eaa67a71bead5924ee5" + integrity sha512-sh6f9gVvWQdEzLObrWbJ97c0clJObiALsFe0LiR/kb3tDRKwEhObASEH2QyfdoO/ZBPzwxa9j+nYFo+sqgbioA== + dependencies: + "@floating-ui/react-dom" "^2.0.0" + "@floating-ui/utils" "^0.2.0" + tabbable "^6.0.0" + "@floating-ui/utils@^0.1.3": version "0.1.6" resolved "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz" @@ -4177,6 +4185,11 @@ resolved "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz" integrity sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg== +"@popperjs/core@^2.9.3": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== + "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" @@ -9318,6 +9331,11 @@ classnames@2.3.2: resolved "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz" integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== +classnames@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== + clean-css@^5.2.2: version "5.3.2" resolved "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz" @@ -10000,6 +10018,11 @@ date-fns@^2.29.1: dependencies: "@babel/runtime" "^7.21.0" +debounce@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-2.0.0.tgz#b2f914518a1481466f4edaee0b063e4d473ad549" + integrity sha512-xRetU6gL1VJbs85Mc4FoEGSjQxzpdxRyFhe3lmWFyy2EzydIcD4xzUvRJMD+NPDfMwKNhxa3PvsIOU32luIWeA== + debug@2.6.9, debug@^2.6.9: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" @@ -11525,6 +11548,27 @@ flow-parser@0.*: resolved "https://registry.npmjs.org/flow-parser/-/flow-parser-0.218.1.tgz" integrity sha512-46xpXyI4Bh3K2ej+NF3V5+pAsDlB5P0DWpgIIy/0/R7ujK0syfI/xfKDCOlq2sxtfUyPrr4rxfS2Da7yWdTdwg== +flowbite-react@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/flowbite-react/-/flowbite-react-0.9.0.tgz#5c6744173090012eff0fb55ee366501506aee5f7" + integrity sha512-wRGzTPHaEuRSXiAFhdTuksezABE/AjI/iyOOBGZpsFAz/sq7zuorAqjRud9FWgy3TlFPtldl7kL93wNY2nOnKQ== + dependencies: + "@floating-ui/core" "1.6.0" + "@floating-ui/react" "0.26.10" + classnames "2.5.1" + debounce "2.0.0" + flowbite "2.3.0" + react-icons "5.0.1" + tailwind-merge "2.2.2" + +flowbite@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/flowbite/-/flowbite-2.3.0.tgz#0730e35d8b0d1dcdea26bb27d848bd9c0141cde1" + integrity sha512-pm3JRo8OIJHGfFYWgaGpPv8E+UdWy0Z3gEAGufw+G/1dusaU/P1zoBLiQpf2/+bYAi+GBQtPVG86KYlV0W+AFQ== + dependencies: + "@popperjs/core" "^2.9.3" + mini-svg-data-uri "^1.4.3" + follow-redirects@^1.14.0: version "1.15.6" resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz" @@ -14359,6 +14403,11 @@ min-indent@^1.0.0: resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== +mini-svg-data-uri@^1.4.3: + version "1.4.4" + resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939" + integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" @@ -16150,7 +16199,7 @@ react-element-to-jsx-string@^15.0.0: is-plain-object "5.0.0" react-is "18.1.0" -react-icons@^5.0.1: +react-icons@5.0.1, react-icons@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/react-icons/-/react-icons-5.0.1.tgz" integrity sha512-WqLZJ4bLzlhmsvme6iFdgO8gfZP17rfjYEJ2m9RsZjZ+cc4k1hTzknEz63YS1MeT50kVzoa1Nz36f4BEx+Wigw== @@ -17366,20 +17415,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -string_decoder@^1.1.1, string_decoder@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - "strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" @@ -17536,7 +17571,7 @@ synchronous-promise@^2.0.15: resolved "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.17.tgz" integrity sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g== -tabbable@^6.0.1: +tabbable@^6.0.0, tabbable@^6.0.1: version "6.2.0" resolved "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz" integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== @@ -17546,18 +17581,18 @@ tailwind-merge@1.8.1: resolved "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.8.1.tgz" integrity sha512-+fflfPxvHFr81hTJpQ3MIwtqgvefHZFUHFiIHpVIRXvG/nX9+gu2P7JNlFu2bfDMJ+uHhi/pUgzaYacMoXv+Ww== -tailwind-merge@^1.14.0: - version "1.14.0" - resolved "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz" - integrity sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ== - -tailwind-merge@^2.2.0, tailwind-merge@^2.2.2: +tailwind-merge@2.2.2, tailwind-merge@^2.2.0, tailwind-merge@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-2.2.2.tgz#87341e7604f0e20499939e152cd2841f41f7a3df" integrity sha512-tWANXsnmJzgw6mQ07nE3aCDkCK4QdT3ThPMCzawoYA2Pws7vSTCvz3Vrjg61jVUGfFZPJzxEP+NimbcW+EdaDw== dependencies: "@babel/runtime" "^7.24.0" +tailwind-merge@^1.14.0: + version "1.14.0" + resolved "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz" + integrity sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ== + tailwind-variants@^0.1.18: version "0.1.20" resolved "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-0.1.20.tgz"