diff --git a/css/common.css b/css/common.css new file mode 100644 index 0000000..d925181 --- /dev/null +++ b/css/common.css @@ -0,0 +1,256 @@ +/* =================================================== + ===== Global Styles ===== +=================================================== */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; +} + +html { + scroll-behavior: smooth; + /* ✅ smooth scroll */ +} + +body { + background: #f4f4f4; + color: #333; + line-height: 1.6; + transition: background-color 0.6s ease, color 0.6s ease; + scroll-behavior: smooth; +} + +/* Headings */ +h1, +h2, +h3 { + font-weight: 600; + margin-bottom: 1rem; +} + +/* =================================================== + ===== Navbar ===== +=================================================== */ +.navbar { + display: flex; + justify-content: space-between; + align-items: center; + background-color: #333; + padding: 10px 20px; + color: white; + position: fixed; + width: 100%; + top: 0; + z-index: 1000; +} + +.logo { + font-size: 20px; + font-weight: bold; +} + +.nav-links { + list-style: none; + display: flex; + gap: 20px; +} + +.nav-links li a { + text-decoration: none; + color: white; + transition: color 0.3s; +} + +.nav-links li a:hover, +.nav-links li a.active { + color: #ff6347; +} + +/* Hamburger menu */ +.hamburger { + display: none; + font-size: 28px; + cursor: pointer; + user-select: none; + transition: transform 0.3s ease; +} + +.hamburger.active { + transform: rotate(180deg); +} + +@media (max-width: 768px) { + .nav-links { + position: absolute; + top: 60px; + right: 0; + background-color: #333; + flex-direction: column; + width: 200px; + display: none; + padding: 10px; + border-radius: 5px; + } + + .nav-links li { + margin: 10px 0; + } + + .hamburger { + display: block; + } + + .nav-links.active { + display: flex; + } +} + +/* =================================================== + ===== Containers & Animations ===== +=================================================== */ +.container { + width: 85%; + margin: auto; + padding: 3rem 0; +} + +/* Fade-in animation */ +.fade-in { + opacity: 0; + transform: translateY(30px); + animation: fadeInUp 1s forwards; +} + +@keyframes fadeInUp { + to { + opacity: 1; + transform: translateY(0); + } +} + +/* =================================================== + ===== Footer ===== +=================================================== */ +footer { + text-align: center; + padding: 1.2rem; + background: #222; + color: #fff; + margin-top: 2rem; + font-size: 0.9rem; +} + +/* =================================================== + ===== Contact Section ===== +=================================================== */ +#contact { + text-align: center; + background-color: #929599; +} + +body.dark #contact { + background-color: #467db4; + color: #000; +} + +.contact-links a { + display: inline-block; + margin: 10px; + padding: 12px 20px; + background: #ff9800; + color: #fff; + border-radius: 30px; + text-decoration: none; + font-weight: 500; + transition: background 0.3s, transform 0.3s; +} + +.contact-links a:hover { + background: #e68900; + transform: translateY(-3px); +} + +/* =================================================== + ===== Floating Dark Mode Toggle ===== +=================================================== */ +#darkModeToggle { + position: fixed; + bottom: 65px; + right: 20px; + width: 55px; + height: 55px; + border-radius: 50%; + border: none; + background: #000000; + color: #fff; + font-size: 22px; + cursor: pointer; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); + transition: background 0.3s, transform 0.3s; + z-index: 1000; +} + +/* Hover effect */ +#darkModeToggle:hover { + transform: rotate(20deg) scale(1.1); +} + +/* ===== Scroll to Top Button ===== */ +#scrollTopBtn { + position: fixed; + bottom: 65px; + left: 20px; + z-index: 2000; + width: 50px; + height: 50px; + border: none; + outline: none; + background-color: #ff9800; + color: white; + cursor: pointer; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 22px; + box-shadow: 0 0 8px rgba(255, 152, 0, 0.5); + transition: opacity 0.4s, transform 0.3s, background 0.3s, box-shadow 0.3s; + opacity: 0; + pointer-events: none; + animation: pulse 2s infinite ease-in-out; +} + +/* Show when scrolling (with pulse glow) */ +#scrollTopBtn.show { + opacity: 1; + pointer-events: auto; + animation: pulse 2s infinite ease-in-out; +} + +/* Stop pulse on hover and add stronger glow */ +#scrollTopBtn:hover { + background-color: #e68900; + transform: scale(1.1); + animation: none; + /* stop pulsing */ + box-shadow: 0 0 18px rgba(255, 152, 0, 0.8); +} + +/* Pulse animation */ +@keyframes pulse { + 0% { + transform: scale(1); + box-shadow: 0 0 8px rgba(255, 152, 0, 0.4); + } + + 50% { + transform: scale(1.1); + box-shadow: 0 0 16px rgba(255, 152, 0, 0.6); + } + + 100% { + transform: scale(1); + box-shadow: 0 0 8px rgba(255, 152, 0, 0.4); + } +} \ No newline at end of file diff --git a/css/main.css b/css/main.css new file mode 100644 index 0000000..3402554 --- /dev/null +++ b/css/main.css @@ -0,0 +1,215 @@ +/* =================================================== + ===== Hero Section ===== +=================================================== */ +.hero { + background: url('/images/hero.png') no-repeat center/cover; + height: 70vh; + display: flex; + justify-content: center; + align-items: center; + text-align: center; + color: #fff; + position: relative; +} + +.hero::after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.55); +} + +.hero-content { + position: relative; + z-index: 1; + max-width: 800px; + padding: 20px; +} + +.hero h1 { + font-size: 3rem; +} + +.hero p { + font-size: 1.2rem; + margin: 1rem 0; +} + +.hero .btn { + display: inline-block; + padding: 12px 25px; + border-radius: 30px; + background: #ff9800; + color: #fff; + text-decoration: none; + font-weight: bold; + transition: background 0.3s, transform 0.3s; +} + +.hero .btn:hover { + background: #e68900; + transform: translateY(-3px); +} + +/* =================================================== + ===== About Section ===== +=================================================== */ +#about { + /* background: #fff; */ + background-color: #e9ecef; + padding: 3rem 2rem; + border-radius: 12px; + box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1); + text-align: center; +} + +/* =================================================== + ===== Teck Stack Section ===== +=================================================== */ +#tech-stack { + text-align: center; + /* height: 20vh; */ +} + +.tech-stack .btn { + display: inline-block; + padding: 12px 25px; + border-radius: 30px; + background: #ff9800; + color: #fff; + text-decoration: none; + font-weight: bold; + transition: background 0.3s, transform 0.3s; +} + +.tech-stack .btn:hover { + background: #e68900; + transform: translateY(-3px); +} + +/* =================================================== + ===== Skills Section ===== +=================================================== */ +#skills { + text-align: center; + background-color: #dee2e6; +} + +.skills-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); + gap: 1.2rem; +} + +.skill-card { + background: #fff; + padding: 1.5rem; + text-align: center; + border-radius: 12px; + box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1); + transition: transform 0.3s, box-shadow 0.3s; +} + +.skill-card i { + font-size: 2rem; + margin-bottom: 10px; + color: #ff9800; +} + +.skill-card:hover { + transform: translateY(-6px); + box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2); +} + +/* =================================================== + ===== Projects Section ===== +=================================================== */ +#projects { + text-align: center; + background-color: #ced4da; +} + +.projects-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 1.5rem; +} + +.project-card { + background: #fff; + padding: 1.5rem; + border-radius: 12px; + box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1); + transition: transform 0.3s, box-shadow 0.3s; +} + +.project-card:hover { + transform: translateY(-6px); + box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2); +} + +/* =================================================== + ===== Dark Mode ===== +=================================================== */ +body.dark { + background: #181818; + color: #e0e0e0; +} + +body.dark header.navbar { + background: #111; +} + +body.dark nav ul li a { + color: #e0e0e0; +} + +body.dark nav ul li a:hover { + color: #ff9800; +} + +body.dark #about, +body.dark #skills, +body.dark #projects { + background-color: #467db4; + color: #000; +} + +body.dark .skill-card, +body.dark .project-card { + background: #242424; + color: #e0e0e0; +} + +body.dark footer { + background: #111; +} + +body.dark .hero::after { + background: rgba(0, 0, 0, 0.7); +} + +/* ===== Dark Mode Override ===== */ +body.dark #scrollTopBtn { + background-color: #ff9800; + color: #fff; +} + +body.dark #scrollTopBtn:hover { + background-color: #e68900; +} + +/* Dark mode appearance */ +body.dark #darkModeToggle { + background: #00bcd4; + /* Cyan glow in dark mode */ + color: #000; + box-shadow: 0 4px 12px rgba(0, 188, 212, 0.4); +} + +body.dark #darkModeToggle:hover { + background: #3ce8ff; +} \ No newline at end of file diff --git a/mini-services.css b/css/mini-services.css similarity index 100% rename from mini-services.css rename to css/mini-services.css diff --git a/services.css b/css/services.css similarity index 92% rename from services.css rename to css/services.css index 051704c..4320385 100644 --- a/services.css +++ b/css/services.css @@ -182,13 +182,13 @@ body.dark canvas { ===== Dark Mode ===== =================================================== */ body.dark { - background: #181818; - color: #e0e0e0; + background: #181818; + color: #e0e0e0; } -body.dark .service-card{ - background: #181818; - color: #e0e0e0; +body.dark .service-card { + background: #181818; + color: #e0e0e0; } body.dark .service-card:hover { @@ -248,4 +248,20 @@ body.dark .service-card:hover p { 50% { transform: translateY(-5px); } +} + +/* Services Offer Section */ +#services-offer { + text-align: center; + background-color: #ced4da; +} + +/* Live Projects Section */ +#live-projects { + text-align: center; +} + +body.dark #services-offer { + background-color: #467db4; + color: #000; } \ No newline at end of file diff --git a/whatsapp-floating.css b/css/whatsapp-floating.css similarity index 100% rename from whatsapp-floating.css rename to css/whatsapp-floating.css diff --git a/images/hero.png b/images/hero.png new file mode 100644 index 0000000..957f8a2 Binary files /dev/null and b/images/hero.png differ diff --git a/index.html b/index.html index 7975392..46bcb5d 100644 --- a/index.html +++ b/index.html @@ -10,13 +10,15 @@ - - - + + + + + +