Skip to content

Commit a237eb2

Browse files
Merge pull request #17 from Utkarsh-Sorathia/upcoming-design
Add KBar command bar integration, update styles, and enhance blog layout
2 parents f7a21ee + 2594ded commit a237eb2

File tree

16 files changed

+551
-44
lines changed

16 files changed

+551
-44
lines changed

package-lock.json

Lines changed: 141 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"dompurify": "^3.3.1",
3535
"framer-motion": "^12.6.3",
3636
"github-markdown-css": "^5.8.1",
37+
"kbar": "^0.1.0-beta.48",
3738
"lucide-react": "^0.546.0",
3839
"marked": "^17.0.1",
3940
"mongodb": "^6.16.0",

public/og-image.webp

10.5 KB
Loading

src/Components/Home/ContactSection.tsx

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import ResponsiveBox from "../../Components/core/ResponsiveBox";
44
import ConstrainedBox from "../../Components/core/constrained-box";
55
import SectionTitle from "../../Components/common/SectionTitle";
66
import ContactForm from "../UI/ContactForm";
7-
import { MapPin, ArrowRight } from "lucide-react";
8-
import { SiWhatsapp, SiGmail } from "react-icons/si";
7+
import { ArrowRight } from "lucide-react";
8+
import { SiWhatsapp, SiGmail, SiLinkedin } from "react-icons/si";
99
import Link from "next/link";
1010
import { motion } from "framer-motion";
1111

