Merge version_1 into main #2
@@ -41,26 +41,26 @@ export default function LandingPage() {
|
||||
<HeroBillboardTestimonial
|
||||
title="hello, Aryan here"
|
||||
description="building meaningful web experiences — and occasionally fixing what I broke."
|
||||
background={{ variant: "glowing-orb" }}
|
||||
background={{ variant: "floatingGradient" }}
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/a-stunning-dark-themed-hero-background-w-1773245380293-81013917.png"
|
||||
imageAlt="Modern developer portfolio hero background"
|
||||
mediaAnimation="slide-up"
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah Chen", handle: "CTO, TechFlow", testimonial: "Aryan's code is clean, thoughtful, and production-ready. Exceptional developer.", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/professional-headshot-of-a-tech-lead-in--1773245379935-9b07637d.png?_wi=1", imageAlt: "Sarah Chen portrait"
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/professional-headshot-of-a-tech-lead-in--1773245379935-9b07637d.png", imageAlt: "Sarah Chen portrait"
|
||||
},
|
||||
{
|
||||
name: "Marcus Rodriguez", handle: "Product Lead, StartupXYZ", testimonial: "Turned complex requirements into elegant solutions. True problem solver.", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/portrait-of-a-product-manager-in-a-moder-1773245380603-a4f1d165.png?_wi=1", imageAlt: "Marcus Rodriguez portrait"
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/portrait-of-a-product-manager-in-a-moder-1773245380603-a4f1d165.png", imageAlt: "Marcus Rodriguez portrait"
|
||||
},
|
||||
{
|
||||
name: "Emily Watson", handle: "Founder, InnovateLab", testimonial: "Fast learner, great communicator, and deeply passionate about craft.", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/headshot-of-a-startup-founder-in-contemp-1773245379499-27a7cc2b.png?_wi=1", imageAlt: "Emily Watson portrait"
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/headshot-of-a-startup-founder-in-contemp-1773245379499-27a7cc2b.png", imageAlt: "Emily Watson portrait"
|
||||
},
|
||||
{
|
||||
name: "David Kim", handle: "Design Director, CreativeStudio", testimonial: "Bridges design and development seamlessly. A joy to collaborate with.", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/professional-portrait-of-a-design-direct-1773245379404-585d47ed.png?_wi=1", imageAlt: "David Kim portrait"
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/professional-portrait-of-a-design-direct-1773245379404-585d47ed.png", imageAlt: "David Kim portrait"
|
||||
}
|
||||
]}
|
||||
testimonialRotationInterval={5000}
|
||||
@@ -71,7 +71,7 @@ export default function LandingPage() {
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
tag="Developer × Learner × Builder"
|
||||
tagAnimation="entrance-slide"
|
||||
tagAnimation="slide-up"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -80,7 +80,7 @@ export default function LandingPage() {
|
||||
title="Constantly Exploring, Perpetually Growing"
|
||||
description="I'm a developer obsessed with building clean, scalable interfaces and thoughtful user experiences. With a foundation in TypeScript, React, and modern web architecture, I'm always diving into new technologies and design patterns. When I'm not coding, I'm learning—whether it's mastering new frameworks, exploring design systems, or understanding how products think."
|
||||
tag="About Me"
|
||||
tagAnimation="entrance-slide"
|
||||
tagAnimation="slide-up"
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/a-professional-portrait-of-a-developer-i-1773245379919-61507f36.png"
|
||||
imageAlt="Aryan in modern workspace"
|
||||
useInvertedBackground={true}
|
||||
@@ -97,7 +97,7 @@ export default function LandingPage() {
|
||||
title="Featured Work"
|
||||
description="Selection of recent projects showcasing frontend engineering, system design, and user-centric problem solving."
|
||||
tag="Portfolio"
|
||||
tagAnimation="entrance-slide"
|
||||
tagAnimation="slide-up"
|
||||
textboxLayout="default"
|
||||
animationType="slide-up"
|
||||
useInvertedBackground={false}
|
||||
@@ -126,7 +126,7 @@ export default function LandingPage() {
|
||||
title="My Technology Arsenal"
|
||||
description="Constantly expanding my technical toolkit across frontend, backend, and DevOps ecosystems."
|
||||
tag="Skills"
|
||||
tagAnimation="entrance-slide"
|
||||
tagAnimation="slide-up"
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={true}
|
||||
@@ -148,7 +148,7 @@ export default function LandingPage() {
|
||||
title="What Others Say"
|
||||
description="Real feedback from colleagues, mentors, and collaborators who've experienced my work firsthand."
|
||||
tag="Testimonials"
|
||||
tagAnimation="entrance-slide"
|
||||
tagAnimation="slide-up"
|
||||
textboxLayout="default"
|
||||
animationType="slide-up"
|
||||
useInvertedBackground={false}
|
||||
@@ -158,19 +158,19 @@ export default function LandingPage() {
|
||||
testimonials={[
|
||||
{
|
||||
id: "1", name: "Sarah Chen", role: "CTO", company: "TechFlow", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/professional-headshot-of-a-tech-lead-in--1773245379935-9b07637d.png?_wi=2", imageAlt: "Sarah Chen"
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/professional-headshot-of-a-tech-lead-in--1773245379935-9b07637d.png", imageAlt: "Sarah Chen"
|
||||
},
|
||||
{
|
||||
id: "2", name: "Marcus Rodriguez", role: "Product Lead", company: "StartupXYZ", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/portrait-of-a-product-manager-in-a-moder-1773245380603-a4f1d165.png?_wi=2", imageAlt: "Marcus Rodriguez"
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/portrait-of-a-product-manager-in-a-moder-1773245380603-a4f1d165.png", imageAlt: "Marcus Rodriguez"
|
||||
},
|
||||
{
|
||||
id: "3", name: "Emily Watson", role: "Founder", company: "InnovateLab", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/headshot-of-a-startup-founder-in-contemp-1773245379499-27a7cc2b.png?_wi=2", imageAlt: "Emily Watson"
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/headshot-of-a-startup-founder-in-contemp-1773245379499-27a7cc2b.png", imageAlt: "Emily Watson"
|
||||
},
|
||||
{
|
||||
id: "4", name: "David Kim", role: "Design Director", company: "CreativeStudio", rating: 5,
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/professional-portrait-of-a-design-direct-1773245379404-585d47ed.png?_wi=2", imageAlt: "David Kim"
|
||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ao3LuWrhn9dVwGBZPq7b9kJLlM/professional-portrait-of-a-design-direct-1773245379404-585d47ed.png", imageAlt: "David Kim"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
@@ -180,7 +180,7 @@ export default function LandingPage() {
|
||||
<ContactText
|
||||
text="Let's create something extraordinary together. Whether you have a project in mind or just want to chat about web development, I'm always excited to connect."
|
||||
animationType="entrance-slide"
|
||||
background={{ variant: "glowing-orb" }}
|
||||
background={{ variant: "floatingGradient" }}
|
||||
useInvertedBackground={false}
|
||||
buttons={[
|
||||
{ text: "Send Email", href: "mailto:hello@example.com" },
|
||||
|
||||
@@ -1,51 +1,42 @@
|
||||
"use client";
|
||||
|
||||
import { memo } from "react";
|
||||
import useSvgTextLogo from "./useSvgTextLogo";
|
||||
import { cls } from "@/lib/utils";
|
||||
import React from 'react';
|
||||
|
||||
interface SvgTextLogoProps {
|
||||
logoText: string;
|
||||
adjustHeightFactor?: number;
|
||||
verticalAlign?: "top" | "center";
|
||||
text: string;
|
||||
className?: string;
|
||||
fontSize?: number;
|
||||
fontWeight?: number | string;
|
||||
letterSpacing?: number;
|
||||
dominantBaseline?: 'auto' | 'middle' | 'hanging' | 'text-bottom' | 'alphabetic' | 'text-top';
|
||||
}
|
||||
|
||||
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
|
||||
logoText,
|
||||
adjustHeightFactor,
|
||||
verticalAlign = "top",
|
||||
className = "",
|
||||
}) {
|
||||
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
|
||||
|
||||
const SvgTextLogo: React.FC<SvgTextLogoProps> = ({
|
||||
text,
|
||||
className = '',
|
||||
fontSize = 48,
|
||||
fontWeight = 700,
|
||||
letterSpacing = 0,
|
||||
dominantBaseline = 'middle',
|
||||
}) => {
|
||||
return (
|
||||
<svg
|
||||
ref={svgRef}
|
||||
viewBox={viewBox}
|
||||
className={cls("w-full", className)}
|
||||
style={{ aspectRatio: aspectRatio }}
|
||||
preserveAspectRatio="none"
|
||||
role="img"
|
||||
aria-label={`${logoText} logo`}
|
||||
viewBox="0 0 400 100"
|
||||
className={className}
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
>
|
||||
<text
|
||||
ref={textRef}
|
||||
x="0"
|
||||
y={verticalAlign === "center" ? "50%" : "0"}
|
||||
className="font-bold fill-current"
|
||||
style={{
|
||||
fontSize: "20px",
|
||||
letterSpacing: "-0.02em",
|
||||
dominantBaseline: verticalAlign === "center" ? "middle" : "text-before-edge"
|
||||
}}
|
||||
x="50%"
|
||||
y="50%"
|
||||
textAnchor="middle"
|
||||
dominantBaseline={dominantBaseline}
|
||||
fontSize={fontSize}
|
||||
fontWeight={fontWeight}
|
||||
letterSpacing={letterSpacing}
|
||||
className="fill-current"
|
||||
>
|
||||
{logoText}
|
||||
{text}
|
||||
</text>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
SvgTextLogo.displayName = "SvgTextLogo";
|
||||
|
||||
export default SvgTextLogo;
|
||||
export default SvgTextLogo;
|
||||
Reference in New Issue
Block a user