diff --git a/app/Components/Card.jsx b/app/Components/Card.jsx deleted file mode 100644 index 795dcca..0000000 --- a/app/Components/Card.jsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from "react"; - -const Card = () => { - return ( -
-
-

- -
-
-
-
- ); -}; - -export default Card; diff --git a/app/Components/Card/Page.jsx b/app/Components/Card/Page.jsx new file mode 100644 index 0000000..37ce0f8 --- /dev/null +++ b/app/Components/Card/Page.jsx @@ -0,0 +1,88 @@ +"use client"; +import React, { useEffect, useRef, useState } from "react"; +import { CarouselCard } from "@/components/StyleComponents/Carousel"; +import { motion, useAnimation } from "framer-motion"; +import ServiceCard from "../../Elements/ServiceCard/page" + +const Page = () => { + const pieChartRef = useRef(null); + const pieChartControls = useAnimation(); + const [pieChartVisible, setPieChartVisible] = useState(false); + + useEffect(() => { + const timelineObserver = new IntersectionObserver( + ([entry]) => { + if (entry.isIntersecting) { + setTimelineVisible(true); + timelineControls.start("visible"); + } + }, + { threshold: 0.1 } + ); + + const pieChartObserver = new IntersectionObserver( + ([entry]) => { + if (entry.isIntersecting) { + setPieChartVisible(true); + pieChartControls.start("visible"); + } + }, + { threshold: 0.1 } + ); + + if (pieChartRef.current) { + pieChartObserver.observe(pieChartRef.current); + } + + return () => { + if (pieChartRef.current) { + pieChartObserver.unobserve(pieChartRef.current); + } + }; + }, [pieChartControls]); + + return ( +
+
+ + + Services Provided by{" "} + + + Qubit + + + + + + + + + + +
+
+ ); +}; + +export default Page; diff --git a/app/Components/Intro/Page.jsx b/app/Components/Intro/Page.jsx new file mode 100644 index 0000000..98be010 --- /dev/null +++ b/app/Components/Intro/Page.jsx @@ -0,0 +1,86 @@ +"use client"; + +import React from 'react' +import {motion} from 'framer-motion' +import Link from 'next/link'; +import Button from '@/app/Elements/Button/page'; +import Image from 'next/image'; +import Mobilebg from '../../../public/mobile.png'; + +const paje = () => { + return ( +
+
+
+
+ + {"Keep Your device Safe".split("").map((char, index) => ( + + {char} + + ))} + + + + Real Time Vulnerability + + + + Reporting System with + + + + Cutting Edge Technology + +
+ + + +
+ + mobilebg + +
+
+ ) +} + +export default paje diff --git a/app/Components/Navbar/Page.jsx b/app/Components/Navbar/Page.jsx new file mode 100644 index 0000000..701981a --- /dev/null +++ b/app/Components/Navbar/Page.jsx @@ -0,0 +1,45 @@ +"use client"; +import React from 'react' +import {motion} from "framer-motion" + +const Page = () => { + return ( +
+ +
+ ) +} + +export default Page diff --git a/app/Components/Timeline/page.jsx b/app/Components/Timeline/page.jsx new file mode 100644 index 0000000..0cdd8ee --- /dev/null +++ b/app/Components/Timeline/page.jsx @@ -0,0 +1,218 @@ +"use client"; +import { motion , useAnimation} from "framer-motion"; +import React, { useEffect, useRef, useState } from "react"; + + +const page = () => { + const timelineRef = useRef(null); + + const [timelineVisible, setTimelineVisible] = useState(false); + const timelineControls = useAnimation(); + + useEffect(() => { + const timelineObserver = new IntersectionObserver( + ([entry]) => { + if (entry.isIntersecting) { + setTimelineVisible(true); + timelineControls.start("visible"); + } + }, + { threshold: 0.1 } + ); + + if (timelineRef.current) { + timelineObserver.observe(timelineRef.current); + } + + return () => { + if (timelineRef.current) { + timelineObserver.unobserve(timelineRef.current); + } + }; + }, [timelineControls]); + + const timelineVariants = { + hidden: { opacity: 0, y: 50 }, + visible: { + opacity: 1, + y: 0, + transition: { + duration: 0.5, + staggerChildren: 0.2, + }, + }, + }; + + const itemVariants = { + hidden: { opacity: 0, y: 20 }, + visible: { + opacity: 1, + y: 0, + transition: { duration: 0.5 }, + }, + }; + + + return ( +
+
+
+ + Why Choose + + + QUBIT ! + +
+
+
+ + + + +
+ +

+ Efficient Data Extraction +

+

+ Efficient data extraction employs methods like throttling + and IP rotation to gather data quickly while minimizing + risks of website blocking. +

+
+
+ + + + + +
+
+ + +
+ + + + + +
+ +

+ Advanced Analytics +

+

+ Advanced analytics utilizes sophisticated techniques to + analyze data, providing valuable insights from web + scraping for informed business decisions and trend + analysis. +

+
+
+
+ + +
+ +

+ Scalable Infrastructure +

+

+ Scalable infrastructure allows seamless growth, + efficiently managing increased workloads in web scraping + to ensure optimal performance and resource allocation. +

+
+
+ + + + + +
+
+
+
+
+ ); +}; + +export default page; diff --git a/app/Components/button.jsx b/app/Components/button.jsx deleted file mode 100644 index 5dac85c..0000000 --- a/app/Components/button.jsx +++ /dev/null @@ -1,38 +0,0 @@ -import React from "react"; - -const button = () => { - return ( -
-
-
-
-
-
-
-
- -
- - - - - Get Started - -
-
-
- ); -}; - -export default button; diff --git a/app/Elements/AboutUs.jsx b/app/Elements/AboutUs/page.jsx similarity index 100% rename from app/Elements/AboutUs.jsx rename to app/Elements/AboutUs/page.jsx diff --git a/app/Elements/Button/page.jsx b/app/Elements/Button/page.jsx new file mode 100644 index 0000000..d1af422 --- /dev/null +++ b/app/Elements/Button/page.jsx @@ -0,0 +1,29 @@ +"use client"; +import React from "react"; +import style from "./style.css" + +const page = () => { + return ( +
+ +
+ ); +}; + +export default page; diff --git a/app/Elements/Button/style.css b/app/Elements/Button/style.css new file mode 100644 index 0000000..126ca06 --- /dev/null +++ b/app/Elements/Button/style.css @@ -0,0 +1,55 @@ +.cssbuttons-io-button { + background: #1D4ED8; + color: white; + font-family: inherit; + padding: 0.35em; + padding-left: 1.2em; + font-size: 17px; + font-weight: 500; + border-radius: 0.9em; + border: none; + letter-spacing: 0.05em; + display: flex; + align-items: center; + box-shadow: inset 0 0 1.6em -0.6em #1D4ED8; + overflow: hidden; + position: relative; + height: 2.8em; + padding-right: 3.3em; + cursor: pointer; + } + + .cssbuttons-io-button .icon { + background: white; + margin-left: 1em; + position: absolute; + display: flex; + align-items: center; + justify-content: center; + height: 2.2em; + width: 2.2em; + border-radius: 0.7em; + box-shadow: 0.1em 0.1em 0.6em 0.2em #1D4ED8; + right: 0.3em; + transition: all 0.3s; + + } + + .cssbuttons-io-button:hover .icon { + width: calc(100% - 0.6em); + } + + .cssbuttons-io-button .icon svg { + width: 1.1em; + transition: transform 0.3s; + color: #1D4ED8; + } + + .cssbuttons-io-button:hover .icon svg { + transform: translateX(0.1em); + } + + .cssbuttons-io-button:active .icon { + transform: scale(0.95); + } + \ No newline at end of file diff --git a/app/Elements/Card.jsx b/app/Elements/Card.jsx deleted file mode 100644 index 795dcca..0000000 --- a/app/Elements/Card.jsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from "react"; - -const Card = () => { - return ( -
-
-

- -
-
-
-
- ); -}; - -export default Card; diff --git a/app/Elements/GmailCard.jsx b/app/Elements/GmailCard.jsx index ba44d22..347c550 100644 --- a/app/Elements/GmailCard.jsx +++ b/app/Elements/GmailCard.jsx @@ -1,30 +1,3 @@ -// import React from 'react'; -// import Image from 'next/image'; -// import GmailLogo from '../../public/Gmail_Logo_512px.png'; - -// const GmailCard = () => { -// return ( -//
-//
-//

