Skip to content

Commit c8ca310

Browse files
committed
Hero Updated
1 parent 7bed239 commit c8ca310

4 files changed

Lines changed: 44 additions & 38 deletions

File tree

components/Contact.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ export default function Contact() {
125125
data-hover
126126
className="flex items-center gap-2 px-5 py-3 rounded-full bg-accent text-bg font-semibold hover:opacity-90 transition"
127127
>
128-
<FiDownload size={16} /> Download Resume
128+
<FiDownload size={16} className="animate-bob" /> Download Resume
129129
</a>
130130
)}
131131
</div>

components/Hero.jsx

Lines changed: 33 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {
66
} from "react-icons/fa6";
77
import { profile, stats } from "@/data/portfolio";
88

9-
/* icon map for the stats strip */
109
function statIcon(key) {
1110
const map = {
1211
rocket: FaRocket,
@@ -111,7 +110,7 @@ export default function Hero() {
111110
{profile.resumeUrl && (
112111
<a href={profile.resumeUrl} target="_blank" rel="noopener noreferrer" download="Krishna_Andhe_CV.pdf" data-hover
113112
className="px-6 py-3 rounded-full border border-accent text-accent font-semibold flex items-center gap-2 hover:bg-accent hover:text-bg transition">
114-
<FiDownload size={18} /> Résumé
113+
<FiDownload size={18} className="animate-bob" /> Résumé
115114
</a>
116115
)}
117116
</motion.div>
@@ -133,45 +132,45 @@ export default function Hero() {
133132
</motion.div>
134133
</div>
135134

136-
{/* ---------- STATS STRIP (full width, bordered, dividers) ---------- */}
135+
{/* ---------- STATS STRIP ----------
136+
MOBILE : 2-column grid (wraps, no horizontal scroll)
137+
TABLET : 3-column grid
138+
DESKTOP : single row with vertical dividers */}
137139
<motion.div
138140
initial={{ opacity: 0, y: 24 }}
139141
animate={{ opacity: 1, y: 0 }}
140142
transition={{ duration: 0.6, delay: 0.6 }}
141-
className="mt-14 glass rounded-2xl px-2 sm:px-4 py-5 sm:py-6"
143+
className="mt-14 glass rounded-2xl px-3 sm:px-4 py-5 sm:py-6"
142144
>
143-
<div className="overflow-x-auto no-scrollbar">
144-
<ul className="flex items-center min-w-max sm:min-w-0">
145-
{stats.map((s, i) => {
146-
const Icon = statIcon(s.icon);
147-
return (
148-
<li
149-
key={s.label}
150-
className={`flex-1 flex items-center gap-3 sm:gap-4 px-4 sm:px-6 ${
151-
i < stats.length - 1 ? "border-r border-line/70" : ""
152-
}`}
145+
<ul className="grid grid-cols-2 sm:grid-cols-3 lg:flex lg:items-center gap-y-5 gap-x-2">
146+
{stats.map((s, i) => {
147+
const Icon = statIcon(s.icon);
148+
return (
149+
<li
150+
key={s.label}
151+
className={`flex items-center gap-3 px-2 sm:px-3 lg:px-6 lg:flex-1
152+
${i < stats.length - 1 ? "lg:border-r lg:border-line/70" : ""}`}
153+
>
154+
<motion.span
155+
initial={{ scale: 0.6, opacity: 0 }}
156+
animate={{ scale: 1, opacity: 1 }}
157+
transition={{ delay: 0.7 + i * 0.08, type: "spring", stiffness: 220, damping: 14 }}
158+
className="shrink-0 text-accent"
153159
>
154-
<motion.span
155-
initial={{ scale: 0.6, opacity: 0 }}
156-
animate={{ scale: 1, opacity: 1 }}
157-
transition={{ delay: 0.7 + i * 0.08, type: "spring", stiffness: 220, damping: 14 }}
158-
className="shrink-0 text-accent"
159-
>
160-
<Icon size={26} />
161-
</motion.span>
162-
<span className="min-w-0">
163-
<span className="block text-2xl sm:text-3xl font-extrabold leading-none">
164-
{s.value}
165-
</span>
166-
<span className="block text-[11px] sm:text-xs text-muted mt-1 whitespace-nowrap">
167-
{s.label}
168-
</span>
160+
<Icon size={24} />
161+
</motion.span>
162+
<span className="min-w-0">
163+
<span className="block text-2xl sm:text-3xl font-extrabold leading-none">
164+
{s.value}
169165
</span>
170-
</li>
171-
);
172-
})}
173-
</ul>
174-
</div>
166+
<span className="block text-[11px] sm:text-xs text-muted mt-1 leading-snug">
167+
{s.label}
168+
</span>
169+
</span>
170+
</li>
171+
);
172+
})}
173+
</ul>
175174
</motion.div>
176175
</div>
177176
</section>

data/portfolio.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export const stats=[
2323
{value:"14+", label:"Years Experience", icon:"rocket"},
2424
{value:"500+", label:"Projects Delivered 🇮🇳", icon:"cloud"},
2525
{value:"270+", label:"Hosted Trainings", icon:"users"},
26-
{value:"250+", label:"International Projects", icon:"shield"},
26+
{value:"250+", label:"International Projects 🌍", icon:"shield"},
2727
{value:"20+", label:"Digital Transformations", icon:"chart"},
2828
];
2929

@@ -62,8 +62,6 @@ export const about = {
6262
"Cut support tickets by ~50%",
6363
"5+ years leading & training Office 365 products",
6464
"750+ projects across India, UAE & Africa",
65-
"MBA – Information Technology",
66-
"Multilingual: EN · HI · MR · TE",
6765
],
6866
};
6967

tailwind.config.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,15 @@ module.exports = {
5050
blob: "blob 16s ease-in-out infinite",
5151
spinSlow: "spinSlow 18s linear infinite",
5252
},
53+
keyframes: {
54+
bob: {
55+
"0%, 100%": { transform: "translateY(0)" },
56+
"50%": { transform: "translateY(3px)" },
57+
},
58+
},
59+
animation: {
60+
bob: "bob 2s ease-in-out infinite",
61+
},
5362
},
5463
},
5564
plugins: [],

0 commit comments

Comments
 (0)