diff --git a/assets/index-DYaFUoMK.js b/assets/index-BkbtjiMW.js similarity index 99% rename from assets/index-DYaFUoMK.js rename to assets/index-BkbtjiMW.js index 40ff7f5..5e58800 100644 --- a/assets/index-DYaFUoMK.js +++ b/assets/index-BkbtjiMW.js @@ -230,6 +230,6 @@ For more information, see https://radix-ui.com/primitives/docs/components/alert- hover:brightness-125 transition-all rounded-md active:scale-95 flex-center\r hover:drop-shadow-purple-glow font-semibold text-white disabled:brightness-90`,children:t?c.jsx(nb,{className:"w-5 h-5 animate-spin"}):"Submit"})]})})},lM=()=>c.jsxs("section",{className:ue("min-h-dvh pt-14 pb-6 flex-between flex-col gap-y-6 px-4 xl:px-0 overflow-hidden",vo.rootSection),id:lt.contact,children:[c.jsxs("div",{className:"leading-none flex-center flex-col",children:[c.jsx("h4",{className:"text-xs lg:text-sm font-bold text-center tracking-widest pt-6 lg:pb-2",children:"CONTACT"}),c.jsxs("p",{className:"text-xl lg:text-5xl text-center",children:["Connect, Collaborate, ",c.jsx("span",{className:"text-primary",children:"Create."})]}),c.jsx("p",{className:"text-xs lg:text-sm text-muted-foreground text-center lg:mt-2 w-3/4 lg:w-full",children:"Building meaningful connections to inspire innovation and growth."})]}),c.jsx(sM,{}),c.jsxs("div",{className:"flex-center w-full gap-x-4",children:[c.jsx(Hf,{}),c.jsx("p",{className:"whitespace-nowrap text-xs font-semibold text-muted-foreground",children:"or via"}),c.jsx(Hf,{})]}),c.jsx(vR,{})]}),cM=()=>c.jsx("span",{className:"absolute pointer-events-none top-0 w-full h-full bg-gradient-to-r from-background via-transparent to-background"}),gm=[{icon:_k,hexColor:A3,label:"HTML"},{icon:dk,hexColor:b3,label:"CSS"},{icon:Ck,hexColor:D3,label:"Javascript"},{icon:Qk,hexColor:ry,label:"Typescript"},{icon:fk,hexColor:S3,label:"Dart"},{icon:Ik,hexColor:Z3,label:"React JS"},{icon:Tk,hexColor:V3,label:"Next JS"},{icon:gk,hexColor:k3,label:"Flutter"},{icon:$k,hexColor:X3,label:"Shadcnui"},{icon:Gk,hexColor:ey,label:"TailwindCSS"},{icon:ik,hexColor:x3,label:"Bootstrap"},{icon:zk,hexColor:Y3,label:"Redux"},{icon:ej,hexColor:sy,label:"Zod"},{icon:Fk,hexColor:K3,label:"React Hook Form"},{icon:lk,hexColor:w3,label:"Clerk"},{icon:qk,hexColor:ay,label:"Vite"}],vm=[{icon:Mk,hexColor:$3,label:"Node JS"},{icon:hk,hexColor:_3,label:"Express JS"},{icon:bk,hexColor:M3,label:"Go"},{icon:jk,hexColor:I3,label:"MongoDB"},{icon:Hk,hexColor:J3,label:"Supabase"},{icon:mk,hexColor:E3,label:"Firebase"},{icon:Ok,hexColor:W3,label:"Prisma ORM"},{icon:Nk,hexColor:F3,label:"MySQL"},{icon:Ak,hexColor:U3,label:"PostgreSQL"},{icon:Wk,hexColor:q3,label:"Swagger"}],ym=[{icon:vk,hexColor:j3,label:"Git"},{icon:R3,hexColor:N3,label:"GitHub"},{icon:ok,hexColor:y3,label:"Bitbucket"},{icon:Jk,hexColor:iy,label:"Vercel"},{icon:Rk,hexColor:z3,label:"Netlify"},{icon:yk,hexColor:T3,label:"Github Pages"},{icon:Lk,hexColor:G3,label:"Python"},{icon:Zk,hexColor:ty,label:"Tensorflow"},{icon:Xk,hexColor:oy,label:"Unity"},{icon:rk,hexColor:v3,label:"Android Studio"}],xm=[{icon:Sk,hexColor:P3,label:"Google Colab"},{icon:Ek,hexColor:O3,label:"Jupyter"},{icon:pk,hexColor:C3,label:"Figma"},{icon:Vk,hexColor:Q3,label:"Rive"},{icon:nk,hexColor:g3,label:"Adobo Photoshop"},{icon:Kk,hexColor:ny,label:"Trello"},{icon:Pk,hexColor:B3,label:"Notion"},{icon:Dk,hexColor:H3,label:"Postman"}],Pu=({Icon:e,hexColor:t})=>{const[n,r]=p.useState(!1);return c.jsx("li",{className:ue("rounded-full p-4 border",n?"border-foreground/15":"border-border"),onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),children:c.jsx(e,{color:n?t:void 0,className:ue("w-6 lg:w-12 h-6 lg:h-12",!n&&"opacity-50")})})},uM=()=>c.jsx("div",{className:"max-w-screen-lg overflow-hidden group",children:c.jsx("ul",{className:"flex gap-x-4 animate-loop-scroll group-hover:paused w-max",children:gm.concat(gm).map((e,t)=>c.jsx(Pu,{Icon:e.icon,hexColor:e.hexColor},`frontend-${e.label}-${t}`))})}),dM=()=>c.jsx("div",{className:"max-w-screen-lg overflow-hidden group",children:c.jsx("ul",{className:"flex gap-x-4 animate-loop-scroll direction-reverse group-hover:paused w-max",children:vm.concat(vm).map((e,t)=>c.jsx(Pu,{Icon:e.icon,hexColor:e.hexColor},`backend-${e.label}-${t}`))})}),fM=()=>c.jsx("div",{className:"max-w-screen-lg overflow-hidden group",children:c.jsx("ul",{className:"flex gap-x-4 animate-loop-scroll group-hover:paused w-max",children:ym.concat(ym).map((e,t)=>c.jsx(Pu,{Icon:e.icon,hexColor:e.hexColor},`others-${e.label}-${t}`))})}),hM=()=>c.jsx("div",{className:"max-w-screen-lg overflow-hidden group",children:c.jsx("ul",{className:"flex gap-x-4 animate-loop-scroll direction-reverse group-hover:paused w-max",children:xm.concat(xm).map((e,t)=>c.jsx(Pu,{Icon:e.icon,hexColor:e.hexColor},`tools-${e.label}-${t}`))})}),pM=()=>c.jsxs("section",{className:ue("min-h-dvh h-dvh pt-14 flex-between flex-col gap-y-6 border-b",vo.rootSection),id:lt.skills,children:[c.jsxs("div",{className:"leading-none flex-center flex-col",children:[c.jsx("h4",{className:"text-xs lg:text-sm font-bold text-center tracking-widest pt-6 lg:pb-2",children:"SKILLS"}),c.jsxs("p",{className:"text-xl lg:text-5xl text-center",children:["Innovate, Implement, ",c.jsx("span",{className:"text-primary",children:"Repeat."})]}),c.jsx("p",{className:"text-xs lg:text-sm text-muted-foreground text-center lg:mt-2 w-3/4 lg:w-full",children:"Showcasing the skills I've developed and refined over the past 3 years."})]}),c.jsxs("div",{className:"w-full flex-center flex-col gap-y-4 relative",children:[c.jsx(uM,{}),c.jsx(dM,{}),c.jsx(fM,{}),c.jsx(hM,{}),c.jsx(cM,{})]}),c.jsxs("p",{className:"text-xs text-muted-foreground text-center max-w-screen-sm mx-auto w-4/5 lg:w-full lg:mt-6 pb-6",children:["Currently expanding my skill set by delving into"," ",c.jsx("span",{className:"text-foreground/80",children:"DevOps"})," practices, focusing on automation, CI/CD, and infrastructure management to enhance development and operational efficiency."]})]}),mM=()=>c.jsx("div",{className:"w-[424px] lg:w-[512px] h-[424px] lg:h-[512px] absolute pointer-events-none",children:c.jsxs("svg",{className:"BgAnimation__svg",viewBox:"0 0 602 602",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[c.jsxs("g",{opacity:"0.15",children:[c.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M201.337 87.437C193.474 79.5738 180.725 79.5738 172.862 87.437L87.437 172.862C79.5739 180.725 79.5739 193.474 87.437 201.337L400.663 514.563C408.526 522.426 421.275 522.426 429.138 514.563L514.563 429.138C522.426 421.275 522.426 408.526 514.563 400.663L201.337 87.437ZM30.4869 115.912C-8.82897 155.228 -8.82897 218.972 30.4869 258.287L343.713 571.513C383.028 610.829 446.772 610.829 486.088 571.513L571.513 486.088C610.829 446.772 610.829 383.028 571.513 343.713L258.287 30.4869C218.972 -8.82896 155.228 -8.82896 115.912 30.4869L30.4869 115.912Z",stroke:"url(#paint0_radial)",id:"path_0"}),c.jsx("path",{d:"M514.563 201.337C522.426 193.474 522.426 180.725 514.563 172.862L429.138 87.437C421.275 79.5738 408.526 79.5739 400.663 87.437L358.098 130.002L301.148 73.0516L343.713 30.4869C383.028 -8.82896 446.772 -8.82896 486.088 30.4869L571.513 115.912C610.829 155.228 610.829 218.972 571.513 258.287L357.802 471.999L300.852 415.049L514.563 201.337Z",stroke:"url(#paint1_radial)",id:"path_1"}),c.jsx("path",{d:"M243.901 471.999L201.337 514.563C193.474 522.426 180.725 522.426 172.862 514.563L87.437 429.138C79.5739 421.275 79.5739 408.526 87.437 400.663L301.148 186.952L244.198 130.002L30.4869 343.713C-8.82897 383.028 -8.82897 446.772 30.4869 486.088L115.912 571.513C155.228 610.829 218.972 610.829 258.287 571.513L300.852 528.949L243.901 471.999Z",stroke:"url(#paint2_radial)",id:"path_2"})]}),c.jsx("ellipse",{cx:"295.027",cy:"193.118",transform:"translate(-295.027 -193.118)",rx:"1.07306",ry:"1.07433",fill:"#945DD6",children:c.jsx("animateMotion",{dur:"10s",repeatCount:"indefinite",rotate:"auto",children:c.jsx("mpath",{xlinkHref:"#path_2"})})}),c.jsx("path",{d:"M294.685 193.474L268.932 219.258",transform:"translate(-294.685 -193.474) rotate(45 294.685 193.474)",stroke:"url(#paint3_linear)",children:c.jsx("animateMotion",{dur:"10s",repeatCount:"indefinite",rotate:"auto",children:c.jsx("mpath",{xlinkHref:"#path_2"})})}),c.jsx("ellipse",{cx:"295.027",cy:"193.118",transform:"translate(-295.027 -193.118)",rx:"1.07306",ry:"1.07433",fill:"#46737",children:c.jsx("animateMotion",{dur:"5s",begin:"1",repeatCount:"indefinite",rotate:"auto",children:c.jsx("mpath",{xlinkHref:"#path_2"})})}),c.jsx("path",{d:"M294.685 193.474L268.932 219.258",transform:"translate(-294.685 -193.474) rotate(45 294.685 193.474)",stroke:"url(#paint7_linear)",children:c.jsx("animateMotion",{dur:"5s",begin:"1",repeatCount:"indefinite",rotate:"auto",children:c.jsx("mpath",{xlinkHref:"#path_2"})})}),c.jsx("ellipse",{cx:"476.525",cy:"363.313",rx:"1.07433",ry:"1.07306",transform:"translate(-476.525 -363.313) rotate(90 476.525 363.313)",fill:"#945DD6",children:c.jsx("animateMotion",{dur:"10s",repeatCount:"indefinite",rotate:"auto",children:c.jsx("mpath",{xlinkHref:"#path_0"})})}),c.jsx("path",{d:"M476.171 362.952L450.417 337.168",transform:"translate(-476.525 -363.313) rotate(-45 476.171 362.952)",stroke:"url(#paint4_linear)",children:c.jsx("animateMotion",{dur:"10s",repeatCount:"indefinite",rotate:"auto",children:c.jsx("mpath",{xlinkHref:"#path_0"})})}),c.jsx("ellipse",{cx:"382.164",cy:"155.029",rx:"1.07433",ry:"1.07306",transform:"translate(-382.164 -155.029) rotate(90 382.164 155.029)",fill:"#F46737",children:c.jsx("animateMotion",{dur:"10s",begin:"1",repeatCount:"indefinite",rotate:"auto",children:c.jsx("mpath",{xlinkHref:"#path_0"})})}),c.jsx("path",{d:"M381.81 154.669L356.057 128.885",transform:"translate(-381.81 -154.669) rotate(-45 381.81 154.669)",stroke:"url(#paint5_linear)",children:c.jsx("animateMotion",{dur:"10s",begin:"1",repeatCount:"indefinite",rotate:"auto",children:c.jsx("mpath",{xlinkHref:"#path_0"})})}),c.jsx("ellipse",{cx:"333.324",cy:"382.691",rx:"1.07306",ry:"1.07433",transform:"translate(-333.324 -382.691) rotate(-180 333.324 382.691)",fill:"#F46737",children:c.jsx("animateMotion",{dur:"5s",begin:"0",repeatCount:"indefinite",rotate:"auto",children:c.jsx("mpath",{xlinkHref:"#path_1"})})}),c.jsx("path",{d:"M333.667 382.335L359.42 356.551",transform:"scale(-1 1) translate(-333.667 -382.335) rotate(45 333.667 382.335)",stroke:"url(#paint6_linear)",children:c.jsx("animateMotion",{dur:"5s",begin:"0",repeatCount:"indefinite",rotate:"auto",children:c.jsx("mpath",{xlinkHref:"#path_1"})})}),c.jsx("ellipse",{cx:"165.524",cy:"93.9596",rx:"1.07306",ry:"1.07433",transform:"translate(-165.524 -93.9596)",fill:"#F46737",children:c.jsx("animateMotion",{dur:"10s",begin:"3",repeatCount:"indefinite",rotate:"auto",children:c.jsx("mpath",{xlinkHref:"#path_0"})})}),c.jsx("path",{d:"M165.182 94.3159L139.429 120.1",transform:"translate(-165.182 -94.3159) rotate(45 165.182 94.3159)",stroke:"url(#paint7_linear)",children:c.jsx("animateMotion",{dur:"10s",begin:"3",repeatCount:"indefinite",rotate:"auto",children:c.jsx("mpath",{xlinkHref:"#path_0"})})}),c.jsx("ellipse",{cx:"476.525",cy:"363.313",rx:"1.07433",ry:"1.07306",transform:"translate(-476.525 -363.313) rotate(90 476.525 363.313)",fill:"#13ADC7",children:c.jsx("animateMotion",{dur:"12s",begin:"4",repeatCount:"indefinite",rotate:"auto",children:c.jsx("mpath",{xlinkHref:"#path_0"})})}),c.jsx("path",{d:"M476.171 362.952L450.417 337.168",transform:"translate(-476.525 -363.313) rotate(-45 476.171 362.952)",stroke:"url(#paint11_linear)",children:c.jsx("animateMotion",{dur:"12s",begin:"4",repeatCount:"indefinite",rotate:"auto",children:c.jsx("mpath",{xlinkHref:"#path_0"})})}),c.jsxs("defs",{children:[c.jsxs("radialGradient",{id:"paint0_radial",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"translate(301 301) rotate(90) scale(300)",children:[c.jsx("stop",{offset:"0.333333",stopColor:"#FBFBFB"}),c.jsx("stop",{offset:"1",stopColor:"white",stopOpacity:"0"})]}),c.jsxs("radialGradient",{id:"paint1_radial",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"translate(301 301) rotate(90) scale(300)",children:[c.jsx("stop",{offset:"0.333333",stopColor:"#FBFBFB"}),c.jsx("stop",{offset:"1",stopColor:"white",stopOpacity:"0"})]}),c.jsxs("radialGradient",{id:"paint2_radial",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"translate(301 301) rotate(90) scale(300)",children:[c.jsx("stop",{offset:"0.333333",stopColor:"#FBFBFB"}),c.jsx("stop",{offset:"1",stopColor:"white",stopOpacity:"0"})]}),c.jsxs("linearGradient",{id:"paint3_linear",x1:"295.043",y1:"193.116",x2:"269.975",y2:"218.154",gradientUnits:"userSpaceOnUse",children:[c.jsx("stop",{stopColor:"#945DD6"}),c.jsx("stop",{offset:"1",stopColor:"#945DD6",stopOpacity:"0"})]}),c.jsxs("linearGradient",{id:"paint4_linear",x1:"476.529",y1:"363.31",x2:"451.461",y2:"338.272",gradientUnits:"userSpaceOnUse",children:[c.jsx("stop",{stopColor:"#945DD6"}),c.jsx("stop",{offset:"1",stopColor:"#945DD6",stopOpacity:"0"})]}),c.jsxs("linearGradient",{id:"paint5_linear",x1:"382.168",y1:"155.027",x2:"357.1",y2:"129.989",gradientUnits:"userSpaceOnUse",children:[c.jsx("stop",{stopColor:"#F46737"}),c.jsx("stop",{offset:"1",stopColor:"#F46737",stopOpacity:"0"})]}),c.jsxs("linearGradient",{id:"paint6_linear",x1:"333.309",y1:"382.693",x2:"358.376",y2:"357.655",gradientUnits:"userSpaceOnUse",children:[c.jsx("stop",{stopColor:"#F46737"}),c.jsx("stop",{offset:"1",stopColor:"#F46737",stopOpacity:"0"})]}),c.jsxs("linearGradient",{id:"paint7_linear",x1:"165.54",y1:"93.9578",x2:"140.472",y2:"118.996",gradientUnits:"userSpaceOnUse",children:[c.jsx("stop",{stopColor:"#F46737"}),c.jsx("stop",{offset:"1",stopColor:"#F46737",stopOpacity:"0"})]}),c.jsxs("linearGradient",{id:"paint8_linear",x1:"414.367",y1:"301.156",x2:"439.435",y2:"276.118",gradientUnits:"userSpaceOnUse",children:[c.jsx("stop",{stopColor:"#13ADC7"}),c.jsx("stop",{offset:"1",stopColor:"#13ADC7",stopOpacity:"0"})]}),c.jsxs("linearGradient",{id:"paint9_linear",x1:"515.943",y1:"288.238",x2:"541.339",y2:"291.454",gradientUnits:"userSpaceOnUse",children:[c.jsx("stop",{stopColor:"#13ADC7"}),c.jsx("stop",{offset:"1",stopColor:"#13ADC7",stopOpacity:"0"})]}),c.jsxs("linearGradient",{id:"paint10_linear",x1:"117.001",y1:"230.619",x2:"117.36",y2:"258.193",gradientUnits:"userSpaceOnUse",children:[c.jsx("stop",{stopColor:"#945DD6"}),c.jsx("stop",{offset:"1",stopColor:"#945DD6",stopOpacity:"0"})]}),c.jsxs("linearGradient",{id:"paint11_linear",x1:"476.529",y1:"363.31",x2:"451.461",y2:"338.272",gradientUnits:"userSpaceOnUse",children:[c.jsx("stop",{stopColor:"#13ADC7"}),c.jsx("stop",{offset:"1",stopColor:"#13ADC7",stopOpacity:"0"})]})]})]})}),gM=()=>{const[e,t]=p.useState(!1);return c.jsxs("div",{className:"relative rounded-full w-[256px] lg:min-w-[364px] h-[256px] lg:min-h-[364px] cursor-pointer flex-center",onMouseEnter:()=>t(!0),onMouseLeave:()=>t(!1),style:{perspective:"1000px"},children:[c.jsx(mM,{}),c.jsxs("div",{className:"absolute w-full h-full transition-transform duration-500 ease-in-out border lg:border-4 rounded-full border-secondary",style:{transformStyle:"preserve-3d",transform:`rotateY(${e?180:0}deg)`},children:[c.jsx("div",{className:"absolute w-full h-full flex-center rounded-full",style:{backfaceVisibility:"hidden"},children:c.jsx(Nc,{src:Ij,alt:"Me",hash:TN,className:"w-full h-full object-cover rounded-full"})}),c.jsx("div",{className:"absolute w-full h-full flex-center rounded-full",style:{backfaceVisibility:"hidden",transform:"rotateY(180deg)"},children:c.jsx(Nc,{src:Fj,alt:"Fingertips",hash:RN,className:"w-full h-full object-cover rounded-full"})})]})]})},vM=()=>c.jsx(Rt,{to:"https://drive.google.com/file/d/1ywkfqZul3nNBCcz4u2HPbgM7o5GLs0Sr/view?usp=sharing",target:"_blank",children:c.jsx("button",{className:`py-4 w-[256px] bg-gradient-to-r from-[#310055] to-[#DC97FF]\r hover:scale-95 transition-all duration-500 ease-in-out rounded-full \r - hover:drop-shadow-purple-glow font-semibold text-lg mt-8 text-white`,children:"Check Resume"})}),yM=()=>{const[e,t]=p.useState({width:0,height:0}),n=()=>{t({width:window.innerWidth,height:window.innerHeight})};return p.useEffect(()=>(n(),window.addEventListener("resize",n),()=>{window.removeEventListener("resize",n)}),[]),e},xM=()=>{const{width:e}=yM();return e>1024?c.jsxs(c.Fragment,{children:[c.jsxs("p",{className:"text-muted-foreground text-sm mt-2",children:["I am a dedicated"," ",c.jsx("span",{className:"text-foreground/80",children:"software developer"})," with a strong foundation in both"," ",c.jsx("span",{className:"text-foreground/80",children:"web"})," and"," ",c.jsx("span",{className:"text-foreground/80",children:"mobile technologies."})," ","Leveraging a"," ",c.jsx("span",{className:"text-foreground/80",children:"Bachelor's degree in Computer Science"})," ","and ",c.jsx("span",{className:"text-foreground/80",children:"at least 3"})," ",c.jsx("span",{className:"text-foreground/80",children:"years"})," of"," ",c.jsx("span",{className:"text-foreground/80",children:"experience"}),"."]}),c.jsxs("p",{className:"text-muted-foreground text-sm",children:["I specialize in creating robust, scalable solutions using"," ",c.jsx("span",{className:"text-foreground/80",children:"React.js"}),","," ",c.jsx("span",{className:"text-foreground/80",children:"React Native"}),", and"," ",c.jsx("span",{className:"text-foreground/80",children:"Flutter"})," for front-end development, coupled with"," ",c.jsx("span",{className:"text-foreground/80",children:"Express.js"})," for backend services. My expertise extends to working with databases and cloud platforms, including ",c.jsx("span",{className:"text-foreground/80",children:"MongoDB"}),", ",c.jsx("span",{className:"text-foreground/80",children:"Supabase"}),", and"," ",c.jsx("span",{className:"text-foreground/80",children:"Firebase"}),", as well as utilizing ",c.jsx("span",{className:"text-foreground/80",children:"Prisma"})," for ORM and"," ",c.jsx("span",{className:"text-foreground/80",children:"TensorFlow"})," for machine learning applications."]}),c.jsxs("p",{className:"text-muted-foreground text-sm",children:["In addition to my primary focus on building user-centric web and mobile applications, I am also passionate about"," ",c.jsx("span",{className:"text-foreground/80",children:"game development"}),". I create games using ",c.jsx("span",{className:"text-foreground/80",children:"Unity"}),","," ",c.jsx("span",{className:"text-foreground/80",children:"Flutter"})," and"," ",c.jsx("span",{className:"text-foreground/80",children:"Vanilla JavaScript"})," as a hobby, which enhances my problem-solving skills and creativity in software design."]})]}):c.jsxs("p",{className:"text-center text-muted-foreground text-xs sm:text-sm mt-2 max-w-screen-sm",children:["I am a ",c.jsx("span",{className:"text-foreground/80",children:"full-stack developer"})," ","with a"," ",c.jsx("span",{className:"text-foreground/80",children:"Bachelor's degree in Computer Science"})," ","and ",c.jsx("span",{className:"text-foreground/80",children:"3"})," professional"," ",c.jsx("span",{className:"text-foreground/80",children:"years"})," of"," ",c.jsx("span",{className:"text-foreground/80",children:"experience"}),". I excel in creating scalable solutions using"," ",c.jsx("span",{className:"text-foreground/80",children:"React.js"}),","," ",c.jsx("span",{className:"text-foreground/80",children:"React Native"}),","," ",c.jsx("span",{className:"text-foreground/80",children:"Flutter"}),", and"," ",c.jsx("span",{className:"text-foreground/80",children:"Express.js"}),". My skills include working with ",c.jsx("span",{className:"text-foreground/80",children:"MongoDB"}),","," ",c.jsx("span",{className:"text-foreground/80",children:"Supabase"}),","," ",c.jsx("span",{className:"text-foreground/80",children:"Firebase"}),", and"," ",c.jsx("span",{className:"text-foreground/80",children:"Prisma"}),". Additionally, I am passionate about game development, creating games with"," ",c.jsx("span",{className:"text-foreground/80",children:"Unity"}),","," ",c.jsx("span",{className:"text-foreground/80",children:"Flutter"}),", and"," ",c.jsx("span",{className:"text-foreground/80",children:"Vanilla JavaScript"})," to enhance my problem-solving and design skills."]})},wM=({texts:e,speedForward:t=120,speedBackward:n=50,delayForward:r=2500,delayBackward:o=800})=>{const[i,a]=p.useState(""),[s,l]=p.useState(0),[u,d]=p.useState(0),[f,h]=p.useState(!0);return p.useEffect(()=>{const y=e[s];if(f)if(u{a(g=>g+y[u]),d(g=>g+1)},t);return()=>clearTimeout(x)}else{const x=setTimeout(()=>h(!1),r);return()=>clearTimeout(x)}else if(u>0){const x=setTimeout(()=>{a(g=>g.slice(0,-1)),d(g=>g-1)},n);return()=>clearTimeout(x)}else{const x=setTimeout(()=>{h(!0),l(g=>(g+1)%e.length),d(0)},o);return()=>clearTimeout(x)}},[u,f,s,e,t,n,r,o]),c.jsxs("div",{className:"flex items-start justify-center font-semibold text-lg lg:text-2xl",children:["I create",c.jsxs("div",{className:"text-[#8B2FC9] ml-1.5",children:[i,c.jsx("span",{className:"inline-block w-0.5 h-[1em] animate-blink ease-in-out",children:"|"})]})]})},bM=({isMounted:e})=>c.jsx("ul",{className:ue("flex-center gap-x-6 transition-opacity duration-500 ease-in-out",e?"opacity-100":"opacity-0"),children:cy.map(t=>{const n=t.icon;return c.jsx(zs,{asChild:!0,label:t.label,side:"top",children:c.jsx(Rt,{to:t.href,target:"_blank",className:`rounded-full border border-muted-foreground p-2.5\r + hover:drop-shadow-purple-glow font-semibold text-lg mt-8 text-white`,children:"Check Resume"})}),yM=()=>{const[e,t]=p.useState({width:0,height:0}),n=()=>{t({width:window.innerWidth,height:window.innerHeight})};return p.useEffect(()=>(n(),window.addEventListener("resize",n),()=>{window.removeEventListener("resize",n)}),[]),e},xM=()=>{const{width:e}=yM();return e>1024?c.jsxs(c.Fragment,{children:[c.jsxs("p",{className:"text-muted-foreground text-sm mt-2",children:["I am a dedicated"," ",c.jsx("span",{className:"text-foreground/80",children:"software developer"})," with a strong foundation in both"," ",c.jsx("span",{className:"text-foreground/80",children:"web"})," and"," ",c.jsx("span",{className:"text-foreground/80",children:"mobile technologies."})," ","Leveraging a"," ",c.jsx("span",{className:"text-foreground/80",children:"Bachelor's degree in Computer Science"})," ","and ",c.jsx("span",{className:"text-foreground/80",children:"at least 2"})," ",c.jsx("span",{className:"text-foreground/80",children:"years"})," of"," ",c.jsx("span",{className:"text-foreground/80",children:"experience"}),"."]}),c.jsxs("p",{className:"text-muted-foreground text-sm",children:["I specialize in creating robust, scalable solutions using"," ",c.jsx("span",{className:"text-foreground/80",children:"React.js"}),","," ",c.jsx("span",{className:"text-foreground/80",children:"React Native"}),", and"," ",c.jsx("span",{className:"text-foreground/80",children:"Flutter"})," for front-end development, coupled with"," ",c.jsx("span",{className:"text-foreground/80",children:"Express.js"})," for backend services. My expertise extends to working with databases and cloud platforms, including ",c.jsx("span",{className:"text-foreground/80",children:"MongoDB"}),", ",c.jsx("span",{className:"text-foreground/80",children:"Supabase"}),", and"," ",c.jsx("span",{className:"text-foreground/80",children:"Firebase"}),", as well as utilizing ",c.jsx("span",{className:"text-foreground/80",children:"Prisma"})," for ORM and"," ",c.jsx("span",{className:"text-foreground/80",children:"TensorFlow"})," for machine learning applications."]}),c.jsxs("p",{className:"text-muted-foreground text-sm",children:["In addition to my primary focus on building user-centric web and mobile applications, I am also passionate about"," ",c.jsx("span",{className:"text-foreground/80",children:"game development"}),". I create games using ",c.jsx("span",{className:"text-foreground/80",children:"Unity"}),","," ",c.jsx("span",{className:"text-foreground/80",children:"Flutter"})," and"," ",c.jsx("span",{className:"text-foreground/80",children:"Vanilla JavaScript"})," as a hobby, which enhances my problem-solving skills and creativity in software design."]})]}):c.jsxs("p",{className:"text-center text-muted-foreground text-xs sm:text-sm mt-2 max-w-screen-sm",children:["I am a ",c.jsx("span",{className:"text-foreground/80",children:"full-stack developer"})," ","with a"," ",c.jsx("span",{className:"text-foreground/80",children:"Bachelor's degree in Computer Science"})," ","and ",c.jsx("span",{className:"text-foreground/80",children:"at least 2"})," ",c.jsx("span",{className:"text-foreground/80",children:"years"})," of"," ",c.jsx("span",{className:"text-foreground/80",children:"experience"}),". I excel in creating scalable solutions using"," ",c.jsx("span",{className:"text-foreground/80",children:"React.js"}),","," ",c.jsx("span",{className:"text-foreground/80",children:"React Native"}),","," ",c.jsx("span",{className:"text-foreground/80",children:"Flutter"}),", and"," ",c.jsx("span",{className:"text-foreground/80",children:"Express.js"}),". My skills include working with ",c.jsx("span",{className:"text-foreground/80",children:"MongoDB"}),","," ",c.jsx("span",{className:"text-foreground/80",children:"Supabase"}),","," ",c.jsx("span",{className:"text-foreground/80",children:"Firebase"}),", and"," ",c.jsx("span",{className:"text-foreground/80",children:"Prisma"}),". Additionally, I am passionate about game development, creating games with"," ",c.jsx("span",{className:"text-foreground/80",children:"Unity"}),","," ",c.jsx("span",{className:"text-foreground/80",children:"Flutter"}),", and"," ",c.jsx("span",{className:"text-foreground/80",children:"Vanilla JavaScript"})," to enhance my problem-solving and design skills."]})},wM=({texts:e,speedForward:t=120,speedBackward:n=50,delayForward:r=2500,delayBackward:o=800})=>{const[i,a]=p.useState(""),[s,l]=p.useState(0),[u,d]=p.useState(0),[f,h]=p.useState(!0);return p.useEffect(()=>{const y=e[s];if(f)if(u{a(g=>g+y[u]),d(g=>g+1)},t);return()=>clearTimeout(x)}else{const x=setTimeout(()=>h(!1),r);return()=>clearTimeout(x)}else if(u>0){const x=setTimeout(()=>{a(g=>g.slice(0,-1)),d(g=>g-1)},n);return()=>clearTimeout(x)}else{const x=setTimeout(()=>{h(!0),l(g=>(g+1)%e.length),d(0)},o);return()=>clearTimeout(x)}},[u,f,s,e,t,n,r,o]),c.jsxs("div",{className:"flex items-start justify-center font-semibold text-lg lg:text-2xl",children:["I create",c.jsxs("div",{className:"text-[#8B2FC9] ml-1.5",children:[i,c.jsx("span",{className:"inline-block w-0.5 h-[1em] animate-blink ease-in-out",children:"|"})]})]})},bM=({isMounted:e})=>c.jsx("ul",{className:ue("flex-center gap-x-6 transition-opacity duration-500 ease-in-out",e?"opacity-100":"opacity-0"),children:cy.map(t=>{const n=t.icon;return c.jsx(zs,{asChild:!0,label:t.label,side:"top",children:c.jsx(Rt,{to:t.href,target:"_blank",className:`rounded-full border border-muted-foreground p-2.5\r hover:scale-105 hover:-translate-y-2 transition-all\r ease-in-out cursor-pointer hover:bg-muted-foreground group hover:drop-shadow-foreground-glow`,children:c.jsx(n,{className:"w-4 h-4 transition-colors ease-in-out group-hover:text-background pointer-events-none"})})},t.href)})}),SM=()=>{const e=Fs();return c.jsxs("section",{className:ue("min-h-dvh flex-center flex-col gap-y-12 lg:gap-y-24 p-6 lg:py-6 relative border-b lg:px-4 xl:px-0",vo.rootSection),id:lt.about,children:[c.jsxs("div",{className:"mt-14 flex-center lg:flex-between flex-col-reverse lg:flex-row gap-y-4 lg:gap-y-8 gap-x-24 w-full",children:[c.jsxs("div",{className:ue("flex items-center lg:items-start flex-col lg:gap-2 transition-opacity duration-500 ease-in-out",e?"opacity-100":"opacity-0"),children:[c.jsxs("div",{className:"flex items-start justify-center gap-x-2 relative",children:[c.jsx("p",{className:"lg:text-xl font-semibold",children:"Hi there!"}),c.jsx("img",{src:Qj,alt:"Wave",className:"w-6 lg:w-10 h-5 lg:h-8 relative -top-0.5 lg:-top-1.5"})]}),c.jsxs("h1",{className:"text-2xl lg:text-4xl font-bold flex items-center flex-col lg:flex-row",children:["I'm Ghian Carlos Tan"," ",c.jsx("span",{className:"text-sm lg:text-lg font-semibold text-muted-foreground lg:ml-2",children:"(Fingertips)"})]}),c.jsx(wM,{texts:tj}),c.jsx(xM,{}),c.jsx(vM,{})]}),c.jsx(gM,{})]}),c.jsx(bM,{isMounted:e})]})},_M=()=>c.jsxs(c.Fragment,{children:[c.jsx(SM,{}),c.jsx(pM,{}),c.jsx(EN,{}),c.jsx(fR,{}),c.jsx(NN,{}),c.jsx(lM,{})]}),CM=p7(Sf(c.jsxs(_a,{path:To.root,element:c.jsx(tN,{}),errorElement:c.jsx(nN,{}),children:[c.jsx(_a,{index:!0,element:c.jsx(_M,{})}),c.jsx(_a,{path:To.github404,element:c.jsx(Sp,{})}),c.jsx(_a,{path:To.notFound,element:c.jsx(Sp,{})})]})));_f.createRoot(document.getElementById("root")).render(c.jsx(B.StrictMode,{children:c.jsx(T7,{children:c.jsx(F7,{children:c.jsx(_7,{router:CM})})})})); diff --git a/index.html b/index.html index 15b787e..0e9085d 100644 --- a/index.html +++ b/index.html @@ -46,7 +46,7 @@ })(window.location); - +