Display Portfolio Projects


Updated Sep 2nd, 2021


Data Source

Loop over data in a separate file in a constants folder.


What makes a card a card – drop shadows?

box-shadow: 3px 3px 20px rgba(80, 78, 78, 0.5);

And seen in a grid?

.gridContainer {
  display: flex;
  flex-direction: column;
  padding: 2rem;
  padding-bottom: 0;

  @include atMedium {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
    padding: 3rem;
    place-items: center;  /* horizontally and vertically centers */
    column-gap: 2rem;
    row-gap: 3rem;

Image: To be or not to be


.projectImage {
  width: 100%;
  height: 100%;
  object-fit: cover;
  overflow: hidden;


Table Stakes


One liner. Save the rest for the write-up.

font-style: 2rem;
line-height: 24px;
text-align: justify; // ???


This can be a nice touch and an opportunity to add a bit or color

width: 50px;
height: 3px;
margin: 20px auto;
border: 0;
background: var(--primary);

Links: write-up, source, demo

Some projects may have all, every project needs at least one

.utlityList {
  list-style-type: none;
  padding: 0;
  display: flex;
  justify-content: space-around;
  margin: 2.5rem 0;

.externalLink {
  color: #d4c0c0;
  font-size: 1.6rem;
  padding: 1rem 1.5rem;
  background: #6b3030;
  border-radius: 15px;
  transition: 0.5s;
  &:hover {
    background: #801414;


Keep it simple. Max 4. Maybe save for write-up to keep card cleaner.

.tagList {
  display: flex;
  justify-content: space-around;
  padding: 2rem;

.tag {
  color: #d8bfbf;
  font-size: 1.5rem;


Github is your friend. Keep it clean. Use environment variables and git ignore.


Get a little more detailed from a dev perspective. Target audience for your portfolio site is professional colleagues and potential employers, and potential clients.

Gifs or other animation of the project is a great idea. Also throw in some code snippets, some emojis.

Good to have the date of the write-up. Essentially an article describing the project in more detail.