Skip to content

Instantly share code, notes, and snippets.

@adrianhajdin
Last active April 9, 2024 14:26
Show Gist options
  • Star 81 You must be signed in to star a gist
  • Fork 21 You must be signed in to fork a gist
  • Save adrianhajdin/52b513f1d8a8189747595a587c3132e4 to your computer and use it in GitHub Desktop.
Save adrianhajdin/52b513f1d8a8189747595a587c3132e4 to your computer and use it in GitHub Desktop.
Build and Deploy the Ultimate Web Development Portfolio
.app {
background-color: var(--primary-color);
font-family: var(--font-base);
}
.app__whitebg {
background-color: var(--white-color);
}
.app__primarybg {
background-color: var(--primary-color);
}
.app__container {
width: 100%;
min-height: 100vh;
display: flex;
flex-direction: row;
}
.app__flex {
display: flex;
justify-content: center;
align-items: center;
}
.app__wrapper {
flex: 1;
width: 100%;
flex-direction: column;
padding: 4rem 2rem;
@media screen and (max-width: 450px) {
padding: 4rem 1rem 2rem;
}
}
.copyright {
width: 100%;
padding: 2rem 0 0;
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: flex-end;
p {
text-transform: uppercase;
color: var(--black-color);
}
}
.head-text {
font-size: 2.75rem;
font-weight: 800;
text-align: center;
color: var(--black-color);
text-transform: capitalize;
span {
color: var(--secondary-color);
}
@media screen and (min-width: 2000px) {
font-size: 4rem;
}
@media screen and (max-width: 450px) {
font-size: 2rem;
}
}
.p-text {
font-size: 0.8rem;
text-align: left;
color: var(--gray-color);
line-height: 1.5;
@media screen and (min-width: 2000px) {
font-size: 1.75rem;
}
}
.bold-text {
font-size: 1rem;
font-weight: 800;
color: var(--black-color);
text-align: left;
@media screen and (min-width: 2000px) {
font-size: 2rem;
}
@media screen and (max-width: 450px) {
font-size: 0.9rem;
}
}
.app__social {
display: flex;
justify-content: flex-end;
align-items: center;
flex-direction: column;
padding: 1rem;
div {
width: 40px;
height: 40px;
border-radius: 50%;
background-color: var(--white-color);
margin: 0.25rem 0;
border: 1px solid var(--lightGray-color);
display: flex;
justify-content: center;
align-items: center;
transition: all 0.3s ease-in-out;
svg {
width: 15px;
height: 15px;
color: var(--gray-color);
}
&:hover {
background-color: var(--secondary-color);
border-color: var(--secondary-color);
svg {
color: var(--white-color);
}
}
@media screen and (min-width: 2000px) {
width: 70px;
height: 70px;
margin: 0.5rem 0;
svg {
width: 30px;
height: 30px;
}
}
}
}
.app__navigation {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
padding: 1rem;
.app__navigation-dot {
width: 10px;
height: 10px;
border-radius: 50%;
background-color: #cbcbcb;
margin: 0.5rem;
transition: background-color 0.2s ease-in-out;
&:hover {
background-color: var(--secondary-color);
}
@media screen and (min-width: 2000px) {
width: 20px;
height: 20px;
}
}
}
@media screen and (max-width: 500px) {
.app__navigation,
.app__social {
display: none;
}
.copyright {
padding: 2rem;
}
}
import email from '../assets/email.png';
import mobile from '../assets/mobile.png';
import api from '../assets/api.png';
import cpp from '../assets/cpp.png';
import css from '../assets/css.png';
import figma from '../assets/figma.png';
import flutter from '../assets/flutter.png';
import git from '../assets/git.png';
import graphql from '../assets/graphql.png';
import html from '../assets/html.png';
import javascript from '../assets/javascript.png';
import mu5 from '../assets/mu5.png';
import node from '../assets/node.png';
import python from '../assets/python.png';
import react from '../assets/react.png';
import redux from '../assets/redux.png';
import sass from '../assets/sass.png';
import typescript from '../assets/typescript.png';
import vue from '../assets/vue.png';
import about01 from '../assets/about01.png';
import about02 from '../assets/about02.png';
import about03 from '../assets/about03.png';
import about04 from '../assets/about04.png';
import profile from '../assets/profile.png';
import circle from '../assets/circle.svg';
import logo from '../assets/logo.png';
import adidas from '../assets/adidas.png';
import amazon from '../assets/amazon.png';
import asus from '../assets/asus.png';
import bolt from '../assets/bolt.png';
import nb from '../assets/nb.png';
import skype from '../assets/skype.png';
import spotify from '../assets/spotify.png';
export default {
email,
mobile,
api,
cpp,
css,
figma,
flutter,
git,
graphql,
html,
javascript,
mu5,
node,
python,
react,
redux,
sass,
typescript,
vue,
about01,
about02,
about03,
about04,
profile,
circle,
logo,
adidas,
amazon,
asus,
bolt,
nb,
skype,
spotify,
};
@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&display=swap");
:root {
--font-base: "DM Sans", sans-serif;
--primary-color: #edf2f8;
--secondary-color: #313bac;
--black-color: #030303;
--lightGray-color: #e4e4e4;
--gray-color: #6b7688;
--brown-color: #46364a;
--white-color: #ffffff;
}
* {
box-sizing: border-box;
padding: 0;
margin: 0;
scroll-behavior: smooth;
}
.app__skills {
flex: 1;
width: 100%;
flex-direction: column;
}
.app__skills-container {
width: 80%;
margin-top: 3rem;
display: flex;
flex-direction: row;
@media screen and (max-width: 900px) {
width: 100%;
flex-direction: column;
}
}
.app__skills-list {
flex: 1;
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-items: flex-start;
margin-right: 5rem;
@media screen and (max-width: 900px) {
margin-right: 0;
justify-content: center;
align-items: center;
}
}
.app__skills-item {
flex-direction: column;
text-align: center;
margin: 1rem;
transition: all 0.3s ease-in-out;
div {
width: 90px;
height: 90px;
border-radius: 50%;
background-color: #fef4f5;
img {
width: 50%;
height: 50%;
}
&:hover {
box-shadow: 0 0 25px #fef4f5;
}
@media screen and (min-width: 2000px) {
width: 150px;
height: 150px;
}
@media screen and (max-width: 450px) {
width: 70px;
height: 70px;
}
}
p {
font-weight: 500;
margin-top: 0.5rem;
}
@media screen and (min-width: 2000px) {
margin: 1rem 2rem;
p {
margin-top: 1rem;
}
}
}
.app__skills-exp {
flex: 1;
display: flex;
justify-content: flex-start;
align-items: flex-start;
flex-direction: column;
@media screen and (max-width: 900px) {
margin-top: 2rem;
}
}
.app__skills-exp-item {
width: 100%;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: flex-start;
margin: 1rem 0;
}
.app__skills-exp-works {
flex: 1;
.app__skills-exp-work {
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
margin-bottom: 1rem;
cursor: pointer;
h4 {
font-weight: 500;
}
p {
font-weight: 400;
color: var(--gray-color);
margin-top: 5px;
}
}
}
.app__skills-exp-year {
margin-right: 3rem;
p {
font-weight: 800;
color: var(--secondary-color);
}
@media screen and (max-width: 450px) {
margin-right: 1rem;
}
}
.skills-tooltip {
max-width: 300px !important;
background-color: var(--white-color) !important;
box-shadow: 0 0 25px rgba(0, 0, 0, 0.1) !important;
border-radius: 5px !important;
padding: 1rem !important;
color: var(--gray-color) !important;
text-align: center !important;
line-height: 1.5 !important;
opacity: 1 !important;
@media screen and (min-width: 2000px) {
font-size: 1.75rem !important;
max-width: 500px !important;
line-height: 2 !important;
}
}
@Serge-Ntumba
Copy link

