refactor:change the card UI expertise section
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
import { Toaster } from "@/components/ui/toaster";
|
||||
import { Toaster as Sonner } from "@/components/ui/sonner";
|
||||
import { TooltipProvider } from "@/components/ui/tooltip";
|
||||
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
||||
import { BrowserRouter, Routes, Route, useLocation } from "react-router-dom";
|
||||
import { ThemeProvider } from "@/contexts/ThemeContext";
|
||||
import { AnimatePresence } from "framer-motion";
|
||||
|
||||
@@ -30,7 +30,7 @@ export default function HeroSection() {
|
||||
className="relative min-h-screen flex items-center justify-center overflow-hidden pt-20"
|
||||
>
|
||||
{/* Animated gradient background */}
|
||||
<div className="absolute inset-0 gradient-primary-animated opacity-20" />
|
||||
<div className="absolute inset-0 gradient-primary-animated opacity-10" />
|
||||
|
||||
{/* Particle dots */}
|
||||
<div className="absolute inset-0 overflow-hidden">
|
||||
|
||||
@@ -4,15 +4,16 @@ import { useTheme } from "@/contexts/ThemeContext";
|
||||
import { AnimatePresence, motion } from "framer-motion";
|
||||
import { Menu, Moon, Sun, X } from "lucide-react";
|
||||
import { useEffect, useState } from "react";
|
||||
import { Link } from "react-router-dom";
|
||||
import ContactModal from "./ContactModal";
|
||||
|
||||
const navItems = [
|
||||
{ name: "Home", href: "#home" },
|
||||
{ name: "Services", href: "#services" },
|
||||
{ name: "Projects", href: "#projects" },
|
||||
{ name: "Team", href: "#team" },
|
||||
{ name: "About", href: "#about" },
|
||||
{ name: "Contact", href: "#contact" },
|
||||
{ name: "Home", href: "/#home" },
|
||||
{ name: "Services", href: "/#services" },
|
||||
{ name: "Projects", href: "/#projects" },
|
||||
{ name: "Team", href: "/#team" },
|
||||
{ name: "About", href: "/#about" },
|
||||
{ name: "Contact", href: "/#contact" },
|
||||
];
|
||||
|
||||
const accentColors = [
|
||||
@@ -59,14 +60,9 @@ export default function Navbar() {
|
||||
>
|
||||
<div className="container mx-auto px-4 flex items-center justify-between">
|
||||
{/* Logo */}
|
||||
<motion.a
|
||||
href="#home"
|
||||
className="flex items-center gap-2"
|
||||
whileHover={{ scale: 1.05 }}
|
||||
whileTap={{ scale: 0.95 }}
|
||||
>
|
||||
<Link to="#home" className="flex items-center gap-2">
|
||||
<img src={logo} alt="TechZaa" className="h-16 w-auto" />
|
||||
</motion.a>
|
||||
</Link>
|
||||
|
||||
{/* Desktop Navigation */}
|
||||
<div className="hidden lg:flex items-center gap-8">
|
||||
|
||||
@@ -1,44 +1,48 @@
|
||||
import { useRef } from 'react';
|
||||
import { motion, useInView } from 'framer-motion';
|
||||
import { Globe, Smartphone, Brain, Cloud } from 'lucide-react';
|
||||
import { motion, useInView } from "framer-motion";
|
||||
import { Brain, Cloud, Globe, Smartphone } from "lucide-react";
|
||||
import { useRef } from "react";
|
||||
|
||||
const services = [
|
||||
{
|
||||
icon: Globe,
|
||||
title: 'Web Development',
|
||||
description: 'Custom web applications built with cutting-edge technologies. From stunning landing pages to complex enterprise solutions.',
|
||||
color: 'neon-blue',
|
||||
title: "Web Development",
|
||||
description:
|
||||
"Custom web applications built with cutting-edge technologies. From stunning landing pages to complex enterprise solutions.",
|
||||
color: "primary",
|
||||
},
|
||||
{
|
||||
icon: Smartphone,
|
||||
title: 'Mobile App Development',
|
||||
description: 'Native and cross-platform mobile apps that deliver exceptional user experiences on iOS and Android.',
|
||||
color: 'neon-purple',
|
||||
title: "Mobile App Development",
|
||||
description:
|
||||
"Native and cross-platform mobile apps that deliver exceptional user experiences on iOS and Android.",
|
||||
color: "primary",
|
||||
},
|
||||
{
|
||||
icon: Brain,
|
||||
title: 'AI Solutions',
|
||||
description: 'Intelligent automation and machine learning solutions that transform data into actionable insights.',
|
||||
color: 'neon-green',
|
||||
title: "AI Solutions",
|
||||
description:
|
||||
"Intelligent automation and machine learning solutions that transform data into actionable insights.",
|
||||
color: "primary",
|
||||
},
|
||||
{
|
||||
icon: Cloud,
|
||||
title: 'Cloud Solutions',
|
||||
description: 'Scalable cloud infrastructure and DevOps practices that ensure your applications run smoothly at any scale.',
|
||||
color: 'neon-blue',
|
||||
title: "Cloud Solutions",
|
||||
description:
|
||||
"Scalable cloud infrastructure and DevOps practices that ensure your applications run smoothly at any scale.",
|
||||
color: "primary",
|
||||
},
|
||||
];
|
||||
|
||||
export default function ServicesSection() {
|
||||
const ref = useRef<HTMLElement>(null);
|
||||
const isInView = useInView(ref, { once: true, margin: '-100px' });
|
||||
const isInView = useInView(ref, { once: true, margin: "-100px" });
|
||||
|
||||
return (
|
||||
<section id="services" ref={ref} className="py-24 relative overflow-hidden">
|
||||
{/* Background decoration */}
|
||||
<div className="absolute inset-0 opacity-30">
|
||||
<div className="absolute top-1/2 left-0 w-96 h-96 bg-primary/10 rounded-full blur-[150px]" />
|
||||
<div className="absolute bottom-0 right-0 w-80 h-80 bg-neon-purple/10 rounded-full blur-[120px]" />
|
||||
<div className="absolute bottom-1/2 left-0 w-96 h-96 bg-primary rounded-full blur-[200px]" />
|
||||
<div className="absolute bottom-0 right-0 w-80 h-80 bg-primary rounded-full blur-[200px]" />
|
||||
</div>
|
||||
|
||||
<div className="container mx-auto px-4 relative z-10">
|
||||
@@ -56,8 +60,8 @@ export default function ServicesSection() {
|
||||
What We <span className="text-primary neon-text-glow">Do</span>
|
||||
</h2>
|
||||
<p className="text-muted-foreground max-w-2xl mx-auto text-lg">
|
||||
We deliver comprehensive technology solutions that empower businesses
|
||||
to thrive in the digital age.
|
||||
We deliver comprehensive technology solutions that empower
|
||||
businesses to thrive in the digital age.
|
||||
</p>
|
||||
</motion.div>
|
||||
|
||||
@@ -73,7 +77,7 @@ export default function ServicesSection() {
|
||||
className="group relative"
|
||||
>
|
||||
{/* Card */}
|
||||
<div className="relative h-full p-6 rounded-2xl glass border border-border/50 hover:border-primary/50 transition-all duration-300 overflow-hidden">
|
||||
<div className="relative h-full p-6 rounded-2xl bg-primary/5 transition-all duration-300 overflow-hidden">
|
||||
{/* Glow effect on hover */}
|
||||
<div className="absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity duration-500">
|
||||
<div className="absolute inset-0 bg-gradient-to-br from-primary/10 to-transparent" />
|
||||
|
||||
+7
-2
@@ -2,7 +2,12 @@ import type { Config } from "tailwindcss";
|
||||
|
||||
export default {
|
||||
darkMode: ["class"],
|
||||
content: ["./pages/**/*.{ts,tsx}", "./components/**/*.{ts,tsx}", "./app/**/*.{ts,tsx}", "./src/**/*.{ts,tsx}"],
|
||||
content: [
|
||||
"./pages/**/*.{ts,tsx}",
|
||||
"./components/**/*.{ts,tsx}",
|
||||
"./app/**/*.{ts,tsx}",
|
||||
"./src/**/*.{ts,tsx}",
|
||||
],
|
||||
prefix: "",
|
||||
theme: {
|
||||
container: {
|
||||
@@ -115,7 +120,7 @@ export default {
|
||||
},
|
||||
fontFamily: {
|
||||
sans: ["Inter", "system-ui", "sans-serif"],
|
||||
display: ["Inter", "system-ui", "sans-serif"],
|
||||
display: ["Space Grotesk", "Inter", "sans-serif"],
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
"noImplicitAny": false,
|
||||
"noFallthroughCasesInSwitch": false,
|
||||
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"@/*": ["./src/*"]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user