Skip to content

royeradames/minimalist-portfolio-website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minimalist portfolio Template

You can use my emailer server for getting the form data to your email.

Table of contents

Overview

The challenge

Users should be able to:

  • View the optimal layout for each page depending on their device's screen size
  • See hover states for all interactive elements throughout the site
  • Click the "About Me" call-to-action on the homepage and have the screen scroll down to the next section
  • Receive an error message when the contact form is submitted if:
    • The Name, Email Address or Message fields are empty should show that the field is required.
    • The Email Address is not formatted correctly should show "Please use a valid email address"

Screenshot

Home Page

Home Mobile

Home Mobile

Home Tablet

Home tablet

Home Desktop

Home Desktop

Portfolio Page

Portfolio Mobile

Portfolio mobile

Portfolio Tablet

Portfolio tablet

Portfolio Desktop

Portfolio Desktop

A specific project Template Page

Mobile Project Template Page

A specific project Template Page in mobile size

Tablet Project Template Page

A specific project Template Page in Portfolio size tablet

Desktop Project Template Page

A specific project Template Page in Portfolio size Desktop

Contact-me Page

Mobile Contact-me Page

Contact-me mobile

Tablet Contact-me Page

Contact-me tablet

Desktop Contact-me Page

Contact-me Desktop

Mobile Menu

Mobile menu

Contact-me Form Error

Contact-me mobile

Links

My process

Built with

  • Semantic HTML5 markup
  • CSS custom properties
  • CSS Grid
  • Mobile-first workflow
  • React - JS library
  • Sass - For styles

What I learned

Use this section to recap over some of your major learnings while working through this project. Writing these out and providing code samples of areas you want to highlight is a great way to reinforce your own knowledge.

To see how you can add code snippets, see below:

show the images depending on the sizes, and the px density

<picture className="portfolio__img">
  <source
    srcSet={`${project.imgLinkDesktop} 1x, ${project.imgLinkDesktop2x} 2x`}
    media={mediaQueries.desktop}
  />
  <source
    srcSet={`${project.imgLinkTablet} 1x, ${project.imgLinkTablet2x} 2x`}
    media={mediaQueries.tablet}
  />
  <source
    srcSet={`${project.imgLinkMobile} 1x, ${project.imgLinkMobile2x}`}
  />
  <img
    src={project.imgLinkMobile}
    alt={`${project.title} project`}
  />
</picture>

}

Open React Router At The Top Of Page With JavaScript

/* Link to previous and next projects on the project list */
<Link
  to={`/projects/${previousProjectDetail.id}/${previousProjectDetail.title}`}
  className="other-project__previous-project-link"
  onClick={() => {
    window.scroll(0, 0);
  }}
>
</Link>
}

Cleaning Importing SVGs In React

// import SVGs
import { ReactComponent as LeftArrow } from "../images/icons/arrow-left.svg";
import { ReactComponent as RightArrow } from "../images/icons/arrow-right.svg";

// using the SVGs
<LeftArrow className="other-project__button-icon other-project__previous-project-icon" />
<RightArrow className="other-project__button-icon other-project__next-project-icon" />

Using CSS grid to handle white space instead of margin

grid-template:
  "hero hero" max-content
  ". ." 11.5rem //white space
  "manage background-article" min-content
  "manage ." 4rem //white space
  "manage previews" min-content
  ". previews" max-content
  ". ." 6.4rem // white space
  "others others" 1fr
  ". ." 6.4rem // white space
  "contact-me contact-me" max-content
  ;

Useful resources

Author