thanks

@AhmedKamon
Copy link

love you sir

@ipelengmekgwe
Copy link

Thanks

@Cyebukayire
Copy link

You're amazing!
Thank you :)

@Aimeana100
Copy link

Great :)

@oparamiracle
Copy link

thank you

@alindaByamukama
Copy link

This was a great course, very well put together, I feel like I have learned some solid ReactJS skills

@waltodd
Copy link

waltodd commented Jun 7, 2022

Amazing

@Gideon877
Copy link

Thank you very much

@eyeland
Copy link

eyeland commented Jun 22, 2022

GOAT !! thanks so much

@Fidan02
Copy link

Fidan02 commented Aug 9, 2022

I need help!
I am at the wrapping part where we add the socials and navigation dots, I added everything the icons and dots are good, but their position is showing in the middle of the webpage instead of the side and center.

Would appreciate some help :)

@hargroa2
Copy link

hargroa2 commented Aug 12, 2022

I need help! I am at the wrapping part where we add the socials and navigation dots, I added everything the icons and dots are good, but their position is showing in the middle of the webpage instead of the side and center.

Would appreciate some help :)

Hey @Fidan02 , I had the exact same problem and for me it was in AppWrap.js. React is SUPER sensitive to spaces and whatnot so make sure that your AppWrap page is exactly identical to his. My problem was literally just an empty line under the SocialMedia component that was causing it to be centered as its own div block on the page. Hope this helps!

@BonatheRipper
Copy link

Thanks so much

@deepak-singh19
Copy link

My app.scss file is not working, it runs but without styling

@Clever-Shivanshu
Copy link

  • **Thank you sir **

@Reqima-dev
Copy link

Thank You

@veektrie
Copy link

really appreciate this resource

@sachanadhrl
Copy link

really appreciate this tutorial, i've learned a lot from your tutorial

@agomezjuan
Copy link

Thanks a lot!!

@NabintouSFofana
Copy link

NabintouSFofana commented Dec 30, 2022

thank you 👍

@whitejsx
Copy link

i really love your level of professionalism when it comes to coding

@hassanahmadp
Copy link

My app.scss file is not working, it runs but without styling

Try uninstalling node-sass package and installing sass

@aelijason
Copy link

Best Portfolio Page with full Stack Development, Love it

@brain-ambani
Copy link

Thank you so much, this is very informative.

@ochudi
Copy link

ochudi commented Sep 14, 2023

Thanks, Adrian!

@AbhishekSingh0901
Copy link

Thanks Adrian

@marianickolaevna
Copy link

Thank you!!

@vishwajeeta
Copy link

thank you sir

@spirited24
Copy link

Thank you Sir

@marouane-m7b
Copy link

Thank you

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