personal-website/app/sobre-mim/page.tsx
Filipe Medeiros 5ff4edc634
feat: lots of stuff sorry
Signed-off-by: Filipe Medeiros <hello@filipesm.eu>
2023-12-03 12:25:54 +01:00

138 lines
4.8 KiB
TypeScript

import clsx from 'clsx'
import Image from 'next/image'
import { type ElementType, type PropsWithChildren } from 'react'
import Container from '@/components/server/Container'
import HybridLink, {
type Props as HybridLinkProps,
} from '@/components/server/HybridLink'
import {
CodebergIcon,
GitHubIcon,
type IconProps,
MastodonLogo,
} from '@/components/server/icons'
import PortraitImage from '@/images/portrait.jpg'
function SocialLink({
className,
href,
children,
icon: Icon,
}: PropsWithChildren<{
icon: ElementType
href: HybridLinkProps['href']
className?: string
}>) {
return (
<li className={clsx('flex', className)}>
<HybridLink
href={href}
className="group flex text-sm font-medium text-zinc-800 transition hover:text-teal-500 dark:text-zinc-200 dark:hover:text-teal-500"
>
<Icon className="h-6 w-6 flex-none fill-zinc-500 transition group-hover:fill-teal-500" />
<span className="ml-4">{children}</span>
</HybridLink>
</li>
)
}
function MailIcon(props: IconProps) {
return (
<svg viewBox="0 0 24 24" aria-hidden="true" {...props}>
<path
fillRule="evenodd"
d="M6 5a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h12a3 3 0 0 0 3-3V8a3 3 0 0 0-3-3H6Zm.245 2.187a.75.75 0 0 0-.99 1.126l6.25 5.5a.75.75 0 0 0 .99 0l6.25-5.5a.75.75 0 0 0-.99-1.126L12 12.251 6.245 7.187Z"
/>
</svg>
)
}
export default function About() {
return (
<Container className="mt-16 sm:mt-32">
<div className="grid grid-cols-1 gap-y-16 lg:grid-cols-2 lg:grid-rows-[auto_1fr] lg:gap-y-12">
<div className="lg:pl-20">
<div className="max-w-xs px-2.5 lg:max-w-none">
<Image
src={PortraitImage}
alt=""
sizes="(min-width: 1024px) 32rem, 20rem"
className="aspect-square rotate-3 rounded-2xl bg-zinc-100 object-cover dark:bg-zinc-800"
/>
</div>
</div>
<div className="lg:order-first lg:row-span-2">
<h1 className="text-4xl font-bold tracking-tight text-zinc-800 dark:text-zinc-100 sm:text-5xl">
Sou o Filipe. Este é o meu espaço na internet.
</h1>
<div className="mt-6 space-y-7 text-base text-zinc-600 dark:text-zinc-400">
<p>
Apanhei o gosto por programação desde muito cedo e muito que
sei que é uma das minhas paixões. Depois do curso, quis logo
entrar no mundo do trabalho, ver como era aquilo de que toda a
gente falava.
</p>
<p>
De certa forma desiludiu-me. Não me deu a satisfação de que estava
à espera. Mas foi estranho, porque continuava (e continuo) a
adorar programar e criar. A <i>web</i> - fazer sites e aplicações
- é um escape criativo para mim. Mas parece que falta o sentido de
propósito.
</p>
<p>
uns tempos descobri um novo gosto: a economia. Comecei uns
livros, ouvir umas palestras, estar muito mais atento à política.
É divertido! Estou a pensar fazer uma mudança de carreira no
futuro.
</p>
<p>
Ainda assim, acho mesmo que nunca vou perder o gosto pela
tecnologia e pela criação digital. Gostava de criar um produto
(tenho várias ideias, de que provavelmente vou falar aqui no
site).
</p>
<p>
Quero viajar mais. Principalmente para fora da Europa. Países
pouco <i>westernalizados</i> são o meu próximo objetivo (sudeste
asiático, América Latina e África).
</p>
<p>Veremos para onde a vida nos leva.</p>
</div>
</div>
<div className="lg:pl-20">
<ul role="list">
<SocialLink
href="https://mastodon.green/@filipesm"
icon={MastodonLogo}
>
Segue-me no Fediverse
</SocialLink>
<SocialLink
href="https://codeberg.org/filipesm"
icon={CodebergIcon}
className="mt-4"
>
Segue-me no Codeberg
</SocialLink>
<SocialLink
href="https://github.com/filipesmedeiros"
icon={GitHubIcon}
className="mt-4"
>
Segue-me no Github
</SocialLink>
<SocialLink
href="mailto:hello@filipesm.eu"
icon={MailIcon}
className="mt-8 border-t border-zinc-100 pt-8 dark:border-zinc-700/40"
>
hello@filipesm.eu
</SocialLink>
</ul>
</div>
</div>
</Container>
)
}