viniciuscosta89 / viniciuscosta89.github.io

My personal website!

Home Page:https://viniciuscosta.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Frontend Mentor - Single-page developer portfolio solution

This is a solution to the Single-page developer portfolio challenge on Frontend Mentor. And is my own website as well!

Table of contents

Overview

The challenge

Users should be able to:

  • Receive an error message when the form is submitted if:
    • Any field is empty
    • The email address is not formatted correctly
    • View the optimal layout for the interface depending on their device's screen size
    • See hover and focus states for all interactive elements on the page

Screenshot

Mobile Desktop

Links

My process

Built with

  • Semantic HTML5 markup
  • CSS custom properties
  • Flexbox
  • CSS Grid
  • Mobile-first workflow
  • pnpm - Fast, disk space efficient package manager
  • Astro - Astro is the all-in-one web framework designed for speed.
  • React - JS library
  • Vite - Frontend Tooling
  • Panda CSS - CSS-in-JS with build time generated styles, RSC compatible, multi-variant support, and best-in-class developer experience
  • Typescript - JavaScript with syntax for types
  • Zod - TypeScript-first schema validation with static type inference
  • React Hook Form - Performant, flexible and extensible forms with easy-to-use validation
  • Framer Motion - A production-ready motion library for React
  • reaptcha - Google reCAPTCHA v2 for React

What I learned

It was my first time developing with Panda CSS. Since Stitches isn't maintained anymore and styled-components doesn't work properly with Astro, I need an alternative for the CSS-in-JS approach.

Continued development

I like to use Composition Pattern for my components since some weeks ago. It's a good approach to avoid "prop drilling". I want to dive deeper into the composition pattern. And take a look if Panda CSS is the better solution for CSS-in-JS to work with Astro.

Useful resources

  • Documentations from React, Astro, Panda CSS, Vite, Zod, React Hoof Form, Framer Motion and reaptcha.

Author

About

My personal website!

https://viniciuscosta.dev


Languages

Language:TypeScript 74.8%Language:Astro 24.6%Language:JavaScript 0.5%Language:CSS 0.1%