Skip to content

Conversation

@gabriellaberko
Copy link

@gabriellaberko gabriellaberko commented Nov 28, 2025

Copy link

@sandrahagevall sandrahagevall left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really great job with your portfolio — it looks very good, and I really like the animations you've added! You’ve also done very advanced work with all of the components, and it’s clear that you’ve put a lot of thought into the overall structure.

One thing that could make the project even easier to navigate for someone who hasn’t seen the code before is the folder structure. Since there are many components, styles and assets, it can be a little challenging at first to understand what belongs together. Maybe grouping related files in shared folders could make it even clearer.

Overall, you’ve done an excellent job — the code is clean, structured, and very well written 💯

const [visible, setVisible] = useState(false);

// to change threshold value depending on screen size
const isBigScreen = window.matchMedia("(min-width: 768px)").matches;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could have used your breakpoints from the theme here! :)

@@ -0,0 +1,11 @@
import React from 'react';
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file feels a bit misplaced, as it's a component and not a style element per se. The style folder should probably be put outside of the components folder.

// firsly check if size/weight values have been put manually, otherwise use pre-defined values for media size:

// mobile (as default)
font-size: ${({ as, size }) => size ? sizeMapping[size] : typographyConfig[as]?.mobile.size};
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice use of styled props!

<Typography as="h2">Skills</Typography>
<StyledSkillsContainer>
{skillsData.skills.map((skillObj, index) => (
<SkillsBox key = {index} skillObj = {skillObj} />
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor thing, but it looks weird to put spaces between the prop name and the prop value like this.

Copy link

@Npahlfer Npahlfer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good use of props and the theme, good structure for most of the parts and easy to read. Great job!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants