);
}
diff --git a/client/src/component/Faq.jsx b/client/src/component/Faq.jsx
index 15e299f..6b38457 100644
--- a/client/src/component/Faq.jsx
+++ b/client/src/component/Faq.jsx
@@ -1,51 +1,78 @@
-// component/FAQ.jsx
-import { useState } from 'react';
-import '../css/Faq.css';
+// eslint-disable-next-line no-unused-vars
+import React, { useState } from "react";
+import "../css/Faq.css"; // Ensure your path is correct
+import img1 from "../assets/images/faqs.jpg"; // Uncomment if you're using an image
const FAQ = () => {
const [activeIndex, setActiveIndex] = useState(null);
+ const faqData = [
+ {
+ question: "What is BitBox?",
+ answer:
+ "BitBox is a user-friendly platform that simplifies version control and collaboration for developers.",
+ },
+ {
+ question: "How does BitBox enhance collaboration?",
+ answer:
+ "BitBox offers intuitive tools that enable both solo programmers and large teams to manage projects efficiently.",
+ },
+ {
+ question: "How do I get started with BitBox?",
+ answer:
+ "You can sign up for an account on BitBox and start managing your projects right away.",
+ },
+ {
+ question: "Is BitBox compatible with modern development workflows?",
+ answer:
+ "Yes, BitBox seamlessly integrates with modern development workflows, providing fast and reliable performance.",
+ },
+ {
+ question: "How can I contact support if I need help?",
+ answer:
+ "You can reach out to support through the 'Contact Us' page or by emailing support@example.com.",
+ },
+ ];
+
const toggleAnswer = (index) => {
setActiveIndex(activeIndex === index ? null : index);
};
return (
-
Frequently Asked Questions
- {faqData.map((item, index) => (
-
-
toggleAnswer(index)} className="faq-question">
- {item.question}
-
- {activeIndex === index &&
{item.answer}
}
+ {/* Flex container for image and FAQ list */}
+
+ {/* Image on the left */}
+
+
+
+
+
+ {/* FAQ list on the right */}
+
+
+
Frequently Asked Questions
- ))}
+
+
);
};
-const faqData = [
- {
- question: "What is BitBox?",
- answer: "BitBox is a user-friendly platform that simplifies version control and collaboration for developers.",
- },
- {
- question: "How does BitBox enhance collaboration?",
- answer: "BitBox offers intuitive tools that enable both solo programmers and large teams to manage projects efficiently.",
- },
- {
- question: "How do I get started with BitBox?",
- answer: "You can sign up for an account on BitBox and start managing your projects right away.",
- },
- {
- question: "Is BitBox compatible with modern development workflows?",
- answer: "Yes, BitBox seamlessly integrates with modern development workflows, providing fast and reliable performance.",
- },
- {
- question: "How can I contact support if I need help?",
- answer: "You can reach out to support through the 'Contact Us' page or by emailing support@example.com.",
- },
-];
-
-
export default FAQ;
diff --git a/client/src/component/Footer.jsx b/client/src/component/Footer.jsx
index 8af9ebf..e1a90bc 100644
--- a/client/src/component/Footer.jsx
+++ b/client/src/component/Footer.jsx
@@ -1,246 +1,324 @@
-import '../css/Footer.css';
-import PropTypes from 'prop-types';
-import { Link } from 'react-router-dom';
+import "../css/Footer.css";
+import PropTypes from "prop-types";
+import { Link } from "react-router-dom";
import { FaXTwitter } from "react-icons/fa6";
-import { FaGithub, FaLinkedin, FaYoutube } from 'react-icons/fa';
-import { useEffect, useState } from 'react';
+import { FaGithub, FaLinkedin, FaYoutube } from "react-icons/fa";
+import { useEffect, useState } from "react";
const Footer = (props) => {
- const [email, setEmail] = useState("");
- const [message, setMessage] = useState("");
- const [isError, setIsError] = useState(false); // Flag to handle message color
- const [stars, setStars] = useState(0);
-
- const handleSubscribe = async (e) => {
- e.preventDefault();
- setMessage(""); // Reset message
-
- if (!email) {
- setIsError(true);
- setMessage("Please enter a valid email.");
- clearMessageAndResetEmail();
- return;
- }
+ const [email, setEmail] = useState("");
+ const [message, setMessage] = useState("");
+ const [isError, setIsError] = useState(false); // Flag to handle message color
+ const [stars, setStars] = useState(0);
+
+ const handleSubscribe = async (e) => {
+ e.preventDefault();
+ setMessage(""); // Reset message
+
+ if (!email) {
+ setIsError(true);
+ setMessage("Please enter a valid email.");
+ clearMessageAndResetEmail();
+ return;
+ }
- try {
- const response = await fetch("http://localhost:5000/api/profile/subscribe", {
- method: "POST",
- headers: {
- "Content-Type": "application/json",
- },
- body: JSON.stringify({ email }),
- });
-
- const data = await response.json();
-
- if (response.ok) {
- setIsError(false);
- setMessage("Thank you for subscribing!");
- } else {
- setIsError(true);
- setMessage(data.message || "Subscription failed, please try again.");
- }
-
- clearMessageAndResetEmail();
- } catch (error) {
- console.error("Error subscribing:", error);
- setIsError(true);
- setMessage("An error occurred, please try again later.");
- clearMessageAndResetEmail();
+ try {
+ const response = await fetch(
+ "http://localhost:5000/api/profile/subscribe",
+ {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({ email }),
}
+ );
+
+ const data = await response.json();
+
+ if (response.ok) {
+ setIsError(false);
+ setMessage("Thank you for subscribing!");
+ } else {
+ setIsError(true);
+ setMessage(data.message || "Subscription failed, please try again.");
+ }
+
+ clearMessageAndResetEmail();
+ } catch (error) {
+ console.error("Error subscribing:", error);
+ setIsError(true);
+ setMessage("An error occurred, please try again later.");
+ clearMessageAndResetEmail();
+ }
+ };
+
+ const clearMessageAndResetEmail = () => {
+ setTimeout(() => {
+ setMessage("");
+ setEmail("");
+ }, 7000);
+ };
+ useEffect(() => {
+ // Configure the chatbot settings
+ window.embeddedChatbotConfig = {
+ chatbotId: "GzK_h2kRkJ8e-jLXJVgmy",
+ domain: "www.chatbase.co",
+ };
+
+ // Create the script element
+ const script = document.createElement("script");
+ script.src = "https://www.chatbase.co/embed.min.js";
+ script.defer = true;
+ script.setAttribute("chatbotId", "GzK_h2kRkJ8e-jLXJVgmy");
+ script.setAttribute("domain", "www.chatbase.co");
+
+ // Append the script to the body
+ document.body.appendChild(script);
+
+ // Cleanup function to remove the script on component unmount
+ return () => {
+ document.body.removeChild(script);
};
+ }, []);
- const clearMessageAndResetEmail = () => {
- setTimeout(() => {
- setMessage("");
- setEmail("");
- }, 7000);
+ useEffect(() => {
+ const fetchGitHubStars = async () => {
+ const response = await fetch(
+ "https://api.github.com/repos/Bitbox-Connect/Bitbox"
+ );
+ const data = await response.json();
+ setStars(data.stargazers_count);
};
- useEffect(() => {
- // Configure the chatbot settings
- window.embeddedChatbotConfig = {
- chatbotId: "GzK_h2kRkJ8e-jLXJVgmy",
- domain: "www.chatbase.co"
- };
-
- // Create the script element
- const script = document.createElement('script');
- script.src = "https://www.chatbase.co/embed.min.js";
- script.defer = true;
- script.setAttribute("chatbotId", "GzK_h2kRkJ8e-jLXJVgmy");
- script.setAttribute("domain", "www.chatbase.co");
-
- // Append the script to the body
- document.body.appendChild(script);
-
- // Cleanup function to remove the script on component unmount
- return () => {
- document.body.removeChild(script);
- };
- }, []);
-
- useEffect(() => {
- const fetchGitHubStars = async () => {
- const response = await fetch('https://api.github.com/repos/Bitbox-Connect/Bitbox');
- const data = await response.json();
- setStars(data.stargazers_count);
- };
- fetchGitHubStars();
- }, []);
-
-
- return (
- <>
- {/* Divider line */}
-
-
- {/* Footer container with dynamic background color */}
-
-
-
-
Subscribe to our Newsletter
-
- {message && (
-
- {message}
-
- )}
-
-
-
-
- {/* Left section with branding and social icons */}
-
-
- BITBOX
-
-
- Empowering Developers,
- Where Projects Find Solutions Together
-
-
- {/* Social media icons with links */}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {/* Middle section with About links */}
-
-
About
-
-
- Contact Us
-
-
- Code of Conduct
-
-
- Our contributors
-
-
- Blog
-
-
-
- FAQ
-
-
-
-
-
- {/* Right section with Legal links */}
-
-
Legals
-
-
- Feedback
-
-
- Privacy Policy
-
-
- Terms of use
-
-
-
-
-
+ fetchGitHubStars();
+ }, []);
+
+ return (
+ <>
+ {/* Divider line */}
+
+
+ {/* Footer container with dynamic background color */}
+
+
+
+
+ Subscribe to our Newsletter
+
+
+ {message && (
+
+ {message}
+
+ )}
+
+
+
+
+ {/* Left section with branding and social icons */}
+
+
+ BIT
+
+ BOX
+
+
+
+ Empowering Developers,
+
+ Where Projects Find Solutions Together
+
+
+ {/* Social media icons with links */}
+
+
+
+
+
+
+
+
+
+
+
+
+
- {/* Last footer section with copyright info */}
-
-
- © 2024 Bitbox. Made with 🤍 by Bitbox India. All rights reserved.
-
+ {/* Middle section with About links */}
+
+
About
+
+
+ Contact Us
+
+
+ Code of Conduct
+
+
+ Our contributors
+
+
+ Blog
+
+
+
+ FAQ
+
+
+
+
+ {/* Right section with Legal links */}
+
+
Legals
+
+
+ Feedback
+
+
+ Privacy Policy
+
+
+ Terms of use
+
+
- >
- );
-}
+
+
+
+
+ {/* Last footer section with copyright info */}
+
+
+ © 2024 Bitbox. Made with 🤍 by Bitbox India. All rights
+ reserved.
+
+
+ >
+ );
+};
// Prop types for validation
Footer.propTypes = {
- showAlert: PropTypes.func,
- mode: PropTypes.string,
+ showAlert: PropTypes.func,
+ mode: PropTypes.string,
};
export default Footer;
diff --git a/client/src/component/Footers/Contactus.jsx b/client/src/component/Footers/Contactus.jsx
index 4082bba..f1d2b44 100644
--- a/client/src/component/Footers/Contactus.jsx
+++ b/client/src/component/Footers/Contactus.jsx
@@ -1,16 +1,16 @@
-import '../../css/Main.css';
-import PropTypes from 'prop-types';
-import { useState } from 'react';
-import { ToastContainer, toast } from 'react-toastify';
-import 'react-toastify/dist/ReactToastify.css';
+import "../../css/Main.css";
+import PropTypes from "prop-types";
+import { useState } from "react";
+import { ToastContainer, toast } from "react-toastify";
+import "react-toastify/dist/ReactToastify.css";
function ContactUs(props) {
const [isSubmitting, setIsSubmitting] = useState(false);
- const [email, setEmail] = useState('');
- const [name, setName] = useState('');
- const [message, setMessage] = useState('');
- const VITE_SERVER_PORT = import.meta.env.VITE_SERVER_PORT || 'https://bitbox-uxbo.onrender.com';
-
+ const [email, setEmail] = useState("");
+ const [name, setName] = useState("");
+ const [message, setMessage] = useState("");
+ const VITE_SERVER_PORT =
+ import.meta.env.VITE_SERVER_PORT || "https://bitbox-uxbo.onrender.com";
const handleSubmit = async (e) => {
e.preventDefault();
@@ -39,62 +39,101 @@ function ContactUs(props) {
return;
}
-
try {
- const response = await fetch(`${VITE_SERVER_PORT}/api/contact/submitContactForm`, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify({ name, email, message }),
- });
+ const response = await fetch(
+ `${VITE_SERVER_PORT}/api/contact/submitContactForm`,
+ {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({ name, email, message }),
+ }
+ );
const result = await response.json();
// Check if the request was successful
if (response.ok) {
- toast.success('Message Sent Successfully!');
- setName('');
- setEmail('');
- setMessage('');
+ toast.success("Message Sent Successfully!");
+ setName("");
+ setEmail("");
+ setMessage("");
} else {
- toast.error(result.message || 'Error in submission!');
+ toast.error(result.message || "Error in submission!");
}
} catch (error) {
// Handle network or other fetch-related errors
- toast.error('Something went wrong. Please try again.');
+ toast.error("Something went wrong. Please try again.");
} finally {
// Reset the submitting state regardless of the outcome
setIsSubmitting(false);
}
};
-
return (
-
Contact Us
-
diff --git a/client/src/component/Footers/Feedback.jsx b/client/src/component/Footers/Feedback.jsx
index d706813..e4a399a 100644
--- a/client/src/component/Footers/Feedback.jsx
+++ b/client/src/component/Footers/Feedback.jsx
@@ -1,12 +1,13 @@
-import PropTypes from 'prop-types';
-import { useState } from 'react';
-import { ToastContainer, toast } from 'react-toastify';
-import 'react-toastify/dist/ReactToastify.css';
+// import PropTypes from "prop-types";
+import { useState } from "react";
+import { ToastContainer, toast } from "react-toastify";
+import "react-toastify/dist/ReactToastify.css";
-function Feedback(props) {
+function Feedback() {
const [isSubmitting, setIsSubmitting] = useState(false);
const [rating, setRating] = useState(0); // State to manage rating
- const VITE_SERVER_PORT = import.meta.env.VITE_SERVER_PORT || 'https://bitbox-uxbo.onrender.com';
+ const VITE_SERVER_PORT =
+ import.meta.env.VITE_SERVER_PORT || "https://bitbox-uxbo.onrender.com";
const handleRatingChange = (value) => {
setRating(value); // Update the rating state
@@ -25,79 +26,145 @@ function Feedback(props) {
const formValues = Object.fromEntries(formData.entries()); // Convert form data to an object
try {
- const response = await fetch(`${VITE_SERVER_PORT}/api/feedback/submitFeedback`, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify(formValues),
- });
+ const response = await fetch(
+ `${VITE_SERVER_PORT}/api/feedback/submitFeedback`,
+ {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify(formValues),
+ }
+ );
const result = await response.json();
// Check if the request was successful
- if (response.status === 200) { // Updated to check response status properly
- toast.success('Feedback Sent Successfully!');
- setIsSubmitting(false)
+ if (response.status === 200) {
+ // Updated to check response status properly
+ toast.success("Feedback Sent Successfully!");
+ setIsSubmitting(false);
} else {
- toast.error(result.message || 'Error in submission!');
+ toast.error(result.message || "Error in submission!");
}
} catch (error) {
// Handle network or other fetch-related errors
- toast.error('Something went wrong. Please try again.');
+ toast.error("Something went wrong. Please try again.");
} finally {
// Reset the submitting state regardless of the outcome
setIsSubmitting(false);
}
};
-
-
return (
-
+ backdropFilter: "blur(10px)",
+ backgroundColor: "rgba(255, 255, 255, 0.85)", // Frosted glass effect
+ border: "1px solid rgba(255, 255, 255, 0.2)",
+ boxShadow: "0 4px 15px rgba(0, 0, 0, 0.2)",
+ }}
+ >
-
We Value Your Feedback
-
-
+
+ We Value Your Feedback
+
+
{/* Name and Email Fields */}
{/* Subject or Topic and Date of Visit Fields */}
{/* Device Used and Priority Level */}
- Device Used:
-
+
+ Device Used:
+
+
Desktop
Tablet
Mobile
@@ -105,8 +172,18 @@ function Feedback(props) {
-
Priority Level:
-
+
+ Priority Level:
+
+
Low
Medium
High
@@ -116,19 +193,48 @@ function Feedback(props) {
{/* Suggestions for Improvement */}
- Suggestions for Improvement:
-
+
+ Suggestions for Improvement:
+
+
{/* Feedback Text */}
- Feedback:
-
+
+ Feedback:
+
+
{/* Rating System */}
-
Rating (1-10):
+
+ Rating (1-10):
+
{Array.from({ length: 10 }, (_, index) => (
@@ -137,7 +243,11 @@ function Feedback(props) {
type="button"
onClick={() => handleRatingChange(index + 1)}
className={`flex items-center justify-center w-12 h-12 rounded-full transition duration-300 focus:outline-none
- ${rating === index + 1 ? 'bg-indigo-600 text-white transform scale-110' : 'bg-gray-300 text-gray-600 hover:bg-indigo-500 hover:text-white'}
+ ${
+ rating === index + 1
+ ? "bg-indigo-600 text-white transform scale-110"
+ : "bg-gray-300 text-gray-600 hover:bg-indigo-500 hover:text-white"
+ }
shadow-md hover:shadow-lg`}
>
{index + 1}
@@ -149,20 +259,21 @@ function Feedback(props) {
{/* Submit Button */}
-
- {isSubmitting ? 'Submitting...' : 'Submit'}
+
+ {isSubmitting ? "Submitting..." : "Submit"}
-
-
-
);
}
-Feedback.propTypes = {
- showAlert: PropTypes.func,
- mode: PropTypes.string,
-};
+// Feedback.propTypes = {
+// showAlert: PropTypes.func,
+// mode: PropTypes.string,
+// };
export default Feedback;
diff --git a/client/src/component/Footers/Privacypolicy.jsx b/client/src/component/Footers/Privacypolicy.jsx
index 8162943..7947266 100644
--- a/client/src/component/Footers/Privacypolicy.jsx
+++ b/client/src/component/Footers/Privacypolicy.jsx
@@ -1,33 +1,38 @@
-import '../../css/Main.css';
-import PropTypes from 'prop-types';
+import "../../css/Main.css";
+import PropTypes from "prop-types";
-export default function PrivacyPolicy() {
+export default function PrivacyPolicy(props) {
const VITE_CLIENT_PORT = import.meta.env.VITE_CLIENT_PORT;
return (
-
-
+
Privacy Policy
@@ -41,35 +46,44 @@ export default function PrivacyPolicy() {
you.
-
+
Interpretation
- Words with capitalized initials have meanings defined under the following
- conditions. These definitions shall apply whether they appear in singular
- or plural.
+ Words with capitalized initials have meanings defined under the
+ following conditions. These definitions shall apply whether they
+ appear in singular or plural.
-
+
Definitions
- Account: A unique account created for you to access
- our Service or parts of our Service.
+ Account: A unique account created for you to
+ access our Service or parts of our Service.
- Company: Refers to BitBox (also referred to as "the
- Company", "We", "Us", or "Our").
+ Company: Refers to BitBox (also referred to as
+ "the Company", "We", "Us", or "Our").
- Cookies: Small files placed on your device (computer,
- mobile, or tablet) that store details of your browsing history.
+ Cookies: Small files placed on your device
+ (computer, mobile, or tablet) that store details of your browsing
+ history.
- Device: Any device that can access the Service, such
- as a computer, cellphone, or tablet.
+ Device: Any device that can access the Service,
+ such as a computer, cellphone, or tablet.
Personal Data: Information that relates to an
@@ -79,15 +93,15 @@ export default function PrivacyPolicy() {
Service: Refers to the Website.
- Service Provider: Any person or company who processes
- data on behalf of the Company.
+ Service Provider: Any person or company who
+ processes data on behalf of the Company.
- Usage Data: Data collected automatically (such as the
- duration of a page visit).
+ Usage Data: Data collected automatically (such as
+ the duration of a page visit).
- Website: Refers to BitBox, accessible from{' '}
+ Website: Refers to BitBox, accessible from{" "}
- You: The individual using the Service, or the company
- represented by that individual.
+ You: The individual using the Service, or the
+ company represented by that individual.
-
+
Collecting and Using Your Personal Data
-
+
Types of Data Collected
-
+
Personal Data
- We may ask you to provide personally identifiable information to contact
- or identify you, including:
+ We may ask you to provide personally identifiable information to
+ contact or identify you, including:
Email address
@@ -139,8 +165,8 @@ export default function PrivacyPolicy() {
We use cookies and similar tracking technologies (beacons, tags, and
- scripts) to collect and analyze information to improve our Service. The
- types of tracking we use include:
+ scripts) to collect and analyze information to improve our Service.
+ The types of tracking we use include:
@@ -154,13 +180,17 @@ export default function PrivacyPolicy() {
-
-
-
);
}
PrivacyPolicy.propTypes = {
VITE_CLIENT_PORT: PropTypes.string,
};
+
+// Props Validation
+PrivacyPolicy.propTypes = {
+ mode: PropTypes.string,
+ toggleMode: PropTypes.func,
+ showAlert: PropTypes.func,
+};
diff --git a/client/src/css/Contributers.css b/client/src/css/Contributers.css
index 615f01e..b873865 100644
--- a/client/src/css/Contributers.css
+++ b/client/src/css/Contributers.css
@@ -1,3 +1,8 @@
+/* Add this to your CSS */
+.contributor-card:hover {
+ box-shadow: 1px 1px 12px 4px blue !important;
+}
+
.card {
width: 280px;
height: 280px;
@@ -175,4 +180,4 @@
.card:hover .profile-pic svg {
transform: scale(2.5);
transition: all 0.5s ease-in-out 0.5s;
-}
\ No newline at end of file
+}
diff --git a/client/src/css/Faq.css b/client/src/css/Faq.css
index 0e92737..5a841f7 100644
--- a/client/src/css/Faq.css
+++ b/client/src/css/Faq.css
@@ -1,72 +1,98 @@
+/* Container for the FAQ section */
.faq-container {
- max-width: 700px;
- margin: 40px auto;
- padding: 30px;
- background-color: #ffffff;
- border-radius: 12px;
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
- }
-
- h2 {
- margin-top: 60px;
- text-align: center;
- color: #333;
- margin-bottom: 30px;
- font-size: 2rem;
- font-family: 'Arial', sans-serif;
- }
-
- .faq-list {
- display: flex;
- flex-direction: column;
- gap: 15px;
- }
-
- .faq-card {
- background-color: #f7f7f7;
- border-radius: 8px;
- padding: 15px 20px;
- transition: background-color 0.3s ease, transform 0.3s ease;
- border-left: 4px solid #01356d;
- box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
- }
- .view-more {
- margin-top: 1rem;
- padding: 10px 20px;
- background-color: #003064; /* Bootstrap primary color */
- color: white;
- border: none;
- border-radius: 5px;
- cursor: pointer;
- transition: background-color 0.3s;
-
- }
-
- .view-more:hover {
- background-color: #054486; /* Darker shade on hover */
- }
-
- .faq-card:hover {
- background-color: #f5faff;
- transform: translateY(-3px);
- }
-
- .faq-question {
- cursor: pointer;
- font-size: 1.1em;
- color: #003a77;
- margin: 0;
- font-family: 'Arial', sans-serif;
- }
-
- .faq-question:hover {
- color: #0056b3;
- }
-
- .faq-answer {
- margin-top: 10px;
- font-size: 0.95em;
- color: #555;
- line-height: 1.6;
- }
-
\ No newline at end of file
+ display: flex; /* Using Flexbox to create a two-column layout */
+ justify-content: space-between;
+ align-items: flex-start;
+ margin-top: 180px !important;
+ max-width: 1200px;
+ height: 750px;
+ margin: 40px auto;
+ padding: 30px;
+ /* background-color: #ffffff; */
+ border-radius: 12px;
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
+ font-family: Arial, sans-serif;
+}
+
+h1 {
+ margin-top: 30px;
+ font-size: 2rem;
+ margin-right: 40px;
+}
+/* Left side - for image */
+.faq-left {
+ flex: 0 0 460px; /* Width for the image section */
+ display: flex;
+ justify-content: center; /* Center the image horizontally */
+}
+
+/* Image styling */
+.faq-image-container {
+ margin-top: 40px;
+}
+
+.faq-image {
+ width: 100%; /* Makes the image responsive */
+ max-width: 550px; /* Maximum width for the image */
+ height: 550px;
+ margin-left: 50px;
+ /* margin-top: 50px; */
+}
+
+/* Right side - for FAQ list */
+.faq-right {
+ flex: 1; /* Takes up the remaining space */
+ margin-left: 100px; /* Adds space between image and FAQ list */
+ padding: 15px;
+}
+
+/* FAQ List styles */
+.faq-list {
+ list-style: none;
+ padding: 0;
+ /* margin: 0; */
+}
+
+/* Individual FAQ item styling */
+.faq-item {
+ margin-top: 20px;
+ border-bottom: 1px solid #ddd;
+ padding: 15px 0;
+ font-size: 16px;
+ font-weight: bold;
+}
+
+/* Question styling */
+.faq-question {
+ display: flex;
+ justify-content: space-between;
+ cursor: pointer;
+ font-size: 1.1em;
+ color: #003a77;
+ margin: 0;
+ font-family: "Arial", sans-serif;
+}
+
+.faq-question:hover {
+ color: #0056b3;
+}
+
+/* Icon for showing + or - */
+.faq-icon {
+ font-size: 20px;
+}
+
+/* Answer styling */
+.faq-answer {
+ margin-top: 10px;
+ color: #0056b3;
+ font-size: 0.95em;
+ line-height: 1.6;
+}
+
+/* Optional: To make the entire FAQ item more visually engaging on hover */
+/* .faq-item:hover {
+ background-color: #f5faff;
+ transform: translateY(-2px);
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
+} */
diff --git a/client/src/css/Footer.css b/client/src/css/Footer.css
index 5fdb38b..280d666 100644
--- a/client/src/css/Footer.css
+++ b/client/src/css/Footer.css
@@ -18,7 +18,9 @@
padding: 15px;
width: 100vw;
font-weight: 500;
- background-color: var(--bg-color); /* Use CSS variable for easy theme change */
+ background-color: var(
+ --bg-color
+ ); /* Use CSS variable for easy theme change */
transition: background-color 0.3s ease-in-out; /* Smooth transition for theme changes */
}
@@ -48,7 +50,7 @@ h1 {
}
.code {
- color: #0D92F4;
+ color: #0d92f4;
}
p {
@@ -78,7 +80,9 @@ p {
.footer-container .social a:hover {
color: #0d0d0e; /* Hover color for light mode */
- transform: scale(1.1); /* Scale up icons slightly for a more interactive feel */
+ transform: scale(
+ 1.1
+ ); /* Scale up icons slightly for a more interactive feel */
}
/* Dark mode styles */
@@ -185,7 +189,7 @@ nav_ul li {
}
.ft-1 span {
- color: #0D92F4;
+ color: #0d92f4;
}
.ft-1 p {
@@ -207,7 +211,7 @@ nav_ul li {
.footer-icons i {
padding: 0.4rem 0.5rem;
background: #e1e1e1;
- color: #0D92F4;
+ color: #0d92f4;
border-radius: 80%;
}
@@ -217,17 +221,20 @@ nav_ul li {
color: #091057;
}
-.ft-2 ul, .ft-3 ul {
+.ft-2 ul,
+.ft-3 ul {
list-style: none;
padding-left: 0;
}
-.ft-2 ul li, .ft-3 ul li {
+.ft-2 ul li,
+.ft-3 ul li {
padding: 0.35rem 0;
font-weight: 500;
}
-.ft-2 ul a, .ft-3 ul a {
+.ft-2 ul a,
+.ft-3 ul a {
text-decoration: none;
color: #000;
font-size: 1.06rem;
@@ -244,7 +251,7 @@ nav_ul li {
}
.Last-footer {
- background: #0D92F4;
+ background: #0d92f4;
text-align: center;
padding: 1rem 0;
}
@@ -265,7 +272,8 @@ nav_ul li {
font-size: 0.9rem;
}
- .btn1, .btn2 {
+ .btn1,
+ .btn2 {
padding: 0.4rem 1rem;
font-size: 0.9rem;
}
@@ -292,11 +300,13 @@ nav_ul li {
margin-top: 1.5rem;
}
- .ft-2 ul, .ft-3 ul {
+ .ft-2 ul,
+ .ft-3 ul {
text-align: center;
}
- .ft-2 ul a, .ft-3 ul a {
+ .ft-2 ul a,
+ .ft-3 ul a {
font-size: 0.95rem;
}
@@ -320,7 +330,8 @@ nav_ul li {
font-size: 0.85rem;
}
- .btn1, .btn2 {
+ .btn1,
+ .btn2 {
padding: 0.3rem 0.8rem;
font-size: 0.85rem;
}
diff --git a/client/src/css/Main.css b/client/src/css/Main.css
index fe7e682..efd60ce 100644
--- a/client/src/css/Main.css
+++ b/client/src/css/Main.css
@@ -46,7 +46,6 @@ ul {
color: #374151;
}
-
.lists {
padding: 5px;
margin-top: 2rem;
@@ -67,14 +66,20 @@ ul {
/* Contact Us */
.contactus-container {
- margin-top: 100px;
- margin-bottom: 40px;
+ margin-top: 120px;
+ margin-bottom: 60px;
}
.contactus-main-box {
- border: 2px solid #ccc;
- padding: 20px;
+ border: 2px solid #b9b2b2;
+ padding: 40px;
border-radius: 8px;
+
+ max-width: 920px; /* Max width, if needed */
+ height: 500px;
+ padding: 40px;
+ border-radius: 8px;
+ margin: 0 auto; /* Centers the form */
}
.header {
@@ -87,7 +92,7 @@ ul {
background-image: linear-gradient(120deg, #bfbdbd 0%, #e0eaef 100%);
}
-.image-bx {
+.image-box {
width: 60px;
height: 60px;
border-radius: 50%;
@@ -157,6 +162,7 @@ ul {
.privacy-policy-container {
padding-left: 15%;
padding-right: 15%;
+ margin-top: 110px;
}
/* Term of Use */
@@ -183,4 +189,4 @@ ul {
.stars-testimonial {
color: #ffd700 !important;
-}
\ No newline at end of file
+}
diff --git a/client/tailwind.config.js b/client/tailwind.config.js
index 5f7d043..e5f738d 100644
--- a/client/tailwind.config.js
+++ b/client/tailwind.config.js
@@ -1,16 +1,12 @@
/** @type {import('tailwindcss').Config} */
export default {
- content: [
- "./index.html",
- "./src/**/*.{js,ts,jsx,tsx}",
- ],
+ content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
theme: {
extend: {
- colors:{
- "blue-main":"#0000ff",
- }
+ colors: {
+ "blue-main": "#0000ff",
+ },
},
},
plugins: [],
-}
-
+};