Merge version_6_1776679542844 into main #5

Merged
bender merged 1 commits from version_6_1776679542844 into main 2026-04-20 10:07:02 +00:00
4 changed files with 68 additions and 4 deletions

View File

@@ -11,6 +11,7 @@ import TestimonialRatingCards from '@/components/sections/testimonial/Testimonia
import { Droplets, Flame, Wrench } from "lucide-react";
import { useEffect } from "react";
import { applyRippleEffect } from "@/hooks/useButtonClick";
import AnimatedBackground from "@/components/ui/AnimatedBackground";
export default function App() {
useEffect(() => {
@@ -22,6 +23,7 @@ export default function App() {
return (
<div className="app-container relative z-10 isolate">
<AnimatedBackground />
<div id="nav" data-section="nav">
<NavbarCentered
logo={<img src="/logo.png" alt="Apex Plumbing" className="h-8 w-auto" />}

View File

@@ -0,0 +1,11 @@
const AnimatedBackground = () => {
return (
<>
<div className="stars"></div>
<div className="stars2"></div>
<div className="stars3"></div>
</>
);
};
export default AnimatedBackground;

View File

@@ -5,7 +5,7 @@
:root {
/* @colorThemes/lightTheme/grayBlueAccent */
--background: #f5faff;
--background: #000000;
--card: #f1f8ff;
--foreground: #001122;
--primary-cta: #15479c;
@@ -140,9 +140,7 @@ body {
min-height: 100vh;
overscroll-behavior: none;
overscroll-behavior-y: none;
background: linear-gradient(60deg, var(--background) 0%, var(--background-accent) 50%, var(--background) 100%);
background-size: 200% 200%;
animation: moveGradient 15s ease infinite;
background: var(--background);
}
.app-container {

View File

@@ -215,3 +215,56 @@
background-position: 0% 50%;
}
}
@keyframes animStar {
from {
transform: translateY(0px);
}
to {
transform: translateY(-2000px);
}
}
.stars, .stars2, .stars3 {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 100%;
height: 100%;
display: block;
}
.stars {
background-image: radial-gradient(2px 2px at 20px 30px, #eee, rgba(0,0,0,0)),
radial-gradient(2px 2px at 40px 70px, #fff, rgba(0,0,0,0)),
radial-gradient(2px 2px at 50px 160px, #ddd, rgba(0,0,0,0)),
radial-gradient(2px 2px at 90px 40px, #fff, rgba(0,0,0,0)),
radial-gradient(2px 2px at 130px 80px, #fff, rgba(0,0,0,0)),
radial-gradient(2px 2px at 160px 120px, #ddd, rgba(0,0,0,0));
background-repeat: repeat;
background-size: 200px 200px;
animation: animStar 50s linear infinite;
z-index: -3;
}
.stars2 {
background-image: radial-gradient(1px 1px at 10px 20px, #fff, rgba(0,0,0,0)),
radial-gradient(1px 1px at 80px 60px, #ddd, rgba(0,0,0,0)),
radial-gradient(1px 1px at 120px 140px, #fff, rgba(0,0,0,0));
background-repeat: repeat;
background-size: 300px 300px;
animation: animStar 100s linear infinite;
z-index: -2;
}
.stars3 {
background-image: radial-gradient(3px 3px at 50px 50px, #fff, rgba(0,0,0,0)),
radial-gradient(3px 3px at 100px 100px, #ddd, rgba(0,0,0,0)),
radial-gradient(3px 3px at 150px 150px, #fff, rgba(0,0,0,0));
background-repeat: repeat;
background-size: 400px 400px;
animation: animStar 150s linear infinite;
z-index: -1;
}