+
{/*changed mt-2 to mt-0 to remove gap triggering leave*/}
{services.map((service) => (
{
const drawParticles = () => {
ctx.clearRect(0, 0, canvas.width, canvas.height);
+ const particleColor = getComputedStyle(document.documentElement) //added particle colour
+ .getPropertyValue('--particle')
+ .trim();
+
particles.forEach((particle) => {
ctx.beginPath();
ctx.arc(particle.x, particle.y, particle.size, 0, Math.PI * 2);
- ctx.fillStyle = `hsla(205, 100%, 88%, ${particle.opacity})`;
+ ctx.fillStyle = `hsl(${particleColor} / ${particle.opacity})`;
ctx.fill();
// Update position
diff --git a/src/components/ScrollToTop.tsx b/src/components/ScrollToTop.tsx
new file mode 100644
index 0000000..35a2e82
--- /dev/null
+++ b/src/components/ScrollToTop.tsx
@@ -0,0 +1,12 @@
+import { useEffect } from 'react';
+import { useLocation } from 'react-router-dom';
+//component added to scroll to top of page
+export default function ScrollToTop() {
+ const { pathname } = useLocation();
+
+ useEffect(() => {
+ window.scrollTo(0, 0);
+ }, [pathname]);
+
+ return null;
+}
\ No newline at end of file
diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx
index cdedd4f..86433c7 100644
--- a/src/components/ui/button.tsx
+++ b/src/components/ui/button.tsx
@@ -9,7 +9,7 @@ const buttonVariants = cva(
{
variants: {
variant: {
- default: "bg-primary text-primary-foreground hover:bg-primary/90",
+ default: "bg-primary text-foreground hover:bg-primary/90", //changed text-primary-foreground to text-foreground
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
diff --git a/src/index.css b/src/index.css
index 2e7c4bd..baa54a9 100644
--- a/src/index.css
+++ b/src/index.css
@@ -64,6 +64,8 @@ All colors MUST be HSL.
--sidebar-accent-foreground: 240 5.9% 10%;
--sidebar-border: 220 13% 91%;
--sidebar-ring: 217.2 91.2% 59.8%;
+
+ --particle: 210 100% 18%;
}
.dark {
@@ -114,6 +116,8 @@ All colors MUST be HSL.
--sidebar-accent-foreground: 240 4.8% 95.9%;
--sidebar-border: 240 3.7% 15.9%;
--sidebar-ring: 217.2 91.2% 59.8%;
+
+ --particle: 210 100% 88%; /* added particle colour */
}
}
diff --git a/src/pages/Contact.tsx b/src/pages/Contact.tsx
index 1e33d9c..e29eff9 100644
--- a/src/pages/Contact.tsx
+++ b/src/pages/Contact.tsx
@@ -52,12 +52,12 @@ const Contact = () => {
-
*/}
-
diff --git a/src/pages/Index.tsx b/src/pages/Index.tsx
index 7b4f395..f682f66 100644
--- a/src/pages/Index.tsx
+++ b/src/pages/Index.tsx
@@ -62,13 +62,13 @@ const Index = () => {
{/* Hero Section */}
{/* Floating sparkle effects */}
-
-
-
@@ -78,7 +78,7 @@ const Index = () => {
Precision. Innovation.
-
+ {/*removed css animate-glow-pulse*/}
Open Solutions.
diff --git a/src/pages/Portfolio.tsx b/src/pages/Portfolio.tsx
index cf728d6..c4a5b2f 100644
--- a/src/pages/Portfolio.tsx
+++ b/src/pages/Portfolio.tsx
@@ -79,9 +79,9 @@ const Portfolio = () => {
{/* Hover Icon */}
- */}
{/* Content */}
diff --git a/src/pages/services/AmcSupport.tsx b/src/pages/services/AmcSupport.tsx
index 714aef4..06d0958 100644
--- a/src/pages/services/AmcSupport.tsx
+++ b/src/pages/services/AmcSupport.tsx
@@ -168,7 +168,7 @@ const AmcSupport = () => {
{/* Animated Support Visual */}
-