-// Get Instant Email -//

-//

-// Alerts! -//

-//
-// Gmail Logo -//

-// You will get an instant notification whenever a new threat is detected in your subscribed source -//

-//
-// ); -// }; - -// export default GmailCard; - - - import React from 'react'; import Image from 'next/image'; import GmailLogo from '../../public/Gmail_Logo_512px.png'; @@ -33,9 +6,7 @@ const GmailCard = () => { return (
-

- Get Instant Email -

+

Alerts!

diff --git a/app/Elements/ServiceCard/page.jsx b/app/Elements/ServiceCard/page.jsx new file mode 100644 index 0000000..5921aaa --- /dev/null +++ b/app/Elements/ServiceCard/page.jsx @@ -0,0 +1,26 @@ +"use client"; +import React from "react"; +import style from "./style.css"; +import { PieChartComponent } from "@/components/StyleComponents/Piechart"; +import { LineChartComponent } from "@/components/StyleComponents/LineChart"; +import Alert from "../GmailCard" + +const page = () => { + return ( +
+
+
+ +
+
+ +
+
+ +
+
+
+ ); +}; + +export default page; diff --git a/app/Elements/ServiceCard/style.css b/app/Elements/ServiceCard/style.css new file mode 100644 index 0000000..16ed275 --- /dev/null +++ b/app/Elements/ServiceCard/style.css @@ -0,0 +1,34 @@ +.container { + position: relative; + display: flex; + justify-content: center; + align-items: center; + + } + + .container .glass { + position: relative; + width: 300px; + height: 430px; + background:rgb(255, 255, 255); + border: 1px solid rgb(255, 255, 255); + display: flex; + justify-content: center; + align-items: center; + transition: 0.5s; + border-radius: 10px; + margin: 0 -45px; + backdrop-filter: blur(10px); + transform: rotate(calc(var(--r) * 1deg)); + } + + .container:hover .glass { + transform: rotate(0deg); + margin: 0 10px; + } + + .container .glass svg { + font-size: 2.5em; + fill: #fff; + } + \ No newline at end of file diff --git a/app/Elements/TimelineCards/page.jsx b/app/Elements/TimelineCards/page.jsx new file mode 100644 index 0000000..366e3f7 --- /dev/null +++ b/app/Elements/TimelineCards/page.jsx @@ -0,0 +1,22 @@ +"use client"; +import React from "react"; + +const page = () => { + return ( +
+
+

Efficient Data Extraction

+
+

+ {" "} + Efficient data extraction employs methods like throttling and IP + rotation to gather data quickly while minimizing risks of website + blocking. +

+
+
+
+ ); +}; + +export default page; diff --git a/app/Elements/TimelineCards/style.css b/app/Elements/TimelineCards/style.css new file mode 100644 index 0000000..e69de29 diff --git a/app/Elements/button.jsx b/app/Elements/button.jsx deleted file mode 100644 index 5dac85c..0000000 --- a/app/Elements/button.jsx +++ /dev/null @@ -1,38 +0,0 @@ -import React from "react"; - -const button = () => { - return ( -
-
-
-
-
-
-
-
- -
- - - - - Get Started - -
-
-
- ); -}; - -export default button; diff --git a/app/page.jsx b/app/page.jsx index 1f12cb0..9fb35ec 100644 --- a/app/page.jsx +++ b/app/page.jsx @@ -1,98 +1,12 @@ "use client"; -import React, { useEffect, useRef, useState } from "react"; -import Image from "next/image"; -import { motion, useAnimation } from "framer-motion"; -import Mobilebg from "../public/mobile.png"; -import Button from "./Elements/button"; -import { CarouselCard } from "@/components/StyleComponents/Carousel"; -import AboutUs from "./Elements/AboutUs"; -import Link from "next/link"; +import React from "react"; +import AboutUs from "./Elements/AboutUs/page"; +import Navbar from "./Components/Navbar/Page"; +import Timeline from "./Components/Timeline/page"; +import Card from "./Components/Card/Page"; +import Intro from "./Components/Intro/Page"; const Page = () => { - const timelineRef = useRef(null); - const pieChartRef = useRef(null); - const [timelineVisible, setTimelineVisible] = useState(false); - const [pieChartVisible, setPieChartVisible] = useState(false); - const timelineControls = useAnimation(); - const pieChartControls = useAnimation(); - - useEffect(() => { - const timelineObserver = new IntersectionObserver( - ([entry]) => { - if (entry.isIntersecting) { - setTimelineVisible(true); - timelineControls.start("visible"); - } - }, - { threshold: 0.1 } - ); - - const pieChartObserver = new IntersectionObserver( - ([entry]) => { - if (entry.isIntersecting) { - setPieChartVisible(true); - pieChartControls.start("visible"); - } - }, - { threshold: 0.1 } - ); - - if (timelineRef.current) { - timelineObserver.observe(timelineRef.current); - } - - if (pieChartRef.current) { - pieChartObserver.observe(pieChartRef.current); - } - - return () => { - if (timelineRef.current) { - timelineObserver.unobserve(timelineRef.current); - } - if (pieChartRef.current) { - pieChartObserver.unobserve(pieChartRef.current); - } - }; - }, [timelineControls, pieChartControls]); - - const timelineVariants = { - hidden: { opacity: 0, y: 50 }, - visible: { - opacity: 1, - y: 0, - transition: { - duration: 0.5, - staggerChildren: 0.2, - }, - }, - }; - - const itemVariants = { - hidden: { opacity: 0, y: 20 }, - visible: { - opacity: 1, - y: 0, - transition: { duration: 0.5 }, - }, - }; - - const containerVariants = { - hidden: { - opacity: 0, - }, - visible: { - opacity: 1, - transition: { - staggerChildren: 0.2, - }, - }, - }; - - const slideIn = { - hidden: { x: -100, opacity: 0 }, - visible: { x: 0, opacity: 1 }, - }; - return ( <>
@@ -104,298 +18,10 @@ const Page = () => {
- - -
-
-
- - {"Keep Your device Safe".split("").map((char, index) => ( - - {char} - - ))} - - - - Real Time Vulnerability - - - - Reporting System with - - - - Cutting Edge Technology - -
- - - -
- - mobilebg - -
- -
-
- - Why Choose - - - QUBIT ! - -
-
- -
- - - - -
- -

- Efficient Data Extraction -

-

- Efficient data extraction employs methods like throttling - and IP rotation to gather data quickly while minimizing - risks of website blocking. -

-
-
- - - - - -
-
- - -
- - - - - -
- -

- Advanced Analytics -

-

- Advanced analytics utilizes sophisticated techniques to - analyze data, providing valuable insights from web - scraping for informed business decisions and trend - analysis. -

-
-
-
- - -
- -

- Scalable Infrastructure -

-

- Scalable infrastructure allows seamless growth, - efficiently managing increased workloads in web scraping - to ensure optimal performance and resource allocation. -

-
-
- - - - - -
-
-
-
- -
- - - Services Provided by{" "} - - - Qubit{" "} - - - - - - - -
+ + + +
diff --git a/components/StyleComponents/LineChart.tsx b/components/StyleComponents/LineChart.tsx index 4444d78..c27cca0 100644 --- a/components/StyleComponents/LineChart.tsx +++ b/components/StyleComponents/LineChart.tsx @@ -45,9 +45,6 @@ export function LineChartComponent() { - - Vulnerability - Timeline diff --git a/components/StyleComponents/Piechart.tsx b/components/StyleComponents/Piechart.tsx index 202dfb2..6be7a03 100644 --- a/components/StyleComponents/Piechart.tsx +++ b/components/StyleComponents/Piechart.tsx @@ -39,11 +39,8 @@ export function PieChartComponent() { - - Severity of - - Vulnerability + Severity @@ -95,8 +92,8 @@ export function PieChartComponent() { - -

+ +

We provide you information about the Severity of the Vulnerability received