@@ -29,15 +29,34 @@ const ContactSection = ({ id }: { id: string }) => {
2929
viewport={{ once: true }}
3030
className="flex flex-col gap-8 w-full"
3131
>
32-
<div>
33-
<h3 className="text-3xl font-bold text-white mb-4">Let&apos;s Talk</h3>
32+
<div className="pt-8 bg-transparent">
33+
<h3 className="text-2xl font-bold text-zinc-100 mb-4">Let&apos;s Talk</h3>
3434
<p className="text-zinc-400 text-lg leading-relaxed">
3535
I&apos;m always open to discussing new projects, creative ideas, or opportunities to be part of your vision.
3636
</p>
3737
</div>
3838

3939
<div className="space-y-4">
4040
{/* Contact Cards */}
41+
<Link
42+
href="https://www.linkedin.com/in/utkarsh-sorathia-a9292b22a"
43+
target="_blank"
44+
className="flex items-center justify-between p-4 md:p-6 bg-white/5 dark:bg-zinc-900/50 rounded-2xl border border-zinc-100/10 dark:border-zinc-800/50 backdrop-blur-sm group hover:border-[#0077b5]/30 transition-all duration-300"
45+
>
46+
<div className="flex items-center gap-4 md:gap-6 overflow-hidden">
47+
<div className="p-3 md:p-4 bg-blue-100 dark:bg-blue-900/20 rounded-xl text-[#0077b5] shrink-0">
48+
<SiLinkedin className="w-5 h-5 md:w-6 md:h-6" />
49+
</div>
50+
<div className="overflow-hidden">
51+
<p className="text-xs font-bold uppercase tracking-widest text-[#0077b5] mb-1 opacity-80">LinkedIn</p>
52+
<p className="text-white font-semibold truncate">utkarsh-sorathia</p>
53+
</div>
54+
</div>
55+
<div className="flex items-center gap-2 text-xs font-bold uppercase tracking-tighter text-[#0077b5] opacity-0 group-hover:opacity-100 group-hover:translate-x-1 transition-all">
56+
Connect <ArrowRight className="w-4 h-4" />
57+
</div>
58+
</Link>
59+
4160
<Link
4261
href="mailto:utkarshsor03@gmail.com"
4362
className="flex items-center justify-between p-4 md:p-6 bg-white/5 dark:bg-zinc-900/50 rounded-2xl border border-zinc-100/10 dark:border-zinc-800/50 backdrop-blur-sm group hover:border-[#EA4335]/30 transition-all duration-300"
@@ -59,31 +78,21 @@ const ContactSection = ({ id }: { id: string }) => {
5978
<Link
6079
href="https://wa.me/918758453292"
6180
target="_blank"
62-
className="flex items-center justify-between p-4 md:p-6 bg-white/5 dark:bg-zinc-900/50 rounded-2xl border border-zinc-100/10 dark:border-zinc-800/50 backdrop-blur-sm group transition-all duration-300"
81+
className="flex items-center justify-between p-4 md:p-6 bg-white/5 dark:bg-zinc-900/50 rounded-2xl border border-zinc-100/10 dark:border-zinc-800/50 backdrop-blur-sm group hover:border-[#25D366]/30 transition-all duration-300"
6382
>
6483
<div className="flex items-center gap-4 md:gap-6">
6584
<div className="p-3 md:p-4 bg-green-100 dark:bg-green-900/20 rounded-xl text-[#25D366] shrink-0">
6685
<SiWhatsapp className="w-5 h-5 md:w-6 md:h-6" />
6786
</div>
6887
<div>
6988
<p className="text-xs font-bold uppercase tracking-widest text-[#25D366] mb-1 opacity-80">WhatsApp</p>
70-
<p className="text-white font-semibold">+91 8758453292</p>
89+
<p className="text-white font-semibold">Utkarsh Sorathia</p>
7190
</div>
7291
</div>
7392
<div className="flex items-center gap-2 text-xs font-bold uppercase tracking-tighter text-[#25D366] opacity-0 group-hover:opacity-100 group-hover:translate-x-1 transition-all">
7493
Chat Now <ArrowRight className="w-4 h-4" />
7594
</div>
7695
</Link>
77-
78-
<div className="flex items-center gap-4 md:gap-6 p-4 md:p-6 bg-white/5 dark:bg-zinc-900/50 rounded-2xl shadow-sm border border-zinc-100/10 dark:border-zinc-800/50 backdrop-blur-sm">
79-
<div className="p-3 md:p-4 bg-purple-100 dark:bg-purple-900/30 rounded-xl text-purple-600 dark:text-purple-400 shrink-0">
80-
<MapPin className="w-5 h-5 md:w-6 md:h-6" />
81-
</div>
82-
<div>
83-
<p className="text-xs font-bold uppercase tracking-widest text-purple-400 mb-1 opacity-80">Location</p>
84-
<p className="text-white font-semibold">Surat, Gujarat, India</p>
85-
</div>
86-
</div>
8796
</div>
8897
</motion.div>
8998

src/Components/Home/ProjectSection.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import projects from "@/data/projects";
77
const ProjectSection = ({ id }: { id: string }) => {
88
return (
99
<ResponsiveBox
10-
classNames="dark:bg-[var(--bgColor)] bg-[var(--bgColor)] dark:bg-grid-white/[0.1] bg-grid-white/[0.1] items-center justify-center lg:px-40"
10+
classNames="dark:bg-[var(--bgColor)] bg-[var(--bgColor)] dark:bg-grid-white/[0.1] bg-grid-white/[0.1] items-center justify-center lg:px-40 scroll-mt-8 lg:scroll-mt-24"
1111
id={id}
1212
>
1313
<ConstrainedBox classNames="px-4 py-12 lg:py-16">

src/Components/Home/SkillSection.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import skills from "../../data/skills";
88
const SkillSection = ({ id }: { id: string }) => {
99
return (
1010
<ResponsiveBox
11-
classNames="dark:bg-[var(--dialogColor)] bg-[var(--dialogColor)] items-center justify-center dark:bg-dot-white/[0.15] bg-dot-white/[0.15] lg:px-40"
11+
classNames="dark:bg-[var(--dialogColor)] bg-[var(--dialogColor)] items-center justify-center dark:bg-dot-white/[0.15] bg-dot-white/[0.15] lg:px-40 scroll-mt-8 lg:scroll-mt-24"
1212
id={id}
1313
>
1414
<ConstrainedBox classNames="px-4 py-12">
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
'use client';
2+
3+
import { useKBar } from 'kbar';
4+
import { motion } from 'framer-motion';
5+
import { Command } from 'lucide-react';
6+
import { useEffect, useState } from 'react';
7+
8+
const CommandBarTrigger = () => {
9+
const { query } = useKBar();
10+
const [isMac, setIsMac] = useState(false);
11+
12+
useEffect(() => {
13+
setIsMac(navigator.platform.toUpperCase().indexOf('MAC') >= 0);
14+
}, []);
15+
16+
return (
17+
<motion.div
18+
initial={{ opacity: 0, scale: 0.8, y: -20 }}
19+
animate={{ opacity: 1, scale: 1, y: 0 }}
20+
transition={{ duration: 0.2, ease: "easeOut" }}
21+
style={{ willChange: 'transform, opacity' }}
22+
className="hidden sm:fixed sm:block top-4 right-[160px] md:right-[210px] lg:right-[230px] z-[4999]"
23+
>
24+
<motion.button
25+
onClick={() => query.toggle()}
26+
whileTap={{ scale: 0.95 }}
27+
className="border border-white/[0.25] rounded-full bg-[var(--dialogColor50)] backdrop-blur-sm shadow-[0px_2px_3px_-1px_rgba(0,0,0,0.1),0px_1px_0px_0px_rgba(25,28,33,0.02),0px_0px_0px_1px_rgba(25,28,33,0.08)] px-5 md:px-6 py-3 flex items-center gap-2 sm:gap-3 cursor-pointer transition-all duration-250 group hover:border-[var(--primaryColor)]"
28+
>
29+
<Command className="w-5 h-5 text-zinc-100 transition-colors duration-300 group-hover:text-[var(--primaryColor)]" />
30+
<span className="text-[var(--textColor)] font-semibold text-sm md:text-base transition-colors duration-300 group-hover:text-[var(--primaryColor)]">
31+
Search
32+
</span>
33+
<div className="hidden md:flex items-center gap-1.5 ml-1 opacity-60 group-hover:opacity-100 transition-opacity">
34+
<kbd className="bg-zinc-800/50 px-1.5 py-1 rounded border border-white/10 text-[10px] text-zinc-400 font-bold">
35+
{isMac ? '⌘' : 'Ctrl'}
36+
</kbd>
37+
<kbd className="bg-zinc-800/50 px-1.5 py-1 rounded border border-white/10 text-[10px] text-zinc-400 font-bold">
38+
K
39+
</kbd>
40+
</div>
41+
</motion.button>
42+
</motion.div>
43+
);
44+
};
45+
46+
export default CommandBarTrigger;

0 commit comments

Comments
 (0)