diff --git a/src/app/globals.css b/src/app/globals.css index a2dc41e..8c2e814 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -3,6 +3,8 @@ :root { --background: #ffffff; --foreground: #171717; + --foreground-rgb: 23, 23, 23; + --background-rgb: 255, 255, 255; } @theme inline { @@ -12,15 +14,66 @@ --font-mono: var(--font-geist-mono); } -@media (prefers-color-scheme: dark) { - :root { - --background: #0a0a0a; - --foreground: #ededed; - } +.dark { + --background: #0a0a0a; + --foreground: #ededed; + --foreground-rgb: 237, 237, 237; + --background-rgb: 10, 10, 10; } -body { +/* LIGHT MODE BACKGROUND */ + +/* Light mode background change */ +html:not(.dark) { + --hero-bg: linear-gradient( + 135deg, + #f7f9ff 0%, + #eef2ff 45%, + #ffffff 100% + ); +} + +/* Dark mode - Orginal */ +html.dark { + --hero-bg: + radial-gradient( + 1200px circle at 20% 20%, + rgba(88, 101, 242, 0.35), + transparent 60% + ), + radial-gradient( + 1000px circle at 80% 30%, + rgba(168, 85, 247, 0.35), + transparent 60% + ), + linear-gradient( + 180deg, + #020617 0%, + #020617 100% + ); +} + +html { background: var(--background); color: var(--foreground); +} + +body { + background: transparent; + color: inherit; font-family: Arial, Helvetica, sans-serif; } + +/* Override hardcoded text colors */ +.theme-root { + color: var(--foreground); +} + +/* Makes the sections to use theme background colors */ +section, +main, +article, +header +{ + background-color: transparent; +} \ No newline at end of file diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 6b40957..1093920 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -52,7 +52,7 @@ export const viewport: Viewport = { { media: '(prefers-color-scheme: light)', color: '#1f2937' }, { media: '(prefers-color-scheme: dark)', color: '#111827' }, ], - colorScheme: 'dark', + colorScheme: 'light dark', }; export default function RootLayout({ diff --git a/src/components/home/FeaturesSection.tsx b/src/components/home/FeaturesSection.tsx index 5dd6d5e..a4bd28f 100644 --- a/src/components/home/FeaturesSection.tsx +++ b/src/components/home/FeaturesSection.tsx @@ -7,6 +7,7 @@ import { FaTrophy } from 'react-icons/fa'; const FeaturesSection = () => { const [currentIndex, setCurrentIndex] = useState(0); + const [isVisible, setIsVisible] = useState(false); const sectionRef = useRef(null); const intervalRef = useRef(null); @@ -103,7 +104,6 @@ const FeaturesSection = () => { } ]; - const startAutoScroll = useCallback(() => { if (intervalRef.current) { clearInterval(intervalRef.current); @@ -124,6 +124,27 @@ const FeaturesSection = () => { }; }, [startAutoScroll]); + useEffect(() => { + const observer = new IntersectionObserver( + ([entry]) => { + if (entry.isIntersecting) { + setIsVisible(true); + } + }, + { threshold: 0.1 } + ); + + if (sectionRef.current) { + observer.observe(sectionRef.current); + } + + return () => { + if (sectionRef.current) { + observer.unobserve(sectionRef.current); + } + }; + }, []); + const nextSlide = () => { setCurrentIndex((prev) => (prev + 1) % features.length); startAutoScroll(); @@ -140,28 +161,48 @@ const FeaturesSection = () => { }; return ( -
+
{/* Background effects */} -
-
-
+
+
+
-
- - Open Source -
+
+ + + Open Source + +
+
+

- The Future of - + The Future of + Social Browsing

-

+ +

BrowsePing is an{' '} open-source @@ -171,17 +212,19 @@ const FeaturesSection = () => { vibrant social experience

+
{/* Open Source Badge */} -
+
- Community-driven development + Community-driven development
-
- Transparent & extensible -
- MIT Licensed +
+ Transparent & extensible + +
+ MIT Licensed
@@ -194,16 +237,21 @@ const FeaturesSection = () => {
{/* Card */}
{features[(currentIndex - 1 + features.length) % features.length] && (
@@ -211,10 +259,10 @@ const FeaturesSection = () => { {features[(currentIndex - 1 + features.length) % features.length].icon}
-

+

{features[(currentIndex - 1 + features.length) % features.length].title}

-

+

{features[(currentIndex - 1 + features.length) % features.length].description}

@@ -224,12 +272,12 @@ const FeaturesSection = () => { {/* Center Card */}
-
+
{/* Current feature content */}
- + {features[currentIndex].category}
@@ -241,20 +289,20 @@ const FeaturesSection = () => {
-

+

{features[currentIndex].title}

-

+

{features[currentIndex].detailedDescription}

{/* Benefits */}
{features[currentIndex].benefits.map((benefit, idx) => ( -
+
- {benefit} + {benefit}
))}
@@ -277,7 +325,9 @@ const FeaturesSection = () => {
{features[(currentIndex + 1) % features.length] && (
@@ -285,10 +335,10 @@ const FeaturesSection = () => { {features[(currentIndex + 1) % features.length].icon}
-

+

{features[(currentIndex + 1) % features.length].title}

-

+

{features[(currentIndex + 1) % features.length].description}

@@ -297,17 +347,23 @@ const FeaturesSection = () => {
{/* Background decoration */}
-
-
+
+
@@ -319,7 +375,7 @@ const FeaturesSection = () => { onClick={() => goToSlide(index)} className={`w-3 h-3 rounded-full transition-all duration-300 ${index === currentIndex ? `bg-gradient-to-r ${features[currentIndex].gradient} scale-125` - : 'bg-gray-600 hover:bg-gray-500' + : 'bg-[color:rgba(0,0,0,0.25)] hover:bg-[color:rgba(0,0,0,0.4)] dark:bg-gray-600 dark:hover:bg-gray-500' }`} /> ))} @@ -329,12 +385,12 @@ const FeaturesSection = () => { {/* Product Hunt Badge Section */}
-

- +

+ Featured on Product Hunt

-

+

Show your support and help us reach more users by upvoting BrowsePing on Product Hunt!

@@ -347,11 +403,11 @@ const FeaturesSection = () => { className="inline-block hover:scale-105 transition-transform duration-300 group" > BrowsePing - Socialize your presence and make browsing insightful. | Product Hunt
@@ -361,11 +417,13 @@ const FeaturesSection = () => {
-
-
+
+
-
+
{/* Content section */}
@@ -373,15 +431,15 @@ const FeaturesSection = () => {
-

- +

+ Open Source - {' '}Community + Community

-

+

Join developers building the future of social browsing. Contribute and help shape the project.

@@ -402,7 +460,6 @@ const FeaturesSection = () => {
-
); }; diff --git a/src/components/home/HeroSection.tsx b/src/components/home/HeroSection.tsx index 40730d6..f9294a4 100644 --- a/src/components/home/HeroSection.tsx +++ b/src/components/home/HeroSection.tsx @@ -33,17 +33,22 @@ const HeroSection = () => { }, []); return ( -
- {/* Animated gradient background */} -
+
+ {/* Animated gradient background */} +
{/* Grid pattern overlay */}
{
- {/* Badge */} -
-
+{/* Badge */} +
+ + Open Source +
+ Browser Extension +
{/* Main Heading */}

- + Socialize {

{/* Subtitle */} -

+

The{' '} open-source @@ -94,21 +115,22 @@ const HeroSection = () => {

{/* Key Features */} -
- {[ - { icon: FiGithub, text: 'Open Source', color: 'text-green-400' }, - { icon: FiUsers, text: 'Social Presence', color: 'text-blue-400' }, - { icon: FiBarChart, text: 'Analytics', color: 'text-cyan-400' }, - { icon: FiShield, text: 'Privacy First', color: 'text-purple-400' } - ].map((feature, index) => ( -
-
-
- {feature.text} -
- ))} +{[ + { icon: FiGithub, text: 'Open Source', color: 'text-green-500' }, + { icon: FiUsers, text: 'Social Presence', color: 'text-blue-600' }, + { icon: FiBarChart, text: 'Analytics', color: 'text-cyan-600' }, + { icon: FiShield, text: 'Privacy First', color: 'text-purple-500' } +].map((feature, index) => ( +
+
+ +
+ {feature.text} +
+))}
{/* CTA Buttons with browser detection */} @@ -140,7 +162,7 @@ const HeroSection = () => {
@@ -169,7 +191,7 @@ const HeroSection = () => { {/* Browser Support */}
-

Available for all major browsers

+

Available for all major browsers

{allBrowsers.map((browser, index) => (
{ className="flex flex-col items-center space-y-2 group cursor-pointer" style={{ animationDelay: `${index * 0.1}s` }} > -
+
{browser.icon}
- + {browser.name}
diff --git a/src/components/layout/Footer.tsx b/src/components/layout/Footer.tsx index 43cf909..203f4a1 100644 --- a/src/components/layout/Footer.tsx +++ b/src/components/layout/Footer.tsx @@ -7,29 +7,40 @@ const Footer = () => { const currentYear = new Date().getFullYear(); return ( -