Data Source
Loop over data in a separate file in a constants folder.
Cards
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
Screenshots
.projectImage {
width: 100%;
height: 100%;
object-fit: cover;
overflow: hidden;
}
Title
Table Stakes
Description
One liner. Save the rest for the write-up.
font-style: 2rem;
line-height: 24px;
text-align: justify; // ???
Separator
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;
}
Tags
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.